5-phase-workflow 3.0.0 → 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.
Files changed (56) hide show
  1. package/README.md +31 -101
  2. package/bin/install.js +168 -176
  3. package/bin/sync-agents.js +59 -54
  4. package/docs/workflow-guide.md +35 -79
  5. package/package.json +2 -2
  6. package/src/agents/step-executor-agent.md +5 -4
  7. package/src/agents/step-orchestrator-agent.md +12 -12
  8. package/src/agents/verification-agent.md +7 -8
  9. package/src/codex-commands/plan.md +65 -0
  10. package/src/commands/5/address-review-findings.md +43 -52
  11. package/src/commands/5/analyze-feature.md +1 -1
  12. package/src/commands/5/configure.md +75 -179
  13. package/src/commands/5/eject.md +0 -1
  14. package/src/commands/5/implement.md +78 -68
  15. package/src/commands/5/lean-check.md +75 -0
  16. package/src/commands/5/reconfigure.md +48 -129
  17. package/src/commands/5/review.md +42 -14
  18. package/src/commands/5/synchronize-agents.md +1 -1
  19. package/src/commands/5/update.md +2 -2
  20. package/src/hooks/dependency-guard.js +150 -0
  21. package/src/hooks/statusline.js +5 -3
  22. package/src/references/configure-tables.md +0 -33
  23. package/src/settings.json +3 -4
  24. package/src/skills/baseline-conventions/SKILL.md +37 -0
  25. package/src/skills/cognitive-load/SKILL.md +52 -0
  26. package/src/skills/configure-agents-md/SKILL.md +72 -0
  27. package/src/skills/configure-rules/SKILL.md +146 -0
  28. package/src/skills/documentation-style/SKILL.md +32 -0
  29. package/src/skills/fowler-code-smells/SKILL.md +25 -0
  30. package/src/skills/review-style/SKILL.md +142 -0
  31. package/src/templates/AGENTS.md +31 -31
  32. package/src/templates/workflow/REVIEW-FINDINGS.md +2 -9
  33. package/src/workflows/5-implement.js +67 -92
  34. package/docs/findings.md +0 -361
  35. package/docs/progress.md +0 -102
  36. package/src/commands/5/apply-review-findings.md +0 -66
  37. package/src/commands/5/commit.md +0 -43
  38. package/src/commands/5/plan.md +0 -189
  39. package/src/commands/5/reply-pr-comments.md +0 -48
  40. package/src/commands/5/split.md +0 -86
  41. package/src/commands/5/triage-pr-comments.md +0 -70
  42. package/src/hooks/config-guard.js +0 -30
  43. package/src/skills/configure-docs-index/SKILL.md +0 -243
  44. package/src/skills/configure-skills/SKILL.md +0 -311
  45. package/src/skills/generate-readme/EXAMPLES.md +0 -168
  46. package/src/skills/generate-readme/SKILL.md +0 -122
  47. package/src/skills/generate-readme/TEMPLATE.md +0 -141
  48. package/src/skills/use-index/SKILL.md +0 -49
  49. package/src/templates/ARCHITECTURE.md +0 -33
  50. package/src/templates/CONCERNS.md +0 -33
  51. package/src/templates/CONVENTIONS.md +0 -74
  52. package/src/templates/TESTING.md +0 -24
  53. package/src/templates/workflow/FIX-PLAN.md +0 -55
  54. package/src/templates/workflow/PLAN-COMPACT.md +0 -42
  55. package/src/templates/workflow/PLAN.md +0 -76
  56. package/src/templates/workflow/REVIEW-SUMMARY.md +0 -53
