cc-devflow 1.0.1
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 +83 -0
- package/.claude/agents/architecture-designer.md +443 -0
- package/.claude/agents/bug-analyzer.md +382 -0
- package/.claude/agents/checklist-agent.md +175 -0
- package/.claude/agents/clarify-analyst.md +50 -0
- package/.claude/agents/code-reviewer.md +71 -0
- package/.claude/agents/codex-analyzer.md +39 -0
- package/.claude/agents/compatibility-checker.md +580 -0
- package/.claude/agents/consistency-checker.md +532 -0
- package/.claude/agents/impact-analyzer.md +441 -0
- package/.claude/agents/planner.md +230 -0
- package/.claude/agents/prd-writer.md +320 -0
- package/.claude/agents/project-guidelines-generator.md +1329 -0
- package/.claude/agents/qa-tester.md +313 -0
- package/.claude/agents/release-manager.md +295 -0
- package/.claude/agents/security-reviewer.md +314 -0
- package/.claude/agents/style-guide-generator.md +458 -0
- package/.claude/agents/tech-architect.md +516 -0
- package/.claude/agents/ui-designer.md +485 -0
- package/.claude/commands/code-review-high.md +58 -0
- package/.claude/commands/core-architecture.md +429 -0
- package/.claude/commands/core-guidelines.md +486 -0
- package/.claude/commands/core-roadmap.md +439 -0
- package/.claude/commands/core-style.md +293 -0
- package/.claude/commands/flow-archive.md +245 -0
- package/.claude/commands/flow-checklist.md +260 -0
- package/.claude/commands/flow-clarify.md +136 -0
- package/.claude/commands/flow-constitution.md +82 -0
- package/.claude/commands/flow-dev.md +134 -0
- package/.claude/commands/flow-epic.md +150 -0
- package/.claude/commands/flow-fix.md +104 -0
- package/.claude/commands/flow-ideate.md +214 -0
- package/.claude/commands/flow-init.md +313 -0
- package/.claude/commands/flow-new.md +394 -0
- package/.claude/commands/flow-prd.md +131 -0
- package/.claude/commands/flow-qa.md +93 -0
- package/.claude/commands/flow-release.md +92 -0
- package/.claude/commands/flow-restart.md +98 -0
- package/.claude/commands/flow-status.md +64 -0
- package/.claude/commands/flow-tech.md +142 -0
- package/.claude/commands/flow-ui.md +189 -0
- package/.claude/commands/flow-update.md +111 -0
- package/.claude/commands/flow-upgrade.md +115 -0
- package/.claude/commands/flow-verify.md +96 -0
- package/.claude/commands/problem-analyzer.md +60 -0
- package/.claude/config/quality-rules.yml +161 -0
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +426 -0
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +658 -0
- package/.claude/docs/design/intent-driven-input-design.md +380 -0
- package/.claude/docs/design/prd-version-management-design.md +437 -0
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +117 -0
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +151 -0
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +188 -0
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +338 -0
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +633 -0
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +261 -0
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +52 -0
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +206 -0
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +71 -0
- package/.claude/docs/templates/EPIC_TEMPLATE.md +805 -0
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +213 -0
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +57 -0
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +148 -0
- package/.claude/docs/templates/PRD_TEMPLATE.md +562 -0
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +276 -0
- package/.claude/docs/templates/REVIEW-HIGH.md +57 -0
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +198 -0
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +310 -0
- package/.claude/docs/templates/STYLE_TEMPLATE.md +1266 -0
- package/.claude/docs/templates/TASKS_TEMPLATE.md +523 -0
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +1019 -0
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +1436 -0
- package/.claude/guides/agent-guides/agent-coordination-guide.md +459 -0
- package/.claude/guides/project-guidelines-system.md +463 -0
- package/.claude/guides/technical-guides/datetime-handling-guide.md +563 -0
- package/.claude/guides/technical-guides/git-github-guide.md +642 -0
- package/.claude/guides/technical-guides/test-execution-guide.md +618 -0
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +217 -0
- package/.claude/guides/workflow-guides/flow-orchestrator.md +282 -0
- package/.claude/hooks/checklist-gate.js +397 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +459 -0
- package/.claude/hooks/post-tool-use-tracker.sh +280 -0
- package/.claude/hooks/pre-tool-use-guardrail.sh +36 -0
- package/.claude/hooks/pre-tool-use-guardrail.ts +342 -0
- package/.claude/hooks/skill-activation-prompt.sh +36 -0
- package/.claude/hooks/skill-activation-prompt.ts +214 -0
- package/.claude/hooks/state/skills-used-test-guard.json +3 -0
- package/.claude/rules/devflow-conventions.md +305 -0
- package/.claude/rules/project-constitution.md +748 -0
- package/.claude/schemas/constitution.schema.json +43 -0
- package/.claude/scripts/analyze-upgrade-impact.sh +200 -0
- package/.claude/scripts/archive-requirement.sh +351 -0
- package/.claude/scripts/calculate-checklist-completion.sh +243 -0
- package/.claude/scripts/calculate-quarter.sh +206 -0
- package/.claude/scripts/check-dependencies.sh +409 -0
- package/.claude/scripts/check-prerequisites.sh +232 -0
- package/.claude/scripts/check-task-status.sh +264 -0
- package/.claude/scripts/checklist-errors.sh +131 -0
- package/.claude/scripts/common.sh +570 -0
- package/.claude/scripts/consolidate-research.sh +182 -0
- package/.claude/scripts/create-requirement.sh +426 -0
- package/.claude/scripts/export-contracts.sh +117 -0
- package/.claude/scripts/extract-data-model.sh +78 -0
- package/.claude/scripts/generate-clarification-questions.sh +377 -0
- package/.claude/scripts/generate-clarification-report.sh +463 -0
- package/.claude/scripts/generate-quickstart.sh +146 -0
- package/.claude/scripts/generate-research-tasks.sh +157 -0
- package/.claude/scripts/generate-status-report.sh +523 -0
- package/.claude/scripts/generate-tech-analysis.sh +46 -0
- package/.claude/scripts/locate-requirement-in-roadmap.sh +233 -0
- package/.claude/scripts/manage-constitution.sh +602 -0
- package/.claude/scripts/mark-task-complete.sh +198 -0
- package/.claude/scripts/populate-research-tasks.sh +259 -0
- package/.claude/scripts/recover-workflow.sh +460 -0
- package/.claude/scripts/run-clarify-scan.sh +601 -0
- package/.claude/scripts/run-high-review.sh +62 -0
- package/.claude/scripts/run-problem-analysis.sh +68 -0
- package/.claude/scripts/setup-epic.sh +173 -0
- package/.claude/scripts/sync-roadmap-progress.sh +300 -0
- package/.claude/scripts/sync-task-marks.sh +199 -0
- package/.claude/scripts/test-clarify-scan.sh +515 -0
- package/.claude/scripts/update-agent-context.sh +806 -0
- package/.claude/scripts/validate-constitution.sh +567 -0
- package/.claude/scripts/validate-hooks.sh +487 -0
- package/.claude/scripts/validate-research.sh +332 -0
- package/.claude/scripts/validate-scope-boundary.sh +493 -0
- package/.claude/scripts/verify-setup.sh +37 -0
- package/.claude/settings.json +76 -0
- package/.claude/skills/_reference-implementations/README.md +96 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +302 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +451 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +307 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +638 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +275 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +224 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +213 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +789 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +235 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +754 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +399 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +331 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +872 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +767 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +406 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +364 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +428 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +418 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +229 -0
- package/.claude/skills/constitution-guardian/SKILL.md +306 -0
- package/.claude/skills/devflow-constitution-quick-ref/SKILL.md +374 -0
- package/.claude/skills/devflow-file-standards/SKILL.md +353 -0
- package/.claude/skills/devflow-tdd-enforcer/SKILL.md +192 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +426 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +213 -0
- package/.claude/tests/README.md +300 -0
- package/.claude/tests/TODO.md +69 -0
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +111 -0
- package/.claude/tests/constitution/test_agent_assignment.sh +207 -0
- package/.claude/tests/constitution/test_article_coverage.sh +201 -0
- package/.claude/tests/constitution/test_template_completeness.sh +150 -0
- package/.claude/tests/constitution/test_version_consistency.sh +120 -0
- package/.claude/tests/fixtures/spec_delta_full.md +16 -0
- package/.claude/tests/fixtures/tasks_progress_sample.md +5 -0
- package/.claude/tests/run-all-tests.sh +229 -0
- package/.claude/tests/scripts/run.sh +30 -0
- package/.claude/tests/scripts/test-framework.sh +128 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh +511 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +504 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +505 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +506 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +507 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +508 -0
- package/.claude/tests/scripts/test_check_task_status.sh +499 -0
- package/.claude/tests/scripts/test_common.sh +244 -0
- package/.claude/tests/scripts/test_generate_status_report.sh +71 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh +441 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +410 -0
- package/.claude/tests/scripts/test_recover_workflow.sh +304 -0
- package/.claude/tests/scripts/test_setup_epic.sh +437 -0
- package/.claude/tests/scripts/test_sync_task_marks.sh +196 -0
- package/.claude/tests/scripts/test_validate_constitution.sh +74 -0
- package/.claude/tests/scripts/test_validate_research.sh +462 -0
- package/.claude/tests/slugify.bats +82 -0
- package/.claude/tests/test-framework.sh +732 -0
- package/.claude/tests/test_analyze_upgrade_impact.py +34 -0
- package/.claude/tests/test_consolidate_research.py +48 -0
- package/.claude/tests/test_export_contracts.py +43 -0
- package/.claude/tests/test_extract_data_model.py +33 -0
- package/.claude/tests/test_generate_quickstart.py +50 -0
- package/.claude/tests/test_generate_research_tasks.py +52 -0
- package/.claude/tsc-cache/6e64f818-6398-49ca-8623-581a9af85c44/edited-files.log +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/edited-files.log +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/edited-files.log +1 -0
- package/CHANGELOG.md +507 -0
- package/LICENSE +21 -0
- package/README.md +534 -0
- package/README.zh-CN.md +530 -0
- package/bin/adapt.js +240 -0
- package/bin/cc-devflow-cli.js +185 -0
- package/bin/cc-devflow.js +78 -0
- package/config/adapters.yml +5 -0
- package/config/schema/adapters.schema.json +44 -0
- package/docs/CLAUDE.md +26 -0
- package/docs/commands/README.md +61 -0
- package/docs/commands/README.zh-CN.md +55 -0
- package/docs/commands/core-roadmap.md +106 -0
- package/docs/commands/core-roadmap.zh-CN.md +102 -0
- package/docs/commands/core-style.md +405 -0
- package/docs/commands/core-style.zh-CN.md +405 -0
- package/docs/commands/flow-init.md +134 -0
- package/docs/commands/flow-init.zh-CN.md +163 -0
- package/docs/commands/flow-new.md +274 -0
- package/docs/commands/flow-new.zh-CN.md +270 -0
- package/docs/guides/getting-started.md +204 -0
- package/docs/guides/getting-started.zh-CN.md +152 -0
- package/lib/adapters/adapter-interface.js +57 -0
- package/lib/adapters/claude-adapter.js +74 -0
- package/lib/adapters/codex-adapter.js +40 -0
- package/lib/adapters/config-validator.js +68 -0
- package/lib/adapters/logger.js +42 -0
- package/lib/adapters/registry.js +153 -0
- package/lib/compiler/CLAUDE.md +92 -0
- package/lib/compiler/__tests__/drift.test.js +215 -0
- package/lib/compiler/__tests__/errors.test.js +184 -0
- package/lib/compiler/__tests__/incremental.test.js +174 -0
- package/lib/compiler/__tests__/integration.test.js +174 -0
- package/lib/compiler/__tests__/manifest.test.js +233 -0
- package/lib/compiler/__tests__/parser.test.js +456 -0
- package/lib/compiler/__tests__/schemas.test.js +301 -0
- package/lib/compiler/__tests__/skills-registry.test.js +125 -0
- package/lib/compiler/__tests__/transformer.test.js +286 -0
- package/lib/compiler/emitters/antigravity-emitter.js +171 -0
- package/lib/compiler/emitters/base-emitter.js +73 -0
- package/lib/compiler/emitters/codex-emitter.js +52 -0
- package/lib/compiler/emitters/cursor-emitter.js +31 -0
- package/lib/compiler/emitters/index.js +50 -0
- package/lib/compiler/emitters/qwen-emitter.js +39 -0
- package/lib/compiler/errors.js +119 -0
- package/lib/compiler/index.js +256 -0
- package/lib/compiler/manifest.js +242 -0
- package/lib/compiler/parser.js +258 -0
- package/lib/compiler/platforms.js +113 -0
- package/lib/compiler/resource-copier.js +320 -0
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +191 -0
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +109 -0
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +253 -0
- package/lib/compiler/rules-emitters/base-rules-emitter.js +83 -0
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +116 -0
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +98 -0
- package/lib/compiler/rules-emitters/index.js +71 -0
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +70 -0
- package/lib/compiler/schemas.js +144 -0
- package/lib/compiler/skills-registry.js +225 -0
- package/lib/compiler/transformer.js +236 -0
- package/package.json +50 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: core-style
|
|
3
|
+
description: 'Generate project-level design style guide. Usage: /core-style [--update]'
|
|
4
|
+
scripts:
|
|
5
|
+
validate_constitution: .claude/scripts/validate-constitution.sh
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Flow-Style - 设计风格指南生成命令
|
|
9
|
+
|
|
10
|
+
## User Input
|
|
11
|
+
```text
|
|
12
|
+
$ARGUMENTS = "[--update]"
|
|
13
|
+
```
|
|
14
|
+
`--update` 表示更新现有 STYLE.md,缺省表示生成新的风格指南。
|
|
15
|
+
|
|
16
|
+
## 命令格式
|
|
17
|
+
```text
|
|
18
|
+
/core-style # 生成新的设计风格指南
|
|
19
|
+
/core-style --update # 更新现有设计风格指南
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 触发原则
|
|
23
|
+
- **项目初始化时**:在 `/core-roadmap` 之后,或作为独立命令运行
|
|
24
|
+
- **设计风格变更时**:通过 `--update` 参数更新现有风格指南
|
|
25
|
+
- **项目级别**:类似 `/core-roadmap`,为整个项目建立设计标准(SSOT)
|
|
26
|
+
|
|
27
|
+
## 核心理念
|
|
28
|
+
> "设计系统是视觉语言的语法,代码是语法的实现。无语法,则无一致性。"
|
|
29
|
+
|
|
30
|
+
STYLE.md 是项目的**设计真理源(SSOT)**,后续所有 UI 相关工作必须遵循:
|
|
31
|
+
- `/flow-ui` 生成的 UI_PROTOTYPE.html 必须严格遵循 STYLE.md
|
|
32
|
+
- `/flow-dev` 前端开发代码必须严格遵循 STYLE.md
|
|
33
|
+
|
|
34
|
+
## 执行流程
|
|
35
|
+
|
|
36
|
+
### 阶段 1: Entry Gate & 项目类型检测
|
|
37
|
+
```
|
|
38
|
+
1. 检测现有风格指南
|
|
39
|
+
→ 检查 devflow/STYLE.md 是否存在
|
|
40
|
+
→ 如存在且无 --update 参数 → WARN 并询问是否覆盖
|
|
41
|
+
→ 如存在且有 --update 参数 → 进入更新模式
|
|
42
|
+
|
|
43
|
+
2. 检测项目类型
|
|
44
|
+
→ 检查项目特征:
|
|
45
|
+
• package.json, src/components/, styles/, public/ 等前端文件
|
|
46
|
+
• 判断是新项目(无前端代码)还是现有项目(有前端代码)
|
|
47
|
+
→ 记录项目类型到 EXECUTION_LOG.md
|
|
48
|
+
|
|
49
|
+
3. 路由选择
|
|
50
|
+
→ 新项目 → 进入阶段 2(参考设计采集)
|
|
51
|
+
→ 现有项目 → 进入阶段 3(代码分析)
|
|
52
|
+
→ 更新模式 → 进入阶段 3(代码分析 + 现有 STYLE.md 合并)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 阶段 2: 参考设计采集与复刻(仅新项目)
|
|
56
|
+
```
|
|
57
|
+
1. 引导用户提供参考设计
|
|
58
|
+
→ 提示用户:
|
|
59
|
+
"请提供你想要参考的设计,可以包括:
|
|
60
|
+
- 网站 URL(我会抓取并分析)
|
|
61
|
+
- 设计截图(PNG/JPG)
|
|
62
|
+
- 提取的 HTML + CSS 代码
|
|
63
|
+
|
|
64
|
+
我将帮你复刻这个设计到单 HTML 文件中。"
|
|
65
|
+
|
|
66
|
+
2. 生成参考设计复刻
|
|
67
|
+
→ 使用提示词:
|
|
68
|
+
"Help me rebuild exact same UI design in single html as reference-001.html.
|
|
69
|
+
Above is extracted css and design screenshot."
|
|
70
|
+
→ 生成单 HTML 文件
|
|
71
|
+
→ 保存到 devflow/research/style_reference_designs/reference-001.html
|
|
72
|
+
→ 如有截图,保存到 devflow/research/style_reference_designs/reference-001.png
|
|
73
|
+
|
|
74
|
+
3. 用户微调循环
|
|
75
|
+
→ 提示用户打开 HTML 文件查看效果:
|
|
76
|
+
"请打开 devflow/research/style_reference_designs/reference-001.html 查看效果。
|
|
77
|
+
|
|
78
|
+
你满意吗?如果不满意,请告诉我需要调整的地方:
|
|
79
|
+
- 颜色(如:主色调太鲜艳,改为更柔和的蓝色)
|
|
80
|
+
- 字体(如:标题字体太粗,改为 medium weight)
|
|
81
|
+
- 间距(如:卡片间距太小,增加到 24px)
|
|
82
|
+
- 组件样式(如:按钮圆角太大,改为 4px)
|
|
83
|
+
- 其他..."
|
|
84
|
+
→ 根据用户反馈调整 HTML
|
|
85
|
+
→ 生成新版本:reference-002.html, reference-003.html, ...
|
|
86
|
+
→ 重复此循环,直到用户满意
|
|
87
|
+
|
|
88
|
+
4. 确认最终版本
|
|
89
|
+
→ 用户确认满意后,询问:
|
|
90
|
+
"请确认这是最终版本吗?(y/n)"
|
|
91
|
+
→ 用户确认后,复制最终版本为 reference-final.html
|
|
92
|
+
→ 进入阶段 3 生成风格分析
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 阶段 3: 风格分析与 STYLE.md 生成
|
|
96
|
+
```
|
|
97
|
+
1. 分析输入源
|
|
98
|
+
→ 新项目:
|
|
99
|
+
• 读取 devflow/research/style_reference_designs/reference-final.html
|
|
100
|
+
• 提取颜色、字体、间距、组件样式、动画、阴影等
|
|
101
|
+
→ 现有项目:
|
|
102
|
+
• 使用 Glob 查找前端文件: **/*.{tsx,jsx,vue,svelte,css,scss,sass}
|
|
103
|
+
• 使用 Grep 搜索样式定义、Tailwind classes、CSS variables
|
|
104
|
+
• 分析组件结构、设计模式
|
|
105
|
+
→ 更新模式:
|
|
106
|
+
• 结合现有 STYLE.md + 最新代码分析
|
|
107
|
+
• 保留现有定义,补充新发现的模式
|
|
108
|
+
|
|
109
|
+
2. 生成风格分析文档
|
|
110
|
+
→ 创建 devflow/research/style_analysis.md
|
|
111
|
+
→ 结构:
|
|
112
|
+
```
|
|
113
|
+
# 设计风格分析
|
|
114
|
+
|
|
115
|
+
## 分析来源
|
|
116
|
+
- 参考设计: reference-final.html (新项目)
|
|
117
|
+
- 代码分析: src/components/**, styles/** (现有项目)
|
|
118
|
+
- 分析时间: YYYY-MM-DD 北京时间
|
|
119
|
+
|
|
120
|
+
## 颜色提取
|
|
121
|
+
- 主色: #XXXXXX (使用频率: XX%)
|
|
122
|
+
- 辅色: #XXXXXX (使用频率: XX%)
|
|
123
|
+
- 成功色: #XXXXXX
|
|
124
|
+
- 警告色: #XXXXXX
|
|
125
|
+
- 错误色: #XXXXXX
|
|
126
|
+
- 中性色: #XXXXXX, #XXXXXX, ...
|
|
127
|
+
|
|
128
|
+
## 字体分析
|
|
129
|
+
- 标题字体: Font Family, Weight, Size
|
|
130
|
+
- 正文字体: Font Family, Weight, Size
|
|
131
|
+
- 代码字体: Font Family (如有)
|
|
132
|
+
- 字体组合规律
|
|
133
|
+
|
|
134
|
+
## 间距系统
|
|
135
|
+
- 基础单位: 4px / 8px / 16px
|
|
136
|
+
- 组件间距: 8px, 16px, 24px, 32px
|
|
137
|
+
- 布局间距: 48px, 64px, 96px
|
|
138
|
+
|
|
139
|
+
## 组件样式模式
|
|
140
|
+
- 按钮: 圆角、阴影、hover 效果、padding
|
|
141
|
+
- 卡片: 圆角、阴影、边框、padding
|
|
142
|
+
- 输入框: 圆角、边框、focus 效果、padding
|
|
143
|
+
- ...
|
|
144
|
+
|
|
145
|
+
## 其他设计元素
|
|
146
|
+
- 阴影 & 层级: box-shadow 定义
|
|
147
|
+
- 动画 & 过渡: transition, animation 定义
|
|
148
|
+
- 圆角: border-radius 规律
|
|
149
|
+
- 透明度: opacity 使用场景
|
|
150
|
+
```
|
|
151
|
+
→ EXECUTION_LOG.md 记录分析完成
|
|
152
|
+
|
|
153
|
+
3. 调用 style-guide-generator Agent
|
|
154
|
+
→ Prompt 要求:
|
|
155
|
+
• 输入: research/style_analysis.md + (reference-final.html 或项目代码)
|
|
156
|
+
• 输出: devflow/STYLE.md
|
|
157
|
+
• 遵循模板: .claude/docs/templates/STYLE_TEMPLATE.md
|
|
158
|
+
• 必须包含:
|
|
159
|
+
- Overview (设计系统概述)
|
|
160
|
+
- Color Palette (完整色板 + Hex/RGB/HSL)
|
|
161
|
+
- Typography (字体系统 + weight/size/line-height 组合)
|
|
162
|
+
- Spacing System (间距系统 + 使用示例)
|
|
163
|
+
- Component Styles (所有组件的详细样式定义)
|
|
164
|
+
- Shadows & Elevation (阴影系统 + 层级说明)
|
|
165
|
+
- Animations & Transitions (动画 + 过渡效果)
|
|
166
|
+
- Border Radius (圆角系统)
|
|
167
|
+
- Opacity & Transparency (透明度使用场景)
|
|
168
|
+
- Common Tailwind CSS Usage (如适用)
|
|
169
|
+
- Example Component Reference Design Code (示例组件代码)
|
|
170
|
+
- Design Principles (设计原则,如有)
|
|
171
|
+
• Constitution 约束:
|
|
172
|
+
- 禁止外链资源(字体、图片等必须本地化或使用 CDN)
|
|
173
|
+
- 禁止硬编码敏感数据
|
|
174
|
+
- 所有颜色必须提供 Hex 和语义化命名
|
|
175
|
+
- 所有示例代码必须可直接复用
|
|
176
|
+
|
|
177
|
+
4. 生成 STYLE.md
|
|
178
|
+
→ Agent 输出 devflow/STYLE.md
|
|
179
|
+
→ 确保文档包含所有必需部分
|
|
180
|
+
→ 确保示例代码完整可执行
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 阶段 4: Exit Gate
|
|
184
|
+
```
|
|
185
|
+
1. 文件完整性检查
|
|
186
|
+
→ 必须存在:
|
|
187
|
+
• devflow/STYLE.md
|
|
188
|
+
• devflow/research/style_analysis.md
|
|
189
|
+
→ 新项目还需:
|
|
190
|
+
• devflow/research/style_reference_designs/reference-final.html
|
|
191
|
+
|
|
192
|
+
2. 结构检查
|
|
193
|
+
→ STYLE.md 包含所有必需部分(Overview, Color Palette, Typography, ...)
|
|
194
|
+
→ 包含至少 3 个完整的示例组件代码
|
|
195
|
+
→ 所有颜色定义包含 Hex 值和语义化命名
|
|
196
|
+
→ 所有字体定义包含 weight, size, line-height
|
|
197
|
+
|
|
198
|
+
3. 宪法校验
|
|
199
|
+
→ {SCRIPT:validate_constitution} --type style --severity warning
|
|
200
|
+
→ 检查外链资源、硬编码数据等
|
|
201
|
+
|
|
202
|
+
4. 状态更新
|
|
203
|
+
→ 创建/更新项目级状态文件(如不存在):
|
|
204
|
+
devflow/project_status.json:
|
|
205
|
+
{
|
|
206
|
+
"project_name": "Project Name",
|
|
207
|
+
"style_guide_complete": true,
|
|
208
|
+
"style_guide_version": "1.0.0",
|
|
209
|
+
"last_updated": "YYYY-MM-DD HH:mm 北京时间"
|
|
210
|
+
}
|
|
211
|
+
→ EXECUTION_LOG.md 记录完成事件
|
|
212
|
+
|
|
213
|
+
5. 后续集成提醒
|
|
214
|
+
→ 输出提示:
|
|
215
|
+
"✅ STYLE.md 已生成!
|
|
216
|
+
|
|
217
|
+
后续工作流将自动引用此设计风格指南:
|
|
218
|
+
- /flow-ui 将严格遵循 STYLE.md 生成 UI 原型
|
|
219
|
+
- /flow-dev 前端开发将严格遵循 STYLE.md
|
|
220
|
+
|
|
221
|
+
下一步建议:
|
|
222
|
+
1. 审阅 devflow/STYLE.md 确保完整性
|
|
223
|
+
2. (可选)运行 /flow-prd 开始需求开发
|
|
224
|
+
3. (可选)运行 /core-roadmap 生成产品路线图"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## 输出
|
|
228
|
+
```
|
|
229
|
+
✅ devflow/STYLE.md # 项目设计风格指南(SSOT)
|
|
230
|
+
✅ devflow/research/style_analysis.md # 风格分析文档
|
|
231
|
+
✅ devflow/research/style_reference_designs/reference-*.html # 参考设计(新项目)
|
|
232
|
+
✅ devflow/project_status.json # 项目级状态(更新)
|
|
233
|
+
✅ EXECUTION_LOG.md # 执行日志(更新)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## 错误处理
|
|
237
|
+
- **STYLE.md 已存在且无 --update 参数** → 询问是否覆盖,用户拒绝则退出
|
|
238
|
+
- **项目无前端特征且用户未提供参考设计** → 提示用户提供参考设计或确认是纯后端项目
|
|
239
|
+
- **参考设计复刻失败** → 要求用户提供更详细的设计信息(HTML/CSS/截图)
|
|
240
|
+
- **Agent 生成失败** → 保留 style_analysis.md,提示用户检查后重试
|
|
241
|
+
- **宪法校验失败** → 根据 severity 决定是否阻塞(warning 级别仅提示)
|
|
242
|
+
|
|
243
|
+
## 下一步
|
|
244
|
+
1. **审阅 STYLE.md** - 确保设计风格指南完整且符合项目需求
|
|
245
|
+
2. **更新现有组件**(现有项目)- 根据 STYLE.md 调整不一致的组件
|
|
246
|
+
3. **运行 /flow-prd** - 开始需求开发(如适用)
|
|
247
|
+
4. **运行 /core-roadmap** - 生成产品路线图(如适用)
|
|
248
|
+
|
|
249
|
+
## 与其他工作流的集成
|
|
250
|
+
|
|
251
|
+
### /flow-ui 集成
|
|
252
|
+
- `/flow-ui` 在阶段 2(设计风格分析)时,优先加载 `devflow/STYLE.md`
|
|
253
|
+
- 所有颜色、字体、间距、组件必须严格遵循 STYLE.md
|
|
254
|
+
- 仅在 STYLE.md 未覆盖的部分,才使用默认采样策略(80+ 设计大师)
|
|
255
|
+
|
|
256
|
+
### /flow-dev 集成
|
|
257
|
+
- `/flow-dev` 在阶段 2(Quickstart 初始化)时,加载 `devflow/STYLE.md`
|
|
258
|
+
- 所有前端代码生成必须遵循 STYLE.md 定义的风格
|
|
259
|
+
- 特别注意:颜色、字体、间距、组件结构
|
|
260
|
+
|
|
261
|
+
### /flow-verify 集成
|
|
262
|
+
- `/flow-verify` 可检查代码是否符合 STYLE.md 定义的风格
|
|
263
|
+
- 检查项:颜色使用、字体使用、间距使用、组件结构一致性
|
|
264
|
+
|
|
265
|
+
## 设计哲学
|
|
266
|
+
- **SSOT 原则**: STYLE.md 是项目设计的唯一真理源
|
|
267
|
+
- **一致性优先**: 所有 UI 相关工作必须遵循 STYLE.md,避免风格碎片化
|
|
268
|
+
- **可复用性**: 示例代码必须可直接复用,不是伪代码
|
|
269
|
+
- **演进性**: 通过 `--update` 参数支持风格指南的迭代更新
|
|
270
|
+
- **用户中心**: 新项目通过参考设计采集 + 微调循环,确保用户满意度
|
|
271
|
+
|
|
272
|
+
## 补充说明
|
|
273
|
+
|
|
274
|
+
### 为什么需要项目级设计风格指南?
|
|
275
|
+
1. **避免风格碎片化**: 每个需求的 UI 可能由不同人开发,STYLE.md 确保一致性
|
|
276
|
+
2. **提高开发效率**: 开发者直接引用 STYLE.md 的定义,无需重复决策
|
|
277
|
+
3. **降低维护成本**: 统一的设计系统减少重复代码和样式冲突
|
|
278
|
+
4. **提升用户体验**: 一致的视觉语言提升产品专业度和可用性
|
|
279
|
+
|
|
280
|
+
### 参考设计微调循环的价值
|
|
281
|
+
- **用户满意度**: 允许用户在实际 HTML 中看到效果并迭代调整
|
|
282
|
+
- **设计精准度**: 通过多次微调,确保最终风格指南真正符合用户期望
|
|
283
|
+
- **避免返工**: 早期确定设计风格,避免后期大规模重构
|
|
284
|
+
|
|
285
|
+
### 现有项目 vs 新项目
|
|
286
|
+
- **新项目**: 通过参考设计建立设计系统(主动定义)
|
|
287
|
+
- **现有项目**: 通过代码分析提取设计系统(被动提取)
|
|
288
|
+
- **更新模式**: 结合现有定义 + 最新代码,持续演进
|
|
289
|
+
|
|
290
|
+
### STYLE.md 的演进策略
|
|
291
|
+
- **版本控制**: 每次更新增加版本号(记录在 project_status.json)
|
|
292
|
+
- **向后兼容**: 更新时保留现有定义,仅补充新模式
|
|
293
|
+
- **变更追踪**: 在 EXECUTION_LOG.md 记录每次更新的原因和变更内容
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-archive
|
|
3
|
+
description: 'Archive completed/deprecated requirements. Usage: /flow-archive "REQ-123" or /flow-archive --list'
|
|
4
|
+
scripts:
|
|
5
|
+
archive: .claude/scripts/archive-requirement.sh
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Flow-Archive - 需求归档命令
|
|
9
|
+
|
|
10
|
+
## User Input
|
|
11
|
+
```text
|
|
12
|
+
$ARGUMENTS = "REQ_ID?" | "--list" | "--restore REQ_ID"
|
|
13
|
+
```
|
|
14
|
+
未提供 REQ_ID 时,根据当前分支或 `DEVFLOW_REQ_ID` 自动解析。
|
|
15
|
+
|
|
16
|
+
## 命令格式
|
|
17
|
+
```text
|
|
18
|
+
/flow-archive "REQ-123" # 归档已完成需求
|
|
19
|
+
/flow-archive "REQ-123" --reason deprecated # 标记为废弃归档
|
|
20
|
+
/flow-archive --list # 列出所有归档
|
|
21
|
+
/flow-archive "REQ-123" --restore # 恢复归档需求
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 参数说明
|
|
25
|
+
- **REQ_ID**: 需求编号,格式 REQ-XXX 或 BUG-XXX
|
|
26
|
+
- **--reason**: 归档原因
|
|
27
|
+
- `completed` (默认) - 需求已完成并发布
|
|
28
|
+
- `deprecated` - 需求已废弃,不再需要
|
|
29
|
+
- `obsolete` - 需求已过时,被新需求取代
|
|
30
|
+
- `superseded` - 被其他需求合并或替代
|
|
31
|
+
- **--list**: 列出所有归档的需求
|
|
32
|
+
- **--restore**: 将归档的需求恢复到活跃目录
|
|
33
|
+
|
|
34
|
+
## 执行流程
|
|
35
|
+
|
|
36
|
+
### 阶段 1: Entry Gate (参数验证)
|
|
37
|
+
```
|
|
38
|
+
1. 解析命令参数
|
|
39
|
+
→ 检测模式: archive | list | restore
|
|
40
|
+
|
|
41
|
+
2. 验证 REQ_ID 格式
|
|
42
|
+
→ 必须匹配: ^(REQ|BUG)-[0-9]+(-[0-9]+)?$
|
|
43
|
+
|
|
44
|
+
3. 检查需求状态
|
|
45
|
+
→ 归档模式: 需求必须存在于 devflow/requirements/ 或 devflow/bugs/
|
|
46
|
+
→ 恢复模式: 需求必须存在于 devflow/archive/{YYYY-MM}/
|
|
47
|
+
|
|
48
|
+
4. 验证归档原因
|
|
49
|
+
→ 必须是: completed, deprecated, obsolete, superseded 之一
|
|
50
|
+
|
|
51
|
+
*GATE CHECK: 参数验证通过*
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 阶段 2: 归档执行
|
|
55
|
+
```
|
|
56
|
+
1. 确定归档目标目录
|
|
57
|
+
→ 格式: devflow/archive/{YYYY-MM}/{REQ_ID}/
|
|
58
|
+
→ 年月使用北京时间
|
|
59
|
+
|
|
60
|
+
2. 备份当前状态
|
|
61
|
+
→ 读取 orchestration_status.json 的 status 字段
|
|
62
|
+
→ 保存为 statusBeforeArchive
|
|
63
|
+
|
|
64
|
+
3. 移动目录
|
|
65
|
+
→ mv devflow/requirements/{REQ_ID}/ → devflow/archive/{YYYY-MM}/{REQ_ID}/
|
|
66
|
+
→ 或 mv devflow/bugs/{BUG_ID}/ → devflow/archive/{YYYY-MM}/{BUG_ID}/
|
|
67
|
+
|
|
68
|
+
4. 更新状态文件
|
|
69
|
+
→ orchestration_status.json:
|
|
70
|
+
{
|
|
71
|
+
"status": "archived",
|
|
72
|
+
"archivedReason": "{reason}",
|
|
73
|
+
"archivedAt": "{ISO8601+08:00}",
|
|
74
|
+
"archiveLocation": "{target_path}",
|
|
75
|
+
"statusBeforeArchive": "{previous_status}"
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
5. 追加 EXECUTION_LOG.md
|
|
79
|
+
→ 记录归档时间、原因、位置
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 阶段 3: 列表模式 (--list)
|
|
83
|
+
```
|
|
84
|
+
1. 扫描 devflow/archive/ 目录
|
|
85
|
+
→ 按月份组织: devflow/archive/{YYYY-MM}/
|
|
86
|
+
|
|
87
|
+
2. 收集归档信息
|
|
88
|
+
→ 读取每个归档需求的 orchestration_status.json
|
|
89
|
+
→ 提取: reqId, title, archivedReason, archivedAt
|
|
90
|
+
|
|
91
|
+
3. 格式化输出
|
|
92
|
+
→ 表格形式展示: 月份 | 需求ID | 归档原因 | 标题
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 阶段 4: 恢复模式 (--restore)
|
|
96
|
+
```
|
|
97
|
+
1. 定位归档需求
|
|
98
|
+
→ 在 devflow/archive/*/ 中搜索 {REQ_ID}
|
|
99
|
+
|
|
100
|
+
2. 验证目标位置
|
|
101
|
+
→ 确认 devflow/requirements/{REQ_ID}/ 不存在
|
|
102
|
+
→ 避免覆盖现有需求
|
|
103
|
+
|
|
104
|
+
3. 移动回活跃目录
|
|
105
|
+
→ mv devflow/archive/{YYYY-MM}/{REQ_ID}/ → devflow/requirements/{REQ_ID}/
|
|
106
|
+
|
|
107
|
+
4. 恢复状态
|
|
108
|
+
→ 读取 statusBeforeArchive,恢复为 status
|
|
109
|
+
→ 删除归档相关字段 (archivedAt, archivedReason, archiveLocation)
|
|
110
|
+
|
|
111
|
+
5. 记录恢复事件
|
|
112
|
+
→ EXECUTION_LOG.md 追加恢复记录
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 输出产物
|
|
116
|
+
|
|
117
|
+
### 归档后目录结构
|
|
118
|
+
```text
|
|
119
|
+
devflow/
|
|
120
|
+
├── requirements/ # 活跃需求
|
|
121
|
+
│ └── REQ-004/ # 进行中的需求
|
|
122
|
+
├── archive/ # 归档区
|
|
123
|
+
│ ├── 2025-12/ # 按月份组织
|
|
124
|
+
│ │ ├── REQ-003/ # 已归档需求
|
|
125
|
+
│ │ │ ├── README.md
|
|
126
|
+
│ │ │ ├── PRD.md
|
|
127
|
+
│ │ │ ├── EPIC.md
|
|
128
|
+
│ │ │ ├── EXECUTION_LOG.md
|
|
129
|
+
│ │ │ ├── orchestration_status.json # status: "archived"
|
|
130
|
+
│ │ │ └── research/
|
|
131
|
+
│ │ └── REQ-001/
|
|
132
|
+
│ └── 2025-11/
|
|
133
|
+
│ └── REQ-002/
|
|
134
|
+
└── bugs/ # 活跃Bug
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 归档后状态文件
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"reqId": "REQ-003",
|
|
141
|
+
"title": "分支命名优化",
|
|
142
|
+
"status": "archived",
|
|
143
|
+
"archivedReason": "completed",
|
|
144
|
+
"archivedAt": "2025-12-16T16:30:00+08:00",
|
|
145
|
+
"archiveLocation": "devflow/archive/2025-12/REQ-003",
|
|
146
|
+
"statusBeforeArchive": "release_complete",
|
|
147
|
+
"completedSteps": ["init", "prd", "epic", "dev", "qa", "release"],
|
|
148
|
+
"prUrl": "https://github.com/xxx/xxx/pull/6"
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 成功输出
|
|
153
|
+
```
|
|
154
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
155
|
+
✅ 需求 REQ-003 已归档
|
|
156
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
157
|
+
原位置: devflow/requirements/REQ-003
|
|
158
|
+
新位置: devflow/archive/2025-12/REQ-003
|
|
159
|
+
归档原因: completed
|
|
160
|
+
归档前状态: release_complete
|
|
161
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 列表输出
|
|
165
|
+
```
|
|
166
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
167
|
+
📦 归档需求列表
|
|
168
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
169
|
+
月份 | 需求ID | 归档原因 | 标题
|
|
170
|
+
───────────────────────────────────────────────────────────────
|
|
171
|
+
2025-12 | REQ-003 | completed | 分支命名优化
|
|
172
|
+
2025-12 | REQ-001 | deprecated | 旧版登录功能
|
|
173
|
+
2025-11 | REQ-002 | superseded | 用户管理V1
|
|
174
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## 错误处理
|
|
178
|
+
|
|
179
|
+
### 常见错误
|
|
180
|
+
|
|
181
|
+
**1. 需求不存在**
|
|
182
|
+
```
|
|
183
|
+
ERROR: 需求目录不存在: devflow/requirements/REQ-999
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**2. 需求已归档**
|
|
187
|
+
```
|
|
188
|
+
ERROR: REQ-003 已经在归档中: devflow/archive/2025-12/REQ-003
|
|
189
|
+
如需重新归档,请先使用 --restore 恢复
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**3. 恢复时目标已存在**
|
|
193
|
+
```
|
|
194
|
+
ERROR: 目标目录已存在: devflow/requirements/REQ-003
|
|
195
|
+
请先删除或重命名现有目录
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**4. 无效的归档原因**
|
|
199
|
+
```
|
|
200
|
+
ERROR: 无效的归档原因: cancelled
|
|
201
|
+
有效选项: completed deprecated obsolete superseded
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 最佳实践
|
|
205
|
+
|
|
206
|
+
### 何时归档
|
|
207
|
+
- ✅ 需求已完成并成功发布 (`/flow-release` 后)
|
|
208
|
+
- ✅ 需求被明确取消或废弃
|
|
209
|
+
- ✅ 需求被新需求完全取代
|
|
210
|
+
|
|
211
|
+
### 何时恢复
|
|
212
|
+
- 🔄 需要参考历史实现
|
|
213
|
+
- 🔄 需要基于旧需求进行迭代
|
|
214
|
+
- 🔄 错误归档需要撤销
|
|
215
|
+
|
|
216
|
+
### 不要归档
|
|
217
|
+
- ❌ 仍在进行中的需求
|
|
218
|
+
- ❌ 暂停但计划继续的需求
|
|
219
|
+
- ❌ 需要长期维护的需求
|
|
220
|
+
|
|
221
|
+
## 与其他命令的关系
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
/flow-init → /flow-prd → /flow-epic → /flow-dev → /flow-qa → /flow-release
|
|
225
|
+
↓
|
|
226
|
+
/flow-archive ← 工作流终点
|
|
227
|
+
↓
|
|
228
|
+
devflow/archive/{YYYY-MM}/
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## 脚本集成
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# 归档需求
|
|
235
|
+
.claude/scripts/archive-requirement.sh "REQ-003" --reason completed
|
|
236
|
+
|
|
237
|
+
# 列出归档 (JSON格式)
|
|
238
|
+
.claude/scripts/archive-requirement.sh --list --json
|
|
239
|
+
|
|
240
|
+
# 恢复需求
|
|
241
|
+
.claude/scripts/archive-requirement.sh "REQ-003" --restore
|
|
242
|
+
|
|
243
|
+
# 预览操作
|
|
244
|
+
.claude/scripts/archive-requirement.sh "REQ-003" --dry-run
|
|
245
|
+
```
|