skills/spec-pack-normalizer/SKILL.md
Normalize one or more source specs, notes, pasted chats, and Markdown planning documents into a single canonical brief, decision packet, and constraints summary. Use when given messy or multi-file project requirements that need to become a clean source of truth before scaffolding.
npx skillsauth add chelch5/scafforge spec-pack-normalizerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to convert messy project inputs into a deterministic brief.
When the input is an already-approved spec-factory handoff bundle, treat this skill as a validator-alignment pass, not as a second creative normalizer.
In that mode:
references/brief-schema.md.The approved bundle remains upstream factory truth. spec-pack-normalizer owns package-side validation and canonical-brief alignment only.
If this run starts from an approved factory bundle, the required input scan narrows to the persisted handoff artifacts named above rather than opportunistic repo-wide discovery.
Search for spec-like files opportunistically. Look for:
*.md files in the root, docs/, specs/, plans/, requirements/, notes/, design/README.md, SPEC.md, REQUIREMENTS.md, PRD.md, DESIGN.mdBefore reading any file in full, enumerate ALL spec-like files found. Record each file path and its approximate line count. This enumeration becomes a required sub-artifact referenced in the canonical brief as source_spec_inventory. Only begin extraction (step 2) after the full inventory is recorded.
Read primary specs first, then supporting material. For each file in the inventory, read it fully — not just the first section. Long files must be read in full using paginated reads if necessary.
After reading all spec files, verify:
source_spec_inventory was read in full (not just the first portion)From everything you read, extract ONLY:
Separate facts from assumptions. Mark each clearly.
Present ALL blocking ambiguities to the user at once. Do not ask one at a time. Include:
Wait for user decisions before proceeding.
The batched decision packet is a required generation artifact. Record it in docs/spec/CANONICAL-BRIEF.md or in a companion markdown file that the canonical brief points to directly.
Write to docs/spec/CANONICAL-BRIEF.md using the schema in references/brief-schema.md.
Required sections (all 12 core sections must be present; section 13 is required for consumer-facing repos):
For consumer-facing repos (mobile apps, games, distributed software products), treating the finish contract as optional is a blocking gap, not a non-blocking open question. If the intake material does not resolve whether placeholder or procedural output is acceptable final output, that must become an explicit blocking decision before generation continues.
For internal tools and services, section 13 may be intentionally minimal or explicitly state that no consumer-facing finish bar applies.
Verify the brief:
Return to ../scaffold-kickoff/SKILL.md step 2 to resolve ambiguities, then proceed to step 3 only after all blocking decisions are resolved.
Before leaving this skill, confirm all of these are true:
docs/spec/CANONICAL-BRIEF.md exists and contains all 12 core sections plus section 13 when the repo is consumer-facingsource_spec_inventory is recorded in the canonical brief listing all discovered spec files with line countssource_spec_inventory was fully read and its contributions (or confirmed non-contribution) are documentedreferences/brief-schema.md for the output structuretesting
Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.
development
Best practices for Remotion - Video creation in React
development
Set browser-game architecture before implementation. Use when the user needs engine choice, simulation and render boundaries, input model, asset organization, or save/debug/performance strategy.
development
Prepare and optimize browser-game 3D assets. Use when the user asks for GLB or glTF shipping work, including Blender cleanup and export, collision or LOD setup, compression, texture packaging, and runtime validation.