cc-devflow 4.3.0 → 4.5.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 (579) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +70 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +330 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +68 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +29 -0
  6. package/.claude/skills/cc-act/references/closure-contract.md +49 -0
  7. package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
  8. package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +245 -0
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
  11. package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +200 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +328 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +78 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +353 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +53 -0
  19. package/.claude/skills/cc-check/references/gate-contract.md +29 -0
  20. package/.claude/skills/cc-check/references/review-contract.md +45 -0
  21. package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
  22. package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
  23. package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
  24. package/.claude/skills/cc-do/CHANGELOG.md +54 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +224 -0
  27. package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
  28. package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
  29. package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
  30. package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
  31. package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
  32. package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
  33. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
  34. package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
  35. package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
  36. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
  37. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
  38. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
  39. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
  40. package/.claude/skills/cc-investigate/CHANGELOG.md +31 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +229 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +56 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +53 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +106 -0
  46. package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
  47. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
  48. package/.claude/skills/cc-plan/CHANGELOG.md +104 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +333 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +156 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +99 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +111 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +80 -0
  55. package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
  56. package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
  57. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
  58. package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
  59. package/.claude/skills/cc-roadmap/CHANGELOG.md +119 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +267 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +46 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +154 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +51 -0
  65. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
  66. package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
  67. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
  68. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
  69. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
  70. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
  71. package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
  72. package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
  73. package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
  74. package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
  75. package/.claude/skills/cc-simplify/SKILL.md +55 -0
  76. package/.claude/skills/cc-spec-init/CHANGELOG.md +12 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +135 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +64 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +28 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +35 -0
  82. package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
  83. package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
  84. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
  85. package/CHANGELOG.md +80 -4
  86. package/README.md +148 -741
  87. package/README.zh-CN.md +146 -740
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +287 -166
  90. package/config/distributable-skills.json +24 -0
  91. package/config/schema/cc-devflow-config.schema.json +45 -0
  92. package/config/user-config.template.yml +16 -0
  93. package/docs/CLAUDE.md +10 -6
  94. package/docs/commands/README.md +19 -46
  95. package/docs/commands/README.zh-CN.md +25 -48
  96. package/docs/examples/BY-ARTIFACT.md +7 -0
  97. package/docs/examples/README.md +38 -0
  98. package/docs/examples/START-HERE.md +149 -0
  99. package/docs/examples/example-bindings.json +38 -0
  100. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  101. package/docs/examples/full-design-blocked/README.md +55 -0
  102. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  105. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  106. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  107. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  108. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  109. package/docs/examples/local-handoff/README.md +56 -0
  110. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  115. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  116. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  117. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  118. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  119. package/docs/examples/pdca-loop/README.md +58 -0
  120. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  125. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  126. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  127. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  128. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  129. package/docs/guides/getting-started.md +94 -129
  130. package/docs/guides/getting-started.zh-CN.md +103 -84
  131. package/docs/skill-runtime-migration.md +46 -0
  132. package/docs/v4.3.0-migration-guide.md +60 -225
  133. package/lib/compiler/CLAUDE.md +55 -84
  134. package/lib/compiler/__tests__/drift.test.js +1 -1
  135. package/lib/compiler/__tests__/errors.test.js +0 -1
  136. package/lib/compiler/__tests__/integration.test.js +49 -3
  137. package/lib/compiler/__tests__/manifest.test.js +0 -156
  138. package/lib/compiler/__tests__/parser.test.js +33 -104
  139. package/lib/compiler/__tests__/schemas.test.js +30 -34
  140. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  141. package/lib/compiler/__tests__/transformer.test.js +5 -9
  142. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  143. package/lib/compiler/emitters/base-emitter.js +3 -298
  144. package/lib/compiler/emitters/codex-emitter.js +4 -202
  145. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  146. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  147. package/lib/compiler/index.js +65 -345
  148. package/lib/compiler/manifest.js +6 -68
  149. package/lib/compiler/parser.js +31 -63
  150. package/lib/compiler/platforms.js +32 -277
  151. package/lib/compiler/resource-copier.js +176 -6
  152. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  153. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  154. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  155. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  156. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  157. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  158. package/lib/compiler/rules-emitters/index.js +6 -3
  159. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  160. package/lib/compiler/schemas.js +8 -4
  161. package/lib/compiler/skills-registry.js +213 -15
  162. package/lib/compiler/transformer.js +1 -1
  163. package/lib/skill-runtime/CLAUDE.md +19 -0
  164. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  165. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +291 -0
  166. package/lib/skill-runtime/__tests__/config.test.js +161 -0
  167. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  168. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  169. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  170. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  171. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  172. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  173. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  174. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  175. package/lib/skill-runtime/__tests__/runtime.integration.test.js +281 -0
  176. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  177. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  178. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  179. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  180. package/lib/skill-runtime/artifacts.js +93 -0
  181. package/lib/skill-runtime/config.js +379 -0
  182. package/lib/skill-runtime/delegation.js +533 -0
  183. package/lib/skill-runtime/index.js +36 -0
  184. package/lib/skill-runtime/intent.js +333 -0
  185. package/lib/skill-runtime/lifecycle.js +294 -0
  186. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  187. package/lib/skill-runtime/operations/approve.js +66 -0
  188. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  189. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  190. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  191. package/lib/skill-runtime/operations/autopilot.js +163 -0
  192. package/lib/skill-runtime/operations/dispatch.js +454 -0
  193. package/lib/skill-runtime/operations/init.js +64 -0
  194. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  195. package/lib/skill-runtime/operations/plan.js +59 -0
  196. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  197. package/lib/skill-runtime/operations/release.js +96 -0
  198. package/lib/skill-runtime/operations/resume.js +143 -0
  199. package/lib/skill-runtime/operations/snapshot.js +45 -0
  200. package/lib/skill-runtime/operations/verify.js +170 -0
  201. package/lib/skill-runtime/operations/worker-run.js +529 -0
  202. package/lib/skill-runtime/operations/worker.js +33 -0
  203. package/lib/skill-runtime/paths.js +213 -0
  204. package/lib/skill-runtime/planner.js +519 -0
  205. package/lib/skill-runtime/query.js +157 -0
  206. package/lib/skill-runtime/review.js +557 -0
  207. package/lib/skill-runtime/schemas.js +400 -0
  208. package/lib/{harness → skill-runtime}/store.js +45 -30
  209. package/lib/skill-runtime/team-state.js +122 -0
  210. package/package.json +13 -11
  211. package/.claude/CLAUDE.md +0 -125
  212. package/.claude/agents/architecture-designer.md +0 -443
  213. package/.claude/agents/bug-analyzer.md +0 -381
  214. package/.claude/agents/checklist-agent.md +0 -175
  215. package/.claude/agents/clarify-analyst.md +0 -50
  216. package/.claude/agents/code-quality-reviewer.md +0 -205
  217. package/.claude/agents/code-reviewer.md +0 -71
  218. package/.claude/agents/codex-analyzer.md +0 -39
  219. package/.claude/agents/compatibility-checker.md +0 -579
  220. package/.claude/agents/consistency-checker.md +0 -532
  221. package/.claude/agents/dev-implementer.md +0 -195
  222. package/.claude/agents/flow-researcher.md +0 -132
  223. package/.claude/agents/impact-analyzer.md +0 -440
  224. package/.claude/agents/planner.md +0 -230
  225. package/.claude/agents/prd-writer.md +0 -320
  226. package/.claude/agents/project-guidelines-generator.md +0 -1329
  227. package/.claude/agents/qa-tester.md +0 -313
  228. package/.claude/agents/release-manager.md +0 -295
  229. package/.claude/agents/security-reviewer.md +0 -314
  230. package/.claude/agents/spec-reviewer.md +0 -221
  231. package/.claude/agents/style-guide-generator.md +0 -458
  232. package/.claude/agents/tech-architect.md +0 -516
  233. package/.claude/agents/ui-designer.md +0 -485
  234. package/.claude/commands/core/architecture.md +0 -459
  235. package/.claude/commands/core/guidelines.md +0 -511
  236. package/.claude/commands/core/roadmap.md +0 -468
  237. package/.claude/commands/core/style.md +0 -83
  238. package/.claude/commands/flow/CLAUDE.md +0 -24
  239. package/.claude/commands/flow/archive.md +0 -280
  240. package/.claude/commands/flow/constitution.md +0 -82
  241. package/.claude/commands/flow/context.md +0 -150
  242. package/.claude/commands/flow/delta.md +0 -245
  243. package/.claude/commands/flow/dev.md +0 -40
  244. package/.claude/commands/flow/fix.md +0 -217
  245. package/.claude/commands/flow/ideate.md +0 -214
  246. package/.claude/commands/flow/init.md +0 -38
  247. package/.claude/commands/flow/release.md +0 -36
  248. package/.claude/commands/flow/restart.md +0 -97
  249. package/.claude/commands/flow/spec.md +0 -36
  250. package/.claude/commands/flow/status.md +0 -64
  251. package/.claude/commands/flow/update.md +0 -111
  252. package/.claude/commands/flow/upgrade.md +0 -115
  253. package/.claude/commands/flow/verify.md +0 -37
  254. package/.claude/commands/flow/workspace.md +0 -155
  255. package/.claude/commands/util/cancel-ralph.md +0 -60
  256. package/.claude/commands/util/code-review.md +0 -58
  257. package/.claude/commands/util/git-commit.md +0 -422
  258. package/.claude/commands/util/problem-analyzer.md +0 -60
  259. package/.claude/config/quality-gates.yml +0 -305
  260. package/.claude/config/quality-rules.yml +0 -161
  261. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  262. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  263. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  264. package/.claude/docs/design/prd-version-management-design.md +0 -437
  265. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  266. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  267. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  268. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  269. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  270. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  271. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  272. package/.claude/docs/implementation-summary-v7.md +0 -449
  273. package/.claude/docs/spec-format-guide.md +0 -349
  274. package/.claude/docs/state-consolidation-design.md +0 -323
  275. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  276. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  277. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  278. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  279. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  280. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  281. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  282. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  283. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  284. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  285. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  286. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  287. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  288. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  289. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  290. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  291. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  292. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  293. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  294. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  295. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  296. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  297. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  298. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  299. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  300. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  301. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  302. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  303. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  304. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  305. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  306. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  307. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  308. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  309. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  310. package/.claude/guides/project-guidelines-system.md +0 -463
  311. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  312. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  313. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  314. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  315. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  316. package/.claude/hooks/CLAUDE.md +0 -342
  317. package/.claude/hooks/checklist-gate.js +0 -397
  318. package/.claude/hooks/error-handling-reminder.sh +0 -12
  319. package/.claude/hooks/error-handling-reminder.ts +0 -459
  320. package/.claude/hooks/hooks.json +0 -15
  321. package/.claude/hooks/inject-agent-context.ts +0 -480
  322. package/.claude/hooks/inject-skill-context.ts +0 -359
  323. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  324. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  325. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  326. package/.claude/hooks/ralph-loop.ts +0 -931
  327. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  328. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  329. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  330. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  331. package/.claude/hooks/task-completed-hook.ts +0 -593
  332. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  333. package/.claude/hooks/types/team-types.d.ts +0 -238
  334. package/.claude/rules/devflow-conventions.md +0 -286
  335. package/.claude/rules/project-constitution.md +0 -1002
  336. package/.claude/rules/rationalization-library.md +0 -282
  337. package/.claude/schemas/constitution.schema.json +0 -43
  338. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  339. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  340. package/.claude/scripts/CLAUDE.md +0 -76
  341. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  342. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  343. package/.claude/scripts/archive-requirement.sh +0 -394
  344. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  345. package/.claude/scripts/calculate-quarter.sh +0 -206
  346. package/.claude/scripts/check-dependencies.sh +0 -409
  347. package/.claude/scripts/check-prerequisites.sh +0 -232
  348. package/.claude/scripts/check-task-status.sh +0 -288
  349. package/.claude/scripts/checklist-errors.sh +0 -131
  350. package/.claude/scripts/common.sh +0 -1102
  351. package/.claude/scripts/consolidate-research.sh +0 -182
  352. package/.claude/scripts/create-requirement.sh +0 -451
  353. package/.claude/scripts/delta-parser.ts +0 -637
  354. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  355. package/.claude/scripts/export-contracts.sh +0 -117
  356. package/.claude/scripts/export-openspec.js +0 -222
  357. package/.claude/scripts/extract-data-model.sh +0 -78
  358. package/.claude/scripts/flow-context-add.sh +0 -134
  359. package/.claude/scripts/flow-context-init.sh +0 -133
  360. package/.claude/scripts/flow-context-validate.sh +0 -144
  361. package/.claude/scripts/flow-delta-apply.sh +0 -297
  362. package/.claude/scripts/flow-delta-archive.sh +0 -71
  363. package/.claude/scripts/flow-delta-create.sh +0 -202
  364. package/.claude/scripts/flow-delta-list.sh +0 -142
  365. package/.claude/scripts/flow-delta-status.sh +0 -235
  366. package/.claude/scripts/flow-quality-full.sh +0 -215
  367. package/.claude/scripts/flow-quality-quick.sh +0 -119
  368. package/.claude/scripts/flow-workspace-init.sh +0 -117
  369. package/.claude/scripts/flow-workspace-record.sh +0 -164
  370. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  371. package/.claude/scripts/generate-clarification-report.sh +0 -463
  372. package/.claude/scripts/generate-quickstart.sh +0 -146
  373. package/.claude/scripts/generate-research-tasks.sh +0 -157
  374. package/.claude/scripts/generate-status-report.sh +0 -523
  375. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  376. package/.claude/scripts/get-workflow-status.sh +0 -415
  377. package/.claude/scripts/import-openspec.js +0 -272
  378. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  379. package/.claude/scripts/manage-constitution.sh +0 -602
  380. package/.claude/scripts/mark-task-complete.sh +0 -198
  381. package/.claude/scripts/parse-task-dependencies.js +0 -334
  382. package/.claude/scripts/populate-research-tasks.sh +0 -284
  383. package/.claude/scripts/record-quality-error.sh +0 -165
  384. package/.claude/scripts/recover-workflow.sh +0 -463
  385. package/.claude/scripts/run-clarify-scan.sh +0 -601
  386. package/.claude/scripts/run-high-review.sh +0 -62
  387. package/.claude/scripts/run-problem-analysis.sh +0 -68
  388. package/.claude/scripts/run-quality-gates.sh +0 -242
  389. package/.claude/scripts/setup-epic.sh +0 -173
  390. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  391. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  392. package/.claude/scripts/sync-task-marks.sh +0 -199
  393. package/.claude/scripts/team-dev-init.sh +0 -319
  394. package/.claude/scripts/team-state-recovery.sh +0 -229
  395. package/.claude/scripts/test-clarify-scan.sh +0 -515
  396. package/.claude/scripts/update-agent-context.sh +0 -806
  397. package/.claude/scripts/validate-constitution.sh +0 -567
  398. package/.claude/scripts/validate-hooks.sh +0 -487
  399. package/.claude/scripts/validate-research.sh +0 -332
  400. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  401. package/.claude/scripts/validate-scope.sh +0 -200
  402. package/.claude/scripts/verify-gate.sh +0 -269
  403. package/.claude/scripts/verify-setup.sh +0 -37
  404. package/.claude/scripts/workflow-status.ts +0 -433
  405. package/.claude/settings.json +0 -95
  406. package/.claude/skills/_reference-implementations/README.md +0 -96
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  415. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  416. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  417. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  418. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  426. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  427. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  428. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  429. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  430. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  431. package/.claude/skills/brainstorming/SKILL.md +0 -161
  432. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  433. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  434. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  435. package/.claude/skills/debugging/SKILL.md +0 -221
  436. package/.claude/skills/file-standards/SKILL.md +0 -353
  437. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  438. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  439. package/.claude/skills/flow-dev/SKILL.md +0 -94
  440. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  441. package/.claude/skills/flow-dev/context.jsonl +0 -4
  442. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  443. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  444. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  445. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  446. package/.claude/skills/flow-fix/SKILL.md +0 -105
  447. package/.claude/skills/flow-fix/context.jsonl +0 -6
  448. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  449. package/.claude/skills/flow-init/SKILL.md +0 -105
  450. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  451. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  452. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  453. package/.claude/skills/flow-init/context.jsonl +0 -5
  454. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  455. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  456. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  457. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  458. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  459. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  460. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  461. package/.claude/skills/flow-quality/SKILL.md +0 -98
  462. package/.claude/skills/flow-quality/context.jsonl +0 -6
  463. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  464. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  465. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  466. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  467. package/.claude/skills/flow-release/SKILL.md +0 -60
  468. package/.claude/skills/flow-release/context.jsonl +0 -5
  469. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  470. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  471. package/.claude/skills/flow-spec/SKILL.md +0 -102
  472. package/.claude/skills/flow-spec/context.jsonl +0 -5
  473. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  474. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  475. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  476. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  477. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  478. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  479. package/.claude/skills/flow-spec/team-config.json +0 -165
  480. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  481. package/.claude/skills/flow-verify/SKILL.md +0 -53
  482. package/.claude/skills/flow-verify/context.jsonl +0 -5
  483. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  484. package/.claude/skills/journey-checker/SKILL.md +0 -199
  485. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  486. package/.claude/skills/receiving-review/SKILL.md +0 -153
  487. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  488. package/.claude/skills/skill-creator/SKILL.md +0 -356
  489. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  490. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  491. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  492. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  493. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  494. package/.claude/skills/skill-rules.json +0 -359
  495. package/.claude/skills/tdd/SKILL.md +0 -218
  496. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  497. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  498. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  499. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  500. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  501. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  502. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  503. package/.claude/skills/verification/SKILL.md +0 -158
  504. package/.claude/skills/workflow.yaml +0 -219
  505. package/.claude/tests/README.md +0 -300
  506. package/.claude/tests/TODO.md +0 -69
  507. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  510. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  511. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  512. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  513. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  514. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  515. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  516. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  517. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  518. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  519. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  520. package/.claude/tests/run-all-tests.sh +0 -229
  521. package/.claude/tests/scripts/run.sh +0 -30
  522. package/.claude/tests/scripts/test-framework.sh +0 -128
  523. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  525. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  526. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  527. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  528. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  529. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  530. package/.claude/tests/scripts/test_common.sh +0 -244
  531. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  532. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  533. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  534. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  535. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  536. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  537. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  538. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  539. package/.claude/tests/slugify.bats +0 -82
  540. package/.claude/tests/test-framework.sh +0 -732
  541. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  542. package/.claude/tests/test_consolidate_research.py +0 -48
  543. package/.claude/tests/test_export_contracts.py +0 -43
  544. package/.claude/tests/test_extract_data_model.py +0 -33
  545. package/.claude/tests/test_generate_quickstart.py +0 -50
  546. package/.claude/tests/test_generate_research_tasks.py +0 -52
  547. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  548. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  549. package/bin/harness.js +0 -22
  550. package/docs/commands/core-roadmap.md +0 -106
  551. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  552. package/docs/commands/core-style.md +0 -53
  553. package/docs/commands/core-style.zh-CN.md +0 -53
  554. package/docs/commands/flow-init.md +0 -140
  555. package/docs/commands/flow-init.zh-CN.md +0 -169
  556. package/docs/commands/flow-new.md +0 -39
  557. package/docs/commands/flow-new.zh-CN.md +0 -39
  558. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  559. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  560. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  561. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  562. package/lib/compiler/context-expander.js +0 -179
  563. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  564. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  565. package/lib/compiler/skill-discovery.js +0 -68
  566. package/lib/harness/CLAUDE.md +0 -22
  567. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  568. package/lib/harness/cli.js +0 -208
  569. package/lib/harness/index.js +0 -18
  570. package/lib/harness/operations/dispatch.js +0 -298
  571. package/lib/harness/operations/init.js +0 -48
  572. package/lib/harness/operations/pack.js +0 -100
  573. package/lib/harness/operations/plan.js +0 -83
  574. package/lib/harness/operations/release.js +0 -170
  575. package/lib/harness/operations/resume.js +0 -44
  576. package/lib/harness/operations/verify.js +0 -177
  577. package/lib/harness/planner.js +0 -272
  578. package/lib/harness/query.js +0 -126
  579. package/lib/harness/schemas.js +0 -129
