5-phase-workflow 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -104
- package/bin/install.js +163 -178
- package/bin/sync-agents.js +59 -54
- package/docs/workflow-guide.md +35 -79
- package/package.json +1 -1
- package/src/agents/step-executor-agent.md +3 -3
- package/src/agents/step-orchestrator-agent.md +12 -12
- package/src/agents/verification-agent.md +5 -8
- package/src/codex-commands/plan.md +65 -0
- package/src/commands/5/address-review-findings.md +43 -52
- package/src/commands/5/analyze-feature.md +1 -1
- package/src/commands/5/configure.md +75 -179
- package/src/commands/5/eject.md +0 -1
- package/src/commands/5/implement.md +68 -74
- package/src/commands/5/lean-check.md +7 -5
- package/src/commands/5/reconfigure.md +48 -129
- package/src/commands/5/review.md +42 -14
- package/src/commands/5/synchronize-agents.md +1 -1
- package/src/commands/5/update.md +2 -2
- package/src/hooks/statusline.js +5 -3
- package/src/references/configure-tables.md +0 -33
- package/src/settings.json +0 -12
- package/src/skills/baseline-conventions/SKILL.md +37 -0
- package/src/skills/cognitive-load/SKILL.md +52 -0
- package/src/skills/configure-agents-md/SKILL.md +72 -0
- package/src/skills/configure-rules/SKILL.md +146 -0
- package/src/skills/documentation-style/SKILL.md +32 -0
- package/src/skills/fowler-code-smells/SKILL.md +25 -0
- package/src/skills/review-style/SKILL.md +142 -0
- package/src/templates/AGENTS.md +19 -27
- package/src/templates/workflow/REVIEW-FINDINGS.md +2 -9
- package/src/workflows/5-implement.js +53 -91
- package/docs/findings.md +0 -361
- package/docs/progress.md +0 -102
- package/src/commands/5/apply-review-findings.md +0 -66
- package/src/commands/5/commit.md +0 -43
- package/src/commands/5/plan.md +0 -190
- package/src/commands/5/reply-pr-comments.md +0 -48
- package/src/commands/5/split.md +0 -86
- package/src/commands/5/triage-pr-comments.md +0 -70
- package/src/hooks/config-guard.js +0 -30
- package/src/skills/configure-docs-index/SKILL.md +0 -243
- package/src/skills/configure-skills/SKILL.md +0 -311
- package/src/skills/generate-readme/EXAMPLES.md +0 -168
- package/src/skills/generate-readme/SKILL.md +0 -122
- package/src/skills/generate-readme/TEMPLATE.md +0 -141
- package/src/skills/use-index/SKILL.md +0 -49
- package/src/templates/ARCHITECTURE.md +0 -33
- package/src/templates/CONCERNS.md +0 -33
- package/src/templates/CONVENTIONS.md +0 -74
- package/src/templates/TESTING.md +0 -24
- package/src/templates/workflow/FIX-PLAN.md +0 -55
- package/src/templates/workflow/PLAN-COMPACT.md +0 -42
- package/src/templates/workflow/PLAN.md +0 -76
- package/src/templates/workflow/REVIEW-SUMMARY.md +0 -53
package/src/commands/5/plan.md
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 5:plan
|
|
3
|
-
description: Plans a feature and persists the approved plan as .5/features/{name}/plan.md. Uses native plan mode when available, otherwise an equivalent prose loop. Implements compact plans inline; hands larger ones to /5:implement. Re-run with an existing feature name to refine that plan.
|
|
4
|
-
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, AskUserQuestion, EnterPlanMode, TaskCreate, TaskUpdate, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: [feature-name-or-ticket-id-or-description]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
<role>
|
|
10
|
-
You are a Workflow Planner. Your deliverables are `.5/features/{name}/plan.md` and `.5/features/{name}/codebase-scan.md`.
|
|
11
|
-
Exploration, questions, and the approval gate belong to plan mode — you write no code until the user approves the plan.
|
|
12
|
-
After approval you implement only **compact** plans, inline in this session. Anything larger goes to `/5:implement`.
|
|
13
|
-
</role>
|
|
14
|
-
|
|
15
|
-
# Plan
|
|
16
|
-
|
|
17
|
-
## Options
|
|
18
|
-
|
|
19
|
-
- `--github` - Auto-fetch the feature description from the GitHub issue linked to the current branch.
|
|
20
|
-
- `--jira` - Auto-fetch the feature description from the Jira ticket linked to the current branch.
|
|
21
|
-
|
|
22
|
-
Current branch: !`git branch --show-current`
|
|
23
|
-
|
|
24
|
-
## Step 1: Resolve Feature and Description
|
|
25
|
-
|
|
26
|
-
Run these before entering plan mode.
|
|
27
|
-
|
|
28
|
-
**Refine mode.** If the argument names an existing `.5/features/{name}/plan.md` — directly, or via a ticket prefix matched with Glob on `.5/features/{prefix}*/plan.md` — read that plan and its `codebase-scan.md`. You are refining an existing plan; skip ticket fetching and go to Step 2. If a ticket prefix matches several features, ask which one.
|
|
29
|
-
|
|
30
|
-
**New plan.** Otherwise:
|
|
31
|
-
|
|
32
|
-
1. Only when `--github` or `--jira` was passed, resolve the ticket:
|
|
33
|
-
- Read `.5/config.json` if it exists and extract `ticket.pattern`.
|
|
34
|
-
- Match the pattern against the branch name above.
|
|
35
|
-
- Validate the ID before fetching: `--github` requires digits only (`^[0-9]+$`), `--jira` requires key format (`^[A-Z][A-Z0-9]+-[0-9]+$`).
|
|
36
|
-
- `--jira`: fetch via `mcp__claude_ai_Atlassian_Rovo__getJiraIssue` using the validated key as a typed parameter.
|
|
37
|
-
- `--github`: run `gh issue view "$id" --json title,body`.
|
|
38
|
-
- If no ticket ID is found, ask the user for it, validate, then fetch. If validation or fetching fails, report the reason and continue without fetched content.
|
|
39
|
-
- Show fetched content to the user and ask whether any context is missing.
|
|
40
|
-
2. Otherwise, ask the user for the feature description.
|
|
41
|
-
3. Determine a short kebab-case feature folder name. With a known ticket ID, use `{ticket-id}-{feature-name}`. Sanitize to alphanumeric, dash, and underscore only.
|
|
42
|
-
|
|
43
|
-
## Step 2: Plan in Plan Mode
|
|
44
|
-
|
|
45
|
-
Call `EnterPlanMode`. Plan mode owns codebase exploration, clarifying questions, the plan file, and the approval gate — do not run a parallel discovery pass of your own.
|
|
46
|
-
|
|
47
|
-
If `.5/index/` exists, read `.claude/skills/use-index/SKILL.md` and follow it to select index files instead of scanning the project broadly. Check the `Generated:` timestamp in `.5/index/README.md` first; if the index is more than a day old, run `.5/index/rebuild-index.sh`.
|
|
48
|
-
|
|
49
|
-
Carry these three constraints into the planning work:
|
|
50
|
-
|
|
51
|
-
**Output shape.** Write the plan using the section shape of `.claude/templates/workflow/PLAN.md`. Use `.claude/templates/workflow/PLAN-COMPACT.md` instead for small, low-risk changes with 1-2 components, no data migration, no security/auth change, and no public API contract change. The plan must end with a Component Checklist table of `Component | Action | Target Path | Intent`, where action is `create`, `modify`, `delete`, or `rename`. For `rename`, the target path is the destination and the intent names the original path. Do not add step, model, skill, pattern-file, or verify-command columns — `/5:implement` derives that wiring mechanically.
|
|
52
|
-
|
|
53
|
-
**Necessity gate.** Apply this to every component before it enters the plan. Ask "does this need to exist?" and prefer the simplest approach that meets the acceptance criteria: reuse the standard library, a native platform/framework feature, or an already-installed dependency before adding anything new. Push speculative or "might need later" work to `[DEFERRED]`. Do not plan abstractions, flexibility, or configurability that no acceptance criterion requires.
|
|
54
|
-
|
|
55
|
-
**No code.** Requirements and implementation intent only — no code or pseudo-code in the plan.
|
|
56
|
-
|
|
57
|
-
In refine mode, seed the planning work with the existing plan's content and change only what the discussion actually changes.
|
|
58
|
-
|
|
59
|
-
## Step 3: Persist the Approved Plan
|
|
60
|
-
|
|
61
|
-
Once the user approves the plan, write:
|
|
62
|
-
|
|
63
|
-
1. `.5/features/{name}/plan.md` — the approved plan. In refine mode, overwrite the existing file and append to a `## Discussion History` section:
|
|
64
|
-
|
|
65
|
-
```markdown
|
|
66
|
-
## Discussion History
|
|
67
|
-
|
|
68
|
-
### {ISO-date} - {topic}
|
|
69
|
-
|
|
70
|
-
**Changes made:**
|
|
71
|
-
- {added / clarified / removed}
|
|
72
|
-
|
|
73
|
-
**Rationale:** {why}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
2. `.5/features/{name}/codebase-scan.md` — the exploration findings `/5:implement` needs, under 40 lines:
|
|
77
|
-
|
|
78
|
-
```markdown
|
|
79
|
-
# Codebase Scan
|
|
80
|
-
|
|
81
|
-
## Relevant Existing Patterns
|
|
82
|
-
- `{path}` - {one-line reason}
|
|
83
|
-
|
|
84
|
-
## Similar Implementations
|
|
85
|
-
- `{path}` - {one-line reason}
|
|
86
|
-
|
|
87
|
-
## Likely Target Paths
|
|
88
|
-
- `{path}`
|
|
89
|
-
|
|
90
|
-
## Test/Build Setup
|
|
91
|
-
- {command} - {scope}
|
|
92
|
-
|
|
93
|
-
## Risks or Unknowns
|
|
94
|
-
- {risk}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
In refine mode, update this file only where exploration produced new findings.
|
|
98
|
-
|
|
99
|
-
## Step 4: Self-check
|
|
100
|
-
|
|
101
|
-
Verify:
|
|
102
|
-
|
|
103
|
-
- The plan has all required template sections, and optional sections with no useful content were omitted.
|
|
104
|
-
- Acceptance criteria are checkboxes.
|
|
105
|
-
- Decisions are labeled `[DECIDED]`, `[FLEXIBLE]`, or `[DEFERRED]`.
|
|
106
|
-
- Every component traces to scope or acceptance criteria, and none adds abstraction, flexibility, or configurability beyond what an acceptance criterion requires.
|
|
107
|
-
- No implementation code or pseudo-code is present.
|
|
108
|
-
|
|
109
|
-
## Step 5: Hand Off
|
|
110
|
-
|
|
111
|
-
Approving a plan means the user wants it built. Branch on the plan format you chose in Step 2 — the point is to spend a fresh delegated run only where it pays for itself.
|
|
112
|
-
|
|
113
|
-
**Compact plan** (`planFormat: compact`, 1-2 low-risk components): implement it here, in this session. The context is already warm, and spinning up orchestration to edit one or two files costs more than it saves. In refine mode, only do this when the refined plan has not been implemented yet — check `.5/features/{name}/state.json`.
|
|
114
|
-
|
|
115
|
-
1. Say what you are about to do, then implement the Component Checklist directly. Make the smallest coherent change per component and follow the patterns named in the plan.
|
|
116
|
-
2. Run the verify commands from `.5/config.json`. Skip any set to `none`.
|
|
117
|
-
Then check scope: `git status --short` must list only the Component Checklist target paths and what they strictly need (their tests, import sites). Revert anything else before continuing, and tell the user in one line what you deliberately left out (`skipped: X — add when Y`).
|
|
118
|
-
3. Write `.5/features/{name}/state.json`:
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
{
|
|
122
|
-
"feature": "{name}",
|
|
123
|
-
"status": "completed|failed",
|
|
124
|
-
"completedComponents": ["component-name"],
|
|
125
|
-
"verification": {"status": "passed|partial|failed", "summary": "one line"},
|
|
126
|
-
"startedAt": "{ISO-timestamp}",
|
|
127
|
-
"lastUpdated": "{ISO-timestamp}"
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Component names must match the plan's Component Checklist verbatim, so a later `/5:implement` can resume against them. This file is also how `/5:review` finds the feature.
|
|
132
|
-
|
|
133
|
-
4. If `.5/config.json` `git.autoCommit` is `true`, make one commit for the change using `git.commitMessage.pattern`, staging only the files you touched. Never `git add .` or `git add -A`.
|
|
134
|
-
5. Report what changed, the verification result, and:
|
|
135
|
-
|
|
136
|
-
```text
|
|
137
|
-
✓ Plan at `.5/features/{name}/plan.md` — implemented inline (compact plan)
|
|
138
|
-
|
|
139
|
-
Run `/5:review` when you are ready.
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
If verification fails, leave `status: "failed"` and tell the user they can fix the issue and rerun `/5:implement {name}` to resume.
|
|
143
|
-
|
|
144
|
-
**Full plan:** do not implement. A multi-component plan is worth a fresh run — `/5:implement` executes independent components in parallel waves, routes mechanical work to cheaper models, and gives each executor a narrow context instead of this whole conversation. Output exactly:
|
|
145
|
-
|
|
146
|
-
```text
|
|
147
|
-
✓ Plan created at `.5/features/{name}/plan.md`
|
|
148
|
-
|
|
149
|
-
Review the plan, then run `/5:implement {name}` in a fresh context.
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Then stop immediately.
|
|
153
|
-
|
|
154
|
-
## Fallback path
|
|
155
|
-
|
|
156
|
-
On Codex, or in any runtime without `EnterPlanMode`, replace Step 2 with this loop. Steps 1, 3, 4, and 5 are unchanged — including the compact-plan inline implementation, which matters more here because Codex has no Workflow tool to parallelize a delegated run.
|
|
157
|
-
|
|
158
|
-
1. Spawn one Explore agent:
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
Analyze the codebase for a unified workflow plan.
|
|
162
|
-
|
|
163
|
-
Feature description:
|
|
164
|
-
{feature description}
|
|
165
|
-
|
|
166
|
-
Tasks:
|
|
167
|
-
1. If `.5/index/` exists, read the `use-index` skill and follow its guidance to select and read relevant index files. Skip broad project scanning. If the index is missing, fall back to targeted Grep/Glob and note it in the report.
|
|
168
|
-
2. Identify relevant modules, existing patterns, and likely target files.
|
|
169
|
-
3. Find at most 3 similar implementations and reusable helpers.
|
|
170
|
-
4. Identify test framework, test file conventions, and the narrowest relevant build/test commands.
|
|
171
|
-
5. Identify constraints, risks, and places where the user needs to decide.
|
|
172
|
-
|
|
173
|
-
Report:
|
|
174
|
-
- Relevant existing patterns: path + one-line reason
|
|
175
|
-
- Similar implementations: max 3 paths + one-line reason
|
|
176
|
-
- Likely target paths
|
|
177
|
-
- Test/build setup: commands only, with scope
|
|
178
|
-
- Risks or unknowns
|
|
179
|
-
|
|
180
|
-
READ-ONLY. Use only Read, Glob, and Grep.
|
|
181
|
-
Keep the report under 40 lines. Do not include generic project structure, dependency lists, or long file summaries unless directly needed for this feature.
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
2. Discuss with the user until you can articulate the problem and expected outcome, scope in and out, acceptance criteria, key decisions labeled `[DECIDED]` / `[FLEXIBLE]` / `[DEFERRED]`, existing patterns to follow, and a component checklist with target paths. Ask only useful questions — prefer proposing a concrete understanding and letting the user correct it.
|
|
185
|
-
|
|
186
|
-
3. Apply the same output shape, necessity gate, and no-code constraints from Step 2.
|
|
187
|
-
|
|
188
|
-
4. Show the plan to the user and get explicit approval before writing it.
|
|
189
|
-
|
|
190
|
-
Until the user approves the plan you are a planner, not an implementer: write nothing outside `.5/features/{name}/`, write no source code, and spawn no implementation agents. Claude Code enforces this through plan mode; here it is on you. After approval, Step 5 applies as written.
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 5:reply-pr-comments
|
|
3
|
-
description: Posts GitHub PR replies from recorded PR comment decisions.
|
|
4
|
-
allowed-tools: Bash, Read, Write
|
|
5
|
-
user-invocable: false
|
|
6
|
-
model: haiku
|
|
7
|
-
argument-hint: [feature-name]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<role>
|
|
11
|
-
You are a PR Reply Poster. You post concise replies from recorded decisions and do not edit code.
|
|
12
|
-
</role>
|
|
13
|
-
|
|
14
|
-
# Reply PR Comments
|
|
15
|
-
|
|
16
|
-
## Inputs
|
|
17
|
-
|
|
18
|
-
- `.5/features/{feature}/pr-comment-decisions.json`
|
|
19
|
-
- Current branch PR metadata from `gh`.
|
|
20
|
-
|
|
21
|
-
## Process
|
|
22
|
-
|
|
23
|
-
1. Read `.5/features/{feature}/pr-comment-decisions.json`. If it is missing or invalid, end with `STATUS: failed`, `POSTED: 0`, and a compact error. Do not claim success.
|
|
24
|
-
2. Skip only comments categorized as `skip`.
|
|
25
|
-
3. Resolve `{owner}`, `{repo}`, and PR number.
|
|
26
|
-
4. Build concise reply text:
|
|
27
|
-
- `fix`: `Applied fix: {description}. Will be included in the next push.` plus optional note.
|
|
28
|
-
- `wont_fix`: `Reviewed - not addressing: {user_note or "will handle separately"}`
|
|
29
|
-
- `wait`: `Noted for later: {user_note or "deferring for now"}`
|
|
30
|
-
- `duplicate`: `Covered by local review findings - {local_decision}`
|
|
31
|
-
5. Post replies:
|
|
32
|
-
- Inline: `gh api repos/{owner}/{repo}/pulls/{number}/comments/{comment_id}/replies --method POST --field body="{reply text}"`
|
|
33
|
-
- General: `gh api repos/{owner}/{repo}/issues/{number}/comments --method POST --field body="{reply text}"`
|
|
34
|
-
6. Log individual post failures and continue. Do not abort for reply failures.
|
|
35
|
-
7. If there are no non-skip decisions, return `STATUS: success`, `POSTED: 0`, `FAILED: 0`, and `ERRORS: none; no replyable decisions`.
|
|
36
|
-
|
|
37
|
-
## Output
|
|
38
|
-
|
|
39
|
-
End with:
|
|
40
|
-
|
|
41
|
-
```text
|
|
42
|
-
---PR-REPLIES---
|
|
43
|
-
STATUS: success | partial | failed
|
|
44
|
-
POSTED: {N}
|
|
45
|
-
FAILED: {N}
|
|
46
|
-
ERRORS: none | {compact summary}
|
|
47
|
-
---END-PR-REPLIES---
|
|
48
|
-
```
|
package/src/commands/5/split.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 5:split
|
|
3
|
-
description: Splits an existing plan into smaller linked child plans that can be implemented independently.
|
|
4
|
-
allowed-tools: Bash, Read, Write, Glob, Grep, AskUserQuestion, Agent
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: [feature-name]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
<role>
|
|
10
|
-
You are a Plan Split Facilitator. You split one existing `.5/features/{feature}/plan.md` into multiple smaller linked plans.
|
|
11
|
-
You do NOT implement code. You do NOT modify source files. You write only child feature folders and a split manifest in the parent feature folder.
|
|
12
|
-
</role>
|
|
13
|
-
|
|
14
|
-
# Split Plan
|
|
15
|
-
|
|
16
|
-
## Step 1: Locate the Parent Plan
|
|
17
|
-
|
|
18
|
-
Resolve `{feature-name}` to `.5/features/{feature-name}/plan.md`. Given only a ticket ID or prefix, glob `.5/features/{prefix}*/plan.md`. Given nothing, use the most recently modified `.5/features/*/plan.md`, asking the user to choose between several plausible recent ones. If no parent plan exists, stop and tell the user to run `/5:plan` first.
|
|
19
|
-
|
|
20
|
-
Read the parent `plan.md` and its `codebase-scan.md` if it exists. Do not read source files unless those two are insufficient to identify safe split boundaries; if they are, use targeted Glob/Grep or one read-only Explore agent.
|
|
21
|
-
|
|
22
|
-
## Step 2: Agree on the Split
|
|
23
|
-
|
|
24
|
-
Propose 2-5 boundaries optimized for running `/5:implement` on each child independently: prefer components touching different files or modules, keep each child's acceptance criteria coherent and independently verifiable, and make dependency order explicit when one child must land first. Avoid technical-layer splits that produce children nobody can verify alone, and avoid splitting tightly coupled same-file changes unless the user asks for it.
|
|
25
|
-
|
|
26
|
-
Present the recommendation compactly:
|
|
27
|
-
|
|
28
|
-
```text
|
|
29
|
-
Recommended split:
|
|
30
|
-
1. {child title} - {scope} - {why this boundary is independent}
|
|
31
|
-
2. {child title} - {scope} - {why this boundary is independent}
|
|
32
|
-
|
|
33
|
-
Dependency order: {none | child A before child B because ...}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Agree with the user on the boundaries, each child's scope and folder slug, and which components go where. Show the final split summary and get confirmation before writing anything.
|
|
37
|
-
|
|
38
|
-
Folder naming: `{parent-feature}-{nn}-{child-slug}`, with `nn` a 2-digit index starting at `01` and the slug sanitized to lowercase kebab-case (alphanumeric, dash, underscore). If a folder already exists, ask whether to choose a new slug or stop — never overwrite an existing child folder without explicit approval.
|
|
39
|
-
|
|
40
|
-
## Step 3: Write Child Artifacts
|
|
41
|
-
|
|
42
|
-
For each confirmed child, write `.5/features/{child-feature}/plan.md` using `.claude/templates/workflow/PLAN.md`, or `PLAN-COMPACT.md` when the child clearly has only 1-2 low-risk components. Copy only the parent context relevant to that child. Keep decisions labeled `[DECIDED]` / `[FLEXIBLE]` / `[DEFERRED]`, acceptance criteria as independently verifiable checkboxes, and the component checklist lean (component, action, target path, intent — no step/model/pattern/verify columns, no code).
|
|
43
|
-
|
|
44
|
-
Each child plan carries this section after its overview:
|
|
45
|
-
|
|
46
|
-
```markdown
|
|
47
|
-
## Split Metadata
|
|
48
|
-
|
|
49
|
-
- Parent plan: `.5/features/{parent-feature}/plan.md`
|
|
50
|
-
- Split manifest: `.5/features/{parent-feature}/split-manifest-{timestamp}.json`
|
|
51
|
-
- Split index: {N} of {total}
|
|
52
|
-
- Sibling plans:
|
|
53
|
-
- `.5/features/{sibling-feature}/plan.md`
|
|
54
|
-
- Dependency order: {none | sibling names and reason}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Also write `.5/features/{child-feature}/codebase-scan.md` with the parent scan's patterns, target paths, test/build setup, risks, and unknowns that apply to that child. If there is no parent scan, write `# Codebase Scan` followed by `No parent codebase scan was available when this plan was split.`
|
|
58
|
-
|
|
59
|
-
## Step 4: Write the Split Manifest
|
|
60
|
-
|
|
61
|
-
Write `.5/features/{parent-feature}/split-manifest-{YYYYMMDD-HHmmss}.json`:
|
|
62
|
-
|
|
63
|
-
```json
|
|
64
|
-
{
|
|
65
|
-
"parent": "{parent-feature}",
|
|
66
|
-
"sourcePlan": ".5/features/{parent-feature}/plan.md",
|
|
67
|
-
"createdAt": "{ISO-timestamp}",
|
|
68
|
-
"strategy": "implementation-independence",
|
|
69
|
-
"children": [
|
|
70
|
-
{
|
|
71
|
-
"index": 1,
|
|
72
|
-
"feature": "{child-feature}",
|
|
73
|
-
"plan": ".5/features/{child-feature}/plan.md",
|
|
74
|
-
"scope": "one-line child scope",
|
|
75
|
-
"dependsOn": []
|
|
76
|
-
}
|
|
77
|
-
],
|
|
78
|
-
"rationale": "one concise paragraph explaining the split boundaries"
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Leave the parent `plan.md` unchanged.
|
|
83
|
-
|
|
84
|
-
## Step 5: Report
|
|
85
|
-
|
|
86
|
-
Output the parent path, the manifest path, each child plan path, and the `/5:implement {child}` command for each. Then stop.
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 5:triage-pr-comments
|
|
3
|
-
description: Fetches, compacts, and categorizes GitHub PR review comments for a feature.
|
|
4
|
-
allowed-tools: Bash, Read, Write, AskUserQuestion, Agent
|
|
5
|
-
user-invocable: false
|
|
6
|
-
model: haiku
|
|
7
|
-
argument-hint: [feature-name]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<role>
|
|
11
|
-
You are a PR Comment Triage Coordinator. You reduce GitHub comment data before model analysis and record user decisions.
|
|
12
|
-
</role>
|
|
13
|
-
|
|
14
|
-
# Triage PR Comments
|
|
15
|
-
|
|
16
|
-
## Process
|
|
17
|
-
|
|
18
|
-
1. Find the PR for the current branch:
|
|
19
|
-
- `gh pr list --head "$(git branch --show-current)" --json number,url,title --limit 1`
|
|
20
|
-
- `gh repo view --json owner,name`
|
|
21
|
-
2. Fetch comments:
|
|
22
|
-
- Inline: `gh api repos/{owner}/{repo}/pulls/{number}/comments --paginate`
|
|
23
|
-
- General: `gh api repos/{owner}/{repo}/issues/{number}/comments --paginate`
|
|
24
|
-
3. Normalize before spawning an agent:
|
|
25
|
-
- Keep only `id`, `path`, `line`, `body`, `user.login`, `created_at`, `updated_at`, `in_reply_to_id`, and resolved/outdated flags.
|
|
26
|
-
- For issue comments, use `path: "PR"` and `line: 0`.
|
|
27
|
-
- Drop bot, empty, minimized, resolved, outdated, and duplicate records.
|
|
28
|
-
- Truncate bodies to the smallest useful actionable excerpt.
|
|
29
|
-
4. Spawn one low-context agent to categorize compact records against local findings.
|
|
30
|
-
5. Ask the user only about actionable/manual comments.
|
|
31
|
-
6. Write decisions to `.5/features/{feature}/pr-comment-decisions.json`.
|
|
32
|
-
|
|
33
|
-
## Categorization Prompt
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
Categorize compact PR comments.
|
|
37
|
-
|
|
38
|
-
Local findings:
|
|
39
|
-
{file:line:description list or "none"}
|
|
40
|
-
|
|
41
|
-
Comments:
|
|
42
|
-
{compact records}
|
|
43
|
-
|
|
44
|
-
Categories:
|
|
45
|
-
- actionable_fix
|
|
46
|
-
- duplicate
|
|
47
|
-
- manual
|
|
48
|
-
- skip
|
|
49
|
-
|
|
50
|
-
Output:
|
|
51
|
-
---PR-COMMENTS---
|
|
52
|
-
{id} | {file}:{line} | {category} | {description} | {duplicate_of or "none"} | {recommendation or "n/a"} | {one-sentence reasoning or "n/a"}
|
|
53
|
-
---END-PR-COMMENTS---
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Output
|
|
57
|
-
|
|
58
|
-
End with:
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
---PR-TRIAGE---
|
|
62
|
-
STATUS: success | failed
|
|
63
|
-
ACTIONABLE: {N}
|
|
64
|
-
MANUAL: {N}
|
|
65
|
-
DUPLICATE: {N}
|
|
66
|
-
SKIPPED: {N}
|
|
67
|
-
DECISIONS: .5/features/{feature}/pr-comment-decisions.json
|
|
68
|
-
ERRORS: none | {compact summary}
|
|
69
|
-
---END-PR-TRIAGE---
|
|
70
|
-
```
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const fs = require('fs');
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
let input = '';
|
|
6
|
-
process.stdin.setEncoding('utf8');
|
|
7
|
-
process.stdin.on('data', chunk => input += chunk);
|
|
8
|
-
process.stdin.on('end', () => {
|
|
9
|
-
try {
|
|
10
|
-
const data = JSON.parse(input);
|
|
11
|
-
const cwd = data.cwd || process.cwd();
|
|
12
|
-
const configFile = path.join(cwd, '.5', 'config.json');
|
|
13
|
-
|
|
14
|
-
if (fs.existsSync(configFile)) {
|
|
15
|
-
process.exit(0);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// No config — block with helpful message
|
|
19
|
-
process.stderr.write(
|
|
20
|
-
'Configuration not found. Please run /5:configure first to set up your project.\n\n' +
|
|
21
|
-
'The configure command will:\n' +
|
|
22
|
-
' - Detect your project type and build commands\n' +
|
|
23
|
-
' - Set up ticket tracking conventions\n' +
|
|
24
|
-
' - Write project configuration'
|
|
25
|
-
);
|
|
26
|
-
process.exit(2);
|
|
27
|
-
} catch (e) {
|
|
28
|
-
process.exit(0); // Silent failure — don't block on parse errors
|
|
29
|
-
}
|
|
30
|
-
});
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: configure-docs-index
|
|
3
|
-
description: Analyzes the codebase, creates project documentation, generates a rebuildable codebase index, and updates AGENTS.md. Used during /5:implement CONFIGURE.
|
|
4
|
-
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
5
|
-
model: sonnet
|
|
6
|
-
user-invocable: false
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Configure Docs And Index Skill
|
|
10
|
-
|
|
11
|
-
## Overview
|
|
12
|
-
|
|
13
|
-
This skill handles the documentation and indexing work during implementation for the CONFIGURE feature. It is called by step-executor to create the project docs, codebase index, and `AGENTS.md`.
|
|
14
|
-
|
|
15
|
-
It handles one task:
|
|
16
|
-
|
|
17
|
-
- **Analyze Codebase and Create/Update Documentation + Index** - Maps codebase, writes `.5/*.md`, generates `.5/index/*`, and updates `AGENTS.md`
|
|
18
|
-
|
|
19
|
-
Note: config.json is written directly by `/5:configure` during the Q&A phase.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Modes
|
|
24
|
-
|
|
25
|
-
This skill supports two modes. The analysis (A1), template filling (A2-A3), index generation (A3.5), and AGENTS.md update (A4-A5) logic is the same in both modes — only the **input source** changes.
|
|
26
|
-
|
|
27
|
-
### Full Mode (default)
|
|
28
|
-
|
|
29
|
-
Used by `/5:configure` → `/5:implement CONFIGURE` flow.
|
|
30
|
-
|
|
31
|
-
- **Input:** Pattern/command selections from unified plan (`.5/features/CONFIGURE/plan.md`)
|
|
32
|
-
- **Behavior:** Creates documentation, index files, and `AGENTS.md` from scratch based on unified plan requirements
|
|
33
|
-
|
|
34
|
-
### Refresh Mode
|
|
35
|
-
|
|
36
|
-
Used by `/5:reconfigure` for lightweight refresh.
|
|
37
|
-
|
|
38
|
-
- **Input:** The Task prompt tells it to refresh documentation and the codebase index
|
|
39
|
-
- **Behavior:** Re-analyzes codebase and overwrites docs, index files, and `AGENTS.md`
|
|
40
|
-
- **Trigger:** Task prompt includes "REFRESH MODE"
|
|
41
|
-
|
|
42
|
-
In both modes, the analysis and generation logic is identical.
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## A. Analyze Codebase and Create/Update AGENTS.md
|
|
47
|
-
|
|
48
|
-
**Process:**
|
|
49
|
-
|
|
50
|
-
### A1. Codebase Analysis
|
|
51
|
-
|
|
52
|
-
Perform focused analysis to gather data for documentation templates. Only capture information that **cannot be derived** by reading project files directly — skip version numbers, dependency lists, directory layouts, linter configs, and other facts that Claude Code can look up on demand.
|
|
53
|
-
|
|
54
|
-
**Architecture Analysis** (for ARCHITECTURE.md):
|
|
55
|
-
- Identify architectural pattern (MVC, layered, modular, microservices) from directory structure
|
|
56
|
-
- Map layers by directory structure (controllers/, services/, models/, routes/, etc.)
|
|
57
|
-
- Trace data flow patterns (read 2-3 example files from different layers)
|
|
58
|
-
- Identify key abstractions (interfaces, base classes, common patterns)
|
|
59
|
-
- Identify non-obvious conventions: implicit rules not enforced by tooling (e.g., "all services extend BaseService", "barrel exports required per module"). Skip anything in .eslintrc, .prettierrc, tsconfig, etc.
|
|
60
|
-
- Determine where new code should go (new features, tests, utilities)
|
|
61
|
-
|
|
62
|
-
**Testing Analysis** (for TESTING.md):
|
|
63
|
-
- Determine test organization (co-located vs separate `test/` or `spec/`)
|
|
64
|
-
- Identify mocking framework and project-specific mocking conventions
|
|
65
|
-
- Find fixture/factory patterns
|
|
66
|
-
- Note gotchas: setup/teardown quirks, env requirements, flaky areas
|
|
67
|
-
|
|
68
|
-
**Concerns Analysis** (for CONCERNS.md — conditional):
|
|
69
|
-
- Grep for TODO/FIXME/HACK/XXX/DEPRECATED comments across all code
|
|
70
|
-
- Check for common security issues (SQL injection patterns, XSS vulnerabilities)
|
|
71
|
-
- Identify non-obvious integration details: auth flows, required env vars not documented elsewhere, webhook contracts, gotchas with external services
|
|
72
|
-
- Look for performance bottlenecks or scaling limits mentioned in comments/docs
|
|
73
|
-
|
|
74
|
-
**Conventions Analysis** (for CONVENTIONS.md — when `conventions.generate` is true in config.json):
|
|
75
|
-
- Identify the primary language(s) and runtime (TypeScript, Java, Python, Go, etc.) for the summary line
|
|
76
|
-
- **Typing patterns:** Check tsconfig.json for `strict` mode (TypeScript); check mypy.ini or pyproject.toml `[tool.mypy]` for strict settings (Python); scan source files for `any` type usage count, non-null assertion (`!`) patterns, and missing return types
|
|
77
|
-
- **Error handling patterns:** Scan for try/catch structures, custom error classes/types, and patterns of silent catches (empty catch blocks)
|
|
78
|
-
- **Test assertion patterns:** Read 3-5 test files to identify assertion library (Jest `expect`, Chai, JUnit `assertEquals`, etc.), mocking approach, and whether factories/builders exist
|
|
79
|
-
- **Naming patterns:** Observe the dominant casing and naming conventions already established in the codebase
|
|
80
|
-
- **Code structure patterns:** Note average file lengths and any consistent structural patterns across modules
|
|
81
|
-
|
|
82
|
-
### A2. Fill Templates
|
|
83
|
-
|
|
84
|
-
For each template in `.claude/templates/`:
|
|
85
|
-
|
|
86
|
-
1. Read template content with Read tool
|
|
87
|
-
2. Replace placeholders with analyzed data from A1
|
|
88
|
-
3. **Omit sections entirely if no data was found** — do not write "Not detected" or "None found"
|
|
89
|
-
4. For CONCERNS.md: if ALL sections would be empty, **do not create the file at all**
|
|
90
|
-
|
|
91
|
-
**Placeholder mapping examples**:
|
|
92
|
-
|
|
93
|
-
ARCHITECTURE.md:
|
|
94
|
-
- `{Pattern name}` → "Layered Architecture" or "MVC" or "Modular Monolith"
|
|
95
|
-
- `{Layer}` → "Controllers", "Services", "Repositories"
|
|
96
|
-
- `{path}` → "src/controllers/", "src/services/"
|
|
97
|
-
- `{skill links}` → slash-command links to project-specific skills installed in `.claude/skills/` that correspond to this layer (e.g., `/controller`, `/service`). Check which `create-*` skills exist for this layer's pattern. If none exist, use "—".
|
|
98
|
-
|
|
99
|
-
TESTING.md:
|
|
100
|
-
- Describe actual patterns observed, not framework names/versions (those are in config files)
|
|
101
|
-
|
|
102
|
-
CONCERNS.md:
|
|
103
|
-
- `{file paths}` → Actual file paths from grep results
|
|
104
|
-
|
|
105
|
-
### A3. Write Documentation Files
|
|
106
|
-
|
|
107
|
-
Write filled templates to `.5/` folder:
|
|
108
|
-
|
|
109
|
-
1. Ensure `.5/` directory exists: `mkdir -p .5`
|
|
110
|
-
2. Write filled templates:
|
|
111
|
-
- `.5/ARCHITECTURE.md` — always created
|
|
112
|
-
- `.5/TESTING.md` — always created
|
|
113
|
-
- `.5/CONCERNS.md` — **only if concerns were found** (skip if all sections empty)
|
|
114
|
-
- `.5/CONVENTIONS.md` — **only when `conventions.generate` is true in config.json** (see A3.1)
|
|
115
|
-
|
|
116
|
-
### A3.1. Generate CONVENTIONS.md
|
|
117
|
-
|
|
118
|
-
Skip this section entirely if `conventions.generate` is `false` in `.5/config.json`.
|
|
119
|
-
|
|
120
|
-
Read `.claude/templates/CONVENTIONS.md` as the source template.
|
|
121
|
-
|
|
122
|
-
**Placeholder mapping:**
|
|
123
|
-
|
|
124
|
-
- `{PROJECT_CONVENTIONS_SUMMARY}` → 1 sentence naming the primary language/runtime and any detected strict-mode tooling (e.g., "TypeScript project with `strict: true` in tsconfig." or "Python 3.11 service with mypy strict mode enabled."). Remove the placeholder if nothing useful can be stated.
|
|
125
|
-
- `{PROJECT_TYPING}` → Project-specific findings from Conventions Analysis: detected tsconfig settings, any `any` usage count, non-null assertion patterns, absence of return types. Frame as imperative directives ("Enable `strict: true` in tsconfig — currently disabled." or "49 usages of `any` detected; prioritize removal in new code."). Remove placeholder if nothing project-specific to add.
|
|
126
|
-
- `{PROJECT_STRUCTURE}` → Observed structural patterns or deviations from defaults (e.g., "Files in `src/controllers/` average 380 lines — respect the 300-line default; split controllers that exceed it."). Remove placeholder if no notable findings.
|
|
127
|
-
- `{PROJECT_NAMING}` → Casing or naming patterns specific to this codebase beyond the defaults (e.g., "This project uses `kebab-case` for file names and `PascalCase` for classes — match existing files."). Remove placeholder if defaults already cover it.
|
|
128
|
-
- `{PROJECT_ERROR_HANDLING}` → Detected error-handling patterns or gaps (e.g., "Custom `AppError` class in `src/errors/` — use it for all domain errors." or "3 empty catch blocks found in `src/services/` — always log or rethrow."). Remove placeholder if no notable findings.
|
|
129
|
-
- `{PROJECT_TESTING}` → Project-specific testing directives beyond the defaults: assertion library in use, factory/builder location, any detected weak assertions or disabled tests (e.g., "Use `src/test/factories/` helpers for test data — do not inline objects." or "12 uses of `toBeDefined()` as sole assertion detected — always assert the actual value."). Remove placeholder if defaults already cover it.
|
|
130
|
-
- `{PROJECT_COMMENTS}` → Any documentation patterns or gaps observed (e.g., "Public controllers lack JSDoc — add docblocks to all new public methods."). Remove placeholder if defaults already cover it.
|
|
131
|
-
|
|
132
|
-
**Rules for filling placeholders:**
|
|
133
|
-
- Write project-specific sections as imperative directives, not observations.
|
|
134
|
-
- Remove (do not leave) any placeholder whose section has nothing project-specific to add.
|
|
135
|
-
- Do not duplicate the default convention text — project sections supplement, not restate, the defaults.
|
|
136
|
-
- Keep each project-specific addition under 5 bullet points.
|
|
137
|
-
|
|
138
|
-
### A3.5. Generate Codebase Index Script and Index Files
|
|
139
|
-
|
|
140
|
-
Generate a repository-local codebase index that stays generic and works for any language or framework detected in the project.
|
|
141
|
-
|
|
142
|
-
**Requirements:**
|
|
143
|
-
- Create `.5/index/` if it does not exist
|
|
144
|
-
- Generate a script that rebuilds the index at `.5/index/rebuild-index.sh`
|
|
145
|
-
- Make the script self-contained and dependency-light:
|
|
146
|
-
- Prefer portable shell plus standard tools already expected in a dev environment
|
|
147
|
-
- If the project clearly has a better built-in runtime already available (for example Node.js or Python), it is acceptable to generate a small script in that runtime instead, but keep it local to the repo and avoid adding new dependencies
|
|
148
|
-
- The script must inspect the current codebase and write multiple focused Markdown index files into `.5/index/`
|
|
149
|
-
- Include `.5/index/README.md` as a manifest describing what each generated index file contains and how to rebuild the index
|
|
150
|
-
- Group content by concern and adapt to the actual project. Each file should be compact, easy to scan, and optimized for AI/context loading rather than prose documentation.
|
|
151
|
-
- Each generated index file should follow this style:
|
|
152
|
-
- Short title and 1-line purpose statement
|
|
153
|
-
- Bulleted or table-like entries only
|
|
154
|
-
- One entry per route/component/module/model/command as applicable
|
|
155
|
-
- Each entry should include the path and a short descriptor
|
|
156
|
-
- Prefer signatures, exported names, HTTP methods, key fields, and relationships over long explanations
|
|
157
|
-
- Keep entries factual and compact; avoid narrative paragraphs
|
|
158
|
-
- Suggested file shapes:
|
|
159
|
-
- `commands.md` — runnable commands, entrypoints, scripts, key developer workflows
|
|
160
|
-
- `routes.md` — routes, handlers, API endpoints, HTTP methods, notable middleware
|
|
161
|
-
- `modules.md` — modules/packages/components/services and what they own
|
|
162
|
-
- `models.md` — schemas, entities, tables, migrations, key relationships
|
|
163
|
-
- `libraries.md` — shared utilities, helpers, exported functions/classes
|
|
164
|
-
- Suggested categories to create when applicable:
|
|
165
|
-
- Entrypoints / runnable commands
|
|
166
|
-
- Routes / handlers / API surface
|
|
167
|
-
- Components / modules / packages
|
|
168
|
-
- Data models / schemas / migrations
|
|
169
|
-
- Libraries / utilities / shared code
|
|
170
|
-
- Skip categories that do not apply. Do not generate empty placeholder files.
|
|
171
|
-
- The script should overwrite previously generated index files on each run so rebuild is idempotent.
|
|
172
|
-
|
|
173
|
-
### A4. Create AGENTS.md
|
|
174
|
-
|
|
175
|
-
Generate `AGENTS.md` — the provider-agnostic instructions file that works with any AI coding tool:
|
|
176
|
-
|
|
177
|
-
Use `.claude/templates/AGENTS.md` as the source template.
|
|
178
|
-
|
|
179
|
-
Placeholder mapping:
|
|
180
|
-
- `{PROJECT_OVERVIEW}` → 1-2 sentences from README/package.json
|
|
181
|
-
- `{BUILD_RUN_COMMANDS}` → build, test, and other detected commands
|
|
182
|
-
- `{PROJECT_DOCUMENTATION_LINKS}` → links to whichever `.5/` files were created (only list files that exist — includes CONVENTIONS.md when generated)
|
|
183
|
-
- `{CODEBASE_INDEX_LINKS}` → links to `.5/index/README.md`, generated index files, and `.5/index/rebuild-index.sh`
|
|
184
|
-
- `{CONVENTIONS_REFERENCE}` → when `.5/CONVENTIONS.md` was generated: `"Read \`.5/CONVENTIONS.md\` before writing any code. It defines the full convention set for this project: typing rules, code structure limits, naming, error handling, and testing standards."` — when not generated: remove the placeholder entirely
|
|
185
|
-
- `{CUSTOM_DOCUMENTATION}` → preserved user-authored sections under `## Custom Documentation`; remove the placeholder entirely if there is no custom content
|
|
186
|
-
|
|
187
|
-
Preserve the static template sections exactly as written, including skill usage, commit messages, workflow rules, coding guidelines, simplicity, testing, surgical changes, goal-driven execution, and index freshness.
|
|
188
|
-
|
|
189
|
-
### A5. Migrate and Preserve Existing Content
|
|
190
|
-
|
|
191
|
-
**Run this step BEFORE writing the CLAUDE.md shim** to avoid data loss.
|
|
192
|
-
|
|
193
|
-
**If `AGENTS.md` already exists:**
|
|
194
|
-
- Read current content
|
|
195
|
-
- Identify user-written custom sections (not matching template structure)
|
|
196
|
-
- Preserve under "Custom Documentation" section in new AGENTS.md
|
|
197
|
-
- Ensure the generated guidance sections are retained
|
|
198
|
-
|
|
199
|
-
**If `CLAUDE.md` already exists with real content (not just `@AGENTS.md`):**
|
|
200
|
-
- Read current CLAUDE.md content
|
|
201
|
-
- Identify user-written custom sections (not matching template structure)
|
|
202
|
-
- Migrate all content into the new AGENTS.md (preserve under "Custom Documentation" section)
|
|
203
|
-
|
|
204
|
-
### A6. Create CLAUDE.md shim (Claude Code only)
|
|
205
|
-
|
|
206
|
-
After migration is complete (A5), create or overwrite `CLAUDE.md` with only:
|
|
207
|
-
|
|
208
|
-
```
|
|
209
|
-
@AGENTS.md
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
This single line uses Claude Code's include syntax to pull in the full AGENTS.md content. This way Claude Code users get the instructions automatically, while other AI tools (Codex, etc.) read AGENTS.md directly.
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## Output Contract
|
|
217
|
-
|
|
218
|
-
Returns structured results for each component:
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
Component A (Documentation + Index): SUCCESS - Created documentation files, codebase index, and AGENTS.md
|
|
222
|
-
- .5/ARCHITECTURE.md (Pattern: Layered, 4 layers identified)
|
|
223
|
-
- .5/TESTING.md (mocking patterns, gotchas documented)
|
|
224
|
-
- .5/CONCERNS.md (3 TODO items, 1 security note) [or "skipped — no concerns found"]
|
|
225
|
-
- .5/CONVENTIONS.md (defaults + project-specific typing/testing findings) [or "skipped — conventions.generate is false"]
|
|
226
|
-
- .5/index/rebuild-index.sh (generated index rebuild script)
|
|
227
|
-
- .5/index/*.md (focused codebase index files)
|
|
228
|
-
- AGENTS.md (updated with references)
|
|
229
|
-
- CLAUDE.md (shim: @AGENTS.md)
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Or on failure:
|
|
233
|
-
|
|
234
|
-
```
|
|
235
|
-
Component A (Documentation + Index): FAILED - Unable to read template files
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## DO NOT
|
|
239
|
-
|
|
240
|
-
- DO NOT overwrite existing user-written AGENTS.md sections
|
|
241
|
-
- DO NOT include `steps` in config.json
|
|
242
|
-
- DO NOT hardcode conventions - always derive from actual project analysis
|
|
243
|
-
- DO NOT generate empty or placeholder index files
|