From squatch-cc
Deconstruct a (possibly rough/typo'd) prompt or idea into a structured PRD — requirement eigenvectors, an ordered bead DAG, detected contradictions, and clarification questions — before any code is written. Use when the user types /eigenspec, or asks to spec/decompose/PRD an idea or feature, or says "build X" for anything non-trivial and you want spec-first rigor. Pairs with spec-kit for implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/squatch-cc:eigenspecThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
eigenspec is an **ANALYSIS SKILL — you (Claude) perform the analysis with judgment.** It is NOT a script that emits a decomposition. (Tom, 2026-06-19: "It's supposed to be a skill… a way to analyze the problem, get the eigenvectors, and build the system around it — not a python script.") The deprecated `eigenspec.py` keyword-clusterer scored ~25% of an expert referent and missed contradictions ...
eigenspec is an ANALYSIS SKILL — you (Claude) perform the analysis with judgment. It is NOT a script that emits a decomposition. (Tom, 2026-06-19: "It's supposed to be a skill… a way to analyze the problem, get the eigenvectors, and build the system around it — not a python script.") The deprecated eigenspec.py keyword-clusterer scored ~25% of an expert referent and missed contradictions entirely; do not rely on it. Skills that are analysis/judgment = you do them; only deterministic validations (op-check, clarity-gate, PHI-egress) are scripts.
Per [[referent-based-objectives]]: write down (a) the OBJECTIVE as a concrete capability, and (b) the REFERENT — what an expert spec of this would contain (the bar to beat). You will score your decomposition against this referent at the end. "I produced a spec" is not the target; "my spec ≥ the expert referent" is.
Read the prompt + the relevant harbor prior-art (don't re-derive). Then produce, with judgment:
Look across the eigenvector pairs and ask: which requirements conflict? This is the highest-value step and the one prompt-by-prompt skips. Examples of the pattern to hunt for:
Use AskUserQuestion for: every clarify_oov term the app flagged, plus each contradiction whose resolution needs a human decision. Do NOT silently guess flagged items.
Write a SPEC with: title, the eigenvectors as requirement sections, the bead DAG as the build order, a Contradictions (resolved) section, and a Clarifications section capturing the user's answers. Resolutions are baked in so they're never shipped wrong.
Offer to drive implementation directly, or via spec-kit (specify → plan → tasks → implement). Build in bead-DAG order.
When decomposing, check whether a unit can be served by an existing capability instead of being built from scratch. Stay infra-agnostic — route to whatever execution/model/coordination layer THIS machine provides (configure it via environment, never hard-code a host, path, or service):
${RUNNER_URL}).ANTHROPIC_BASE_URL /
ANTHROPIC_CUSTOM_MODEL_OPTION) — your own local/sovereign models or Claude. Route agentic (tool-using)
units to strong-tool backends; generation/judge units anywhere.When a unit involves visual design, decompose the brief on 4 axes (Intent · Audience · Emotion · Constraints);
specify color in hex not adjectives; specify composition with directional language (thirds / leading lines /
negative space); specify lighting with cinematography vocab (key/fill/rim, angle, temperature); append quality
tokens. If you have a local image-generation backend, drive it through the standard OpenAI-compatible
/v1/images/generations route configured via env (${IMAGE_API_URL}) — never a hard-coded host.
rate limt→rate limit, bearer tokn→bearer token) from context before decomposing; don't let spelling noise distort the eigenvectors.Creates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.
npx claudepluginhub squatch-c-c/squatch --plugin squatch-cc