mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-14 02:42:04 +08:00
feat: Implement multi-phase project analysis workflow with Mermaid diagram generation and CPCC compliance documentation
- Phase 3: Added Mermaid diagram generation for system architecture, function modules, algorithms, class diagrams, sequence diagrams, and error flows. - Phase 4: Assembled analysis and diagrams into a structured CPCC-compliant document with section templates and figure numbering. - Phase 5: Developed compliance review process with iterative refinement based on analysis findings and user feedback. - Added CPCC compliance requirements and quality standards for project analysis reports. - Established a comprehensive project analysis skill with detailed execution flow and report types. - Enhanced error handling and recovery mechanisms throughout the analysis phases.
This commit is contained in:
115
.claude/skills/project-analyze/specs/quality-standards.md
Normal file
115
.claude/skills/project-analyze/specs/quality-standards.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Quality Standards
|
||||
|
||||
Quality gates and requirements for project analysis reports.
|
||||
|
||||
## When to Use
|
||||
|
||||
| Phase | Usage | Section |
|
||||
|-------|-------|---------|
|
||||
| Phase 4 | Check report structure before assembly | Report Requirements |
|
||||
| Phase 5 | Validate before each iteration | Quality Gates |
|
||||
| Phase 5 | Handle failures during refinement | Error Handling |
|
||||
|
||||
---
|
||||
|
||||
## Report Requirements
|
||||
|
||||
**Use in Phase 4**: Ensure report includes all required elements.
|
||||
|
||||
| Requirement | Check | How to Fix |
|
||||
|-------------|-------|------------|
|
||||
| Executive Summary | 3-5 key takeaways | Extract from analysis findings |
|
||||
| Visual diagrams | Valid Mermaid syntax | Use `../_shared/mermaid-utils.md` |
|
||||
| Code references | `file:line` format | Link to actual source locations |
|
||||
| Recommendations | Actionable, specific | Derive from analysis insights |
|
||||
| Consistent depth | Match user's depth level | Adjust detail per config.depth |
|
||||
|
||||
---
|
||||
|
||||
## Quality Gates
|
||||
|
||||
**Use in Phase 5**: Run these checks before asking user questions.
|
||||
|
||||
```javascript
|
||||
function runQualityGates(report, config, diagrams) {
|
||||
const gates = [
|
||||
{
|
||||
name: "focus_areas_covered",
|
||||
check: () => config.focus_areas.every(area =>
|
||||
report.toLowerCase().includes(area.toLowerCase())
|
||||
),
|
||||
fix: "Re-analyze missing focus areas"
|
||||
},
|
||||
{
|
||||
name: "diagrams_valid",
|
||||
check: () => diagrams.every(d => d.valid),
|
||||
fix: "Regenerate failed diagrams with mermaid-utils"
|
||||
},
|
||||
{
|
||||
name: "code_refs_accurate",
|
||||
check: () => extractCodeRefs(report).every(ref => fileExists(ref)),
|
||||
fix: "Update invalid file references"
|
||||
},
|
||||
{
|
||||
name: "no_placeholders",
|
||||
check: () => !report.includes('[TODO]') && !report.includes('[PLACEHOLDER]'),
|
||||
fix: "Fill in all placeholder content"
|
||||
},
|
||||
{
|
||||
name: "recommendations_specific",
|
||||
check: () => !report.includes('consider') || report.includes('specifically'),
|
||||
fix: "Make recommendations project-specific"
|
||||
}
|
||||
];
|
||||
|
||||
const results = gates.map(g => ({...g, passed: g.check()}));
|
||||
const allPassed = results.every(r => r.passed);
|
||||
|
||||
return { allPassed, results };
|
||||
}
|
||||
```
|
||||
|
||||
**Integration with Phase 5**:
|
||||
```javascript
|
||||
// In 05-iterative-refinement.md
|
||||
const { allPassed, results } = runQualityGates(report, config, diagrams);
|
||||
|
||||
if (allPassed) {
|
||||
// All gates passed → ask user to confirm or finalize
|
||||
} else {
|
||||
// Gates failed → include failed gates in discovery questions
|
||||
const failedGates = results.filter(r => !r.passed);
|
||||
discoveries.qualityIssues = failedGates;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
**Use when**: Encountering errors during any phase.
|
||||
|
||||
| Error | Detection | Recovery |
|
||||
|-------|-----------|----------|
|
||||
| CLI timeout | Bash exits with timeout | Reduce scope via `config.scope`, retry |
|
||||
| Exploration failure | Agent returns error | Fall back to `Read` + `Grep` directly |
|
||||
| User abandons | User selects "cancel" | Save to `iterations/`, allow resume |
|
||||
| Invalid scope path | Path doesn't exist | `AskUserQuestion` to correct path |
|
||||
| Diagram validation fails | `validateMermaidSyntax` returns issues | Regenerate with stricter escaping |
|
||||
|
||||
**Recovery Flow**:
|
||||
```javascript
|
||||
try {
|
||||
await executePhase(phase);
|
||||
} catch (error) {
|
||||
const recovery = ERROR_HANDLERS[error.type];
|
||||
if (recovery) {
|
||||
await recovery.action(error, config);
|
||||
// Retry phase or continue
|
||||
} else {
|
||||
// Save progress and ask user
|
||||
Write(`${outputDir}/error-state.json`, { phase, error, config });
|
||||
AskUserQuestion({ question: "遇到错误,如何处理?", ... });
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user