431 lines
12 KiB
YAML
431 lines
12 KiB
YAML
name: structural-reform
|
|
description: Full project review and structural reform - iterative codebase restructuring with staged file splits
|
|
max_movements: 50
|
|
initial_movement: review
|
|
loop_monitors:
|
|
- cycle:
|
|
- implement
|
|
- fix
|
|
threshold: 3
|
|
judge:
|
|
persona: supervisor
|
|
instruction_template: |
|
|
The implement -> reviewers -> fix loop has repeated {cycle_count} times for the current reform target.
|
|
|
|
Review the reports from each cycle and determine whether this loop
|
|
is making progress or repeating the same issues.
|
|
|
|
**Reports to reference:**
|
|
- Architect review: {report:04-architect-review.md}
|
|
- QA review: {report:05-qa-review.md}
|
|
|
|
**Judgment criteria:**
|
|
- Are review findings being addressed in each fix cycle?
|
|
- Are the same issues recurring without resolution?
|
|
- Is the implementation converging toward approval?
|
|
rules:
|
|
- condition: Healthy (making progress toward approval)
|
|
next: implement
|
|
- condition: Unproductive (same issues recurring, no convergence)
|
|
next: next_target
|
|
movements:
|
|
- name: review
|
|
edit: false
|
|
persona: architecture-reviewer
|
|
policy: review
|
|
knowledge:
|
|
- architecture
|
|
- backend
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: review (full project review)
|
|
|
|
## User Request
|
|
{task}
|
|
|
|
## Instructions
|
|
Conduct a comprehensive structural review of the entire project codebase.
|
|
|
|
**Focus areas:**
|
|
1. **God Classes/Functions**: Files exceeding 300 lines, classes with multiple responsibilities
|
|
2. **Coupling**: Circular dependencies, tight coupling between modules
|
|
3. **Cohesion**: Low-cohesion modules mixing unrelated concerns
|
|
4. **Testability**: Untestable code due to tight coupling or side effects
|
|
5. **Layer violations**: Wrong dependency directions, domain logic in adapters
|
|
6. **DRY violations**: Duplicated logic across 3+ locations
|
|
|
|
**For each issue found, report:**
|
|
- File path and line count
|
|
- Problem category (God Class, Low Cohesion, etc.)
|
|
- Severity (Critical / High / Medium)
|
|
- Specific responsibilities that should be separated
|
|
- Dependencies that would be affected by splitting
|
|
|
|
**Output format:**
|
|
|
|
```markdown
|
|
# Full Project Structural Review
|
|
|
|
## Summary
|
|
- Total files reviewed: N
|
|
- Issues found: N (Critical: N, High: N, Medium: N)
|
|
|
|
## Critical Issues
|
|
|
|
### 1. {File path} ({line count} lines)
|
|
- **Problem**: {category}
|
|
- **Severity**: Critical
|
|
- **Responsibilities found**:
|
|
1. {responsibility 1}
|
|
2. {responsibility 2}
|
|
- **Proposed split**:
|
|
- `{new-file-1}.ts`: {responsibility}
|
|
- `{new-file-2}.ts`: {responsibility}
|
|
- **Affected dependents**: {files that import this module}
|
|
|
|
## High Priority Issues
|
|
...
|
|
|
|
## Medium Priority Issues
|
|
...
|
|
|
|
## Dependency Graph Concerns
|
|
- {circular dependencies, layering violations}
|
|
|
|
## Recommended Reform Order
|
|
1. {file} - {reason for priority}
|
|
2. {file} - {reason for priority}
|
|
```
|
|
rules:
|
|
- condition: Full review is complete with findings
|
|
next: plan_reform
|
|
- condition: No structural issues found
|
|
next: COMPLETE
|
|
output_contracts:
|
|
report:
|
|
- name: 00-full-review.md
|
|
|
|
- name: plan_reform
|
|
edit: false
|
|
persona: planner
|
|
knowledge: architecture
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- Bash
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: plan_reform (reform plan creation)
|
|
|
|
## User Request
|
|
{task}
|
|
|
|
## Full Review Results
|
|
{previous_response}
|
|
|
|
## Additional User Inputs
|
|
{user_inputs}
|
|
|
|
## Instructions
|
|
Based on the full review results, create a concrete reform execution plan.
|
|
|
|
**Planning principles:**
|
|
- One file split per iteration (keep changes manageable)
|
|
- Order by dependency: split leaf nodes first, then work inward
|
|
- Each split must leave tests and build passing
|
|
- No backward compatibility concerns (per user instruction)
|
|
|
|
**For each reform target, specify:**
|
|
1. Target file and current line count
|
|
2. Proposed new files with responsibilities
|
|
3. Expected changes to imports in dependent files
|
|
4. Test strategy (new tests needed, existing tests to update)
|
|
5. Risk assessment (what could break)
|
|
|
|
**Output format:**
|
|
|
|
```markdown
|
|
# Structural Reform Plan
|
|
|
|
## Reform Targets (ordered by execution priority)
|
|
|
|
### Target 1: {file path}
|
|
- **Current state**: {line count} lines, {N} responsibilities
|
|
- **Proposed split**:
|
|
| New file | Responsibility | Estimated lines |
|
|
|----------|---------------|-----------------|
|
|
| `{path}` | {responsibility} | ~{N} |
|
|
- **Dependent files**: {list of files that import this}
|
|
- **Test plan**: {what tests to add/update}
|
|
- **Risk**: {Low/Medium/High} - {description}
|
|
|
|
### Target 2: {file path}
|
|
...
|
|
|
|
## Execution Order Rationale
|
|
{Why this order minimizes risk and dependency conflicts}
|
|
|
|
## Success Criteria
|
|
- All tests pass after each split
|
|
- Build succeeds after each split
|
|
- No file exceeds 300 lines
|
|
- Each file has single responsibility
|
|
```
|
|
rules:
|
|
- condition: Reform plan is complete and ready to execute
|
|
next: implement
|
|
- condition: No actionable reforms identified
|
|
next: COMPLETE
|
|
- condition: Requirements unclear, need user input
|
|
next: ABORT
|
|
appendix: |
|
|
Clarifications needed:
|
|
- {Question 1}
|
|
- {Question 2}
|
|
output_contracts:
|
|
report:
|
|
- name: 01-reform-plan.md
|
|
format: plan
|
|
|
|
- name: implement
|
|
edit: true
|
|
persona: coder
|
|
policy:
|
|
- coding
|
|
- testing
|
|
session: refresh
|
|
knowledge:
|
|
- backend
|
|
- architecture
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- Edit
|
|
- Write
|
|
- Bash
|
|
- WebSearch
|
|
- WebFetch
|
|
permission_mode: edit
|
|
instruction: implement
|
|
rules:
|
|
- condition: Implementation complete
|
|
next: reviewers
|
|
- condition: Cannot proceed, insufficient info
|
|
next: reviewers
|
|
- condition: User input required
|
|
next: implement
|
|
requires_user_input: true
|
|
interactive_only: true
|
|
output_contracts:
|
|
report:
|
|
- Scope: 02-coder-scope.md
|
|
- Decisions: 03-coder-decisions.md
|
|
|
|
- name: reviewers
|
|
parallel:
|
|
- name: arch-review
|
|
edit: false
|
|
persona: architecture-reviewer
|
|
policy: review
|
|
knowledge:
|
|
- architecture
|
|
- backend
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
rules:
|
|
- condition: approved
|
|
- condition: needs_fix
|
|
instruction: review-arch
|
|
output_contracts:
|
|
report:
|
|
- name: 04-architect-review.md
|
|
format: architecture-review
|
|
- name: qa-review
|
|
edit: false
|
|
persona: qa-reviewer
|
|
policy:
|
|
- review
|
|
- qa
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
rules:
|
|
- condition: approved
|
|
- condition: needs_fix
|
|
instruction: review-qa
|
|
output_contracts:
|
|
report:
|
|
- name: 05-qa-review.md
|
|
format: qa-review
|
|
rules:
|
|
- condition: all("approved")
|
|
next: verify
|
|
- condition: any("needs_fix")
|
|
next: fix
|
|
|
|
- name: fix
|
|
edit: true
|
|
persona: coder
|
|
policy:
|
|
- coding
|
|
- testing
|
|
knowledge:
|
|
- backend
|
|
- architecture
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- Edit
|
|
- Write
|
|
- Bash
|
|
- WebSearch
|
|
- WebFetch
|
|
permission_mode: edit
|
|
rules:
|
|
- condition: Fix complete
|
|
next: reviewers
|
|
- condition: Cannot proceed, insufficient info
|
|
next: plan_reform
|
|
instruction: fix
|
|
|
|
- name: verify
|
|
edit: false
|
|
persona: supervisor
|
|
policy: review
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- Bash
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: verify (build and test verification)
|
|
|
|
## Instructions
|
|
Verify that the current reform step has been completed successfully.
|
|
|
|
**Verification checklist:**
|
|
1. **Build**: Run the build command and confirm it passes
|
|
2. **Tests**: Run the test suite and confirm all tests pass
|
|
3. **File sizes**: Confirm no new file exceeds 300 lines
|
|
4. **Single responsibility**: Confirm each new file has a clear, single purpose
|
|
5. **Import consistency**: Confirm all imports are updated correctly
|
|
|
|
**Report format:**
|
|
|
|
```markdown
|
|
# Verification Results
|
|
|
|
## Result: PASS / FAIL
|
|
|
|
| Check | Status | Details |
|
|
|-------|--------|---------|
|
|
| Build | PASS/FAIL | {output summary} |
|
|
| Tests | PASS/FAIL | {N passed, N failed} |
|
|
| File sizes | PASS/FAIL | {any file > 300 lines} |
|
|
| Single responsibility | PASS/FAIL | {assessment} |
|
|
| Import consistency | PASS/FAIL | {any broken imports} |
|
|
|
|
## Issues (if FAIL)
|
|
1. {issue description}
|
|
```
|
|
rules:
|
|
- condition: All verifications passed
|
|
next: next_target
|
|
- condition: Verification failed
|
|
next: fix
|
|
output_contracts:
|
|
report:
|
|
- name: 06-verification.md
|
|
format: validation
|
|
|
|
- name: next_target
|
|
edit: false
|
|
persona: planner
|
|
knowledge: architecture
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- Bash
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: next_target (progress check and next target selection)
|
|
|
|
## Original Reform Plan
|
|
{report:01-reform-plan.md}
|
|
|
|
## Latest Verification
|
|
{previous_response}
|
|
|
|
## Instructions
|
|
Assess the progress of the structural reform and determine the next action.
|
|
|
|
**Steps:**
|
|
1. Review the reform plan and identify which targets have been completed
|
|
2. Check the current codebase state against the plan
|
|
3. Determine if there are remaining reform targets
|
|
|
|
**Output format:**
|
|
|
|
```markdown
|
|
# Reform Progress
|
|
|
|
## Completed Targets
|
|
| # | Target | Status |
|
|
|---|--------|--------|
|
|
| 1 | {file} | Completed |
|
|
| 2 | {file} | Completed |
|
|
|
|
## Remaining Targets
|
|
| # | Target | Priority |
|
|
|---|--------|----------|
|
|
| 3 | {file} | Next |
|
|
| 4 | {file} | Pending |
|
|
|
|
## Next Action
|
|
- **Target**: {next file to reform}
|
|
- **Plan**: {brief description of the split}
|
|
|
|
## Overall Progress
|
|
{N}/{total} targets completed. Estimated remaining iterations: {N}
|
|
```
|
|
rules:
|
|
- condition: More reform targets remain
|
|
next: implement
|
|
- condition: All reform targets completed
|
|
next: COMPLETE
|
|
output_contracts:
|
|
report:
|
|
- name: 07-progress.md
|