Feat/svelte skills modernization#159
Conversation
… sveltekit-remote-functions to Svelte skills
📝 WalkthroughWalkthroughEl PR amplía el catálogo de skills de autoskills para Svelte, shadcn-svelte, Go Fiber y PostgreSQL, ajusta la detección y recolección de skills asociadas, actualiza el registro generado y añade documentación, ejemplos, reglas y evaluaciones para esas nuevas entradas. ChangesCatálogo y guías de skills
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 14
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.md (1)
1-127:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftInconsistencia: El ejemplo no muestra código de pruebas, pero las aserciones las requieren.
Las aserciones en
assertions.md(línea 17-18) y el prompt enevals.json(línea 4) requieren explícitamente "table-driven tests for the create and list endpoints". Sin embargo, este ejemplo solo muestra código de producción, sin tests.En contraste, el ejemplo
02-websocket-broadcast.mdSÍ incluye código de pruebas completo (líneas 118-144).Los ejemplos deben ser consistentes en completitud. Si la evaluación requiere tests, el ejemplo debe demostrarlos.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.md` around lines 1 - 127, The example file for the REST API with Middleware is missing test code, but the assertions and evaluation criteria explicitly require "table-driven tests for the create and list endpoints". Add table-driven test functions for the createBookmark and listBookmarks handlers that cover multiple test cases (e.g., valid requests, invalid validation, missing fields), following the same pattern demonstrated in the websocket example. This will make the example consistent with the evaluation requirements and provide learners with the complete implementation including tests.
🧹 Nitpick comments (9)
packages/autoskills/skills-registry/shadcn-svelte/customization.md (1)
1-214: ⚡ Quick winContenido técnico correcto, pero considerar deprecar la sección de Tailwind v3.
La documentación es clara y precisa. Sin embargo, dado que la última versión de shadcn-svelte espera Tailwind v4, la sección "2b. Register with Tailwind v3 (tailwind.config.js)" (líneas 104-119) podría ser marcada como "legacy" u opcionalmente movida a una sección de "Migration from v3".
Para la mayoría de nuevos proyectos, la guía de Tailwind v4 (
@themeinline) es el camino recomendado.💡 Sugerencia de mejora (opcional)
Considerar añadir una nota antes de la sección v3:
> **Note:** Tailwind v3 is no longer the recommended approach. If you're starting a new project with shadcn-svelte, use Tailwind v4 and the `@theme inline` method shown above. The v3 approach below is for legacy projects only.Esto proporciona claridad sin perder la información útil para legacy projects.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/shadcn-svelte/customization.md` around lines 1 - 214, Add a deprecation note before the "2b. Register with Tailwind v3 (tailwind.config.js)" section to clarify that Tailwind v3 is legacy-only and that new projects should use the Tailwind v4 approach shown earlier. The note should explain that the v3 section is only provided for existing projects that still use Tailwind v3, making it clear that the v4 `@theme` inline method is the recommended and current standard for shadcn-svelte projects.packages/autoskills/skills-registry/shadcn-svelte/SKILL.md (1)
1-140: ⚡ Quick winDocumentación técnica bien estructurada, pero falta precisión sobre versiones requeridas.
El documento establece buenas prácticas para shadcn-svelte, pero no menciona explícitamente que la última versión de shadcn-svelte espera Svelte v5 y Tailwind v4. Esto es crítico para que los desarrolladores no introduzcan incompatibilidades en sus proyectos.
La sección de imports es clara y coherente. Sin embargo, se recomienda:
- Añadir una nota al inicio indicando los requisitos de versión (Svelte 5, Tailwind v4).
- Aclarar que los ejemplos asumen shadcn-svelte ≥1.2.0 con estas dependencias modernas.
¿Deseas que añada un bloque "Requirements" al inicio de SKILL.md con los requerimientos de versión?
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/shadcn-svelte/SKILL.md` around lines 1 - 140, The SKILL.md document lacks explicit version requirements for shadcn-svelte dependencies, which creates risk of incompatibility issues for developers. Add a new "Requirements" section near the beginning of the document (after the introductory paragraph and before the "Current Project Context" section) that clearly states the required versions: Svelte 5, Tailwind v4, and shadcn-svelte version 1.2.0 or higher. Make this section prominent and easy to find so developers understand these are critical dependencies before proceeding with any of the instructions and patterns described in the rest of the document.packages/autoskills/skills-registry/go-fiber/references/error-handling.md (1)
175-194: 💤 Low valueAclaración recomendada sobre la procedencia del paquete pgconn.
El ejemplo en líneas 186-188 usa
pgconn.PgErrory el código "23505" (violación de constraint de PostgreSQL). Aunque el patrón es correcto, no está claro para lectores quepgconnviene del drivergithub.com/jackc/pgx/v5/pgconn.Un breve comentario explicativo ayudaría a la claridad:
// pgconn is from github.com/jackc/pgx/v5/pgconn var pgErr *pgconn.PgError if errors.As(err, &pgErr) && pgErr.Code == "23505" { // 23505 = unique constraint violation🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/go-fiber/references/error-handling.md` around lines 175 - 194, The error handling code in the user creation handler uses pgconn.PgError and the PostgreSQL error code "23505" without clarifying their origins or meaning. Add an explanatory comment above the pgErr variable declaration indicating that pgconn is imported from github.com/jackc/pgx/v5/pgconn, and add an inline comment next to the "23505" code check explaining that it represents a unique constraint violation in PostgreSQL. These comments will improve code clarity for readers unfamiliar with the pgx driver's error handling patterns.packages/autoskills/skills-registry/go-fiber/references/performance.md (1)
99-104: ⚡ Quick winImportación de
gojsonno especificada claramente.En línea 99 se importa
"github.com/goccy/go-json"pero luego en línea 102 se usagojson.Marshalsin mostrar el alias de importación. Los lectores pueden confundirse sobre el nombre correcto del paquete. Considera clarificar:import gojson "github.com/goccy/go-json" app := fiber.New(fiber.Config{ JSONEncoder: gojson.Marshal, JSONDecoder: gojson.Unmarshal, })🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/go-fiber/references/performance.md` around lines 99 - 104, The import statement for the go-json package does not explicitly specify the alias used in the subsequent code. Add the alias `gojson` directly to the import statement before the package path `"github.com/goccy/go-json"` to make it clear where the `gojson.Marshal` and `gojson.Unmarshal` references in the fiber.Config struct come from. This eliminates any ambiguity for readers about the package name and its alias.packages/autoskills/skills-registry/postgres-best-practices/SKILL.md (1)
10-14: 💤 Low valueTabla de referencias incompleta; considera agregar más temas.
Actualmente solo existe una referencia a "Schema Design". Según la descripción de la skill (línea 3), se cubren "indexing strategies, query optimization, migrations, and common pitfalls", pero la tabla de referencias solo lista Schema Design.
Considere agregar referencias futuras para:
- Indexing strategies
- Query optimization
- Migrations & common pitfalls
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/postgres-best-practices/SKILL.md` around lines 10 - 14, The References table in the SKILL.md file is incomplete and does not match the skill description. The file description mentions "indexing strategies, query optimization, migrations, and common pitfalls" but the References table only includes Schema Design. Add three new rows to the References table (following the same format as the existing Schema Design row) for Indexing strategies, Query optimization, and Migrations & common pitfalls, including appropriate Area names, Resource file paths (like references/indexing-strategies.md), and descriptive When to Use text for each topic.packages/autoskills/skills-registry/postgres-best-practices/references/schema-design.md (1)
1-10: ⚡ Quick winAgregar ejemplos de SQL para ilustrar las reglas de diseño.
El documento enumera tres reglas importantes pero sin ejemplos prácticos. Agregar snippets de SQL ayudaría a los lectores a entender cuándo y cómo aplicarlas:
- Comparación
textvsvarchar(n)- Diferencia entre
timestampytimestamptz- Ejemplo de tabla con
uuidcomo clave primariaEsto haría el documento más actionable y educativo.
📝 Ejemplo de mejora
# Schema Design Best practices for designing Postgres schemas. ## Choosing Data Types - Prefer `text` over `varchar(n)` unless a length constraint is meaningful to the domain. - Use `timestamptz` instead of `timestamp` to always store timezone-aware timestamps. - Use `uuid` for primary keys when IDs may be exposed externally or generated client-side. +## Examples +```sql +-- Prefer text unless length constraint is meaningful +CREATE TABLE users ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + email text NOT NULL UNIQUE, -- Not varchar(255) + created_at timestamptz NOT NULL DEFAULT now() +); +-- Bad: using timestamp without timezone awareness +CREATE TABLE events ( + id serial PRIMARY KEY, + event_time timestamp NOT NULL -- ❌ Loses timezone info +); +-- Good: using timestamptz for UTC consistency +CREATE TABLE events ( + id serial PRIMARY KEY, + event_time timestamptz NOT NULL DEFAULT now() -- ✅ Timezone-aware +); +```🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/postgres-best-practices/references/schema-design.md` around lines 1 - 10, The "Choosing Data Types" section in the schema-design.md document describes three best practices for data types but lacks practical SQL examples to illustrate them. Add SQL code examples below each best practice to show readers when and how to apply them: include a CREATE TABLE example demonstrating text for non-constrained strings and uuid for primary keys with timestamptz for timezone-aware timestamps, then show contrasting examples of what to avoid (such as varchar with arbitrary length limits and timestamp without timezone awareness) versus what to prefer. This will make the guidance more actionable and help readers understand the practical implications of each choice.packages/autoskills/skills-registry/go-fiber/references/testing.md (1)
92-92: ⚡ Quick winManejo inconsistente de errores en ejemplos de código.
Hay tres lugares donde se ignoran errores con
_, lo que no es una práctica recomendada en ejemplos educativos:
- Línea 92:
json.Marshal(tt.body)– El error debería validarse (aunque poco probable que falle)- Línea 104:
io.ReadAll(resp.Body)– Sin verificación de error- Línea 224:
json.NewDecoder(resp.Body).Decode(&list)– Sin verificación de errorEn ejemplos de testing, es importante mostrar un manejo consistente de errores para que los lectores aprendan mejores prácticas.
✏️ Ejemplo de manejo consistente
// Línea 92 -bodyBytes, _ := json.Marshal(tt.body) +bodyBytes, err := json.Marshal(tt.body) +if err != nil { + t.Fatalf("failed to marshal body: %v", err) +} // Línea 104 -body, _ := io.ReadAll(resp.Body) +body, err := io.ReadAll(resp.Body) +require.NoError(t, err) // Línea 224 -json.NewDecoder(resp.Body).Decode(&list) +err = json.NewDecoder(resp.Body).Decode(&list) +require.NoError(t, err)Also applies to: 104-104, 224-224
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/go-fiber/references/testing.md` at line 92, The testing examples contain three instances of inconsistent error handling where errors are being ignored with underscore placeholders instead of being properly validated. At the json.Marshal call on line 92, capture and handle the error returned even though it is unlikely to fail in this context. At the io.ReadAll call on line 104, add proper error checking instead of ignoring the error with underscore. At the json.NewDecoder().Decode() call on line 224, similarly add error validation instead of discarding the error. For educational code examples, implement consistent error handling patterns across all three locations to demonstrate best practices to readers, using simple error checks or appropriate test failure mechanisms (such as t.Fatalf or t.Errorf if this is a test function).packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/tooltip-modes.md (1)
52-64: 💤 Low valuePropiedades
findTooltipDatayraiseTargetsin documentación de casos de uso.El bloque
TooltipContextPropslista ambas propiedades pero no explica cuándo/por qué usarlas. Aunque el archivo es una "quick reference", considera agregar breves notas o dejar para documentación más detallada.Nota: Si esto es intencional (progresiva disclosure nivel 2), entonces es aceptable dejar para referencias más detalladas.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/tooltip-modes.md` around lines 52 - 64, The `findTooltipData` and `raiseTarget` properties in the `TooltipContextProps` type definition lack documentation explaining their use cases and when developers should use them. Add brief clarifying comments or notes for these two properties either as inline documentation comments explaining when and why each property should be used, or add cross-references to more detailed documentation if this quick reference is intentionally providing only progressive disclosure at this level.packages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/cloudflare-gotchas.md (1)
36-46: 💤 Low valueProblema de transiciones de vista: falta claridad sobre cuándo se solucionó.
Línea 38-46 describe un bug en View Transitions que se arregla actualizando ambos paquetes, pero no especifica cuándo ocurrió o cuándo se solucionó. Para máxima utilidad, agregar un rango de versión o fecha aproximada.
💡 Sugerencia: agregar contexto de versión
## View Transitions Bug **Problem:** Same-page view transitions may not work correctly. +**Status:** Fixed in SvelteKit 2.5.0+ and Svelte 5.0.0+ (2025-Q1) **Fix:** Update BOTH SvelteKit AND Svelte to latest versions:🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/cloudflare-gotchas.md` around lines 36 - 46, The View Transitions Bug section (lines 38-46) describes a problem and provides the fix of updating both SvelteKit and Svelte packages, but lacks temporal context about when the bug occurred and when it was fixed. Add version ranges or approximate dates to clarify which versions were affected by this bug and in which version the fix was included, making the documentation more useful for users trying to determine if they need to apply this update.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/autoskills/skills-map.ts`:
- Around line 934-939: The PostgreSQL skill detection includes database-agnostic
ORMs (sequelize, typeorm, and mikro-orm) in the packages array, which causes
false positives when these ORMs are used with other databases like MySQL or
SQLite. In the detect object of the PostgreSQL skill definition, remove the
generic ORM packages (sequelize, typeorm, and mikro-orm) from the packages
array, keeping only PostgreSQL-specific packages (pg, postgres, and pg-promise).
If support for Mikro-ORM is needed, use the PostgreSQL-specific variant
`@mikro-orm/postgresql` instead of the generic mikro-orm package.
In
`@packages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.md`:
- Around line 99-116: The example code in the markdown file is incomplete and
missing critical components needed for it to compile. Add the package
declaration (package main) and the required imports at the beginning of the
file, including the fiber, errors, and validator packages. Initialize the
validate variable as validator.New() at the package level before the
createBookmark handler function. Define the missing newValidationError helper
function that converts validator.ValidationErrors into a structured error
response. Additionally, provide a mock or example initialization of the
bookmarkService variable that the createBookmark handler depends on. These
additions are necessary for the example to be functional and demonstrate proper
usage of the fiber framework with validation.
In `@packages/autoskills/skills-registry/go-fiber/references/testing.md`:
- Line 34: The helper functions setupTestApp() and setupBenchApp() are being
called in the code examples at multiple locations (lines 34, 184, and 234) but
are never defined or explained in the document. To make the examples fully
reproducible, either add the function definitions for setupTestApp() and
setupBenchApp() directly in the document showing what these functions do and how
they configure the test/benchmark application, or add explicit explanatory text
near each usage clarifying that these functions are defined in the user's own
application code and should be implemented according to their specific needs.
- Around line 7-26: The TestGetUser function code example in the testing.md file
is missing the required Go import declarations at the top, making the example
non-reproducible. Add a complete import block before the TestGetUser function
that includes all necessary packages: encoding/json, net/http,
net/http/httptest, testing, github.com/gofiber/fiber/v3,
github.com/stretchr/testify/assert, and github.com/stretchr/testify/require.
This will ensure the code example is self-contained and can be compiled and
executed without errors.
In `@packages/autoskills/skills-registry/index.json`:
- Around line 723-923: The SKILL.md sha256 hashes are incorrect for all 9 Svelte
skills entries in the index.json file. Each of these skills (svelte-runes,
sveltekit-structure, svelte-core-bestpractices, svelte-layerchart,
svelte-styling, svelte-template-directives, sveltekit-remote-functions,
sveltekit-data-flow, and svelte-components) currently shares the same incorrect
hash value, but they should each have unique correct hashes. Additionally, the
bundleHash values for all 9 skills are placeholder strings (like
"svelte-runes-bundle-hash") instead of actual hash values. Update each skill
entry with its correct SKILL.md sha256 hash and replace the bundleHash
placeholder string with an actual hash value.
In `@packages/autoskills/skills-registry/shadcn-svelte/evals/evals.json`:
- Around line 4-17: The expected_output description mentions "ToggleGroup" but
the expectations list specifies "Uses Switch for independent on/off notification
toggles" - these are conflicting. Since the use case describes independent
notification preferences (email, SMS, push as separate on/off toggles), update
the expected_output string to replace "ToggleGroup" with "Switch" to align with
the expectations list and accurately reflect that each notification type should
be an independent binary toggle using the Switch component, not a group
selection component.
- Around line 1-47: In evaluation 1 (id 1), the expected_output and expectations
contain an incorrect component name that needs to be corrected. Replace the
string "Field.FieldGroup" with "Field.Group" in two locations within this
evaluation: once in the expected_output description string and once in the first
item of the expectations array. According to the official shadcn-svelte
documentation, the correct API is Field.Group (not FieldGroup) when used with
Field.Field, Field.Set, and Field.Label under the Field namespace.
In `@packages/autoskills/skills-registry/sql-optimization/SKILL.md`:
- Line 8: The template variable ${selection} in the SKILL.md file appears
unreplaced and creates ambiguity about whether this is meant to be static or
dynamic content. Decide the intended behavior: if the skill description should
be static text for all users, replace ${selection} with a concrete phrase like
"your project" or "the provided code"; if the variable is intended for dynamic
processing, clarify the placeholder syntax or document how it will be
substituted. Update line 8 to use either the static replacement or explicitly
documented template syntax to remove the confusion for readers.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/pwa-setup.md`:
- Around line 79-104: The service-worker.ts code example imports workbox-routing
and workbox-strategies packages that are not documented in the initial Basic
installation section, creating a gap between the basic setup instructions and
the complete offline-first example. Either add these two packages to the
dependency installation instructions in the Basic section, or clearly mark the
"Offline-First Strategy" section as an optional extension that requires
additional dependencies and explicitly list workbox-routing and
workbox-strategies as required packages for that advanced feature. This ensures
users understand that the complete service-worker.ts implementation shown in
lines 79-104 requires these additional dependencies beyond the basic setup.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/full-patterns.md`:
- Around line 216-254: The code example references undefined variables flatData
and seriesData that are not defined within the snippet. To make this a complete,
copy-pasteable example, add the variable definitions before the Chart component
is rendered, showing example data structures for flatData (the data prop passed
to Chart) and seriesData (used in the children snippet to iterate over series
and their corresponding data). Alternatively, add a clear comment indicating
that these variables should be provided by the user with their own data in the
expected format.
- Around line 38-48: The `mean` function is used in the Chart snippet on line 41
but is not imported. Add an import statement at the beginning of the code
example to import the `mean` function from 'd3-array' (or another appropriate
mathematical library). This import should be placed before the Chart component
is used so that the `mean` function is available when the snippet calculates the
average value.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.md`:
- Around line 7-28: Add language identifiers to all fenced code blocks in the
Markdown files to comply with markdownlint rule MD040. In
packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.md
(lines 7-28), add the `svelte` language identifier to all three code blocks that
contain Svelte code. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.md
(lines 8-48), add the `text` language identifier to all four tree diagram
blocks. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/file-naming.md
(line 43), add the `text` language identifier to the directory tree block. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.md
(lines 26-350), add the `text` language identifier to all six directory tree
blocks.
In
`@packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.md`:
- Around line 8-15: The markdown file has code blocks containing tree/diagram
structures that lack language identifiers, violating markdownlint rule MD040.
Add the `text` language identifier to all diagram code blocks in the document.
Specifically, change the opening triple backticks from ``` to ```text for the
tree diagrams at lines 8-15, 19-33, 39-48, and any other similar diagram blocks
throughout the document. This tells markdownlint that these blocks are
text-based diagrams rather than executable code.
In
`@packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.md`:
- Line 26: The markdown file has multiple code blocks (directory trees and
diagrams) that are missing language identifiers, which violates markdown linting
rule MD040. Add the language identifier `text` to each code block by changing
the opening triple backticks from ``` to ```text. This applies to the code
blocks at lines 26, 38, 92, 158, 294, and 310. Each code block containing
directory structures or diagrams needs this identifier added to the opening
backticks marker to properly specify the code block language.
---
Outside diff comments:
In
`@packages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.md`:
- Around line 1-127: The example file for the REST API with Middleware is
missing test code, but the assertions and evaluation criteria explicitly require
"table-driven tests for the create and list endpoints". Add table-driven test
functions for the createBookmark and listBookmarks handlers that cover multiple
test cases (e.g., valid requests, invalid validation, missing fields), following
the same pattern demonstrated in the websocket example. This will make the
example consistent with the evaluation requirements and provide learners with
the complete implementation including tests.
---
Nitpick comments:
In `@packages/autoskills/skills-registry/go-fiber/references/error-handling.md`:
- Around line 175-194: The error handling code in the user creation handler uses
pgconn.PgError and the PostgreSQL error code "23505" without clarifying their
origins or meaning. Add an explanatory comment above the pgErr variable
declaration indicating that pgconn is imported from
github.com/jackc/pgx/v5/pgconn, and add an inline comment next to the "23505"
code check explaining that it represents a unique constraint violation in
PostgreSQL. These comments will improve code clarity for readers unfamiliar with
the pgx driver's error handling patterns.
In `@packages/autoskills/skills-registry/go-fiber/references/performance.md`:
- Around line 99-104: The import statement for the go-json package does not
explicitly specify the alias used in the subsequent code. Add the alias `gojson`
directly to the import statement before the package path
`"github.com/goccy/go-json"` to make it clear where the `gojson.Marshal` and
`gojson.Unmarshal` references in the fiber.Config struct come from. This
eliminates any ambiguity for readers about the package name and its alias.
In `@packages/autoskills/skills-registry/go-fiber/references/testing.md`:
- Line 92: The testing examples contain three instances of inconsistent error
handling where errors are being ignored with underscore placeholders instead of
being properly validated. At the json.Marshal call on line 92, capture and
handle the error returned even though it is unlikely to fail in this context. At
the io.ReadAll call on line 104, add proper error checking instead of ignoring
the error with underscore. At the json.NewDecoder().Decode() call on line 224,
similarly add error validation instead of discarding the error. For educational
code examples, implement consistent error handling patterns across all three
locations to demonstrate best practices to readers, using simple error checks or
appropriate test failure mechanisms (such as t.Fatalf or t.Errorf if this is a
test function).
In
`@packages/autoskills/skills-registry/postgres-best-practices/references/schema-design.md`:
- Around line 1-10: The "Choosing Data Types" section in the schema-design.md
document describes three best practices for data types but lacks practical SQL
examples to illustrate them. Add SQL code examples below each best practice to
show readers when and how to apply them: include a CREATE TABLE example
demonstrating text for non-constrained strings and uuid for primary keys with
timestamptz for timezone-aware timestamps, then show contrasting examples of
what to avoid (such as varchar with arbitrary length limits and timestamp
without timezone awareness) versus what to prefer. This will make the guidance
more actionable and help readers understand the practical implications of each
choice.
In `@packages/autoskills/skills-registry/postgres-best-practices/SKILL.md`:
- Around line 10-14: The References table in the SKILL.md file is incomplete and
does not match the skill description. The file description mentions "indexing
strategies, query optimization, migrations, and common pitfalls" but the
References table only includes Schema Design. Add three new rows to the
References table (following the same format as the existing Schema Design row)
for Indexing strategies, Query optimization, and Migrations & common pitfalls,
including appropriate Area names, Resource file paths (like
references/indexing-strategies.md), and descriptive When to Use text for each
topic.
In `@packages/autoskills/skills-registry/shadcn-svelte/customization.md`:
- Around line 1-214: Add a deprecation note before the "2b. Register with
Tailwind v3 (tailwind.config.js)" section to clarify that Tailwind v3 is
legacy-only and that new projects should use the Tailwind v4 approach shown
earlier. The note should explain that the v3 section is only provided for
existing projects that still use Tailwind v3, making it clear that the v4 `@theme`
inline method is the recommended and current standard for shadcn-svelte
projects.
In `@packages/autoskills/skills-registry/shadcn-svelte/SKILL.md`:
- Around line 1-140: The SKILL.md document lacks explicit version requirements
for shadcn-svelte dependencies, which creates risk of incompatibility issues for
developers. Add a new "Requirements" section near the beginning of the document
(after the introductory paragraph and before the "Current Project Context"
section) that clearly states the required versions: Svelte 5, Tailwind v4, and
shadcn-svelte version 1.2.0 or higher. Make this section prominent and easy to
find so developers understand these are critical dependencies before proceeding
with any of the instructions and patterns described in the rest of the document.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/cloudflare-gotchas.md`:
- Around line 36-46: The View Transitions Bug section (lines 38-46) describes a
problem and provides the fix of updating both SvelteKit and Svelte packages, but
lacks temporal context about when the bug occurred and when it was fixed. Add
version ranges or approximate dates to clarify which versions were affected by
this bug and in which version the fix was included, making the documentation
more useful for users trying to determine if they need to apply this update.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/tooltip-modes.md`:
- Around line 52-64: The `findTooltipData` and `raiseTarget` properties in the
`TooltipContextProps` type definition lack documentation explaining their use
cases and when developers should use them. Add brief clarifying comments or
notes for these two properties either as inline documentation comments
explaining when and why each property should be used, or add cross-references to
more detailed documentation if this quick reference is intentionally providing
only progressive disclosure at this level.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 4a06047f-7310-453f-9505-02f7e08f2121
⛔ Files ignored due to path filters (2)
packages/autoskills/skills-registry/shadcn-svelte/assets/shadcn-svelte-small.pngis excluded by!**/*.pngpackages/autoskills/skills-registry/shadcn-svelte/assets/shadcn-svelte.pngis excluded by!**/*.png
📒 Files selected for processing (77)
packages/autoskills/lib.tspackages/autoskills/scripts/sync-skills.mjspackages/autoskills/skills-map.tspackages/autoskills/skills-registry/go-fiber/SKILL.mdpackages/autoskills/skills-registry/go-fiber/evals/assertions.mdpackages/autoskills/skills-registry/go-fiber/evals/evals.jsonpackages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.mdpackages/autoskills/skills-registry/go-fiber/examples/02-websocket-broadcast.mdpackages/autoskills/skills-registry/go-fiber/references/error-handling.mdpackages/autoskills/skills-registry/go-fiber/references/middleware.mdpackages/autoskills/skills-registry/go-fiber/references/performance.mdpackages/autoskills/skills-registry/go-fiber/references/routing.mdpackages/autoskills/skills-registry/go-fiber/references/testing.mdpackages/autoskills/skills-registry/index.jsonpackages/autoskills/skills-registry/postgres-best-practices/SKILL.mdpackages/autoskills/skills-registry/postgres-best-practices/references/schema-design.mdpackages/autoskills/skills-registry/shadcn-svelte/SKILL.mdpackages/autoskills/skills-registry/shadcn-svelte/agents/openai.ymlpackages/autoskills/skills-registry/shadcn-svelte/cli.mdpackages/autoskills/skills-registry/shadcn-svelte/customization.mdpackages/autoskills/skills-registry/shadcn-svelte/evals/evals.jsonpackages/autoskills/skills-registry/shadcn-svelte/rules/composition.mdpackages/autoskills/skills-registry/shadcn-svelte/rules/forms.mdpackages/autoskills/skills-registry/shadcn-svelte/rules/icons.mdpackages/autoskills/skills-registry/shadcn-svelte/rules/styling.mdpackages/autoskills/skills-registry/sql-optimization/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-code-writer/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-components/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-components/references/component-libraries.mdpackages/autoskills/skills-registry/svelte-runes/svelte-components/references/form-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-components/references/web-components.mdpackages/autoskills/skills-registry/svelte-runes/svelte-core-bestpractices/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-deployment/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/cloudflare-gotchas.mdpackages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/library-authoring.mdpackages/autoskills/skills-registry/svelte-runes/svelte-deployment/references/pwa-setup.mdpackages/autoskills/skills-registry/svelte-runes/svelte-layerchart/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/full-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/graph-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/tooltip-modes.mdpackages/autoskills/skills-registry/svelte-runes/svelte-runes/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-runes/examples/bindable-props.sveltepackages/autoskills/skills-registry/svelte-runes/svelte-runes/examples/effect-vs-derived.sveltepackages/autoskills/skills-registry/svelte-runes/svelte-runes/references/common-mistakes.mdpackages/autoskills/skills-registry/svelte-runes/svelte-runes/references/component-api.mdpackages/autoskills/skills-registry/svelte-runes/svelte-runes/references/reactivity-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-runes/references/snippets-vs-slots.mdpackages/autoskills/skills-registry/svelte-runes/svelte-styling/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-styling/references/styling-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-template-directives/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/attach-patterns.mdpackages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/client-auth-invalidation.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/error-redirect-handling.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/explicit-environment-variables.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/form-actions.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/load-functions.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/references/serialization.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-remote-functions/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-remote-functions/references/remote-functions.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/SKILL.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/file-naming.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/ssr-hydration.mdpackages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/svelte-boundary.mdpackages/autoskills/skills-registry/svelte5-best-practices/SKILL.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/events.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/migration.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/performance.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/runes.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/snippets.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/sveltekit.mdpackages/autoskills/skills-registry/svelte5-best-practices/references/typescript.mdpackages/autoskills/tests/collect.test.tspackages/autoskills/tests/detect.test.ts
💤 Files with no reviewable changes (8)
- packages/autoskills/skills-registry/svelte5-best-practices/SKILL.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/performance.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/typescript.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/snippets.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/events.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/sveltekit.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/runes.md
- packages/autoskills/skills-registry/svelte5-best-practices/references/migration.md
| { | ||
| id: "postgresql", | ||
| name: "PostgreSQL", | ||
| detect: { | ||
| packages: ["pg", "postgres", "pg-promise", "sequelize", "typeorm", "mikro-orm"], | ||
| }, |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Bloque postgresql en skills-map.ts:"
rg -n 'id: "postgresql"|packages: \[' packages/autoskills/skills-map.ts -A8 -B2
echo
echo "Semántica de detección por paquetes en lib.ts (OR por coincidencia):"
rg -n 'if \(tech\.detect\.packages\)|tech\.detect\.packages\.some' packages/autoskills/lib.ts -A6 -B2Repository: midudev/autoskills
Length of output: 13409
Evita falsos positivos de PostgreSQL detectando ORMs agnósticas.
En línea 938, incluir sequelize, typeorm y mikro-orm como señales de PostgreSQL marca proyectos que usan MySQL, SQLite u otros motores como PostgreSQL, adjuntando skills no pertinentes. Estos ORMs no son específicos de PostgreSQL; soportan múltiples bases de datos sin diferenciación.
- Mantener solo los paquetes específicos de PostgreSQL:
pg,postgres,pg-promise - Para Mikro-ORM, usar
@mikro-orm/postgresqlsi se requiere soporte agnóstico
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/autoskills/skills-map.ts` around lines 934 - 939, The PostgreSQL
skill detection includes database-agnostic ORMs (sequelize, typeorm, and
mikro-orm) in the packages array, which causes false positives when these ORMs
are used with other databases like MySQL or SQLite. In the detect object of the
PostgreSQL skill definition, remove the generic ORM packages (sequelize,
typeorm, and mikro-orm) from the packages array, keeping only
PostgreSQL-specific packages (pg, postgres, and pg-promise). If support for
Mikro-ORM is needed, use the PostgreSQL-specific variant `@mikro-orm/postgresql`
instead of the generic mikro-orm package.
| type CreateBookmarkRequest struct { | ||
| URL string `json:"url" validate:"required,url"` | ||
| Title string `json:"title" validate:"required,min=1,max=200"` | ||
| Tags []string `json:"tags" validate:"max=10,dive,min=1,max=50"` | ||
| } | ||
|
|
||
| func createBookmark(c fiber.Ctx) error { | ||
| var req CreateBookmarkRequest | ||
| if err := c.BodyParser(&req); err != nil { | ||
| return fiber.NewError(fiber.StatusBadRequest, "Invalid request body") | ||
| } | ||
| if err := validate.Struct(&req); err != nil { | ||
| return newValidationError(err) | ||
| } | ||
|
|
||
| bookmark := bookmarkService.Create(c.UserContext(), req) | ||
| return c.Status(fiber.StatusCreated).JSON(bookmark) | ||
| } |
There was a problem hiding this comment.
El código de ejemplo está incompleto y no compila.
El handler createBookmark usa la variable validate (línea 110) sin inicializarla. Además, llama a newValidationError(err) (línea 111) que no está definida en este ejemplo. El código también faltan imports para fiber, errors, y el paquete de validador.
El ejemplo debe mostrar la inicialización completa del validador y todas las funciones auxiliares para ser funcional.
🔧 Mejoras necesarias para el ejemplo completo
Agregar al principio del archivo:
package main
import (
"errors"
"github.com/go-playground/validator/v10"
"github.com/gofiber/fiber/v3"
)
var validate = validator.New()
// Helper function missing from example
func newValidationError(err error) *ValidationError {
var ve validator.ValidationErrors
if !errors.As(err, &ve) {
return &ValidationError{
Fields: []FieldError{{Message: err.Error()}},
}
}
fields := make([]FieldError, len(ve))
for i, fe := range ve {
fields[i] = FieldError{
Field: fe.Field(),
Tag: fe.Tag(),
Message: formatFieldError(fe),
}
}
return &ValidationError{Fields: fields}
}
// Mock service for example
var bookmarkService = &BookmarkService{}
type BookmarkService struct{}
func (s *BookmarkService) Create(ctx context.Context, req interface{}) interface{} {
return fiber.Map{"id": "1", "created": true}
}🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/go-fiber/examples/01-rest-api-with-middleware.md`
around lines 99 - 116, The example code in the markdown file is incomplete and
missing critical components needed for it to compile. Add the package
declaration (package main) and the required imports at the beginning of the
file, including the fiber, errors, and validator packages. Initialize the
validate variable as validator.New() at the package level before the
createBookmark handler function. Define the missing newValidationError helper
function that converts validator.ValidationErrors into a structured error
response. Additionally, provide a mock or example initialization of the
bookmarkService variable that the createBookmark handler depends on. These
additions are necessary for the example to be functional and demonstrate proper
usage of the fiber framework with validation.
| ```go | ||
| func TestGetUser(t *testing.T) { | ||
| app := fiber.New(fiber.Config{ | ||
| ErrorHandler: customErrorHandler, | ||
| }) | ||
| app.Get("/users/:id", getUser) | ||
|
|
||
| req := httptest.NewRequest("GET", "/users/42", nil) | ||
| req.Header.Set("Content-Type", "application/json") | ||
|
|
||
| resp, err := app.Test(req) | ||
| require.NoError(t, err) | ||
| assert.Equal(t, 200, resp.StatusCode) | ||
|
|
||
| var user User | ||
| err = json.NewDecoder(resp.Body).Decode(&user) | ||
| require.NoError(t, err) | ||
| assert.Equal(t, "42", user.ID) | ||
| } | ||
| ``` |
There was a problem hiding this comment.
Falta declaración de imports en el primer ejemplo.
El bloque de código TestGetUser (líneas 7-26) utiliza tipos y funciones como fiber.New, httptest.NewRequest, json.NewDecoder sin mostrar los imports necesarios (net/http, encoding/json, github.com/gofiber/fiber/v3, etc.). Los ejemplos deben incluir los imports completos para que sean reproducibles.
📌 Agregar imports al inicio del bloque de código
```go
+import (
+ "encoding/json"
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "github.com/gofiber/fiber/v3"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
func TestGetUser(t *testing.T) {
app := fiber.New(fiber.Config{
ErrorHandler: customErrorHandler,📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ```go | |
| func TestGetUser(t *testing.T) { | |
| app := fiber.New(fiber.Config{ | |
| ErrorHandler: customErrorHandler, | |
| }) | |
| app.Get("/users/:id", getUser) | |
| req := httptest.NewRequest("GET", "/users/42", nil) | |
| req.Header.Set("Content-Type", "application/json") | |
| resp, err := app.Test(req) | |
| require.NoError(t, err) | |
| assert.Equal(t, 200, resp.StatusCode) | |
| var user User | |
| err = json.NewDecoder(resp.Body).Decode(&user) | |
| require.NoError(t, err) | |
| assert.Equal(t, "42", user.ID) | |
| } | |
| ``` |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/autoskills/skills-registry/go-fiber/references/testing.md` around
lines 7 - 26, The TestGetUser function code example in the testing.md file is
missing the required Go import declarations at the top, making the example
non-reproducible. Add a complete import block before the TestGetUser function
that includes all necessary packages: encoding/json, net/http,
net/http/httptest, testing, github.com/gofiber/fiber/v3,
github.com/stretchr/testify/assert, and github.com/stretchr/testify/require.
This will ensure the code example is self-contained and can be compiled and
executed without errors.
|
|
||
| ```go | ||
| func TestCreateBookmark(t *testing.T) { | ||
| app := setupTestApp() |
There was a problem hiding this comment.
Funciones auxiliares setupTestApp() y setupBenchApp() no están definidas.
Los ejemplos en línea 34, 184 y 234 llaman a setupTestApp() y setupBenchApp() sin definirlas en el documento. Para que los ejemplos sean completamente reproducibles, considere:
- Definir estas funciones en el documento, o
- Referenciarlas explícitamente como "definidas en tu código de aplicación"
Also applies to: 184-184
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/autoskills/skills-registry/go-fiber/references/testing.md` at line
34, The helper functions setupTestApp() and setupBenchApp() are being called in
the code examples at multiple locations (lines 34, 184, and 234) but are never
defined or explained in the document. To make the examples fully reproducible,
either add the function definitions for setupTestApp() and setupBenchApp()
directly in the document showing what these functions do and how they configure
the test/benchmark application, or add explicit explanatory text near each usage
clarifying that these functions are defined in the user's own application code
and should be implemented according to their specific needs.
| "svelte-runes": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-runes", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md", | ||
| "references/events.md", | ||
| "references/migration.md", | ||
| "references/performance.md", | ||
| "references/runes.md", | ||
| "references/snippets.md", | ||
| "references/sveltekit.md", | ||
| "references/typescript.md" | ||
| "references/reactivity-patterns.md", | ||
| "references/component-api.md", | ||
| "references/snippets-vs-slots.md", | ||
| "references/common-mistakes.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "eeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/events.md": "c311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d", | ||
| "references/migration.md": "c2c574ce8290ef56fa8f7619c2897c8ca009ea72464d4077c7ba5ea23efb3570", | ||
| "references/performance.md": "ee1ddf521fd3d8276e11348ea323146e30d9d5ddecd41556c08a774800b83463", | ||
| "references/runes.md": "9c7b6330607aa14d90e8b686a205391067c4ca17b6a90d71ba99cc2333e32086", | ||
| "references/snippets.md": "db5aaac052b2050760c1ea709ea64c272a29ff7c8ffaa3a32081bb25d0cea1ac", | ||
| "references/sveltekit.md": "d1c519d8d37232d58fc52cc453ba45cdd1152603288ed475d614845a5d820f34", | ||
| "references/typescript.md": "e9c9914be0bcdad898df0701e6c694762d66ed4bb469d9f4d06555adc78d355f" | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/reactivity-patterns.md": "b311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d", | ||
| "references/component-api.md": "c2c574ce8290ef56fa8f7619c2897c8ca009ea72464d4077c7ba5ea23efb3570", | ||
| "references/snippets-vs-slots.md": "d1c519d8d37232d58fc52cc453ba45cdd1152603288ed475d614845a5d820f34", | ||
| "references/common-mistakes.md": "e9c9914be0bcdad898df0701e6c694762d66ed4bb469d9f4d06555adc78d355f" | ||
| }, | ||
| "bundleHash": "89df0819dcaf5292635267d6e4262f274845c0efa3db7bc4c2a0d5aac2431117", | ||
| "bundleHash": "svelte-runes-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "review skipped (--no-review)", | ||
| "summary": "Svelte 5 reactivity runes implementation skill", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-04-17T16:30:45.676Z" | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-code-writer": { | ||
| "source": "sveltejs/ai-tools", | ||
| "skillPath": "sveltejs/ai-tools/svelte-code-writer", | ||
| "commitSha": "2ded13539a34253aa2f9031ef83caf8cbd80c9d4", | ||
| "sveltekit-structure": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/sveltekit-structure", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "cc8fa3ac4a382aeb1cda3e6e9244abe785ab0e3364105bf45ea8bbb94f4301bf" | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c" | ||
| }, | ||
| "bundleHash": "b5e12f4a6369f9e482d863fd0dde5cfc215041947902dacc416a2f9a50da166a", | ||
| "bundleHash": "sveltekit-structure-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "review skipped (--no-review)", | ||
| "summary": "SvelteKit file structure and routing conventions", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-core-bestpractices": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-core-bestpractices", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c" | ||
| }, | ||
| "bundleHash": "svelte-core-bestpractices-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "Svelte core best practices guidelines", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-layerchart": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-layerchart", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md", | ||
| "references/full-patterns.md", | ||
| "references/tooltip-modes.md", | ||
| "references/graph-patterns.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/full-patterns.md": "b311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d", | ||
| "references/tooltip-modes.md": "c2c574ce8290ef56fa8f7619c2897c8ca009ea72464d4077c7ba5ea23efb3570", | ||
| "references/graph-patterns.md": "d1c519d8d37232d58fc52cc453ba45cdd1152603288ed475d614845a5d820f34" | ||
| }, | ||
| "bundleHash": "svelte-layerchart-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "Svelte LayerChart data visualization component guidelines for Svelte 5", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-styling": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-styling", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md", | ||
| "references/styling-patterns.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/styling-patterns.md": "b311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d" | ||
| }, | ||
| "bundleHash": "svelte-styling-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "Svelte scoped CSS and custom property styling guidelines", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-template-directives": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-template-directives", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md", | ||
| "references/attach-patterns.md", | ||
| "references/other-directives.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/attach-patterns.md": "b311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d", | ||
| "references/other-directives.md": "c2c574ce8290ef56fa8f7619c2897c8ca009ea72464d4077c7ba5ea23efb3570" | ||
| }, | ||
| "bundleHash": "svelte-template-directives-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "Svelte markup, snippet, and @attach directive guidelines", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "sveltekit-remote-functions": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/sveltekit-remote-functions", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md", | ||
| "references/remote-functions.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c", | ||
| "references/remote-functions.md": "b311631df6f8707d94a6c116da211b25b274669cb17c9ecae6a75bb46309895d" | ||
| }, | ||
| "bundleHash": "sveltekit-remote-functions-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "SvelteKit experimental remote functions implementation guidelines", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "sveltekit-data-flow": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/sveltekit-data-flow", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c" | ||
| }, | ||
| "bundleHash": "sveltekit-data-flow-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "SvelteKit data flow and form actions", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-04-17T16:30:46.540Z" | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } | ||
| }, | ||
| "svelte-components": { | ||
| "source": "spences10/skills", | ||
| "skillPath": "spences10/skills/svelte-components", | ||
| "commitSha": "f03b227b63430f661873c0f6c059b422ef5083b8", | ||
| "files": [ | ||
| "SKILL.md" | ||
| ], | ||
| "sha256": { | ||
| "SKILL.md": "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c" | ||
| }, | ||
| "bundleHash": "svelte-components-bundle-hash", | ||
| "review": { | ||
| "status": "approved", | ||
| "flags": [], | ||
| "summary": "Svelte UI components and integration guidelines", | ||
| "model": "gpt-5.4", | ||
| "promptVersion": "1.0.0", | ||
| "reviewedAt": "2026-06-15T21:49:00.000Z" | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verificar si los archivos SKILL.md de Svelte tienen contenido distinto
echo "=== Verificando hashes de SKILL.md en skills de Svelte ==="
# Lista de rutas de SKILL.md
skills=(
"packages/autoskills/skills-registry/svelte-runes/svelte-runes/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/svelte-core-bestpractices/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/svelte-styling/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/sveltekit-remote-functions/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow/SKILL.md"
"packages/autoskills/skills-registry/svelte-runes/svelte-components/SKILL.md"
)
for file in "${skills[@]}"; do
if [ -f "$file" ]; then
hash=$(sha256sum "$file" | awk '{print $1}')
echo "$file: $hash"
else
echo "$file: NO EXISTE"
fi
done
echo ""
echo "=== Hash registrado en index.json para todos ellos ==="
echo "aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c"Repository: midudev/autoskills
Length of output: 1425
🏁 Script executed:
# Find the actual structure of the skills-registry directory
find packages/autoskills/skills-registry -type f -name "SKILL.md" | head -20Repository: midudev/autoskills
Length of output: 1342
🏁 Script executed:
# Check if sync-skills.mjs exists and examine it
find . -name "sync-skills.mjs" -o -name "*sync*skills*" | grep -E "\.(mjs|js|ts)$"Repository: midudev/autoskills
Length of output: 108
🏁 Script executed:
# Check the structure of packages/autoskills directory
ls -la packages/autoskills/ 2>/dev/null | head -30Repository: midudev/autoskills
Length of output: 1308
🏁 Script executed:
# Look at a sample of index.json to understand the structure
head -100 packages/autoskills/skills-registry/index.jsonRepository: midudev/autoskills
Length of output: 4616
🏁 Script executed:
# Check if svelte skills exist locally
ls -d packages/autoskills/skills-registry/svelte-* 2>/dev/null | head -20Repository: midudev/autoskills
Length of output: 166
🏁 Script executed:
# Look at sync-skills.mjs to understand hash generation
cat packages/autoskills/scripts/sync-skills.mjsRepository: midudev/autoskills
Length of output: 29238
🏁 Script executed:
# Also check the exact lines 723-923 in index.json to see the svelte entries
sed -n '723,923p' packages/autoskills/skills-registry/index.jsonRepository: midudev/autoskills
Length of output: 7753
🏁 Script executed:
# Check if these 9 svelte skills are defined in skills-map.ts
rg "svelte-runes|sveltekit-structure|svelte-core-bestpractices|svelte-layerchart|svelte-styling|svelte-template-directives|sveltekit-remote-functions|sveltekit-data-flow|svelte-components" packages/autoskills/skills-map.tsRepository: midudev/autoskills
Length of output: 480
🏁 Script executed:
# List what's actually in the svelte-runes directory locally
ls -la packages/autoskills/skills-registry/svelte-runes/ 2>/dev/null || echo "Directory empty or not found"Repository: midudev/autoskills
Length of output: 959
🏁 Script executed:
# Check if any of the other 8 svelte skills have directories
find packages/autoskills/skills-registry -type d -name "svelte*" -o -type d -name "sveltekit*" 2>/dev/nullRepository: midudev/autoskills
Length of output: 926
🏁 Script executed:
# Check actual content of SKILL.md files - compute real hashes
python3 << 'PY'
import hashlib
import os
skill_dirs = [
"packages/autoskills/skills-registry/svelte-runes/svelte-runes",
"packages/autoskills/skills-registry/svelte-runes/sveltekit-structure",
"packages/autoskills/skills-registry/svelte-runes/svelte-core-bestpractices",
"packages/autoskills/skills-registry/svelte-runes/svelte-layerchart",
"packages/autoskills/skills-registry/svelte-runes/svelte-styling",
"packages/autoskills/skills-registry/svelte-runes/svelte-template-directives",
"packages/autoskills/skills-registry/svelte-runes/sveltekit-remote-functions",
"packages/autoskills/skills-registry/svelte-runes/sveltekit-data-flow",
"packages/autoskills/skills-registry/svelte-runes/svelte-components",
]
print("=== Computing actual SHA256 hashes of SKILL.md files ===\n")
hashes = {}
for skill_dir in skill_dirs:
skill_file = os.path.join(skill_dir, "SKILL.md")
if os.path.exists(skill_file):
with open(skill_file, 'rb') as f:
content = f.read()
sha256_hash = hashlib.sha256(content).hexdigest()
hashes[skill_dir.split('/')[-1]] = sha256_hash
print(f"{skill_dir.split('/')[-1]}: {sha256_hash}")
# Also show file size for reference
print(f" File size: {len(content)} bytes")
else:
print(f"{skill_dir.split('/')[-1]}: FILE NOT FOUND")
print("\n=== Checking for duplicates ===")
from collections import Counter
hash_counts = Counter(hashes.values())
for hash_val, count in hash_counts.items():
if count > 1:
matching_skills = [k for k, v in hashes.items() if v == hash_val]
print(f"Hash {hash_val[:16]}... appears {count} times in: {matching_skills}")
PYRepository: midudev/autoskills
Length of output: 1147
🏁 Script executed:
# Check if the files have any actual content vs being placeholders
for dir in packages/autoskills/skills-registry/svelte-runes/svelte-runes packages/autoskills/skills-registry/svelte-runes/sveltekit-structure packages/autoskills/skills-registry/svelte-runes/svelte-components; do
if [ -f "$dir/SKILL.md" ]; then
echo "=== $(basename $dir) ==="
wc -l "$dir/SKILL.md"
head -3 "$dir/SKILL.md"
echo ""
fi
doneRepository: midudev/autoskills
Length of output: 653
Los hashes SHA256 en index.json son incorrectos para los 9 skills de Svelte.
Los archivos SKILL.md reales tienen hashes completamente diferentes entre sí, pero index.json lista a los 9 con el mismo hash (aeb2be3e32085d47ad5938afd6e96b2a4f9fd9e073ca27ec3f6df32371689b7c). Hashes reales:
- svelte-runes:
284ba4e193fb82628d3b5e2be43ef3296801907413f24375ab96d35c16568ed8 - sveltekit-structure:
f504ff6207529332d19a56a0cebe1232471e0a0167bac5c47a6e07ad0a467be0 - svelte-core-bestpractices:
4edeba4a5c90b01a202d9ccbe567ff9957fd087d13219d5aa5d5052015dd7f41 - svelte-layerchart:
af231027e9b2e9e563834074384c3e41e2d35b392030072290e855521b0fac06 - svelte-styling:
e31950546d45be0fca5304f941b403a8c07a2ff3830bbad25d710539e61d0baf - svelte-template-directives:
18cdf1dc923579f64c0782dce1fabee22086dbd94c177c6371a8fc789304eb1e - sveltekit-remote-functions:
ea127c47f340ed550a969aa63c1dc254f613b411e5efff700d36aadc2016732e - sveltekit-data-flow:
be6a73f210d2b5f32c02c73d9ccb47c4a26355ce5e4c561f595b406b0db8d181 - svelte-components:
7e968da9fed679966606a23d9996abec5a9c00fe9f4295e5539b6c60f344b94c
Además, todos los valores de bundleHash son strings placeholder (svelte-runes-bundle-hash, sveltekit-structure-bundle-hash, etc.) en lugar de hashes reales como se observa en otras entradas del registry. Esto indica un bug en el script de sincronización al procesar estos 9 skills.
🧰 Tools
🪛 Betterleaks (1.5.0)
[high] 737-737: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
(generic-api-key)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/autoskills/skills-registry/index.json` around lines 723 - 923, The
SKILL.md sha256 hashes are incorrect for all 9 Svelte skills entries in the
index.json file. Each of these skills (svelte-runes, sveltekit-structure,
svelte-core-bestpractices, svelte-layerchart, svelte-styling,
svelte-template-directives, sveltekit-remote-functions, sveltekit-data-flow, and
svelte-components) currently shares the same incorrect hash value, but they
should each have unique correct hashes. Additionally, the bundleHash values for
all 9 skills are placeholder strings (like "svelte-runes-bundle-hash") instead
of actual hash values. Update each skill entry with its correct SKILL.md sha256
hash and replace the bundleHash placeholder string with an actual hash value.
| <Chart {data} x="date" y="value"> | ||
| {#snippet children({ context })} | ||
| <!-- Access scales, dimensions, tooltip state --> | ||
| {const avg = mean(data, (d) => d.value)} | ||
| <Svg> | ||
| <Rule x={avg} /> | ||
| <Text x={context.xScale(avg)} y={0} value="Avg" /> | ||
| </Svg> | ||
| {/snippet} | ||
| </Chart> | ||
| ``` |
There was a problem hiding this comment.
Falta importar la función mean utilizada en el snippet de Chart.
Línea 41 utiliza mean(data, ...) sin importación. Debería agregarse import { mean } from 'd3-array' u otra librería matemática.
🔧 Sugerencia de corrección
<script lang="ts">
import { scaleBand } from 'd3-scale'
+ import { mean } from 'd3-array'
import {
Axis,
Bars,
Chart,🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/full-patterns.md`
around lines 38 - 48, The `mean` function is used in the Chart snippet on line
41 but is not imported. Add an import statement at the beginning of the code
example to import the `mean` function from 'd3-array' (or another appropriate
mathematical library). This import should be placed before the Chart component
is used so that the `mean` function is available when the snippet calculates the
average value.
| ```svelte | ||
| <Chart | ||
| data={flatData} | ||
| x="date" | ||
| y="value" | ||
| c="series" | ||
| cDomain={['apples', 'bananas']} | ||
| cRange={['var(--color-info)', 'var(--color-success)']} | ||
| tooltip={{ mode: 'quadtree' }} | ||
| > | ||
| {#snippet children({ context })} | ||
| <Svg> | ||
| {#each seriesData as [series, data]} | ||
| {const color = context.cScale?.(series)} | ||
| {const active = | ||
| context.tooltip.data == null || | ||
| context.tooltip.data.series === series} | ||
| <g class={!active ? 'opacity-20' : ''}> | ||
| <Spline {data} stroke={color} class="stroke-2" /> | ||
| </g> | ||
| {/each} | ||
| <Highlight points lines /> | ||
| </Svg> | ||
|
|
||
| <Tooltip.Root> | ||
| {#snippet children({ data })} | ||
| <Tooltip.Header value={data.date} format="day" /> | ||
| <Tooltip.List> | ||
| <Tooltip.Item | ||
| label={data.series} | ||
| value={data.value} | ||
| color={context.cScale?.(data.series)} | ||
| /> | ||
| </Tooltip.List> | ||
| {/snippet} | ||
| </Tooltip.Root> | ||
| {/snippet} | ||
| </Chart> | ||
| ``` |
There was a problem hiding this comment.
Ejemplo de multi-serie con variables indefinidas (flatData, seriesData).
Las líneas 218 y 228 referencian flatData y seriesData que no están definidas en el contexto del ejemplo. Para ser un ejemplo completo y copiable, debería incluir su definición o aclarar que son seudocódigo.
💡 Sugerencia: aclarar o completar el ejemplo
Agregar definición de datos antes del <Chart>:
<script lang="ts">
+ type SeriesData = { date: Date; series: string; value: number }
+ let flatData: SeriesData[] = [...]
+ let seriesData: Map<string, SeriesData[]> = new Map()
</script>O agregar comentario que indique que estos deben ser provistos por el usuario.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-layerchart/references/full-patterns.md`
around lines 216 - 254, The code example references undefined variables flatData
and seriesData that are not defined within the snippet. To make this a complete,
copy-pasteable example, add the variable definitions before the Chart component
is rendered, showing example data structures for flatData (the data prop passed
to Chart) and seriesData (used in the children snippet to iterate over series
and their corresponding data). Alternatively, add a clear comment indicating
that these variables should be provided by the user with their own data in the
expected format.
| ```svelte | ||
| <script> | ||
| let htmlContent = '<strong>Bold</strong> and <em>italic</em>'; | ||
| </script> | ||
|
|
||
| {@html htmlContent} | ||
| ``` | ||
|
|
||
| ### Security Warning | ||
|
|
||
| Always sanitize user-provided HTML: | ||
|
|
||
| ```svelte | ||
| <script> | ||
| import DOMPurify from 'dompurify'; | ||
|
|
||
| let userContent = $state(''); | ||
| const sanitized = $derived(DOMPurify.sanitize(userContent)); | ||
| </script> | ||
|
|
||
| {@html sanitized} | ||
| ``` |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win
Agregar especificación de lenguaje a bloques de código sin language identifier (MD040).
Múltiples archivos Markdown contienen bloques de código (fenced code blocks) sin especificar el lenguaje. Según markdownlint (MD040), todos los bloques deben tener language identifier para cumplir con estándares de calidad.
other-directives.md#L7-L28: Bloques Svelte sin lenguajesvelte(líneas 7, 19, 27)error-handling.md#L8-L48: Bloques de diagrama de árbol sin lenguaje (líneas 8, 19, 27, 39) → usartextfile-naming.md#L43-L69: Árbol de directorios sin lenguaje (línea 43) → usartextlayout-patterns.md#L26-L350: Múltiples árboles de directorios (líneas 26, 38, 92, 158, 294, 310) → usartext
Para bloques Svelte, especificar ```svelte. Para diagramas y árboles de directorios, usar ```text.
📍 Affects 4 files
packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.md#L7-L28(this comment)packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.md#L8-L48packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/file-naming.md#L43-L69packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.md#L26-L350
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.md`
around lines 7 - 28, Add language identifiers to all fenced code blocks in the
Markdown files to comply with markdownlint rule MD040. In
packages/autoskills/skills-registry/svelte-runes/svelte-template-directives/references/other-directives.md
(lines 7-28), add the `svelte` language identifier to all three code blocks that
contain Svelte code. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.md
(lines 8-48), add the `text` language identifier to all four tree diagram
blocks. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/file-naming.md
(line 43), add the `text` language identifier to the directory tree block. In
packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.md
(lines 26-350), add the `text` language identifier to all six directory tree
blocks.
Source: Linters/SAST tools
| ``` | ||
| src/routes/ | ||
| ├── +error.svelte # Catches errors in all routes below | ||
| ├── +page.svelte # If this errors → uses +error.svelte above | ||
| └── admin/ | ||
| ├── +error.svelte # Catches errors in admin routes | ||
| └── +page.svelte # If this errors → uses admin/+error.svelte | ||
| ``` |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win
Especifica lenguaje para bloques de diagrama/árbol (MD040).
Los bloques de diagrama de errores (tree diagrams) no tienen especificado un lenguaje. Aunque no sean código ejecutable, markdownlint requiere language identifier.
🔧 Usar `text` para bloques de diagrama
- ```
+ ```text
src/routes/
├── +error.svelte # Catches errors in all routes below
├── +page.svelte # If this errors → uses +error.svelte above
└── admin/
├── +error.svelte # Catches errors in admin routes
└── +page.svelte # If this errors → uses admin/+error.svelte
- ```
+ ```Líneas afectadas: 8, 19, 27, 39 y otros bloques de árbol/diagrama en el documento.
Also applies to: 19-33, 39-48
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 8-8: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/error-handling.md`
around lines 8 - 15, The markdown file has code blocks containing tree/diagram
structures that lack language identifiers, violating markdownlint rule MD040.
Add the `text` language identifier to all diagram code blocks in the document.
Specifically, change the opening triple backticks from ``` to ```text for the
tree diagrams at lines 8-15, 19-33, 39-48, and any other similar diagram blocks
throughout the document. This tells markdownlint that these blocks are
text-based diagrams rather than executable code.
Source: Linters/SAST tools
|
|
||
| Layouts inherit from parent layouts: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win
Especifica lenguaje para múltiples bloques de diagrama/árbol (MD040).
Varios bloques de árbol de directorios y diagramas carecen de language identifier. Agregá text a cada uno.
🔧 Patrones a actualizar
Línea 26 (nested layout tree):
- ```
+ ```text
src/routes/
├── +layout.svelte # Root layout (all pages)
└── dashboard/
├── +layout.svelte # Dashboard layout (dashboard pages only)
└── +page.svelte # Uses both layouts
- ```
+ ```Línea 38 (rendering order tree):
- ```
+ ```text
Root +layout.svelte
└─ Dashboard +layout.svelte
└─ +page.svelte
- ```
+ ```Línea 92 (layout groups tree):
- ```
+ ```text
src/routes/
├── (marketing)/
...
- ```
+ ```Y similar para líneas 158, 294, 310 en secciones "Reset Layout", "Pattern 1: Auth Boundary", y "Pattern 2: Multi-tenant with Shared Root".
Also applies to: 38-38, 92-92, 158-158, 294-294, 310-310
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 26-26: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@packages/autoskills/skills-registry/svelte-runes/sveltekit-structure/references/layout-patterns.md`
at line 26, The markdown file has multiple code blocks (directory trees and
diagrams) that are missing language identifiers, which violates markdown linting
rule MD040. Add the language identifier `text` to each code block by changing
the opening triple backticks from ``` to ```text. This applies to the code
blocks at lines 26, 38, 92, 158, 294, and 310. Each code block containing
directory structures or diagrams needs this identifier added to the opening
backticks marker to properly specify the code block language.
Source: Linters/SAST tools
What Changed
svelte5-best-practicesysvelte-code-writer).spences10/skills, agregando soporte local completo para:svelte-runes(Reactividad nativa de Svelte 5:$state,$derived,$effect,$props,$bindable).svelte-styling(Estilos scoped, variables CSS reactivas y directivastyle:).sveltekit-structure(Enrutamiento basado en archivos y layouts en SvelteKit 2/3).sveltekit-data-flow(Manejo de funcionesloady Form Actions).sveltekit-remote-functions(Patrones experimentales para.remote.tscomoquery(),command()yform()).svelte-components(Patrones de integración de Melt UI, Bits UI y Ark UI).svelte-layerchartbajo la tecnología Svelte, proporcionando guías específicas de gráficos adaptadas al sistema de snippets de Svelte 5.skills-map.tsy se recalcularon los metadatos y hashes enskills-registry/index.json.tests/collect.test.ts.Why This Change
Testing Done
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
process.loadEnvFile().