Help us improve
Share bugs, ideas, or general feedback.
From groundwork
Splits single-file product specs into directory structure (_index.md, 01-product-context.md, features/, etc.) for organizing large PRDs over 500 lines or 15 features.
npx claudepluginhub etr/groundworkHow this skill is triggered — by the user, by Claude, or both
Slash command
/groundwork:split-specificationsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Converts a single-file product spec (`{{specs_dir}}/product_specs.md`) into a directory-based format (`{{specs_dir}}/product_specs/`) for better organization and targeted context loading.
Splits single-file architecture.md into directory-based format (e.g., executive-summary.md, decisions/DR-001.md) for better organization. Auto-triggers on >500 lines or 10 DRs.
Decomposes specification documents into independent changes using outline, section, or hierarchical modes with dependency graphs and independence scores.
Write and manage spec files with search, conflict detection, and reporting. Use when user asks to create a spec, update a spec, write a spec, or mentions 스펙 생성, 스펙 업데이트, 스펙 작성, 스펙 만들어줘. Proactively trigger whenever the user's request involves specification documents, even if they don't explicitly say "spec".
Share bugs, ideas, or general feedback.
Converts a single-file product spec ({{specs_dir}}/product_specs.md) into a directory-based format ({{specs_dir}}/product_specs/) for better organization and targeted context loading.
product-design and sync-specs when the single-file PRD crosses 500 lines or 15 features (feature sections matching ### \d+\.\d+)/split-specifications.groundwork.yml exist at the repo root?
{{project_name}} non-empty?
Skill(skill="groundwork:project-selector") to select a project, then restart this skill.{{project_name}}, specs at {{specs_dir}}/.{{specs_dir}}/product_specs.md must exist
{{specs_dir}}/product_specs.md. Nothing to split." and stop.{{specs_dir}}/product_specs/ must not already exist
{{specs_dir}}/product_specs/. Nothing to do." and stop.^### \d+\.\d+).Parse the single-file PRD into sections and write each to its own file under {{specs_dir}}/product_specs/.
{{specs_dir}}/product_specs/
├── _index.md # Header, metadata, and section 0 (EARS cheat sheet)
├── 01-product-context.md # Section 1: Product context
├── 02-non-functional.md # Section 2: Non-functional & cross-cutting requirements
├── 03-features/ # Section 3: One file per feature
│ ├── _index.md # Section 3 header ("## 3) Feature list (living backlog)")
│ └── <feature-code>.md # e.g., PRD-SRCH.md, PRD-AUTH.md
├── 04-traceability.md # Section 4: Traceability
└── 05-open-questions.md # Section 5: Open questions log
_index.md — Everything from the start of the file up to (but not including) ## 1). Include the YAML-style header block (Doc status, Last updated, Owner, Audience) and section 0 (EARS cheat sheet).
01-product-context.md — From ## 1) up to (but not including) ## 2).
02-non-functional.md — From ## 2) up to (but not including) ## 3).
03-features/_index.md — The ## 3) heading line and any text before the first ### 3. subsection. Typically just:
## 3) Feature list (living backlog)
03-features/<feature-code>.md — One file per ### 3.N subsection. The filename is derived from the feature's PRD code:
### 3.1 Text Search (PRD-SRCH) → PRD-SRCH.md### 3.5 Signature Display → signature-display.md### 3.N ... heading in the file04-traceability.md — From ## 4) up to (but not including) ## 5).
05-open-questions.md — From ## 5) to the end of the file, or up to ## 6) if present. If there is a ## 6) (e.g., "Out of scope"), include it in 05-open-questions.md as well.
---) as they appear in the source.After all directory files are written and verified:
_index.md and at least two feature files to confirm they look correct.{{specs_dir}}/product_specs.md using rm.Split product_specs.md into directory format:
{{specs_dir}}/product_specs/
├── _index.md
├── 01-product-context.md
├── 02-non-functional.md
├── 03-features/ (N feature files)
├── 04-traceability.md
└── 05-open-questions.md
The single file has been removed. All skills (product-design, sync-specs, etc.) already support directory mode.
When invoked automatically (not by the user), the caller has already verified that at least one threshold is crossed:
wc -l on {{specs_dir}}/product_specs.md >= 500### \d+\.\d+ headings >= 15No user confirmation is needed — the split happens silently and the caller reports what happened.
When invoked manually by the user, skip threshold checks and split unconditionally.