cc-devflow 2.4.6 → 4.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/.claude/CLAUDE.md +1065 -48
- package/.claude/agents/dev-implementer.md +195 -0
- package/.claude/commands/{flow-archive.md → flow/archive.md} +46 -11
- package/.claude/commands/flow/context.md +150 -0
- package/.claude/commands/flow/delta.md +245 -0
- package/.claude/commands/{flow-dev.md → flow/dev.md} +112 -11
- package/.claude/commands/flow/init.md +45 -0
- package/.claude/commands/flow/quality.md +159 -0
- package/.claude/commands/flow/spec.md +186 -0
- package/.claude/commands/flow/workspace.md +146 -0
- package/.claude/commands/{cancel-ralph.md → util/cancel-ralph.md} +1 -0
- package/.claude/config/quality-gates.yml +305 -0
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +313 -0
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +91 -0
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +151 -0
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +75 -0
- package/.claude/docs/templates/_shared/CLAUDE.md +36 -0
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +125 -0
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +187 -0
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +164 -0
- package/.claude/docs/templates/context/dev.jsonl.template +6 -0
- package/.claude/docs/templates/context/epic.jsonl.template +5 -0
- package/.claude/docs/templates/context/prd.jsonl.template +4 -0
- package/.claude/docs/templates/context/research.jsonl.template +4 -0
- package/.claude/docs/templates/context/review.jsonl.template +5 -0
- package/.claude/docs/templates/context/tech.jsonl.template +5 -0
- package/.claude/hooks/CLAUDE.md +342 -0
- package/.claude/hooks/inject-agent-context.ts +480 -0
- package/.claude/hooks/inject-skill-context.ts +359 -0
- package/.claude/hooks/ralph-loop.ts +931 -0
- package/.claude/hooks/task-completed-hook.ts +593 -0
- package/.claude/hooks/teammate-idle-hook.ts +690 -0
- package/.claude/hooks/types/team-types.d.ts +238 -0
- package/.claude/rules/devflow-conventions.md +82 -9
- package/.claude/scripts/archive-requirement.sh +44 -1
- package/.claude/scripts/common.sh +670 -3
- package/.claude/scripts/delta-parser.ts +527 -0
- package/.claude/scripts/detect-file-conflicts.sh +151 -0
- package/.claude/scripts/flow-context-add.sh +134 -0
- package/.claude/scripts/flow-context-init.sh +133 -0
- package/.claude/scripts/flow-context-validate.sh +144 -0
- package/.claude/scripts/flow-delta-apply.sh +297 -0
- package/.claude/scripts/flow-delta-archive.sh +71 -0
- package/.claude/scripts/flow-delta-create.sh +202 -0
- package/.claude/scripts/flow-delta-list.sh +142 -0
- package/.claude/scripts/flow-delta-status.sh +235 -0
- package/.claude/scripts/flow-quality-full.sh +184 -0
- package/.claude/scripts/flow-quality-quick.sh +64 -0
- package/.claude/scripts/flow-workspace-init.sh +117 -0
- package/.claude/scripts/flow-workspace-record.sh +164 -0
- package/.claude/scripts/flow-workspace-start.sh +88 -0
- package/.claude/scripts/get-workflow-status.sh +415 -0
- package/.claude/scripts/parse-task-dependencies.js +334 -0
- package/.claude/scripts/record-quality-error.sh +165 -0
- package/.claude/scripts/run-quality-gates.sh +242 -0
- package/.claude/scripts/team-dev-init.sh +319 -0
- package/.claude/scripts/team-state-recovery.sh +229 -0
- package/.claude/scripts/workflow-status.ts +433 -0
- package/.claude/settings.json +19 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +85 -200
- package/.claude/skills/domain/using-git-worktrees/SKILL.md +252 -0
- package/.claude/skills/domain/using-git-worktrees/assets/SHELL_ALIASES.md +133 -0
- package/.claude/skills/domain/using-git-worktrees/context.jsonl +4 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-cleanup.sh +218 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-create.sh +232 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-list.sh +130 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-status.sh +140 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-switch.sh +70 -0
- package/.claude/skills/skill-rules.json +72 -1
- package/.claude/skills/utility/journey-checker/SKILL.md +199 -0
- package/.claude/skills/utility/journey-checker/pressure-scenarios.md +164 -0
- package/.claude/skills/utility/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/utility/skill-creator/SKILL.md +356 -0
- package/.claude/skills/utility/skill-creator/references/output-patterns.md +82 -0
- package/.claude/skills/utility/skill-creator/references/workflows.md +28 -0
- package/.claude/skills/utility/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/utility/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +95 -0
- package/.claude/skills/workflow/flow-dev/CLAUDE.md +78 -0
- package/.claude/skills/workflow/flow-dev/SKILL.md +96 -0
- package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +71 -0
- package/.claude/skills/workflow/flow-dev/context.jsonl +8 -0
- package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +8 -0
- package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +116 -0
- package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +101 -0
- package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +106 -0
- package/.claude/skills/workflow/flow-fix/SKILL.md +105 -0
- package/.claude/skills/workflow/flow-fix/context.jsonl +6 -0
- package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +381 -0
- package/.claude/skills/workflow/flow-init/SKILL.md +211 -0
- package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +148 -0
- package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +198 -0
- package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +276 -0
- package/.claude/skills/workflow/flow-init/context.jsonl +5 -0
- package/.claude/skills/workflow/flow-init/references/flow-researcher.md +132 -0
- package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +232 -0
- package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +182 -0
- package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +515 -0
- package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +157 -0
- package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +284 -0
- package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +332 -0
- package/.claude/skills/workflow/flow-quality/SKILL.md +94 -0
- package/.claude/skills/workflow/flow-quality/context.jsonl +6 -0
- package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +205 -0
- package/.claude/skills/workflow/flow-quality/references/qa-tester.md +313 -0
- package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +314 -0
- package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +221 -0
- package/.claude/skills/workflow/flow-release/SKILL.md +126 -0
- package/.claude/skills/workflow/flow-release/context.jsonl +7 -0
- package/.claude/skills/workflow/flow-release/references/release-manager.md +295 -0
- package/.claude/skills/workflow/flow-spec/CLAUDE.md +103 -0
- package/.claude/skills/workflow/flow-spec/SKILL.md +545 -0
- package/.claude/skills/workflow/flow-spec/context.jsonl +7 -0
- package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +194 -0
- package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +244 -0
- package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +205 -0
- package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +353 -0
- package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +195 -0
- package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +496 -0
- package/.claude/skills/workflow/flow-spec/team-config.json +165 -0
- package/.claude/skills/workflow.yaml +417 -0
- package/CHANGELOG.md +254 -0
- package/README.md +193 -33
- package/README.zh-CN.md +206 -46
- package/lib/compiler/CLAUDE.md +77 -46
- package/lib/compiler/__tests__/multi-module-emitters.test.js +508 -0
- package/lib/compiler/context-expander.js +179 -0
- package/lib/compiler/emitters/antigravity-emitter.js +195 -5
- package/lib/compiler/emitters/base-emitter.js +217 -2
- package/lib/compiler/emitters/codex-emitter.js +200 -4
- package/lib/compiler/emitters/cursor-emitter.js +307 -3
- package/lib/compiler/emitters/qwen-emitter.js +196 -4
- package/lib/compiler/index.js +197 -2
- package/lib/compiler/platforms.js +270 -21
- package/package.json +1 -1
- package/.claude/commands/flow-epic.md +0 -183
- package/.claude/commands/flow-init.md +0 -370
- package/.claude/commands/flow-prd.md +0 -144
- package/.claude/commands/flow-qa.md +0 -93
- package/.claude/commands/flow-review.md +0 -257
- package/.claude/commands/flow-tech.md +0 -142
- package/.claude/commands/flow-ui.md +0 -189
- package/.claude/skills/file-header-guardian/SKILL.md +0 -56
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -426
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/writing-skills/SKILL.md +0 -655
- package/.claude/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/.claude/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/.claude/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/.claude/skills/writing-skills/persuasion-principles.md +0 -187
- package/.claude/skills/writing-skills/render-graphs.js +0 -168
- package/.claude/skills/writing-skills/testing-skills-with-subagents.md +0 -384
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +0 -1
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +0 -1
- /package/.claude/commands/{core-architecture.md → core/architecture.md} +0 -0
- /package/.claude/commands/{core-guidelines.md → core/guidelines.md} +0 -0
- /package/.claude/commands/{core-roadmap.md → core/roadmap.md} +0 -0
- /package/.claude/commands/{core-style.md → core/style.md} +0 -0
- /package/.claude/commands/{flow-checklist.md → flow/checklist.md} +0 -0
- /package/.claude/commands/{flow-clarify.md → flow/clarify.md} +0 -0
- /package/.claude/commands/{flow-constitution.md → flow/constitution.md} +0 -0
- /package/.claude/commands/{flow-fix.md → flow/fix.md} +0 -0
- /package/.claude/commands/{flow-ideate.md → flow/ideate.md} +0 -0
- /package/.claude/commands/{flow-new.md → flow/new.md} +0 -0
- /package/.claude/commands/{flow-release.md → flow/release.md} +0 -0
- /package/.claude/commands/{flow-restart.md → flow/restart.md} +0 -0
- /package/.claude/commands/{flow-status.md → flow/status.md} +0 -0
- /package/.claude/commands/{flow-update.md → flow/update.md} +0 -0
- /package/.claude/commands/{flow-upgrade.md → flow/upgrade.md} +0 -0
- /package/.claude/commands/{flow-verify.md → flow/verify.md} +0 -0
- /package/.claude/commands/{code-review-high.md → util/code-review.md} +0 -0
- /package/.claude/commands/{git-commit.md → util/git-commit.md} +0 -0
- /package/.claude/commands/{problem-analyzer.md → util/problem-analyzer.md} +0 -0
- /package/.claude/skills/{flow-attention-refresh → domain/attention-refresh}/SKILL.md +0 -0
- /package/.claude/skills/{flow-brainstorming → domain/brainstorming}/SKILL.md +0 -0
- /package/.claude/skills/{flow-debugging → domain/debugging}/SKILL.md +0 -0
- /package/.claude/skills/{flow-finishing-branch → domain/finishing-branch}/SKILL.md +0 -0
- /package/.claude/skills/{flow-receiving-review → domain/receiving-review}/SKILL.md +0 -0
- /package/.claude/skills/{flow-tdd → domain/tdd}/SKILL.md +0 -0
- /package/.claude/skills/{verification-before-completion → domain/verification}/SKILL.md +0 -0
- /package/.claude/skills/{constitution-guardian → guardrail/constitution-guardian}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-tdd-enforcer → guardrail/tdd-enforcer}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-constitution-quick-ref → utility/constitution-quick-ref}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-file-standards → utility/file-standards}/SKILL.md +0 -0
- /package/.claude/skills/{fractal-docs-generator → utility/fractal-docs}/SKILL.md +0 -0
- /package/.claude/skills/{npm-release → utility/npm-release}/SKILL.md +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-quality
|
|
3
|
+
description: 'Combined quality verification (replaces flow-review + flow-qa). Usage: /flow-quality [REQ-ID] [--full]'
|
|
4
|
+
version: 3.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Flow-Quality Skill
|
|
8
|
+
|
|
9
|
+
> [PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
合并的质量验证命令,替代 `/flow-review` 和 `/flow-qa`。
|
|
14
|
+
|
|
15
|
+
## Input Format
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/flow-quality [REQ-ID] # Quick mode (default)
|
|
19
|
+
/flow-quality [REQ-ID] --full # Full mode
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Modes
|
|
23
|
+
|
|
24
|
+
### Quick Mode (Default)
|
|
25
|
+
|
|
26
|
+
快速程序化验证:
|
|
27
|
+
1. Lint Check - `npm run lint`
|
|
28
|
+
2. Type Check - `npm run typecheck`
|
|
29
|
+
3. Unit Tests - `npm test`
|
|
30
|
+
|
|
31
|
+
**Duration**: ~1-2 分钟
|
|
32
|
+
|
|
33
|
+
### Full Mode (`--full`)
|
|
34
|
+
|
|
35
|
+
全面审查:
|
|
36
|
+
1. 程序化检查 (同 Quick)
|
|
37
|
+
2. Spec Compliance Review
|
|
38
|
+
3. Code Quality Review
|
|
39
|
+
4. Security Scan
|
|
40
|
+
5. Integration Tests
|
|
41
|
+
|
|
42
|
+
**Duration**: ~5-10 分钟
|
|
43
|
+
|
|
44
|
+
## Entry Gate
|
|
45
|
+
|
|
46
|
+
1. **development_complete**: true
|
|
47
|
+
2. **TASKS.md**: 所有任务标记 [x]
|
|
48
|
+
3. **Tests**: 全部通过
|
|
49
|
+
|
|
50
|
+
## Exit Gate
|
|
51
|
+
|
|
52
|
+
### Quick Mode
|
|
53
|
+
- lint: pass
|
|
54
|
+
- typecheck: pass
|
|
55
|
+
- tests: pass
|
|
56
|
+
|
|
57
|
+
### Full Mode
|
|
58
|
+
- lint: pass
|
|
59
|
+
- typecheck: pass
|
|
60
|
+
- tests: pass
|
|
61
|
+
- spec_review: PASS
|
|
62
|
+
- code_quality: PASS
|
|
63
|
+
- security: no high-severity issues
|
|
64
|
+
|
|
65
|
+
## Output
|
|
66
|
+
|
|
67
|
+
### Quick Mode
|
|
68
|
+
```
|
|
69
|
+
✅ Quality Gate PASSED (Quick Mode)
|
|
70
|
+
✓ Lint Check
|
|
71
|
+
✓ Type Check
|
|
72
|
+
✓ Unit Tests
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Full Mode
|
|
76
|
+
```
|
|
77
|
+
✅ Quality Gate PASSED (Full Mode)
|
|
78
|
+
Reports Generated:
|
|
79
|
+
- SPEC_REVIEW.md
|
|
80
|
+
- CODE_QUALITY_REVIEW.md
|
|
81
|
+
- SECURITY_REPORT.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Deprecation Notice
|
|
85
|
+
|
|
86
|
+
v3.0 废弃命令:
|
|
87
|
+
- `/flow-review` → 使用 `/flow-quality --full`
|
|
88
|
+
- `/flow-qa` → 使用 `/flow-quality --full`
|
|
89
|
+
|
|
90
|
+
## Next Step
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
/flow-release "${REQ_ID}"
|
|
94
|
+
```
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{"file": "devflow/requirements/{REQ}/TASKS.md", "reason": "Task completion status"}
|
|
2
|
+
{"file": "devflow/requirements/{REQ}/PRD.md", "reason": "Spec compliance check"}
|
|
3
|
+
{"file": "devflow/requirements/{REQ}/TECH_DESIGN.md", "reason": "Technical design", "optional": true}
|
|
4
|
+
{"file": "devflow/requirements/{REQ}/ERROR_LOG.md", "reason": "Previous errors", "optional": true}
|
|
5
|
+
{"file": ".claude/config/quality-gates.yml", "reason": "Quality gate rules", "optional": true}
|
|
6
|
+
{"file": ".claude/rules/project-constitution.md", "reason": "Quality rules"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-quality-reviewer
|
|
3
|
+
description: "Stage 2 of Two-Stage Review: Reviews code quality, structure, and Constitution compliance. Only runs after spec-reviewer passes."
|
|
4
|
+
type: research
|
|
5
|
+
output: CODE_QUALITY_REVIEW.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Code Quality Reviewer Agent
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Second stage of the Two-Stage Review process. Reviews code quality **after** spec compliance is verified.
|
|
13
|
+
|
|
14
|
+
## Prerequisite
|
|
15
|
+
|
|
16
|
+
**Stage 1 (spec-reviewer) MUST pass before this agent runs.**
|
|
17
|
+
|
|
18
|
+
If spec-reviewer found issues, those must be fixed first. Code quality review on non-compliant code is wasted effort.
|
|
19
|
+
|
|
20
|
+
## Review Dimensions
|
|
21
|
+
|
|
22
|
+
### 1. Code Clarity
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
Naming:
|
|
26
|
+
- Variables describe their purpose
|
|
27
|
+
- Functions describe their action
|
|
28
|
+
- Consistent with codebase patterns
|
|
29
|
+
|
|
30
|
+
Structure:
|
|
31
|
+
- Logical organization
|
|
32
|
+
- Clear control flow
|
|
33
|
+
- No deeply nested code (≤3 levels)
|
|
34
|
+
|
|
35
|
+
Comments:
|
|
36
|
+
- WHY, not WHAT
|
|
37
|
+
- No obvious comments
|
|
38
|
+
- Complex logic explained
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Test Quality
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
Coverage:
|
|
45
|
+
- ≥80% line coverage
|
|
46
|
+
- Critical paths covered
|
|
47
|
+
- Edge cases tested
|
|
48
|
+
|
|
49
|
+
Quality:
|
|
50
|
+
- Tests are meaningful (not cheater tests)
|
|
51
|
+
- Tests are independent
|
|
52
|
+
- Tests are fast
|
|
53
|
+
- Test names describe behavior
|
|
54
|
+
|
|
55
|
+
TDD Compliance:
|
|
56
|
+
- Tests written before implementation
|
|
57
|
+
- Tests failed first, then passed
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 3. Constitution Compliance
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
Article I - Quality First:
|
|
64
|
+
- No partial implementations
|
|
65
|
+
- No TODO/FIXME in production code
|
|
66
|
+
- Complete error handling
|
|
67
|
+
|
|
68
|
+
Article II - Architectural Consistency:
|
|
69
|
+
- No code duplication
|
|
70
|
+
- Consistent naming patterns
|
|
71
|
+
- Reuses existing utilities
|
|
72
|
+
|
|
73
|
+
Article III - Security First:
|
|
74
|
+
- No hardcoded secrets
|
|
75
|
+
- Input validation present
|
|
76
|
+
- Secure defaults
|
|
77
|
+
|
|
78
|
+
Article IV - Performance:
|
|
79
|
+
- No resource leaks
|
|
80
|
+
- Efficient algorithms
|
|
81
|
+
- Proper cleanup
|
|
82
|
+
|
|
83
|
+
Article V - Maintainability:
|
|
84
|
+
- No dead code
|
|
85
|
+
- Clear separation of concerns
|
|
86
|
+
- File size ≤500 lines
|
|
87
|
+
|
|
88
|
+
Article VI - TDD:
|
|
89
|
+
- Tests exist for all new code
|
|
90
|
+
- TDD sequence followed
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 4. Performance & Security
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
Performance:
|
|
97
|
+
- No obvious N+1 queries
|
|
98
|
+
- No unnecessary loops
|
|
99
|
+
- Appropriate data structures
|
|
100
|
+
|
|
101
|
+
Security:
|
|
102
|
+
- No SQL injection risks
|
|
103
|
+
- No XSS vulnerabilities
|
|
104
|
+
- Proper authentication checks
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Output Format
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
# Code Quality Review Report - ${REQ_ID}
|
|
111
|
+
|
|
112
|
+
## Summary
|
|
113
|
+
- **Status**: PASS | FAIL | NEEDS_WORK
|
|
114
|
+
- **Quality Score**: X/10
|
|
115
|
+
- **Critical Issues**: N
|
|
116
|
+
- **Warnings**: M
|
|
117
|
+
|
|
118
|
+
## Code Clarity
|
|
119
|
+
|
|
120
|
+
| Aspect | Status | Notes |
|
|
121
|
+
|--------|--------|-------|
|
|
122
|
+
| Naming | ✅/⚠️/❌ | ... |
|
|
123
|
+
| Structure | ✅/⚠️/❌ | ... |
|
|
124
|
+
| Comments | ✅/⚠️/❌ | ... |
|
|
125
|
+
|
|
126
|
+
## Test Quality
|
|
127
|
+
|
|
128
|
+
| Metric | Value | Target | Status |
|
|
129
|
+
|--------|-------|--------|--------|
|
|
130
|
+
| Coverage | X% | ≥80% | ✅/❌ |
|
|
131
|
+
| Test Count | N | - | - |
|
|
132
|
+
| TDD Compliance | Yes/No | Yes | ✅/❌ |
|
|
133
|
+
|
|
134
|
+
### Test Issues
|
|
135
|
+
- [Issue 1]
|
|
136
|
+
- [Issue 2]
|
|
137
|
+
|
|
138
|
+
## Constitution Compliance
|
|
139
|
+
|
|
140
|
+
| Article | Status | Violations |
|
|
141
|
+
|---------|--------|------------|
|
|
142
|
+
| I - Quality First | ✅/❌ | ... |
|
|
143
|
+
| II - Architectural | ✅/❌ | ... |
|
|
144
|
+
| III - Security | ✅/❌ | ... |
|
|
145
|
+
| IV - Performance | ✅/❌ | ... |
|
|
146
|
+
| V - Maintainability | ✅/❌ | ... |
|
|
147
|
+
| VI - TDD | ✅/❌ | ... |
|
|
148
|
+
|
|
149
|
+
## Performance & Security
|
|
150
|
+
|
|
151
|
+
### Performance Issues
|
|
152
|
+
- [Issue 1]
|
|
153
|
+
|
|
154
|
+
### Security Issues
|
|
155
|
+
- [Issue 1]
|
|
156
|
+
|
|
157
|
+
## Recommendations
|
|
158
|
+
|
|
159
|
+
### Critical (Must Fix)
|
|
160
|
+
1. [Issue and fix]
|
|
161
|
+
|
|
162
|
+
### Warnings (Should Fix)
|
|
163
|
+
1. [Issue and suggestion]
|
|
164
|
+
|
|
165
|
+
### Suggestions (Nice to Have)
|
|
166
|
+
1. [Improvement idea]
|
|
167
|
+
|
|
168
|
+
## Verdict
|
|
169
|
+
|
|
170
|
+
**PASS**: Code quality meets standards
|
|
171
|
+
**FAIL**: [List critical issues]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Severity Levels
|
|
175
|
+
|
|
176
|
+
| Level | Description | Action |
|
|
177
|
+
|-------|-------------|--------|
|
|
178
|
+
| **Critical** | Security vulnerability, data loss risk | Block merge |
|
|
179
|
+
| **High** | Constitution violation, major bug | Must fix |
|
|
180
|
+
| **Medium** | Code smell, minor issue | Should fix |
|
|
181
|
+
| **Low** | Style, suggestion | Optional |
|
|
182
|
+
|
|
183
|
+
## Rationalization Prevention
|
|
184
|
+
|
|
185
|
+
| Excuse | Reality |
|
|
186
|
+
|--------|---------|
|
|
187
|
+
| "It works" | Working ≠ quality. Review the code. |
|
|
188
|
+
| "Tests pass" | Passing tests ≠ good tests. Check quality. |
|
|
189
|
+
| "Time pressure" | Quality saves time long-term. |
|
|
190
|
+
| "Minor issue" | Minor issues compound. Fix them. |
|
|
191
|
+
|
|
192
|
+
## Integration
|
|
193
|
+
|
|
194
|
+
This agent is called by `/flow-review` command as Stage 2.
|
|
195
|
+
|
|
196
|
+
```yaml
|
|
197
|
+
/flow-review execution:
|
|
198
|
+
Stage 1: spec-reviewer → SPEC_REVIEW.md
|
|
199
|
+
↓ (must pass)
|
|
200
|
+
Stage 2: code-quality-reviewer → CODE_QUALITY_REVIEW.md
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-tester
|
|
3
|
+
description: Research-type agent called TWICE during development flow - once before implementation to create test plans, once after implementation to analyze results and generate reports.
|
|
4
|
+
tools: Read, Write, Grep, Glob
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a QA engineer specializing in test planning and quality assurance strategy.
|
|
9
|
+
|
|
10
|
+
Your role - **DUAL PHASE OPERATION**:
|
|
11
|
+
|
|
12
|
+
## Phase 1: Pre-Implementation (Test Planning)
|
|
13
|
+
Called by main agent BEFORE code implementation with prompt containing "test plan":
|
|
14
|
+
- **For Requirements**: Analyze requirements (PRD, EPIC, tasks) and create comprehensive test plans
|
|
15
|
+
- **For BUG Fixes**: Analyze BUG analysis and fix plans to create regression test strategies
|
|
16
|
+
- Design test strategies to meet quality thresholds
|
|
17
|
+
- Create detailed test execution plans for main agent
|
|
18
|
+
- **Output**: TEST_PLAN.md
|
|
19
|
+
|
|
20
|
+
## Phase 2: Post-Implementation (Test Analysis & Reporting)
|
|
21
|
+
Called by main agent AFTER code implementation with prompt containing "test report":
|
|
22
|
+
- **For Requirements**: Analyze implemented code and executed test results
|
|
23
|
+
- **For BUG Fixes**: Analyze BUG fix implementation and verify resolution
|
|
24
|
+
- Review test coverage and quality metrics
|
|
25
|
+
- Generate comprehensive testing assessment
|
|
26
|
+
- **Output**: TEST_REPORT.md
|
|
27
|
+
|
|
28
|
+
**IMPORTANT**:
|
|
29
|
+
- You do NOT execute tests directly - only create plans and analyze results
|
|
30
|
+
- You MUST immediately generate the specified document file when called
|
|
31
|
+
- Use Write tool to create the document at the exact path specified
|
|
32
|
+
- Use unified script infrastructure for path management and logging
|
|
33
|
+
|
|
34
|
+
## Rules Integration
|
|
35
|
+
You MUST follow these rules during testing:
|
|
36
|
+
|
|
37
|
+
1. **Standard Patterns**:
|
|
38
|
+
- Apply Fail Fast principle: validate test requirements before execution
|
|
39
|
+
- Use Clear Errors when tests fail with detailed failure descriptions
|
|
40
|
+
- Maintain Minimal Output with concise test reports and coverage metrics
|
|
41
|
+
- Follow Trust System principle for existing test infrastructure
|
|
42
|
+
|
|
43
|
+
2. **Agent Coordination**:
|
|
44
|
+
- Update status in LOG.md when testing begins and completes
|
|
45
|
+
- Implement proper error propagation back to main agent
|
|
46
|
+
- Coordinate with flow-orchestrator for quality gate enforcement
|
|
47
|
+
- Use file locks to prevent concurrent test execution conflicts
|
|
48
|
+
|
|
49
|
+
3. **Test Execution**:
|
|
50
|
+
- Never mock external services in integration tests
|
|
51
|
+
- Capture verbose test output for comprehensive audit trails
|
|
52
|
+
- Enforce minimum coverage thresholds as defined in QUALITY.md
|
|
53
|
+
- Run tests in isolated environments to prevent interference
|
|
54
|
+
|
|
55
|
+
4. **DateTime Handling**:
|
|
56
|
+
- Include ISO 8601 UTC timestamps in test reports and logs
|
|
57
|
+
- Use real system time for test execution timing metrics
|
|
58
|
+
- Handle timezone-aware testing scenarios correctly
|
|
59
|
+
- Support cross-platform datetime operations in test data
|
|
60
|
+
|
|
61
|
+
5. **DevFlow Patterns** (${DEVFLOW_CLAUDE_DIR:-.claude}/rules/devflow-conventions.md):
|
|
62
|
+
- Enforce REQ-ID format in test documentation and reports
|
|
63
|
+
- Use standardized test report structure from templates
|
|
64
|
+
- Apply consistent test naming conventions and organization
|
|
65
|
+
- Maintain traceability from tests back to acceptance criteria
|
|
66
|
+
|
|
67
|
+
## Script Integration
|
|
68
|
+
You MUST use the unified script infrastructure for all operations:
|
|
69
|
+
|
|
70
|
+
1. **Get Requirement Paths**: Use `check-prerequisites.sh` to retrieve paths
|
|
71
|
+
```bash
|
|
72
|
+
# Get paths in JSON format
|
|
73
|
+
${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/check-prerequisites.sh --json --require-epic --require-tasks
|
|
74
|
+
|
|
75
|
+
# Expected output includes REQ_ID, REQ_DIR, and all available documents
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
2. **Validate Prerequisites**: Check available context before test planning
|
|
79
|
+
```bash
|
|
80
|
+
# Check what documents are available for testing
|
|
81
|
+
${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/check-prerequisites.sh --include-tasks
|
|
82
|
+
|
|
83
|
+
# Verify PRD, EPIC, and TASKS exist before creating test plan
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
3. **Log Events**: Use common.sh logging for all significant actions
|
|
87
|
+
```bash
|
|
88
|
+
# Log test plan generation and analysis
|
|
89
|
+
source ${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/common.sh
|
|
90
|
+
log_event "$REQ_ID" "Test plan generation started"
|
|
91
|
+
log_event "$REQ_ID" "Test report analysis completed"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
4. **Check Task Status**: Use check-task-status.sh to understand progress
|
|
95
|
+
```bash
|
|
96
|
+
# Get current task status
|
|
97
|
+
${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/check-task-status.sh --json
|
|
98
|
+
|
|
99
|
+
# Use this to understand which tasks need testing
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Context Requirements
|
|
103
|
+
- 读取 `orchestration_status.json` 获取项目状态
|
|
104
|
+
- 阅读现有的系统规格和测试约束条件
|
|
105
|
+
- 确保测试计划与需求一致性
|
|
106
|
+
|
|
107
|
+
## Input Contract
|
|
108
|
+
|
|
109
|
+
### Phase 1 Call (Pre-Implementation)
|
|
110
|
+
When called by main agent with "test plan" in prompt, you will receive:
|
|
111
|
+
|
|
112
|
+
**For Requirements**:
|
|
113
|
+
- reqId: Requirement ID for context (REQ-XXX format)
|
|
114
|
+
- PRD, EPIC, and TASK files to analyze
|
|
115
|
+
- **MUST OUTPUT**: `devflow/requirements/${reqId}/TEST_PLAN.md`
|
|
116
|
+
|
|
117
|
+
**For BUG Fixes**:
|
|
118
|
+
- bugId: BUG ID for context (BUG-XXX format)
|
|
119
|
+
- ANALYSIS.md and PLAN.md files to analyze
|
|
120
|
+
- **MUST OUTPUT**: `devflow/bugs/${bugId}/TEST_PLAN.md`
|
|
121
|
+
|
|
122
|
+
### Phase 2 Call (Post-Implementation)
|
|
123
|
+
When called by main agent with "test report" in prompt, you will receive:
|
|
124
|
+
|
|
125
|
+
**For Requirements**:
|
|
126
|
+
- reqId: Requirement ID for context (REQ-XXX format)
|
|
127
|
+
- implementationFiles: List of implemented files to analyze
|
|
128
|
+
- testResults: Test execution results and coverage data
|
|
129
|
+
- **MUST OUTPUT**: `devflow/requirements/${reqId}/TEST_REPORT.md`
|
|
130
|
+
|
|
131
|
+
**For BUG Fixes**:
|
|
132
|
+
- bugId: BUG ID for context (BUG-XXX format)
|
|
133
|
+
- implementationFiles: List of fixed files to analyze
|
|
134
|
+
- testResults: BUG fix verification and regression test results
|
|
135
|
+
- **MUST OUTPUT**: `devflow/bugs/${bugId}/TEST_REPORT.md`
|
|
136
|
+
|
|
137
|
+
## Phase 1: Test Planning Process (Pre-Implementation)
|
|
138
|
+
1. **Run Prerequisites Check**: `${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/check-prerequisites.sh --json --require-epic --require-tasks`
|
|
139
|
+
2. **Read Documents**: Load PRD.md, EPIC.md, and TASKS.md from requirement directory
|
|
140
|
+
3. **Analyze TDD Structure**: Verify Phase 2 (Tests First) exists and understand test requirements
|
|
141
|
+
4. **Extract Acceptance Criteria**: Parse user stories and Given-When-Then criteria
|
|
142
|
+
5. **Design Test Strategy**: Plan comprehensive coverage (unit, integration, e2e, contract tests)
|
|
143
|
+
6. **Map Tests to Tasks**: Ensure each Phase 2 task has corresponding test plan
|
|
144
|
+
7. **Define Coverage Thresholds**: Set quality gates based on Constitution requirements
|
|
145
|
+
8. **Generate Test Templates**: Provide concrete test code examples for main agent
|
|
146
|
+
9. **Specify Quality Gates**: Define success criteria aligned with Constitution
|
|
147
|
+
10. **Write TEST_PLAN.md**: Output complete test plan with all details
|
|
148
|
+
11. **Log Event**: `log_event "$REQ_ID" "Test plan generation completed"`
|
|
149
|
+
|
|
150
|
+
## Phase 2: Test Analysis Process (Post-Implementation)
|
|
151
|
+
1. **Run Prerequisites Check**: `${DEVFLOW_CLAUDE_DIR:-.claude}/scripts/check-prerequisites.sh --json`
|
|
152
|
+
2. **Read Implementation**: Analyze all implemented code files provided
|
|
153
|
+
3. **Review Test Results**: Parse test execution output and coverage reports
|
|
154
|
+
4. **Evaluate TDD Compliance**: Verify Phase 2 tests were written before Phase 3 implementation
|
|
155
|
+
5. **Assess Coverage**: Check against defined thresholds (≥80% line coverage)
|
|
156
|
+
6. **Identify Gaps**: Compare planned tests vs. actual tests executed
|
|
157
|
+
7. **Constitution Check**: Verify test quality meets Constitution v2.0.0 standards:
|
|
158
|
+
- **Article I - Quality First**: All tests complete, coverage ≥80%
|
|
159
|
+
- **Article VI - Test-First Development**: TDD sequence followed correctly
|
|
160
|
+
- **Article VI.3 - Meaningful Tests**: Tests cover edge cases and error scenarios, no "cheater tests"
|
|
161
|
+
- **Article IV - Performance**: Performance tests if required by NFRs
|
|
162
|
+
8. **Assess Readiness**: Determine if quality gates passed
|
|
163
|
+
9. **Write TEST_REPORT.md**: Generate comprehensive testing assessment
|
|
164
|
+
10. **Log Event**: `log_event "$REQ_ID" "Test report analysis completed"`
|
|
165
|
+
|
|
166
|
+
## Test Types and TDD Integration
|
|
167
|
+
|
|
168
|
+
### Test Types to Consider
|
|
169
|
+
Based on Phase 2 (Tests First) tasks in TASKS.md:
|
|
170
|
+
- **Contract Tests**: API endpoint contracts (Phase 2 priority)
|
|
171
|
+
- **Integration Tests**: User story flows (Phase 2 priority)
|
|
172
|
+
- **Schema Tests**: Data model validation (Phase 2 priority)
|
|
173
|
+
- **Unit Tests**: Individual functions (Phase 5 polish)
|
|
174
|
+
- **Edge Case Tests**: Boundary conditions, error handling (Phase 2/5)
|
|
175
|
+
- **Performance Tests**: If specified in NFRs (Phase 5)
|
|
176
|
+
|
|
177
|
+
### TDD-First Approach
|
|
178
|
+
All Phase 2 tests MUST:
|
|
179
|
+
1. **Be written BEFORE Phase 3 implementation**
|
|
180
|
+
2. **Fail initially** (no implementation exists yet)
|
|
181
|
+
3. **Cover all acceptance criteria** from PRD
|
|
182
|
+
4. **Include error scenarios** and edge cases
|
|
183
|
+
5. **Pass after Phase 3 implementation**
|
|
184
|
+
|
|
185
|
+
TEST VERIFICATION CHECKPOINT ensures all Phase 2 tests fail before Phase 3 begins.
|
|
186
|
+
|
|
187
|
+
Quality thresholds (check QUALITY.md):
|
|
188
|
+
- Line coverage: typically ≥80%
|
|
189
|
+
- Branch coverage: typically ≥75%
|
|
190
|
+
- Function coverage: typically ≥90%
|
|
191
|
+
- Critical path coverage: 100%
|
|
192
|
+
|
|
193
|
+
Test generation guidelines:
|
|
194
|
+
- Follow existing test patterns and frameworks
|
|
195
|
+
- Test both happy path and error conditions
|
|
196
|
+
- Include boundary value testing
|
|
197
|
+
- Test with realistic data scenarios
|
|
198
|
+
- Verify error messages and status codes
|
|
199
|
+
- Test accessibility requirements if applicable
|
|
200
|
+
|
|
201
|
+
## Output Generation
|
|
202
|
+
Generate comprehensive testing documentation:
|
|
203
|
+
|
|
204
|
+
### 1. Test Plan (`devflow/requirements/${reqId}/TEST_PLAN.md`)
|
|
205
|
+
```markdown
|
|
206
|
+
# Test Plan for ${reqId} - ${taskId}
|
|
207
|
+
|
|
208
|
+
## Overview
|
|
209
|
+
- Task: ${taskId}
|
|
210
|
+
- Files to test: ${fileList}
|
|
211
|
+
- Test strategy: ${strategy}
|
|
212
|
+
- Coverage target: ${coverageTarget}%
|
|
213
|
+
|
|
214
|
+
## Test Categories
|
|
215
|
+
|
|
216
|
+
### Unit Tests
|
|
217
|
+
#### File: ${fileName}
|
|
218
|
+
- Function: `${functionName}()`
|
|
219
|
+
- Test: should handle valid input
|
|
220
|
+
- Test: should reject invalid input
|
|
221
|
+
- Test: should handle edge cases
|
|
222
|
+
- Expected coverage: 90%
|
|
223
|
+
|
|
224
|
+
### Integration Tests
|
|
225
|
+
- API endpoint testing
|
|
226
|
+
- Database interaction testing
|
|
227
|
+
- Third-party service integration
|
|
228
|
+
|
|
229
|
+
### End-to-End Tests
|
|
230
|
+
- User journey: ${userStory}
|
|
231
|
+
- Critical path: ${criticalPath}
|
|
232
|
+
|
|
233
|
+
## Test Implementation Guide (for main agent)
|
|
234
|
+
|
|
235
|
+
### Test File Structure
|
|
236
|
+
```
|
|
237
|
+
tests/
|
|
238
|
+
├── unit/
|
|
239
|
+
│ └── ${fileName}.test.js
|
|
240
|
+
├── integration/
|
|
241
|
+
│ └── ${feature}.integration.test.js
|
|
242
|
+
└── e2e/
|
|
243
|
+
└── ${userJourney}.e2e.test.js
|
|
244
|
+
```javascript
|
|
245
|
+
|
|
246
|
+
### Sample Test Code
|
|
247
|
+
```javascript
|
|
248
|
+
// Unit test example for main agent to implement
|
|
249
|
+
describe('${functionName}', () => {
|
|
250
|
+
it('should ${expectedBehavior}', () => {
|
|
251
|
+
// Arrange
|
|
252
|
+
const input = ${testInput};
|
|
253
|
+
|
|
254
|
+
// Act
|
|
255
|
+
const result = ${functionName}(input);
|
|
256
|
+
|
|
257
|
+
// Assert
|
|
258
|
+
expect(result).to${expectedAssertion};
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Quality Gates
|
|
264
|
+
- [ ] Unit test coverage ≥ ${unitThreshold}%
|
|
265
|
+
- [ ] Integration test coverage ≥ ${integrationThreshold}%
|
|
266
|
+
- [ ] All tests pass consistently
|
|
267
|
+
- [ ] Performance within limits
|
|
268
|
+
- [ ] No security test failures
|
|
269
|
+
|
|
270
|
+
## Execution Commands (for main agent)
|
|
271
|
+
- Run unit tests: `npm run test:unit`
|
|
272
|
+
- Run integration tests: `npm run test:integration`
|
|
273
|
+
- Run coverage: `npm run test:coverage`
|
|
274
|
+
- Run all tests: `npm test`
|
|
275
|
+
```bash
|
|
276
|
+
|
|
277
|
+
### 2. Test Report Template (`devflow/requirements/${reqId}/TEST_REPORT.md`)
|
|
278
|
+
Template for main agent to fill after test execution:
|
|
279
|
+
|
|
280
|
+
```markdown
|
|
281
|
+
# Test Execution Report for ${reqId}
|
|
282
|
+
|
|
283
|
+
## Test Results Summary
|
|
284
|
+
- Total tests: ${totalTests}
|
|
285
|
+
- Passed: ${passedTests}
|
|
286
|
+
- Failed: ${failedTests}
|
|
287
|
+
- Coverage: ${coveragePercentage}%
|
|
288
|
+
- Execution time: ${executionTime}
|
|
289
|
+
|
|
290
|
+
## Coverage Analysis
|
|
291
|
+
- Line coverage: ${lineCoverage}%
|
|
292
|
+
- Branch coverage: ${branchCoverage}%
|
|
293
|
+
- Function coverage: ${functionCoverage}%
|
|
294
|
+
|
|
295
|
+
## Quality Gates Status
|
|
296
|
+
- [ ] Coverage threshold met
|
|
297
|
+
- [ ] All tests passing
|
|
298
|
+
- [ ] Performance acceptable
|
|
299
|
+
- [ ] Security tests passed
|
|
300
|
+
|
|
301
|
+
## Next Steps
|
|
302
|
+
${nextSteps}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Analysis workflow:
|
|
306
|
+
1. **Implementation Review**: Read and understand task implementation
|
|
307
|
+
2. **Test Strategy Design**: Create comprehensive test coverage plan
|
|
308
|
+
3. **Test Template Generation**: Provide specific test code examples
|
|
309
|
+
4. **Quality Gate Definition**: Set measurable success criteria
|
|
310
|
+
5. **Execution Plan**: Create step-by-step testing guide for main agent
|
|
311
|
+
6. **Report Template**: Prepare template for test results documentation
|
|
312
|
+
|
|
313
|
+
Remember: You are a test strategist and planner. The main agent will execute all the actual test implementation and execution based on your detailed plans and templates.
|