decompose
Skill8 starsChanged 4 months agoMITView on GitHub
Lightweight project decomposition skill. Analyzes project scope through a brief interview and determines whether the project should be treated as a single feature or split into multiple sub-features. For multi-split projects, generates a project manifest listing sub-features, dependencies, and execution order.
27 other projects use a version of this.
Adopted by
Most recently taken up by
- chippingway/chipping-orchestratortheir own version, first seen Nov 5, 2026
- TserenTserenov/FMT-exocortex-templatetheir own version, first seen Nov 2, 2026
- iwesys/IWEtheir own version, first seen Nov 1, 2026
- synaptiai/agent-capability-standardtheir own version, first seen Nov 1, 2026
- stoa-platform/stoatheir own version, first seen Nov 1, 2026
- mojopoly/three-loopstheir own version, first seen Oct 20, 2026
Used with
Projects with it also use discover, diagnose and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
anombyte93Skilldiscover
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off to writing-plans — this skill owns the exit. Extracts constraints, calibrates scale (Solo / Team / Enterprise), and advances the pipeline to GENERATE.
Also in 3 projects that use this
MicrosoftSkilldiagnose
Use to systematically diagnose why scenarios fail — identifies root causes by analyzing agent traces, codebase, and behavioral patterns
Also in 4 projects that use this
GitHubSkillprd
Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.
Also in 3 projects that use this
Hugging FaceSkillimplement
Make tests pass. Invoke after /write-tests produces failing tests.
Also in 6 projects that use this
MicrosoftSkillinit
Also in 3 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 4 projects that use this
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- anyproto/anytype-swift★ 525same name
- TserenTserenov/FMT-exocortex-template★ 63same name
- drafthq/draft★ 40same name
- chippingway/chipping-orchestrator★ 18same name
- matt-k-wong/mkw-DAG-architect★ 15same name
- vulca-org/vulca-visual-control-sdk★ 15same name
- stoa-platform/stoa★ 9same name
- flpbalada/fb-skills★ 8same name
- zcaceres/skills★ 7same name
- synaptiai/agent-capability-standard★ 6same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- spec-forgeSkill
- analyzeSkill
- auditSkill
- ideaSkill
- prd-generationSkill
- propagateSkill
- reviewSkill
- srs-generationSkill
- tech-design-generationSkill
- test-cases-generationSkill
- test-plan-generationSkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 10 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 25 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Boundary-focused: Only care about scope boundaries and dependencies
- Distinctive: line 27
Single is valid: Not every project needs splitting — a single-feature verdict is a good outcome
- Very specific: line 41
Check if ideas/{feature-name}/draft.md exists — if found, read it for context on scope
- Distinctive: line 47
Use AskUserQuestion to understand project boundaries.
- Distinctive: line 59
Follow up on anything unclear from rounds 1-2
- Distinctive: line 60
Stop when you can confidently propose a split structure
- Distinctive: line 62
Do NOT force answers. If the user says "I'm not sure", use your judgment based on what you know.
- Distinctive: line 91
If the project is a single feature:
- Distinctive: line 117
If the project should be split:
- Distinctive: line 144
Use AskUserQuestion: "Here's my proposed breakdown and the reasoning behind it.
- Distinctive: line 145
If the user wants changes, adjust rationale accordingly and re-confirm
- Very specific: line 183
CRITICAL: Must be the VERY FIRST thing in the file — no YAML front-matter, no headings, no blank lines before the <!-- FEATURE_MANIFEST …
“Common” is measured: kept by at least 6 in 10 of the 25 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Decompose — Project Scope Analysis
Analyze project scope and determine whether to treat it as a single feature or split into multiple sub-features before entering the spec chain.
Core Principles
- Lightweight: a brief interview, not a deep investigation — ask only what you cannot already infer
- Boundary-focused: Only care about scope boundaries and dependencies
- No demand validation: That is /idea's responsibility
- No deep research: That is /prd's responsibility
- Single is valid: Not every project needs splitting — a single-feature verdict is a good outcome
Workflow
Step 1: Read Context
Scan the project to understand what exists:
@../shared/project-context.md
Execute PC.1 (Project Discovery) and PC.3 (Project Profile). Prefer the fast path — resolve <sf_scripts> (see @../shared/scripts.md) and run python3 "<sf_scripts>/sf-scan.py" --root "<project_root>", which returns the project structure, languages, frameworks, DB/auth signals, and the existing-doc inventory in one pass. Fall back to the manual PC.1/PC.3 scan only if python3 is unavailable or the script is not found — switch to the fallback silently.
- Project structure, README, existing docs (PC.1) — read from the scan's document inventory and source-tree fields
- Project profile — Web API, CLI, Frontend, etc. (PC.3) — the scan gives the raw signals; you label the profile
- Check if
ideas/{feature-name}/draft.mdexists — if found, read it for context on scope
The project profile informs the decomposition: a monorepo with multiple apps has different split criteria than a single-purpose API. Summarize what you learned in 2-3 sentences. Do not present this to the user — it is internal context for the interview.
Step 2: Scope Interview
Use AskUserQuestion to understand project boundaries. Ask only what you cannot already infer from the scan and the user's description, adapting based on answers — there is no fixed number of rounds.
Round 1 — The Shape:
- What are the main functional areas or modules of this project? (e.g., "auth, payments, notifications" or "it's a single API endpoint")
- How big is this project in your mind — a single focused feature, or multiple related features?
Round 2 — Boundaries:
- Which parts could be developed and tested independently?
- Which parts depend on each other? (e.g., "payments needs auth to exist first")
- Are there shared foundations that multiple parts need? (data models, infrastructure, auth)
Round 3+ — Clarification (if needed):
- Follow up on anything unclear from rounds 1-2
- Stop when you can confidently propose a split structure
Do NOT force answers. If the user says "I'm not sure", use your judgment based on what you know.
Step 3: Split Decision & Rationale
Based on the interview, determine: single or multi-split.
Split heuristics:
| Signal | Verdict |
| Multiple distinct systems (backend + frontend + pipeline) | Multi-split |
| Repeated "and also..." in scope description | Multi-split |
| No single clear purpose — hard to name in one phrase | Multi-split |
| Materially more scope than one Tech Design + Feature Specs can cohesively cover | Multi-split |
| Single cohesive system with tightly coupled components | Single |
| Fully specifiable in a few paragraphs | Single |
| No architectural decisions needed at the boundary level | Single |
| Too unclear even after interview — need PRD to discover structure | Single (suggest running /spec-forge:prd first to clarify scope) |
Good split characteristics:
- Cohesive purpose — a clear goal or outcome
- Bounded complexity — 1-3 major components
- Clear interfaces — well-defined inputs and outputs
- Each split is substantial enough for its own Tech Design + Feature Specs
Rationale requirement: After reaching a verdict, give a one-to-two-sentence justification that names the deciding factor (the coupling, scope, or boundary that settled it) — do not present the verdict without justification. Expand to the full ✓/✗ Split Rationale block (see Step 4a / 4b) only when the verdict is genuinely close, or when the user pushes back and wants to see the reasoning; for a clear-cut call the short justification is enough.
Step 4a: Single Feature Verdict
If the project is a single feature:
- State the verdict with a one-to-two-sentence justification naming the deciding factor, e.g. "Single feature — the components are tightly coupled around one data model and the whole thing is specifiable in a few paragraphs, so splitting would be premature." Only if the verdict was close, or the user pushes back, expand to the full Split Rationale block:
Split Rationale:
Verdict: Single feature
Signals that fired (Single):
✓ [Signal text from heuristics table] — [one sentence of project-specific evidence]
✓ [Signal text] — [evidence]
Signals evaluated but not triggered (Multi-split):
✗ [Signal text] — [why it does not apply to this project]
✗ [Signal text] — [why it does not apply]
Why not Multi-split: [1-2 sentences explaining why splitting would be premature,
over-engineered, or harmful for this specific project — reference scope, coupling,
team size, or other concrete factors from the interview.]- Inform the user: "This project is well-scoped as a single feature. Proceeding directly to the spec chain."
- Return the verdict. Do NOT generate a manifest file.
Step 4b: Multi-Split — Generate Manifest
If the project should be split:
- State the verdict with a one-to-two-sentence justification naming the deciding factor (what makes the project too broad to treat as one feature — e.g. "the auth subsystem and payment pipeline share no code paths and deploy independently"). Only if the verdict was close, or the user pushes back, expand to the full Split Rationale block:
Split Rationale:
Verdict: Multi-split ({N} sub-features)
Signals that fired (Multi-split):
✓ [Signal text from heuristics table] — [one sentence of project-specific evidence]
✓ [Signal text] — [evidence]
Signals evaluated but not triggered (Single):
✗ [Signal text] — [why it does not apply to this project]
✗ [Signal text] — [why it does not apply]
Why not Single: [1-2 sentences explaining what makes this project structurally
too broad or heterogeneous to treat as one feature — e.g., "The auth subsystem
and payment pipeline share no code paths and require independent deployment cycles."]
Boundary rationale:
{sub-feature-1} | {sub-feature-2}: [Why this is a clean cut point — what the
interface between them is and why each side is independently specifiable]
[Add one line per boundary if N > 2]- Present the proposed split structure together with the rationale to the user for confirmation
- Use AskUserQuestion: "Here's my proposed breakdown and the reasoning behind it. Does this look right, or would you change anything?"
- If the user wants changes, adjust rationale accordingly and re-confirm
- Once confirmed, write the manifest to
docs/project-{name}.md
Manifest format:
The file MUST start with a FEATURE_MANIFEST comment block, followed by human-readable content:
<!-- FEATURE_MANIFEST
{sub-feature-1}
{sub-feature-2}
{sub-feature-3}
END_MANIFEST -->
# Project: {name}
## Sub-Features
### 1. {sub-feature-1}
- **Description**: {what this sub-feature covers}
- **Dependencies**: {none, or list of sub-feature names it depends on}
- **Scope**: {brief scope summary}
### 2. {sub-feature-2}
- **Description**: ...
- **Dependencies**: ...
- **Scope**: ...
## Execution Order
{Ordered list with dependency and parallelism notes}
## Cross-Cutting Concerns
{Shared data models, conventions, infrastructure, or other things that span multiple sub-features}FEATURE_MANIFEST rules:
- CRITICAL: Must be the VERY FIRST thing in the file — no YAML front-matter, no headings, no blank lines before the
<!-- FEATURE_MANIFESTcomment. The spec-forge chain parser reads from the top and will fail to recognize the manifest if anything precedes it. - One sub-feature per line, kebab-case (e.g.,
user-auth,payment-processing) - Names become directory names under
docs/— each sub-feature gets its owndocs/{name}/srs.mdanddocs/{name}/tech-design.md - This block is machine-parseable; the rest of the file is for humans
Step 5: Summary
Display the result:
If single:
Scope analysis complete: {name}
Verdict: Single feature
Next: Running spec chain (SRS → Tech Design → Review)If multi-split:
Scope analysis complete: {name}
Verdict: {N} sub-features
Manifest: docs/project-{name}.md
Sub-features:
1. {sub-feature-1} — {one-line description}
2. {sub-feature-2} — {one-line description}
...
Next: Run the full chain for all sub-features:
/spec-forge {name}Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