@@ -1,563 +0,0 @@
1
- # 日期时间处理规则
2
-
3
- ## 概述
4
-
5
- cc-devflow 系统中的所有日期时间操作都必须遵循统一的处理规则,确保时间信息的准确性和一致性。
6
-
7
- ## 核心原则
8
-
9
- ### 1. 始终使用真实系统时间
10
- **必须从系统获取真实的当前日期时间,而不是估算或使用占位符**
11
-
12
- ```bash
13
- # ✅ 正确做法 - 获取真实系统时间
14
- get_current_timestamp() {
15
- # 使用 UTC 时间,ISO 8601 格式
16
- date -u +%Y-%m-%dT%H:%M:%SZ
17
- }
18
-
19
- # ❌ 错误做法 - 使用占位符或估算
20
- use_placeholder_time() {
21
- echo "2024-01-01T00:00:00Z" # 不要这样做
22
- }
23
-
24
- # ❌ 错误做法 - 手动估算时间
25
- manual_estimate() {
26
- echo "大概是下午3点左右" # 不要这样做
27
- }
28
- ```
29
-
30
- ### 2. 标准时间格式
31
- **优先使用 ISO 8601 格式: YYYY-MM-DDTHH:MM:SSZ**
32
-
33
- ```bash
34
- # 标准时间格式函数
35
- format_iso8601_utc() {
36
- date -u +%Y-%m-%dT%H:%M:%SZ
37
- }
38
-
39
- format_iso8601_local() {
40
- date +%Y-%m-%dT%H:%M:%S%z
41
- }
42
-
43
- # 文件名安全的时间格式
44
- format_filename_safe() {
45
- date -u +%Y%m%d_%H%M%S
46
- }
47
-
48
- # 可读的时间格式
49
- format_human_readable() {
50
- date -u "+%Y-%m-%d %H:%M:%S UTC"
51
- }
52
-
53
- # 使用示例
54
- create_timestamped_file() {
55
- local content="$1"
56
- local timestamp=$(format_filename_safe)
57
- local filename="backup_${timestamp}.md"
58
-
59
- echo "$content" > "$filename"
60
- echo "✅ 文件已创建: $filename"
61
- }
62
- ```
63
-
64
- ### 3. 跨平台兼容性
65
- **支持 Linux、macOS 和 Windows 的时间获取**
66
-
67
- ```bash
68
- # 跨平台时间获取
69
- get_current_datetime_cross_platform() {
70
- local format="${1:-%Y-%m-%dT%H:%M:%SZ}"
71
-
72
- # 检测操作系统
73
- case "$(uname -s)" in
74
- Darwin)
75
- # macOS
76
- date -u +"$format"
77
- ;;
78
- Linux)
79
- # Linux
80
- date -u +"$format"
81
- ;;
82
- CYGWIN*|MINGW*|MSYS*)
83
- # Windows (Git Bash, MSYS2, etc.)
84
- date -u +"$format"
85
- ;;
86
- *)
87
- # 未知系统,尝试标准命令
88
- if command -v date >/dev/null 2>&1; then
89
- date -u +"$format"
90
- else
91
- echo "❌ 无法获取系统时间"
92
- return 1
93
- fi
94
- ;;
95
- esac
96
- }
97
-
98
- # 高精度时间戳(包含毫秒)
99
- get_precise_timestamp() {
100
- if command -v python3 >/dev/null 2>&1; then
101
- python3 -c "from datetime import datetime; print(datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'))"
102
- elif command -v node >/dev/null 2>&1; then
103
- node -e "console.log(new Date().toISOString())"
104
- else
105
- # 后备方案
106
- get_current_datetime_cross_platform
107
- fi
108
- }
109
- ```
110
-
111
- ## 文档前言中的时间处理
112
-
113
- ### Frontmatter 时间字段
114
- ```bash
115
- # 更新文档前言中的时间字段
116
- update_frontmatter_datetime() {
117
- local file_path="$1"
118
- local field_name="$2"
119
- local current_time=$(get_current_datetime_cross_platform)
120
-
121
- if [ ! -f "$file_path" ]; then
122
- echo "❌ 文件不存在: $file_path"
123
- return 1
124
- fi
125
-
126
- # 检查文件是否有 frontmatter
127
- if ! head -1 "$file_path" | grep -q "^---$"; then
128
- echo "❌ 文件没有 YAML frontmatter"
129
- return 1
130
- fi
131
-
132
- # 使用 yq 更新时间字段
133
- if command -v yq >/dev/null 2>&1; then
134
- yq eval ".${field_name} = \"${current_time}\"" -i "$file_path"
135
- echo "✅ 已更新 $field_name: $current_time"
136
- else
137
- # 后备方案:使用 sed 更新
138
- update_frontmatter_with_sed "$file_path" "$field_name" "$current_time"
139
- fi
140
- }
141
-
142
- # 使用 sed 更新 frontmatter(后备方案)
143
- update_frontmatter_with_sed() {
144
- local file_path="$1"
145
- local field_name="$2"
146
- local new_value="$3"
147
-
148
- # 创建临时文件
149
- local temp_file=$(mktemp)
150
-
151
- # 检查字段是否存在
152
- if grep -q "^${field_name}:" "$file_path"; then
153
- # 更新现有字段
154
- sed "s/^${field_name}:.*/${field_name}: \"${new_value}\"/" "$file_path" > "$temp_file"
155
- else
156
- # 在 frontmatter 结束前添加字段
157
- awk -v field="$field_name" -v value="$new_value" '
158
- /^---$/ && NR > 1 { print field ": \"" value "\"" }
159
- { print }
160
- ' "$file_path" > "$temp_file"
161
- fi
162
-
163
- # 替换原文件
164
- mv "$temp_file" "$file_path"
165
- echo "✅ 已更新 $field_name: $new_value"
166
- }
167
-
168
- # 标准 frontmatter 时间字段
169
- add_standard_timestamps() {
170
- local file_path="$1"
171
- local current_time=$(get_current_datetime_cross_platform)
172
-
173
- # 添加创建时间(如果不存在)
174
- if ! grep -q "^created:" "$file_path"; then
175
- update_frontmatter_datetime "$file_path" "created" "$current_time"
176
- fi
177
-
178
- # 总是更新修改时间
179
- update_frontmatter_datetime "$file_path" "updated" "$current_time"
180
- }
181
- ```
182
-
183
- ### 文档生成时的时间处理
184
- ```bash
185
- # 生成带时间戳的文档
186
- generate_document_with_timestamp() {
187
- local template_file="$1"
188
- local output_file="$2"
189
- local req_id="$3"
190
- local title="$4"
191
-
192
- local current_time=$(get_current_datetime_cross_platform)
193
- local creation_date=$(date -u +%Y-%m-%d)
194
-
195
- # 处理模板变量
196
- sed "s/{{DATE}}/$creation_date/g; s/{{TIMESTAMP}}/$current_time/g; s/{{REQ_ID}}/$req_id/g; s/{{TITLE}}/$title/g" "$template_file" > "$output_file"
197
-
198
- # 添加标准时间戳
199
- add_standard_timestamps "$output_file"
200
-
201
- echo "✅ 文档已生成: $output_file"
202
- }
203
- ```
204
-
205
- ## 日志记录中的时间处理
206
-
207
- ### 结构化日志时间
208
- ```bash
209
- # 结构化日志记录
210
- log_with_timestamp() {
211
- local level="$1"
212
- local component="$2"
213
- local message="$3"
214
- local context="$4"
215
-
216
- local timestamp=$(get_precise_timestamp)
217
- local log_file=".claude/logs/system.log"
218
-
219
- # 确保日志目录存在
220
- mkdir -p "$(dirname "$log_file")"
221
-
222
- # 创建结构化日志条目
223
- local log_entry=$(jq -n \
224
- --arg timestamp "$timestamp" \
225
- --arg level "$level" \
226
- --arg component "$component" \
227
- --arg message "$message" \
228
- --arg context "$context" \
229
- '{
230
- timestamp: $timestamp,
231
- level: $level,
232
- component: $component,
233
- message: $message,
234
- context: $context
235
- }'
236
- )
237
-
238
- # 写入日志文件
239
- echo "$log_entry" >> "$log_file"
240
-
241
- # 控制台输出(带时间)
242
- local readable_time=$(date -d "$timestamp" "+%H:%M:%S" 2>/dev/null || echo "${timestamp: -8:8}")
243
- echo "[$readable_time] $level - $component: $message"
244
- }
245
-
246
- # 性能计时
247
- time_operation() {
248
- local operation_name="$1"
249
- shift
250
- local command=("$@")
251
-
252
- local start_time=$(get_precise_timestamp)
253
- local start_epoch=$(date +%s.%N)
254
-
255
- echo "⏱️ 开始操作: $operation_name ($start_time)"
256
-
257
- # 执行命令
258
- "${command[@]}"
259
- local exit_code=$?
260
-
261
- local end_time=$(get_precise_timestamp)
262
- local end_epoch=$(date +%s.%N)
263
- local duration=$(echo "$end_epoch - $start_epoch" | bc -l 2>/dev/null || echo "0")
264
-
265
- echo "⏱️ 操作完成: $operation_name ($end_time) - 用时 ${duration}s"
266
-
267
- # 记录性能日志
268
- log_with_timestamp "INFO" "PERF" "Operation '$operation_name' completed in ${duration}s" "exit_code=$exit_code"
269
-
270
- return $exit_code
271
- }
272
- ```
273
-
274
- ### 审计日志时间
275
- ```bash
276
- # 审计日志记录
277
- audit_log() {
278
- local action="$1"
279
- local resource="$2"
280
- local user="$3"
281
- local details="$4"
282
-
283
- local timestamp=$(get_precise_timestamp)
284
- local audit_file=".claude/logs/audit.log"
285
-
286
- # 确保审计日志目录存在
287
- mkdir -p "$(dirname "$audit_file")"
288
-
289
- # 创建审计日志条目
290
- local audit_entry=$(jq -n \
291
- --arg timestamp "$timestamp" \
292
- --arg action "$action" \
293
- --arg resource "$resource" \
294
- --arg user "$user" \
295
- --arg details "$details" \
296
- '{
297
- timestamp: $timestamp,
298
- action: $action,
299
- resource: $resource,
300
- user: $user,
301
- details: $details
302
- }'
303
- )
304
-
305
- echo "$audit_entry" >> "$audit_file"
306
- echo "📝 审计日志: $action on $resource by $user"
307
- }
308
- ```
309
-
310
- ## Git 操作中的时间处理
311
-
312
- ### 提交时间信息
313
- ```bash
314
- # Git 提交带时间信息
315
- commit_with_timestamp() {
316
- local req_id="$1"
317
- local message="$2"
318
- local commit_time=$(get_current_datetime_cross_platform)
319
-
320
- # 构建提交消息
321
- local full_message="$message
322
-
323
- Timestamp: $commit_time
324
- Requirement: $req_id"
325
-
326
- git commit -m "$full_message"
327
-
328
- echo "✅ 提交完成 ($commit_time)"
329
- }
330
-
331
- # 获取 Git 提交时间
332
- get_commit_timestamp() {
333
- local commit_hash="${1:-HEAD}"
334
-
335
- # 获取 ISO 8601 格式的提交时间
336
- git show -s --format="%aI" "$commit_hash"
337
- }
338
-
339
- # 分析提交历史时间
340
- analyze_commit_timeline() {
341
- local req_id="$1"
342
- local output_file="devflow/requirements/${req_id}/timeline.md"
343
-
344
- cat > "$output_file" << EOF
345
- # 需求开发时间线
346
-
347
- ## 分析时间
348
- $(get_current_datetime_cross_platform)
349
-
350
- ## 提交历史
351
- $(git log --grep="$req_id" --oneline --format="%aI %h %s" | head -20)
352
-
353
- ## 开发统计
354
- - 总提交数: $(git log --grep="$req_id" --oneline | wc -l)
355
- - 开发周期: $(calculate_development_cycle "$req_id")
356
- EOF
357
-
358
- echo "📊 时间线分析已生成: $output_file"
359
- }
360
- ```
361
-
362
- ## 时区处理
363
-
364
- ### UTC 时间优先
365
- ```bash
366
- # UTC 时间处理
367
- convert_to_utc() {
368
- local local_time="$1"
369
-
370
- if command -v date >/dev/null 2>&1; then
371
- # 尝试转换为 UTC
372
- date -u -d "$local_time" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo "$local_time"
373
- else
374
- echo "$local_time"
375
- fi
376
- }
377
-
378
- # 本地时间转换
379
- convert_utc_to_local() {
380
- local utc_time="$1"
381
- local timezone="${2:-$(date +%Z)}"
382
-
383
- if command -v date >/dev/null 2>&1; then
384
- # 转换为本地时间
385
- date -d "$utc_time" "+%Y-%m-%d %H:%M:%S $timezone" 2>/dev/null || echo "$utc_time"
386
- else
387
- echo "$utc_time"
388
- fi
389
- }
390
-
391
- # 时区感知的时间显示
392
- display_time_with_timezone() {
393
- local utc_time="$1"
394
-
395
- echo "UTC: $utc_time"
396
-
397
- # 显示常见时区
398
- local timezones=("America/New_York" "Europe/London" "Asia/Shanghai" "Asia/Tokyo")
399
-
400
- for tz in "${timezones[@]}"; do
401
- if command -v python3 >/dev/null 2>&1; then
402
- local local_time=$(python3 -c "
403
- from datetime import datetime
404
- import pytz
405
- utc_dt = datetime.fromisoformat('$utc_time'.replace('Z', '+00:00'))
406
- local_dt = utc_dt.astimezone(pytz.timezone('$tz'))
407
- print(f'$tz: {local_dt.strftime(\"%Y-%m-%d %H:%M:%S\")}')
408
- " 2>/dev/null)
409
- echo "$local_time"
410
- fi
411
- done
412
- }
413
- ```
414
-
415
- ## 时间验证和解析
416
-
417
- ### 时间格式验证
418
- ```bash
419
- # 验证 ISO 8601 格式
420
- validate_iso8601() {
421
- local timestamp="$1"
422
-
423
- # 基本格式检查
424
- if echo "$timestamp" | grep -qE "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$"; then
425
- # 尝试解析验证
426
- if date -d "$timestamp" >/dev/null 2>&1; then
427
- return 0
428
- fi
429
- fi
430
-
431
- echo "❌ 时间格式无效: $timestamp"
432
- echo " 期望格式: YYYY-MM-DDTHH:MM:SSZ"
433
- return 1
434
- }
435
-
436
- # 解析相对时间
437
- parse_relative_time() {
438
- local relative_time="$1"
439
-
440
- case "$relative_time" in
441
- "now")
442
- get_current_datetime_cross_platform
443
- ;;
444
- "1h ago"|"1 hour ago")
445
- date -u -d "1 hour ago" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null ||
446
- date -u -v-1H +%Y-%m-%dT%H:%M:%SZ 2>/dev/null
447
- ;;
448
- "1d ago"|"1 day ago")
449
- date -u -d "1 day ago" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null ||
450
- date -u -v-1d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null
451
- ;;
452
- *)
453
- echo "❌ 不支持的相对时间: $relative_time"
454
- return 1
455
- ;;
456
- esac
457
- }
458
- ```
459
-
460
- ### 时间计算
461
- ```bash
462
- # 计算时间差
463
- calculate_time_difference() {
464
- local start_time="$1"
465
- local end_time="$2"
466
-
467
- if command -v python3 >/dev/null 2>&1; then
468
- python3 -c "
469
- from datetime import datetime
470
- start = datetime.fromisoformat('$start_time'.replace('Z', '+00:00'))
471
- end = datetime.fromisoformat('$end_time'.replace('Z', '+00:00'))
472
- diff = end - start
473
- print(f'{diff.total_seconds():.2f} seconds')
474
- print(f'{diff.total_seconds()/60:.2f} minutes')
475
- print(f'{diff.total_seconds()/3600:.2f} hours')
476
- "
477
- else
478
- # 后备计算方案
479
- echo "需要 Python 3 来计算精确时间差"
480
- fi
481
- }
482
-
483
- # 时间范围检查
484
- is_within_time_range() {
485
- local check_time="$1"
486
- local start_time="$2"
487
- local end_time="$3"
488
-
489
- if command -v python3 >/dev/null 2>&1; then
490
- python3 -c "
491
- from datetime import datetime
492
- check = datetime.fromisoformat('$check_time'.replace('Z', '+00:00'))
493
- start = datetime.fromisoformat('$start_time'.replace('Z', '+00:00'))
494
- end = datetime.fromisoformat('$end_time'.replace('Z', '+00:00'))
495
- print('true' if start <= check <= end else 'false')
496
- " 2>/dev/null | grep -q "true"
497
- else
498
- # 简单的字符串比较
499
- [[ "$check_time" > "$start_time" && "$check_time" < "$end_time" ]]
500
- fi
501
- }
502
- ```
503
-
504
- ## 最佳实践
505
-
506
- ### ✅ 时间处理清单
507
- - [ ] 始终使用系统真实时间
508
- - [ ] 优先使用 UTC 时间
509
- - [ ] 使用 ISO 8601 格式
510
- - [ ] 考虑跨平台兼容性
511
- - [ ] 验证时间格式正确性
512
- - [ ] 记录时区信息(如需要)
513
-
514
- ### 🔧 工具函数库
515
- ```bash
516
- # 时间工具函数集合
517
- datetime_utils() {
518
- case "$1" in
519
- "now")
520
- get_current_datetime_cross_platform
521
- ;;
522
- "precise")
523
- get_precise_timestamp
524
- ;;
525
- "filename")
526
- format_filename_safe
527
- ;;
528
- "readable")
529
- format_human_readable
530
- ;;
531
- "validate")
532
- validate_iso8601 "$2"
533
- ;;
534
- *)
535
- echo "时间工具函数用法:"
536
- echo " datetime_utils now - 获取当前 UTC 时间"
537
- echo " datetime_utils precise - 获取高精度时间戳"
538
- echo " datetime_utils filename - 获取文件名安全格式"
539
- echo " datetime_utils readable - 获取可读格式"
540
- echo " datetime_utils validate <time> - 验证时间格式"
541
- ;;
542
- esac
543
- }
544
- ```
545
-
546
- ### 📋 常用时间格式
547
- ```bash
548
- # 常用时间格式示例
549
- show_time_formats() {
550
- local current_time=$(get_current_datetime_cross_platform)
551
-
552
- echo "时间格式示例 (当前时间):"
553
- echo " ISO 8601 UTC: $current_time"
554
- echo " 文件名安全: $(format_filename_safe)"
555
- echo " 可读格式: $(format_human_readable)"
556
- echo " Unix 时间戳: $(date +%s)"
557
- echo " 毫秒时间戳: $(date +%s%3N 2>/dev/null || echo $(date +%s)000)"
558
- }
559
- ```
560
-
561
- ---
562
-
563
- **关键原则**: 任何需要当前日期时间的命令都必须从系统获取真实时间,而不是估算或使用占位符。时间信息必须准确、一致且可跨平台使用。