CC templater
The full extract → classify → blueprint → de-dup → publish pipeline for a finished `.ralphy/workspaces/<ws>/projects/<id>/`. Reads its `units/*/unit.json` (#069) as the Unit source of truth, then factors the project into ALL FIVE entities — Unit + the four typed blocks Template (structure), Style (look), Recipe (effect/treatment), Asset (reusable media). Applies the recipe-vs-tag split (#082/#083): a candidate is a Recipe only if it carries an extractable artifact (ffmpeg filtergraph / HyperFrames snippet / encode recipe / prompt technique); otherwise it is a Tag on the Unit. Captures a per-unit Blueprint (#080), de-dups every block against the live library FIRST, then prints the exact ordered `publish-entity.ts` commands (dry-run → --push). Publishing itself is the #056 path. USE WHEN the user says any of: "save this as a template", "turn the project into a template", "templatify <project-id>", "extract a template from <project>", "decompose this project into blocks", "what units/blocks did this project produce", "I want others to reproduce this", "make a reusable version of <project>", "extract the entities from <project>", "classify this project", "freeze this project". ALSO FIRE proactively after a successful render + postmortem the user rates 8+/10 — the experience is most reusable while still fresh. DO NOT FIRE for scaffolding a new project, one-off renders, or quality evaluation — see the DO NOT FIRE section in the body.
The full extract → classify → blueprint → de-dup → publish pipeline for a finished .ralphy/workspaces/<ws>/projects/<id>/. Reads its units//unit.json (069) as…
As a process C 68/100 · Has gaps — References files that are not bundled: ../../../docs/playbooks/unit-lifecycle.md, scripts/*.sh, templates/<category>/<slug>/
The same skill appears in 1 more place: ralphy
How to improve
- Shorten the description to 1024 characters.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- The text references files that are not there: add them or drop the references.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 0
✓ No critical or high findings
Files scanned: 7. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 1451 chars, limit 1024 - warning
body-longSKILL.md body ≈ 5894 tokens (recommended < 5000); move details to references/ - warning
missing-refreference to a missing file: ../../../docs/playbooks/unit-lifecycle.md - warning
missing-refreference to a missing file: scripts/*.sh - warning
missing-refreference to a missing file: templates/<category>/<slug>/ - note
frontmatter-keyunknown frontmatter key "namespace"
Process rating: all ten parameters 68/100
- 0Tools and files. 3 referenced file(s) missing: ../../../docs/playbooks/unit-lifecycle.md, scripts/*.sh, templates/<category>/<slug>/
- 60Result and completion. Output format stated, no completion criterion
- 70When it triggers. States when to use, but not when not to
- 70Inputs and preconditions. Inputs and preconditions are listed
- 70Execution cost. Instruction body is 5894 tokens
- 100Steps. 59 steps
- 100Failures and branches. 1 branches, has a failure section
- 100Consistency. Name and required fields are in place
- 100Running it twice. Mutating operations check current state
- 100Progress reporting. Reports progress
- medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
- low 11 top-level sections: this looks like several domains in one skill
- low The response is described with custom markup (18 tags): a typed call is more reliable
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 1451: 120–800 characters recommended
- +1No license
- +2Single-language instructions
- +5Description quotes 11 example trigger phrases
- +4Structure: 16 headings
- +3Step-by-step instructions: 59 items
- +3Output format is stated explicitly
- +4Has examples (4 code blocks)
- +4Reference files are cited in the instructions (6 of 6)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 45.