@@ -1,141 +0,0 @@
1
- # Module README Template
2
-
3
- Use this template structure for all module READMEs. Keep them concise and focused.
4
-
5
- ---
6
-
7
- # [Module Name]
8
-
9
- ## Purpose
10
-
11
- [1-3 sentences describing what this module does and its role in the system]
12
-
13
- Example: "This module contains the core Mission domain model, including the Mission aggregate root, Order, UnitOrder,
14
- and related entities. It provides the MissionFactory for creating and modifying missions according to business rules."
15
-
16
- ## Key Components
17
-
18
- [List only the 3-5 most important components - not exhaustive]
19
-
20
- - `EntityName` - Brief description of key entity
21
- - `EntityFactory` - Key factory operations (create, addX, updateY)
22
- - `EntityRepository` - Repository interface with implementations
23
- - Package references for groups: "Validators in `validation/` package"
24
-
25
- **Guidelines:**
26
-
27
- - **DO NOT** list every file
28
- - **DO** use package references for groups of related files
29
- - **DO** focus on what developers will use most frequently
30
- - **DO** mention main interfaces/abstractions, not every implementation
31
-
32
- ## Testing
33
-
34
- [Brief description of test fixtures and key testing patterns]
35
-
36
- **Only include this section if:**
37
-
38
- - Module has test fixtures in `src/testFixtures/`
39
- - Module has a separate `-testing` sibling
40
- - Testing approach is non-standard or important to document
41
-
42
- Example:
43
-
44
- ```java
45
- // Simple example
46
- var entity = entityTestFixture.create();
47
-
48
- // Customized example
49
- var entity = entityTestFixture.createBuilder()
50
- .withProperty(value)
51
- .build();
52
- ```
53
-
54
- ---
55
-
56
- ## Optional Sections
57
-
58
- Include these sections only if they add significant value:
59
-
60
- ### Critical Patterns
61
-
62
- [List only 3-5 most important patterns specific to this module]
63
-
64
- Focus on patterns that:
65
-
66
- - Will break things if not followed
67
- - Are non-obvious
68
- - Are critical to understanding the module
69
-
70
- Examples:
71
-
72
- 1. **Always use MissionFactory** - Never manually create Mission/Order/UnitOrder connections
73
- 2. **Factory manages state** - Offsets, aliases, and IDs are calculated automatically
74
- 3. **Result objects** - Factory operations return result objects with both created entity and updated aggregate
75
-
76
- **DO NOT include:**
77
-
78
- - General patterns covered in AGENTS.md
79
- - Obvious patterns like "use builders for construction"
80
- - Implementation details
81
-
82
- ### Dependencies
83
-
84
- **Only include if:**
85
-
86
- - Dependencies are non-obvious
87
- - There are critical ordering or version requirements
88
- - External systems are involved
89
-
90
- **Depends on:** [Brief list of key dependencies]
91
-
92
- **Used by:** [Brief list of main consumers]
93
-
94
- ### Related Documentation
95
-
96
- **Don't include:**
97
-
98
- - Links to AGENTS.md sections relevant to this module
99
- - Don't repeat things and patterns already documented in AGENTS.md
100
-
101
- **Include for:**
102
-
103
- - Parent or sibling module READMEs
104
- - External documentation
105
- - [Related module READMEs](../path/README.md)
106
-
107
- ---
108
-
109
- ## Anti-Patterns in READMEs
110
-
111
- **DO NOT:**
112
-
113
- 1. List every validator, query, or handler class individually
114
- 2. Document implementation details
115
- 3. Copy content from AGENTS.md
116
- 4. Include exhaustive method signatures
117
- 5. Create walls of text
118
- 6. Document every package
119
- 7. Include obvious information
120
-
121
- **DO:**
122
-
123
- 1. Focus on top-level overview
124
- 2. List 3-5 key components only
125
- 3. Reference AGENTS.md for patterns
126
- 4. Keep it under 100 lines
127
- 5. Use examples sparingly
128
- 6. Use package references for groups
129
- 7. Document only critical information
130
-
131
- ---
132
-
133
- ## Example README Lengths
134
-
135
- - **ID module**: 10-30 lines (very simple)
136
- - **Model module**: 20-80 lines
137
- - **Handler module**: 20-80 lines
138
- - **Service module**: 20-80 lines
139
- - **Testing module**: 20-60 lines
140
-
141
- If your README exceeds 150 lines, it's too detailed.
@@ -1,49 +0,0 @@
1
- ---
2
- name: use-index
3
- description: Navigate the .5/index/ codebase index to quickly identify target files and understand project structure. Use before running broad Glob/Grep scans when you need to find where a feature lives, where new code should go, which routes exist, or what the data model looks like.
4
- allowed-tools: Read, Bash
5
- user-invocable: false
6
- ---
7
-
8
- # Use Index
9
-
10
- Use `.5/index/` to orient in the codebase quickly before resorting to broad file scans.
11
-
12
- ## Step 1: Check existence
13
-
14
- ```bash
15
- ls .5/index/ 2>/dev/null
16
- ```
17
-
18
- If the directory is missing or empty, inform the user they can run `/5:reconfigure` to generate it, then fall back to Glob/Grep.
19
-
20
- ## Step 2: Read the manifest
21
-
22
- Read `.5/index/README.md`. It lists every generated index file, its purpose, and the generation timestamp.
23
-
24
- ## Step 3: Check freshness
25
-
26
- Look for the `Generated:` timestamp in README.md.
27
-
28
- - **Fresh (≤ 1 day):** proceed with the index.
29
- - **Stale (> 1 day):** run `.5/index/rebuild-index.sh` to rebuild it, then proceed with the refreshed index.
30
-
31
- ## Step 4: Read only the relevant file(s)
32
-
33
- Pick the file that matches the task. Skip unrelated ones.
34
-
35
- | Task | File |
36
- |------|------|
37
- | Where does new code go / what modules exist? | `modules.md` |
38
- | API surface, HTTP routes, or handlers | `routes.md` |
39
- | Data models, schemas, or migrations | `models.md` |
40
- | Shared helpers, utilities, or exported functions | `libraries.md` |
41
- | Build, run, test, or dev-workflow commands | `commands.md` |
42
-
43
- ## Step 5: Interpret entries
44
-
45
- Each file has compact entries — path plus a short descriptor (HTTP method, exported name, key field, etc.). Use them to identify target files directly. Do not read the full index file if a handful of entries answer the question.
46
-
47
- ## Step 6: Fall back gracefully
48
-
49
- If a file is too sparse or an area is missing from the index, note the gap and fall back to a targeted Grep/Glob for that area only. Do not re-scan sections already covered by a fresh index entry.
@@ -1,33 +0,0 @@
1
- # Architecture
2
-
3
- ## Pattern
4
-
5
- **Overall:** {Pattern name — e.g., Layered, MVC, Modular Monolith}
6
-
7
- {1-2 sentences explaining the architectural approach and key design decisions}
8
-
9
- ## Layers & Data Flow
10
-
11
- | Layer | Location | Depends On | Notes | Skills |
12
- |-------|----------|------------|-------|--------|
13
- | {Layer} | `{path}` | {Dependencies} | {Key responsibility or constraint} | {skill links} |
14
-
15
- ## Key Abstractions
16
-
17
- **{Abstraction Name}:**
18
- - Purpose: {What it represents}
19
- - Pattern: {How it's used across the codebase}
20
- - Examples: `{file paths}`
21
-
22
- ## Non-Obvious Conventions
23
-
24
- {ONLY conventions not enforced by tooling or visible in config files. Skip anything in .eslintrc, .prettierrc, tsconfig, etc.}
25
-
26
- - {e.g., "All services must extend BaseService for lifecycle hooks"}
27
- - {e.g., "Barrel exports required in each module directory"}
28
-
29
- ## Where to Add New Code
30
-
31
- - New feature: `{path}`
32
- - New tests: `{path}`
33
- - Shared utilities: `{path}`
@@ -1,33 +0,0 @@
1
- # Concerns
2
-
3
- ## Tech Debt
4
-
5
- **{Area/Component}:**
6
- - Issue: {What's the shortcut/workaround}
7
- - Files: `{file paths}`
8
- - Impact: {What breaks or degrades}
9
-
10
- ## Known Issues
11
-
12
- **{Issue description}:**
13
- - Symptoms: {What happens}
14
- - Files: `{file paths}`
15
- - Trigger/Workaround: {How to reproduce, how to avoid}
16
-
17
- ## Security Notes
18
-
19
- **{Area}:**
20
- - Risk: {What could go wrong}
21
- - Current mitigation: {What's in place}
22
-
23
- ## Integration Notes
24
-
25
- **{Service/System}:**
26
- - {Non-obvious details: auth flows, required env vars, webhook contracts, gotchas with external services}
27
-
28
- ## Performance Notes
29
-
30
- **{Slow operation or scaling limit}:**
31
- - Problem: {What's slow or where it breaks}
32
- - Files: `{file paths}`
33
- - Improvement path: {How to address}
@@ -1,74 +0,0 @@
1
- # Code Conventions
2
-
3
- {PROJECT_CONVENTIONS_SUMMARY}
4
-
5
- ## Typing
6
-
7
- - Never use implicit `any` types; if unavoidable, add a `// reason:` comment explaining why.
8
- - Enable strict null checks: treat `null` and `undefined` as distinct types.
9
- - Avoid non-null assertions (`!`) without an explanatory comment.
10
- - Prefer explicit return types on all public functions and methods.
11
- - Use typed/domain types for IDs, money, dates, and other value objects; avoid raw primitives.
12
-
13
- {PROJECT_TYPING}
14
-
15
- ## Code Structure
16
-
17
- - Maximum function or method body: 40 lines of logic.
18
- - Maximum file length: 300 lines (excluding generated or vendor code).
19
- - One primary responsibility per file, class, or module — split when in doubt.
20
- - No more than three levels of nesting; use early returns to flatten control flow.
21
- - Extract helpers when logic mixes orchestration, IO, parsing, and mapping in one place.
22
-
23
- {PROJECT_STRUCTURE}
24
-
25
- ## Naming
26
-
27
- - Names must express intent; avoid abbreviations (exceptions: `i`, `j`, `err`, `ctx`, `req`, `res`).
28
- - No magic numbers or strings: extract to named constants with descriptive names.
29
- - Booleans: prefix with `is`, `has`, `can`, `should`, or `needs`.
30
- - Collections and arrays: plural noun names (`users`, `errors`, `pendingItems`).
31
- - Functions and methods: verb phrases that describe the action (`fetchUser`, `validateEmail`, `parseResponse`).
32
-
33
- {PROJECT_NAMING}
34
-
35
- ## Error Handling
36
-
37
- - Never silently swallow exceptions or errors — always log, rethrow, or convert to a typed result.
38
- - Distinguish recoverable errors from unrecoverable ones; do not use exceptions for control flow.
39
- - All async code must handle error paths: catch rejected promises and wrap `async/await` in `try/catch`.
40
- - Use typed/structured errors with context, not raw strings.
41
-
42
- {PROJECT_ERROR_HANDLING}
43
-
44
- ## Testing
45
-
46
- - Follow AAA structure in each test: **Arrange** (set up state), **Act** (call the subject), **Assert** (verify the outcome).
47
- - One behavior per test — a single test function must cover exactly one scenario.
48
- - Test names describe the behavior being tested, not the method: `"returns 404 when user not found"`, not `"test getUserById"`.
49
- - Assert on meaningful, observable outcomes. Forbidden:
50
- - `expect(result).toBeDefined()` as the only assertion
51
- - `expect(true).toBe(true)` or any trivially-passing assertion
52
- - Empty or body-less tests
53
- - Mock only at system boundaries: external HTTP, databases, filesystem, and clocks.
54
- - Never mock internal modules or pure functions — test them directly.
55
- - Cover all paths: happy path, known error cases, boundary values, and null/empty inputs.
56
- - No disabled tests (`skip`, `xtest`, `xit`, `@Ignore`) without a linked issue comment.
57
- - New code must reach ≥ 80% branch coverage; bug fixes must include a regression test.
58
- - Use factories or builders for test data; avoid inline hardcoded objects duplicated across tests.
59
-
60
- {PROJECT_TESTING}
61
-
62
- ## Comments and Documentation
63
-
64
- - Comment the **why**, not the what; well-named code should be self-documenting.
65
- - Forbidden: comments that restate the code (`// increment counter`, `// call save()`).
66
- - Document: non-obvious invariants, workarounds, performance trade-offs, and cross-system constraints.
67
- - All public APIs (functions, classes, interfaces, endpoints) require a docstring or docblock.
68
- - Never leave commented-out code; use version control history instead.
69
-
70
- {PROJECT_COMMENTS}
71
-
72
- ---
73
-
74
- *Project-specific conventions above were derived from codebase analysis and supplement the defaults.*
@@ -1,24 +0,0 @@
1
- # Testing Patterns
2
-
3
- ## Organization
4
-
5
- {Co-located with source or separate directory? Naming pattern for test files?}
6
-
7
- ## Patterns
8
-
9
- {Project-specific test structure — describe how tests are organized within a file, setup/teardown conventions}
10
-
11
- ## Mocking
12
-
13
- **Approach:**
14
- - {Mocking framework/tool used}
15
-
16
- **What to mock:**
17
- - {Guidelines — e.g., external APIs, database calls}
18
-
19
- **What NOT to mock:**
20
- - {Guidelines — e.g., pure business logic, utility functions}
21
-
22
- ## Gotchas
23
-
24
- {Things that trip people up: setup/teardown quirks, env requirements, flaky areas, test-specific config}
@@ -1,55 +0,0 @@
1
- # Fix Plan: {TICKET-ID}
2
-
3
- **Feature:** {feature-name}
4
- **Generated:** {timestamp}
5
- **Verification Status:** PARTIAL | FAILED
6
-
7
- ---
8
-
9
- ## Infrastructure Fixes
10
-
11
- {If no infrastructure issues: "No infrastructure issues found."}
12
-
13
- | # | File | Issue | Fix | Complexity |
14
- |---|------|-------|-----|------------|
15
- | 1 | {path} | {description} | {what to do} | simple / moderate / complex |
16
-
17
- ## Feature Gap Fixes
18
-
19
- {If no feature gaps or Layer 2 was skipped: "No feature gaps found." or "Skipped — no plan.md available."}
20
-
21
- | # | File | Issue | Fix | Complexity |
22
- |---|------|-------|-----|------------|
23
- | 1 | {path} | {criterion or requirement not met} | {what to change} | simple / moderate / complex |
24
-
25
- ## Quality Fixes
26
-
27
- {If no quality issues: "No quality issues found."}
28
-
29
- | # | File | Issue | Fix | Complexity |
30
- |---|------|-------|-----|------------|
31
- | 1 | {test-file-path} | No test file for {component} | Create test file | simple / moderate |
32
-
33
- ---
34
-
35
- ## Summary
36
-
37
- | Category | Count |
38
- |----------|-------|
39
- | Infrastructure | {N} |
40
- | Feature Gaps | {N} |
41
- | Quality | {N} |
42
- | **Total** | **{N}** |
43
-
44
- ---
45
-
46
- ## Results
47
-
48
- {Populated after fixes are applied}
49
-
50
- | # | File | Fix | Status |
51
- |---|------|----|--------|
52
- | 1 | {path} | {description} | APPLIED / FAILED |
53
-
54
- **Build after fixes:** {status}
55
- **Tests after fixes:** {status}
@@ -1,42 +0,0 @@
1
- ---
2
- ticket: {TICKET-ID}
3
- feature: {feature-name}
4
- created: {ISO-timestamp}
5
- planFormat: compact
6
- ---
7
-
8
- <!-- PLAN RULES:
9
- - Use only for low-risk changes with 1-2 components.
10
- - Write requirements and implementation intent, not code.
11
- - Keep the Component Checklist human-readable. Do not add step/model/pattern/verify columns.
12
- - Decisions must be labeled [DECIDED], [FLEXIBLE], or [DEFERRED].
13
- -->
14
-
15
- # Plan: {TICKET-ID} - {Title}
16
-
17
- ## Overview
18
-
19
- {Short narrative describing the problem and desired outcome.}
20
-
21
- ## Scope
22
-
23
- - In: {included work}
24
- - Out: {excluded work}
25
-
26
- ## Acceptance Criteria
27
-
28
- - [ ] {Observable success criterion}
29
-
30
- ## Decisions
31
-
32
- - [DECIDED] {Decision and rationale}
33
-
34
- ## Existing Patterns to Follow
35
-
36
- - `{path}` - {what pattern this provides}
37
-
38
- ## Component Checklist
39
-
40
- | Component | Action | Target Path | Intent |
41
- |-----------|--------|-------------|--------|
42
- | {component-name} | modify | `{path}` | {one-sentence intent} |
@@ -1,76 +0,0 @@
1
- ---
2
- ticket: {TICKET-ID}
3
- feature: {feature-name}
4
- created: {ISO-timestamp}
5
- ---
6
-
7
- <!-- PLAN RULES:
8
- - One planning artifact only: this file.
9
- - Write requirements and implementation intent, not code.
10
- - Keep the Component Checklist human-readable. Do not add step/model/pattern/verify columns; step-orchestrator-agent derives those into state.json.
11
- - Existing Patterns to Follow should name high-value files and conventions so the orchestrator can wire executor prompts cheaply.
12
- - Decisions must be labeled [DECIDED], [FLEXIBLE], or [DEFERRED].
13
- - Omit optional sections when they would only contain "none", "n/a", or placeholder content.
14
- -->
15
-
16
- # Plan: {TICKET-ID} - {Title}
17
-
18
- ## Overview
19
-
20
- {Short narrative describing the problem, desired outcome, and why this change is needed.}
21
-
22
- ## What Changes
23
-
24
- - {Logical behavior or capability that changes}
25
- - {User-visible or system-visible outcome}
26
-
27
- ## Existing Patterns to Follow
28
-
29
- - `{path}` - {what pattern this provides}
30
- - `{path}` - {what convention this establishes}
31
-
32
- ## Constraints
33
-
34
- - {Technical, product, compatibility, performance, or rollout constraint}
35
-
36
- ## Scope
37
-
38
- ### In
39
-
40
- - {Included work}
41
-
42
- ### Out
43
-
44
- - {Explicitly excluded work}
45
-
46
- ## Acceptance Criteria
47
-
48
- - [ ] {Observable success criterion}
49
- - [ ] {Observable success criterion}
50
-
51
- ## Decisions
52
-
53
- - [DECIDED] {Decision and rationale}
54
- - [FLEXIBLE] {Area where implementation may choose the best local pattern}
55
- - [DEFERRED] {Work intentionally not included}
56
-
57
- ## Module Impact
58
-
59
- | Module/Area | Impact |
60
- |-------------|--------|
61
- | {module} | {create/modify/delete behavior at a high level} |
62
-
63
- ## Component Checklist
64
-
65
- | Component | Action | Target Path | Intent |
66
- |-----------|--------|-------------|--------|
67
- | {component-name} | create | `{path}` | {one-sentence intent} |
68
- | {component-name} | modify | `{path}` | {one-sentence intent} |
69
-
70
- ## Technical Notes
71
-
72
- - {Important implementation context, invariants, or migration notes}
73
-
74
- ## Alternatives Considered
75
-
76
- - {Alternative}: {why it was not chosen}
@@ -1,53 +0,0 @@
1
- # Code Review Summary
2
-
3
- **Reviewed:** {scope}
4
- **Timestamp:** {ISO-timestamp}
5
- **User Decisions:** {summary of user choices}
6
-
7
- ## Summary
8
-
9
- - **Total Issues:** {N}
10
- - **Applied with User Approval:** {N}
11
- - **User-Resolved Questions:** {N}
12
- - **Manual Review Needed:** {N}
13
- - **Skipped by User:** {N}
14
- - **Deferred by User:** {N}
15
-
16
- ## Applied Fixes (User Approved)
17
-
18
- - `{file-path}:{line}` - {description of fix}
19
- - `{file-path}:{line}` - {description of fix}
20
-
21
- ## User-Resolved Questions
22
-
23
- - `{file-path}:{line}` - {description} (user answered: {answer})
24
-
25
- ## Manual Review Needed
26
-
27
- - `{file-path}:{line}` - {description}
28
-
29
- ## Skipped Issues
30
-
31
- - `{file-path}:{line}` - User chose not to apply
32
-
33
- ## Deferred Issues
34
-
35
- - `{file-path}:{line}` - User chose to wait
36
-
37
- ## Files Modified
38
-
39
- - {file-path} ({N} fixes applied)
40
-
41
- ## PR Comment Replies
42
-
43
- - **Posted:** {N}
44
- - **Failed:** {N}
45
- - **Skipped:** {N} - {reason}
46
- - **Errors:** {none-or-summary}
47
-
48
- ## Post-Fix Verification
49
-
50
- - **Build:** {passed/failed/skipped} - `{command-or-none}` - {one-line summary}
51
- - **Tests:** {passed/failed/skipped} - `{command-or-none}` - {one-line summary}
52
- - **E2E:** {passed/failed/skipped} - `{command-or-none}` - {one-line summary}
53
- - **Lint:** {passed/failed/skipped} - `{command-or-none}` - {one-line summary}