feat: add reviews content collection
Move all 24 review entries from skills-review/catalog.js +
skills-review/submitted-catalog.js into a typed Astro content collection at
src/content/reviews/. Each entry is a Markdown file with frontmatter for the
review metadata (id, author, focus, wins, improve, extras, name, description)
and a body that holds the 'improved' SKILL.md content.
Re-point scripts/build-skill-review.mjs at the new collection. The generator
reads each .md file, parses its YAML frontmatter, and writes
skill-reviews/improved/{id}/SKILL.md in the same shape the legacy catalog
produced — verified byte-identical via 'git diff --exit-code skill-reviews/'.
The 'name' field is preserved separately from 'id' because two entries
renamed the skill during review (id angular-accessibility-root → name
angular-accessibility; id confectionary-skill-hub → name confectionery-orders).
Without it the generator output would drift on those two files.
Does not yet delete skills-review/catalog.js or submitted-catalog.js —
verify.mjs and the legacy review-desk page both still read them, so they
stay as a mirror until task 16 rewires the page to the collection. Adding a
new submission today requires editing both the .md file (new source of
truth) and the legacy catalog.js (until task 16).
Done-when:
- 24 entries under src/content/reviews/ ✓
- verify.mjs's id:' count assertion still passes ✓
- git diff --exit-code skill-reviews/ clean after regenerating ✓
- astro check passes (22 files: 0 errors, 0 warnings, 2 hints) ✓
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
---
|
||||
author: 'Lucas Mantovan'
|
||||
description:
|
||||
'Populate a quote-command skeleton from quote data without fabricating values.
|
||||
Use when a quote JSON and command skeleton are supplied and the user asks to
|
||||
create a populated command.'
|
||||
extras:
|
||||
'Add an eval for missing values and a different skeleton shape; assert
|
||||
returned JSON parses.'
|
||||
focus: 'Map source quote data into a target command without inventing data.'
|
||||
id: 'copy-quote-info-to-payload'
|
||||
improve:
|
||||
- 'Add a machine-checkable JSON validation step before returning output.'
|
||||
- 'Define behavior for duplicate IDs, unmatched items, and conflicting values
|
||||
in the source.'
|
||||
- 'Provide a fixture-based transform script if this exact mapping is
|
||||
repeatedly performed.'
|
||||
name: 'copy-quote-info-to-payload'
|
||||
path: '../submitted-skills/Lucas%20Mantovan/skills/copy-quote-info-to-payload/SKILL.md'
|
||||
status: 'Very strong'
|
||||
title: 'Copy quote info to payload'
|
||||
wins:
|
||||
- 'Excellent source/skeleton distinction and preservation rule.'
|
||||
- 'Uses a linked, on-demand mapping reference.'
|
||||
---
|
||||
|
||||
# copy-quote-info-to-payload
|
||||
|
||||
## Inputs
|
||||
|
||||
One source quote JSON and one target command skeleton.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Identify source and target; ask when the roles are ambiguous.
|
||||
2. Parse both documents and start from the target structure.
|
||||
3. Apply the mappings in `reference.md`; preserve unmatched target fields and
|
||||
item order.
|
||||
4. Validate that the resulting document is valid JSON.
|
||||
5. Return the payload and a short mapping summary.
|
||||
|
||||
## Rules
|
||||
|
||||
- Every populated value must come from the source or an explicit user
|
||||
instruction.
|
||||
- Never silently choose between duplicate IDs or conflicting values.
|
||||
- Do not alter item content unless the user requests it.
|
||||
|
||||
## Output
|
||||
|
||||
Return one valid JSON document, then unresolved placeholders and mapping
|
||||
warnings.
|
||||
Reference in New Issue
Block a user