aiwcli 0.10.2 → 0.11.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 (249) hide show
  1. package/bin/run.js +1 -1
  2. package/dist/commands/clear.d.ts +11 -6
  3. package/dist/commands/clear.js +229 -381
  4. package/dist/commands/init/index.d.ts +1 -17
  5. package/dist/commands/init/index.js +22 -107
  6. package/dist/lib/gitignore-manager.d.ts +32 -0
  7. package/dist/lib/gitignore-manager.js +141 -2
  8. package/dist/lib/template-installer.d.ts +7 -12
  9. package/dist/lib/template-installer.js +69 -193
  10. package/dist/lib/template-settings-reconstructor.d.ts +35 -0
  11. package/dist/lib/template-settings-reconstructor.js +130 -0
  12. package/dist/templates/CLAUDE.md +8 -8
  13. package/dist/templates/_shared/.claude/commands/handoff-resume.md +64 -0
  14. package/dist/templates/_shared/.claude/commands/handoff.md +16 -10
  15. package/dist/templates/_shared/.claude/settings.json +7 -7
  16. package/dist/templates/_shared/hooks-ts/_utils/git-state.ts +2 -0
  17. package/dist/templates/_shared/hooks-ts/archive_plan.ts +159 -0
  18. package/dist/templates/_shared/hooks-ts/context_monitor.ts +147 -0
  19. package/dist/templates/_shared/hooks-ts/file-suggestion.ts +130 -0
  20. package/dist/templates/_shared/hooks-ts/pre_compact.ts +49 -0
  21. package/dist/templates/_shared/hooks-ts/session_end.ts +104 -0
  22. package/dist/templates/_shared/hooks-ts/session_start.ts +144 -0
  23. package/dist/templates/_shared/hooks-ts/task_create_capture.ts +48 -0
  24. package/dist/templates/_shared/hooks-ts/task_update_capture.ts +74 -0
  25. package/dist/templates/_shared/hooks-ts/user_prompt_submit.ts +83 -0
  26. package/dist/templates/_shared/lib-ts/CLAUDE.md +318 -0
  27. package/dist/templates/_shared/lib-ts/base/atomic-write.ts +138 -0
  28. package/dist/templates/_shared/lib-ts/base/constants.ts +306 -0
  29. package/dist/templates/_shared/lib-ts/base/git-state.ts +58 -0
  30. package/dist/templates/_shared/lib-ts/base/hook-utils.ts +439 -0
  31. package/dist/templates/_shared/lib-ts/base/inference.ts +252 -0
  32. package/dist/templates/_shared/lib-ts/base/logger.ts +250 -0
  33. package/dist/templates/_shared/lib-ts/base/state-io.ts +116 -0
  34. package/dist/templates/_shared/lib-ts/base/stop-words.ts +184 -0
  35. package/dist/templates/_shared/lib-ts/base/subprocess-utils.ts +162 -0
  36. package/dist/templates/_shared/lib-ts/base/utils.ts +184 -0
  37. package/dist/templates/_shared/lib-ts/context/context-formatter.ts +438 -0
  38. package/dist/templates/_shared/lib-ts/context/context-selector.ts +515 -0
  39. package/dist/templates/_shared/lib-ts/context/context-store.ts +707 -0
  40. package/dist/templates/_shared/lib-ts/context/plan-manager.ts +316 -0
  41. package/dist/templates/_shared/lib-ts/context/task-tracker.ts +185 -0
  42. package/dist/templates/_shared/lib-ts/handoff/document-generator.ts +216 -0
  43. package/dist/templates/_shared/lib-ts/handoff/handoff-reader.ts +159 -0
  44. package/dist/templates/_shared/lib-ts/package.json +21 -0
  45. package/dist/templates/_shared/lib-ts/templates/formatters.ts +104 -0
  46. package/dist/templates/_shared/{lib/templates/plan_context.py → lib-ts/templates/plan-context.ts} +14 -22
  47. package/dist/templates/_shared/lib-ts/tsconfig.json +13 -0
  48. package/dist/templates/_shared/lib-ts/types.ts +164 -0
  49. package/dist/templates/_shared/scripts/resolve_context.ts +24 -0
  50. package/dist/templates/_shared/scripts/resume_handoff.ts +321 -0
  51. package/dist/templates/_shared/scripts/save_handoff.ts +359 -0
  52. package/dist/templates/_shared/scripts/status_line.ts +733 -0
  53. package/dist/templates/cc-native/.claude/settings.json +175 -185
  54. package/dist/templates/cc-native/TEMPLATE-SCHEMA.md +15 -17
  55. package/dist/templates/cc-native/_cc-native/agents/ARCH-EVOLUTION.md +63 -0
  56. package/dist/templates/cc-native/_cc-native/agents/ARCH-PATTERNS.md +62 -0
  57. package/dist/templates/cc-native/_cc-native/agents/ARCH-STRUCTURE.md +63 -0
  58. package/dist/templates/cc-native/_cc-native/agents/{ASSUMPTION-CHAIN-TRACER.md → ASSUMPTION-TRACER.md} +6 -10
  59. package/dist/templates/cc-native/_cc-native/agents/CLARITY-AUDITOR.md +6 -10
  60. package/dist/templates/cc-native/_cc-native/agents/CLAUDE.md +74 -3
  61. package/dist/templates/cc-native/_cc-native/agents/COMPLETENESS-FEASIBILITY.md +67 -0
  62. package/dist/templates/cc-native/_cc-native/agents/COMPLETENESS-GAPS.md +71 -0
  63. package/dist/templates/cc-native/_cc-native/agents/COMPLETENESS-ORDERING.md +63 -0
  64. package/dist/templates/cc-native/_cc-native/agents/CONSTRAINT-VALIDATOR.md +73 -0
  65. package/dist/templates/cc-native/_cc-native/agents/DESIGN-ADR-VALIDATOR.md +62 -0
  66. package/dist/templates/cc-native/_cc-native/agents/DESIGN-SCALE-MATCHER.md +65 -0
  67. package/dist/templates/cc-native/_cc-native/agents/DEVILS-ADVOCATE.md +6 -9
  68. package/dist/templates/cc-native/_cc-native/agents/DOCUMENTATION-PHILOSOPHY.md +87 -0
  69. package/dist/templates/cc-native/_cc-native/agents/HANDOFF-READINESS.md +5 -9
  70. package/dist/templates/cc-native/_cc-native/agents/{HIDDEN-COMPLEXITY-DETECTOR.md → HIDDEN-COMPLEXITY.md} +6 -10
  71. package/dist/templates/cc-native/_cc-native/agents/INCREMENTAL-DELIVERY.md +67 -0
  72. package/dist/templates/cc-native/_cc-native/agents/PLAN-ORCHESTRATOR.md +91 -18
  73. package/dist/templates/cc-native/_cc-native/agents/RISK-DEPENDENCY.md +63 -0
  74. package/dist/templates/cc-native/_cc-native/agents/RISK-FMEA.md +67 -0
  75. package/dist/templates/cc-native/_cc-native/agents/RISK-PREMORTEM.md +72 -0
  76. package/dist/templates/cc-native/_cc-native/agents/RISK-REVERSIBILITY.md +75 -0
  77. package/dist/templates/cc-native/_cc-native/agents/SCOPE-BOUNDARY.md +78 -0
  78. package/dist/templates/cc-native/_cc-native/agents/SIMPLICITY-GUARDIAN.md +5 -9
  79. package/dist/templates/cc-native/_cc-native/agents/SKEPTIC.md +16 -12
  80. package/dist/templates/cc-native/_cc-native/agents/TESTDRIVEN-BEHAVIOR-AUDITOR.md +62 -0
  81. package/dist/templates/cc-native/_cc-native/agents/TESTDRIVEN-CHARACTERIZATION.md +72 -0
  82. package/dist/templates/cc-native/_cc-native/agents/TESTDRIVEN-FIRST-VALIDATOR.md +62 -0
  83. package/dist/templates/cc-native/_cc-native/agents/TESTDRIVEN-PYRAMID-ANALYZER.md +62 -0
  84. package/dist/templates/cc-native/_cc-native/agents/TRADEOFF-COSTS.md +68 -0
  85. package/dist/templates/cc-native/_cc-native/agents/TRADEOFF-STAKEHOLDERS.md +66 -0
  86. package/dist/templates/cc-native/_cc-native/agents/VERIFY-COVERAGE.md +75 -0
  87. package/dist/templates/cc-native/_cc-native/agents/VERIFY-STRENGTH.md +70 -0
  88. package/dist/templates/cc-native/_cc-native/hooks/CLAUDE.md +109 -135
  89. package/dist/templates/cc-native/_cc-native/hooks/add_plan_context.ts +119 -0
  90. package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.ts +921 -0
  91. package/dist/templates/cc-native/_cc-native/hooks/plan_questions_early.ts +61 -0
  92. package/dist/templates/cc-native/_cc-native/lib-ts/aggregate-agents.ts +157 -0
  93. package/dist/templates/cc-native/_cc-native/lib-ts/artifacts.ts +709 -0
  94. package/dist/templates/cc-native/_cc-native/lib-ts/cc-native-state.ts +199 -0
  95. package/dist/templates/cc-native/_cc-native/lib-ts/cli-output-parser.ts +124 -0
  96. package/dist/templates/cc-native/_cc-native/lib-ts/config.ts +57 -0
  97. package/dist/templates/cc-native/_cc-native/lib-ts/constants.ts +83 -0
  98. package/dist/templates/cc-native/_cc-native/lib-ts/debug.ts +80 -0
  99. package/dist/templates/cc-native/_cc-native/lib-ts/index.ts +119 -0
  100. package/dist/templates/cc-native/_cc-native/lib-ts/json-parser.ts +162 -0
  101. package/dist/templates/cc-native/_cc-native/lib-ts/nul +3 -0
  102. package/dist/templates/cc-native/_cc-native/lib-ts/orchestrator.ts +249 -0
  103. package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/agent.ts +155 -0
  104. package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/codex.ts +130 -0
  105. package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/gemini.ts +106 -0
  106. package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/index.ts +10 -0
  107. package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/types.ts +23 -0
  108. package/dist/templates/cc-native/_cc-native/lib-ts/state.ts +243 -0
  109. package/dist/templates/cc-native/_cc-native/lib-ts/tsconfig.json +18 -0
  110. package/dist/templates/cc-native/_cc-native/lib-ts/types.ts +310 -0
  111. package/dist/templates/cc-native/_cc-native/lib-ts/verdict.ts +72 -0
  112. package/dist/templates/cc-native/_cc-native/plan-review.config.json +12 -16
  113. package/oclif.manifest.json +1 -1
  114. package/package.json +1 -1
  115. package/dist/lib/template-merger.d.ts +0 -47
  116. package/dist/lib/template-merger.js +0 -162
  117. package/dist/templates/_shared/hooks/__init__.py +0 -16
  118. package/dist/templates/_shared/hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  119. package/dist/templates/_shared/hooks/__pycache__/archive_plan.cpython-313.pyc +0 -0
  120. package/dist/templates/_shared/hooks/__pycache__/context_enforcer.cpython-313.pyc +0 -0
  121. package/dist/templates/_shared/hooks/__pycache__/context_monitor.cpython-313.pyc +0 -0
  122. package/dist/templates/_shared/hooks/__pycache__/file-suggestion.cpython-313.pyc +0 -0
  123. package/dist/templates/_shared/hooks/__pycache__/pre_compact.cpython-313.pyc +0 -0
  124. package/dist/templates/_shared/hooks/__pycache__/session_end.cpython-313.pyc +0 -0
  125. package/dist/templates/_shared/hooks/__pycache__/session_start.cpython-313.pyc +0 -0
  126. package/dist/templates/_shared/hooks/__pycache__/task_create_atomicity.cpython-313.pyc +0 -0
  127. package/dist/templates/_shared/hooks/__pycache__/task_create_capture.cpython-313.pyc +0 -0
  128. package/dist/templates/_shared/hooks/__pycache__/task_update_capture.cpython-313.pyc +0 -0
  129. package/dist/templates/_shared/hooks/__pycache__/user_prompt_submit.cpython-313.pyc +0 -0
  130. package/dist/templates/_shared/hooks/archive_plan.py +0 -169
  131. package/dist/templates/_shared/hooks/context_monitor.py +0 -270
  132. package/dist/templates/_shared/hooks/file-suggestion.py +0 -215
  133. package/dist/templates/_shared/hooks/pre_compact.py +0 -104
  134. package/dist/templates/_shared/hooks/session_end.py +0 -173
  135. package/dist/templates/_shared/hooks/session_start.py +0 -206
  136. package/dist/templates/_shared/hooks/task_create_capture.py +0 -108
  137. package/dist/templates/_shared/hooks/task_update_capture.py +0 -145
  138. package/dist/templates/_shared/hooks/user_prompt_submit.py +0 -139
  139. package/dist/templates/_shared/lib/__init__.py +0 -1
  140. package/dist/templates/_shared/lib/__pycache__/__init__.cpython-313.pyc +0 -0
  141. package/dist/templates/_shared/lib/base/__init__.py +0 -65
  142. package/dist/templates/_shared/lib/base/__pycache__/__init__.cpython-313.pyc +0 -0
  143. package/dist/templates/_shared/lib/base/__pycache__/atomic_write.cpython-313.pyc +0 -0
  144. package/dist/templates/_shared/lib/base/__pycache__/constants.cpython-313.pyc +0 -0
  145. package/dist/templates/_shared/lib/base/__pycache__/hook_utils.cpython-313.pyc +0 -0
  146. package/dist/templates/_shared/lib/base/__pycache__/inference.cpython-313.pyc +0 -0
  147. package/dist/templates/_shared/lib/base/__pycache__/logger.cpython-313.pyc +0 -0
  148. package/dist/templates/_shared/lib/base/__pycache__/stop_words.cpython-313.pyc +0 -0
  149. package/dist/templates/_shared/lib/base/__pycache__/subprocess_utils.cpython-313.pyc +0 -0
  150. package/dist/templates/_shared/lib/base/__pycache__/utils.cpython-313.pyc +0 -0
  151. package/dist/templates/_shared/lib/base/atomic_write.py +0 -180
  152. package/dist/templates/_shared/lib/base/constants.py +0 -358
  153. package/dist/templates/_shared/lib/base/hook_utils.py +0 -341
  154. package/dist/templates/_shared/lib/base/inference.py +0 -318
  155. package/dist/templates/_shared/lib/base/logger.py +0 -291
  156. package/dist/templates/_shared/lib/base/stop_words.py +0 -213
  157. package/dist/templates/_shared/lib/base/subprocess_utils.py +0 -46
  158. package/dist/templates/_shared/lib/base/utils.py +0 -242
  159. package/dist/templates/_shared/lib/context/__init__.py +0 -102
  160. package/dist/templates/_shared/lib/context/__pycache__/__init__.cpython-313.pyc +0 -0
  161. package/dist/templates/_shared/lib/context/__pycache__/cache.cpython-313.pyc +0 -0
  162. package/dist/templates/_shared/lib/context/__pycache__/context_extractor.cpython-313.pyc +0 -0
  163. package/dist/templates/_shared/lib/context/__pycache__/context_formatter.cpython-313.pyc +0 -0
  164. package/dist/templates/_shared/lib/context/__pycache__/context_manager.cpython-313.pyc +0 -0
  165. package/dist/templates/_shared/lib/context/__pycache__/context_selector.cpython-313.pyc +0 -0
  166. package/dist/templates/_shared/lib/context/__pycache__/context_store.cpython-313.pyc +0 -0
  167. package/dist/templates/_shared/lib/context/__pycache__/discovery.cpython-313.pyc +0 -0
  168. package/dist/templates/_shared/lib/context/__pycache__/event_log.cpython-313.pyc +0 -0
  169. package/dist/templates/_shared/lib/context/__pycache__/plan_archive.cpython-313.pyc +0 -0
  170. package/dist/templates/_shared/lib/context/__pycache__/plan_manager.cpython-313.pyc +0 -0
  171. package/dist/templates/_shared/lib/context/__pycache__/task_sync.cpython-313.pyc +0 -0
  172. package/dist/templates/_shared/lib/context/__pycache__/task_tracker.cpython-313.pyc +0 -0
  173. package/dist/templates/_shared/lib/context/context_formatter.py +0 -317
  174. package/dist/templates/_shared/lib/context/context_selector.py +0 -508
  175. package/dist/templates/_shared/lib/context/context_store.py +0 -653
  176. package/dist/templates/_shared/lib/context/plan_manager.py +0 -204
  177. package/dist/templates/_shared/lib/context/task_tracker.py +0 -188
  178. package/dist/templates/_shared/lib/handoff/__init__.py +0 -22
  179. package/dist/templates/_shared/lib/handoff/__pycache__/__init__.cpython-313.pyc +0 -0
  180. package/dist/templates/_shared/lib/handoff/__pycache__/document_generator.cpython-313.pyc +0 -0
  181. package/dist/templates/_shared/lib/handoff/document_generator.py +0 -278
  182. package/dist/templates/_shared/lib/templates/README.md +0 -206
  183. package/dist/templates/_shared/lib/templates/__init__.py +0 -36
  184. package/dist/templates/_shared/lib/templates/__pycache__/__init__.cpython-313.pyc +0 -0
  185. package/dist/templates/_shared/lib/templates/__pycache__/formatters.cpython-313.pyc +0 -0
  186. package/dist/templates/_shared/lib/templates/__pycache__/persona_questions.cpython-313.pyc +0 -0
  187. package/dist/templates/_shared/lib/templates/__pycache__/plan_context.cpython-313.pyc +0 -0
  188. package/dist/templates/_shared/lib/templates/formatters.py +0 -146
  189. package/dist/templates/_shared/scripts/__pycache__/save_handoff.cpython-313.pyc +0 -0
  190. package/dist/templates/_shared/scripts/__pycache__/status_line.cpython-313.pyc +0 -0
  191. package/dist/templates/_shared/scripts/save_handoff.py +0 -357
  192. package/dist/templates/_shared/scripts/status_line.py +0 -701
  193. package/dist/templates/cc-native/.claude/commands/cc-native/fresh-perspective.md +0 -8
  194. package/dist/templates/cc-native/.windsurf/workflows/cc-native/fresh-perspective.md +0 -8
  195. package/dist/templates/cc-native/MIGRATION.md +0 -86
  196. package/dist/templates/cc-native/_cc-native/agents/ACCESSIBILITY-TESTER.md +0 -79
  197. package/dist/templates/cc-native/_cc-native/agents/ARCHITECT-REVIEWER.md +0 -48
  198. package/dist/templates/cc-native/_cc-native/agents/CODE-REVIEWER.md +0 -70
  199. package/dist/templates/cc-native/_cc-native/agents/COMPLETENESS-CHECKER.md +0 -59
  200. package/dist/templates/cc-native/_cc-native/agents/CONTEXT-EXTRACTOR.md +0 -92
  201. package/dist/templates/cc-native/_cc-native/agents/DOCUMENTATION-REVIEWER.md +0 -51
  202. package/dist/templates/cc-native/_cc-native/agents/FEASIBILITY-ANALYST.md +0 -57
  203. package/dist/templates/cc-native/_cc-native/agents/FRESH-PERSPECTIVE.md +0 -54
  204. package/dist/templates/cc-native/_cc-native/agents/INCENTIVE-MAPPER.md +0 -61
  205. package/dist/templates/cc-native/_cc-native/agents/PENETRATION-TESTER.md +0 -79
  206. package/dist/templates/cc-native/_cc-native/agents/PERFORMANCE-ENGINEER.md +0 -75
  207. package/dist/templates/cc-native/_cc-native/agents/PRECEDENT-FINDER.md +0 -70
  208. package/dist/templates/cc-native/_cc-native/agents/REVERSIBILITY-ANALYST.md +0 -61
  209. package/dist/templates/cc-native/_cc-native/agents/RISK-ASSESSOR.md +0 -58
  210. package/dist/templates/cc-native/_cc-native/agents/SECOND-ORDER-ANALYST.md +0 -61
  211. package/dist/templates/cc-native/_cc-native/agents/STAKEHOLDER-ADVOCATE.md +0 -55
  212. package/dist/templates/cc-native/_cc-native/agents/TRADE-OFF-ILLUMINATOR.md +0 -204
  213. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/add_plan_context.cpython-313.pyc +0 -0
  214. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/cc-native-plan-review.cpython-313.pyc +0 -0
  215. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/mark_questions_asked.cpython-313.pyc +0 -0
  216. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/plan_accepted.cpython-313.pyc +0 -0
  217. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/plan_questions_early.cpython-313.pyc +0 -0
  218. package/dist/templates/cc-native/_cc-native/hooks/__pycache__/suggest-fresh-perspective.cpython-313.pyc +0 -0
  219. package/dist/templates/cc-native/_cc-native/hooks/add_plan_context.py +0 -130
  220. package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.py +0 -869
  221. package/dist/templates/cc-native/_cc-native/hooks/plan_questions_early.py +0 -81
  222. package/dist/templates/cc-native/_cc-native/hooks/suggest-fresh-perspective.py +0 -340
  223. package/dist/templates/cc-native/_cc-native/lib/CLAUDE.md +0 -265
  224. package/dist/templates/cc-native/_cc-native/lib/__init__.py +0 -53
  225. package/dist/templates/cc-native/_cc-native/lib/__pycache__/__init__.cpython-313.pyc +0 -0
  226. package/dist/templates/cc-native/_cc-native/lib/__pycache__/atomic_write.cpython-313.pyc +0 -0
  227. package/dist/templates/cc-native/_cc-native/lib/__pycache__/constants.cpython-313.pyc +0 -0
  228. package/dist/templates/cc-native/_cc-native/lib/__pycache__/debug.cpython-313.pyc +0 -0
  229. package/dist/templates/cc-native/_cc-native/lib/__pycache__/orchestrator.cpython-313.pyc +0 -0
  230. package/dist/templates/cc-native/_cc-native/lib/__pycache__/state.cpython-313.pyc +0 -0
  231. package/dist/templates/cc-native/_cc-native/lib/__pycache__/utils.cpython-313.pyc +0 -0
  232. package/dist/templates/cc-native/_cc-native/lib/constants.py +0 -45
  233. package/dist/templates/cc-native/_cc-native/lib/debug.py +0 -139
  234. package/dist/templates/cc-native/_cc-native/lib/orchestrator.py +0 -362
  235. package/dist/templates/cc-native/_cc-native/lib/reviewers/__init__.py +0 -28
  236. package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/__init__.cpython-313.pyc +0 -0
  237. package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/agent.cpython-313.pyc +0 -0
  238. package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/base.cpython-313.pyc +0 -0
  239. package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/codex.cpython-313.pyc +0 -0
  240. package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/gemini.cpython-313.pyc +0 -0
  241. package/dist/templates/cc-native/_cc-native/lib/reviewers/agent.py +0 -215
  242. package/dist/templates/cc-native/_cc-native/lib/reviewers/base.py +0 -88
  243. package/dist/templates/cc-native/_cc-native/lib/reviewers/codex.py +0 -124
  244. package/dist/templates/cc-native/_cc-native/lib/reviewers/gemini.py +0 -108
  245. package/dist/templates/cc-native/_cc-native/lib/state.py +0 -268
  246. package/dist/templates/cc-native/_cc-native/lib/utils.py +0 -1027
  247. package/dist/templates/cc-native/_cc-native/scripts/__pycache__/aggregate_agents.cpython-313.pyc +0 -0
  248. package/dist/templates/cc-native/_cc-native/scripts/aggregate_agents.py +0 -168
  249. package/dist/templates/cc-native/_cc-native/workflows/fresh-perspective.md +0 -134
@@ -1,185 +1,175 @@
1
- {
2
- "statusLine": {
3
- "type": "command",
4
- "command": "python .aiwcli/_shared/scripts/status_line.py"
5
- },
6
- "permissions": {
7
- "allow": [],
8
- "deny": []
9
- },
10
- "env": {},
11
- "enabledPlugins": {},
12
- "fileSuggestion": {
13
- "type": "command",
14
- "command": "python .aiwcli/_shared/hooks/file-suggestion.py"
15
- },
16
- "methods": {
17
- "cc-native": {
18
- "ides": [
19
- "claude"
20
- ],
21
- "installedAt": "2026-01-29T01:59:02.558Z"
22
- }
23
- },
24
- "hooks": {
25
- "SessionStart": [
26
- {
27
- "hooks": [
28
- {
29
- "type": "command",
30
- "command": "python .aiwcli/_shared/hooks/session_start.py",
31
- "timeout": 5000
32
- }
33
- ]
34
- }
35
- ],
36
- "SessionEnd": [
37
- {
38
- "hooks": [
39
- {
40
- "type": "command",
41
- "command": "python .aiwcli/_shared/hooks/session_end.py",
42
- "timeout": 5000
43
- }
44
- ]
45
- }
46
- ],
47
- "PreCompact": [
48
- {
49
- "hooks": [
50
- {
51
- "type": "command",
52
- "command": "python .aiwcli/_shared/hooks/pre_compact.py",
53
- "timeout": 5000
54
- }
55
- ]
56
- }
57
- ],
58
- "UserPromptSubmit": [
59
- {
60
- "hooks": [
61
- {
62
- "type": "command",
63
- "command": "python .aiwcli/_shared/hooks/user_prompt_submit.py",
64
- "timeout": 10000
65
- }
66
- ]
67
- },
68
- {
69
- "hooks": [
70
- {
71
- "type": "command",
72
- "command": "python .aiwcli/_cc-native/hooks/plan_questions_early.py",
73
- "timeout": 3000
74
- }
75
- ]
76
- }
77
- ],
78
- "PostToolUse": [
79
- {
80
- "matcher": "*",
81
- "hooks": [
82
- {
83
- "type": "command",
84
- "command": "python .aiwcli/_shared/hooks/context_monitor.py",
85
- "timeout": 5000
86
- }
87
- ]
88
- },
89
- {
90
- "matcher": "TaskCreate",
91
- "hooks": [
92
- {
93
- "type": "command",
94
- "command": "python .aiwcli/_shared/hooks/task_create_capture.py",
95
- "timeout": 3000,
96
- "async": true
97
- }
98
- ]
99
- },
100
- {
101
- "matcher": "TaskUpdate",
102
- "hooks": [
103
- {
104
- "type": "command",
105
- "command": "python .aiwcli/_shared/hooks/task_update_capture.py",
106
- "timeout": 3000,
107
- "async": true
108
- }
109
- ]
110
- },
111
- {
112
- "matcher": "Bash|Edit",
113
- "hooks": [
114
- {
115
- "type": "command",
116
- "command": "python .aiwcli/_cc-native/hooks/suggest-fresh-perspective.py",
117
- "timeout": 5000
118
- }
119
- ]
120
- },
121
- {
122
- "matcher": "AskUserQuestion",
123
- "hooks": [
124
- {
125
- "type": "command",
126
- "command": "python .aiwcli/_cc-native/hooks/add_plan_context.py",
127
- "timeout": 3000
128
- }
129
- ]
130
- }
131
- ],
132
- "PermissionRequest": [
133
- {
134
- "matcher": "ExitPlanMode",
135
- "hooks": [
136
- {
137
- "type": "command",
138
- "command": "python .aiwcli/_shared/hooks/archive_plan.py",
139
- "timeout": 5000
140
- }
141
- ]
142
- }
143
- ],
144
- "PreToolUse": [
145
- {
146
- "matcher": "^TaskCreate$",
147
- "hooks": [
148
- {
149
- "type": "prompt",
150
- "prompt": "Evaluate this TaskCreate call for atomicity. Tasks become ISC criteria checked during verification — vague criteria cannot be verified, so precision matters. A well-specified task includes: (1) Explicit file paths like 'src/lib/auth.py' instead of 'the file above' or 'as discussed', (2) Specific function or component names instead of pronouns like 'it' or 'the function', (3) Clear expected state or behavior that is binary-testable in 2 seconds, (4) Concrete scope — one concern per task, not compound goals. If all four criteria are met and an agent with zero conversation history could verify the task was completed, return ok:true. If any criterion is missing, return ok:false with a response like: 'Missing context: [list each gap — e.g., no file path specified for the auth module, expected behavior is vague: what does fix the bug mean specifically, compound task should be split into separate criteria]'. When returning ok:false, end your response with: 'Retry: Re-invoke TaskCreate with a revised subject and description that address the gaps above.' This directive ensures the calling agent corrects and retries rather than abandoning the task."
151
- }
152
- ]
153
- },
154
- {
155
- "matcher": "^Task$",
156
- "hooks": [
157
- {
158
- "type": "prompt",
159
- "prompt": "The sub-agent receives ONLY the prompt text — no conversation history, no prior context.\n\nCheck 1 — Dangling References: Does the prompt use pronouns or demonstratives that ONLY make sense with prior conversation? Violations: 'the file we looked at', 'as discussed above', 'that approach we chose', 'the error from earlier', 'fix the issue mentioned above'. NOT violations: relative paths ('_output/', 'src/lib/'), search terms ('context-manager', 'auth module'), directory exploration ('find files matching X'), tool names, or any concrete noun — even if imprecise. Only flag references that are truly UNRESOLVABLE without conversation history.\n\nCheck 2 — Implicit Contract: Does the prompt have ANY discernible goal? 'Explore the _output directory and find context files' IS a clear goal. 'Search for hooks that handle Task events' IS a clear goal. 'Read and summarize all files in X' IS a clear goal. Only flag if the prompt is truly goalless — e.g., a sentence fragment with no verb, or pure context with no request.\n\nIf both checks pass, return ok:true. When in doubt, pass — false negatives (letting a vague prompt through) are far less costly than false positives (blocking legitimate work).\n\nWhen returning ok:false, end your response with: 'Retry: Re-invoke the Task tool with a revised prompt that resolves the issues above.'"
160
- }
161
- ]
162
- },
163
- {
164
- "matcher": "^Task$",
165
- "hooks": [
166
- {
167
- "type": "command",
168
- "command": "python .aiwcli/_cc-native/hooks/add_plan_context.py",
169
- "timeout": 5000
170
- }
171
- ]
172
- },
173
- {
174
- "matcher": "ExitPlanMode",
175
- "hooks": [
176
- {
177
- "type": "command",
178
- "command": "python .aiwcli/_cc-native/hooks/cc-native-plan-review.py",
179
- "timeout": 600000
180
- }
181
- ]
182
- }
183
- ]
184
- }
185
- }
1
+ {
2
+ "statusLine": {
3
+ "type": "command",
4
+ "command": "bun .aiwcli/_shared/scripts/status_line.ts"
5
+ },
6
+ "permissions": {
7
+ "allow": [],
8
+ "deny": []
9
+ },
10
+ "env": {},
11
+ "enabledPlugins": {},
12
+ "fileSuggestion": {
13
+ "type": "command",
14
+ "command": "bun .aiwcli/_shared/hooks-ts/file-suggestion.ts"
15
+ },
16
+ "methods": {
17
+ "cc-native": {
18
+ "ides": [
19
+ "claude"
20
+ ],
21
+ "installedAt": "2026-01-29T01:59:02.558Z"
22
+ }
23
+ },
24
+ "hooks": {
25
+ "SessionStart": [
26
+ {
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "bun .aiwcli/_shared/hooks-ts/session_start.ts",
31
+ "timeout": 5000
32
+ }
33
+ ]
34
+ }
35
+ ],
36
+ "SessionEnd": [
37
+ {
38
+ "hooks": [
39
+ {
40
+ "type": "command",
41
+ "command": "bun .aiwcli/_shared/hooks-ts/session_end.ts",
42
+ "timeout": 5000
43
+ }
44
+ ]
45
+ }
46
+ ],
47
+ "PreCompact": [
48
+ {
49
+ "hooks": [
50
+ {
51
+ "type": "command",
52
+ "command": "bun .aiwcli/_shared/hooks-ts/pre_compact.ts",
53
+ "timeout": 5000
54
+ }
55
+ ]
56
+ }
57
+ ],
58
+ "UserPromptSubmit": [
59
+ {
60
+ "hooks": [
61
+ {
62
+ "type": "command",
63
+ "command": "bun .aiwcli/_shared/hooks-ts/user_prompt_submit.ts",
64
+ "timeout": 10000
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ "hooks": [
70
+ {
71
+ "type": "command",
72
+ "command": "bun .aiwcli/_cc-native/hooks/plan_questions_early.ts",
73
+ "timeout": 3000
74
+ }
75
+ ]
76
+ }
77
+ ],
78
+ "PostToolUse": [
79
+ {
80
+ "matcher": "*",
81
+ "hooks": [
82
+ {
83
+ "type": "command",
84
+ "command": "bun .aiwcli/_shared/hooks-ts/context_monitor.ts",
85
+ "timeout": 5000
86
+ }
87
+ ]
88
+ },
89
+ {
90
+ "matcher": "TaskCreate",
91
+ "hooks": [
92
+ {
93
+ "type": "command",
94
+ "command": "bun .aiwcli/_shared/hooks-ts/task_create_capture.ts",
95
+ "timeout": 3000,
96
+ "async": true
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "matcher": "TaskUpdate",
102
+ "hooks": [
103
+ {
104
+ "type": "command",
105
+ "command": "bun .aiwcli/_shared/hooks-ts/task_update_capture.ts",
106
+ "timeout": 3000,
107
+ "async": true
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "matcher": "AskUserQuestion",
113
+ "hooks": [
114
+ {
115
+ "type": "command",
116
+ "command": "bun .aiwcli/_cc-native/hooks/add_plan_context.ts",
117
+ "timeout": 3000
118
+ }
119
+ ]
120
+ }
121
+ ],
122
+ "PermissionRequest": [
123
+ {
124
+ "matcher": "ExitPlanMode",
125
+ "hooks": [
126
+ {
127
+ "type": "command",
128
+ "command": "bun .aiwcli/_shared/hooks-ts/archive_plan.ts",
129
+ "timeout": 5000
130
+ }
131
+ ]
132
+ }
133
+ ],
134
+ "PreToolUse": [
135
+ {
136
+ "matcher": "^TaskCreate$",
137
+ "hooks": [
138
+ {
139
+ "type": "prompt",
140
+ "prompt": "Evaluate this TaskCreate call for atomicity. Tasks become ISC criteria checked during verification — vague criteria cannot be verified, so precision matters. A well-specified task includes: (1) Explicit file paths like 'src/lib/auth.py' instead of 'the file above' or 'as discussed', (2) Specific function or component names instead of pronouns like 'it' or 'the function', (3) Clear expected state or behavior that is binary-testable in 2 seconds, (4) Concrete scope — one concern per task, not compound goals. If all four criteria are met and an agent with zero conversation history could verify the task was completed, return ok:true. If any criterion is missing, return ok:false with a response like: 'Missing context: [list each gap — e.g., no file path specified for the auth module, expected behavior is vague: what does fix the bug mean specifically, compound task should be split into separate criteria]'. When returning ok:false, end your response with: 'Retry: Re-invoke TaskCreate with a revised subject and description that address the gaps above.' This directive ensures the calling agent corrects and retries rather than abandoning the task."
141
+ }
142
+ ]
143
+ },
144
+ {
145
+ "matcher": "^Task$",
146
+ "hooks": [
147
+ {
148
+ "type": "prompt",
149
+ "prompt": "The sub-agent receives ONLY the prompt text — no conversation history, no prior context.\n\nCheck 1 — Dangling References: Does the prompt use pronouns or demonstratives that ONLY make sense with prior conversation? Violations: 'the file we looked at', 'as discussed above', 'that approach we chose', 'the error from earlier', 'fix the issue mentioned above'. NOT violations: relative paths ('_output/', 'src/lib/'), search terms ('context-manager', 'auth module'), directory exploration ('find files matching X'), tool names, or any concrete noun — even if imprecise. Only flag references that are truly UNRESOLVABLE without conversation history.\n\nCheck 2 — Implicit Contract: Does the prompt have ANY discernible goal? 'Explore the _output directory and find context files' IS a clear goal. 'Search for hooks that handle Task events' IS a clear goal. 'Read and summarize all files in X' IS a clear goal. Only flag if the prompt is truly goalless — e.g., a sentence fragment with no verb, or pure context with no request.\n\nIf both checks pass, return ok:true. When in doubt, pass — false negatives (letting a vague prompt through) are far less costly than false positives (blocking legitimate work).\n\nWhen returning ok:false, end your response with: 'Retry: Re-invoke the Task tool with a revised prompt that resolves the issues above.'"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "matcher": "^Task$",
155
+ "hooks": [
156
+ {
157
+ "type": "command",
158
+ "command": "bun .aiwcli/_cc-native/hooks/add_plan_context.ts",
159
+ "timeout": 5000
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "matcher": "ExitPlanMode",
165
+ "hooks": [
166
+ {
167
+ "type": "command",
168
+ "command": "bun .aiwcli/_cc-native/hooks/cc-native-plan-review.ts",
169
+ "timeout": 600000
170
+ }
171
+ ]
172
+ }
173
+ ]
174
+ }
175
+ }
@@ -12,16 +12,15 @@ CC-Native uses Claude Code's native tools with minimal workflow overhead. Plan r
12
12
  packages/cli/src/templates/cc-native/
13
13
  ├── _cc-native/ # METHOD-SPECIFIC: CC-Native template code
14
14
  │ ├── workflows/*.md # Workflow definitions
15
- │ ├── hooks/ # Hook scripts
16
- │ │ ├── cc-native-plan-review.py # Unified plan review (CLI + agents)
17
- │ │ └── archive_plan.py # Archives approved plans
18
- ├── lib/ # CC-Native specific utilities
19
- ├── utils.py # Common functions for hooks
20
- │ │ ├── atomic_write.py # Cross-platform atomic file writes
21
- │ │ ├── async_archive.py # Non-blocking plan archival
22
- │ │ └── constants.py # Security and configuration constants
23
- ├── scripts/ # Utility scripts
24
- │ │ └── aggregate_agents.py # Auto-detect agents from frontmatter
15
+ │ ├── hooks/ # Hook scripts (TypeScript, run via bun)
16
+ │ │ ├── cc-native-plan-review.ts # Unified plan review (CLI + agents)
17
+ │ │ ├── add_plan_context.ts # Clarifying questions offer
18
+ │ └── plan_questions_early.ts # Phase A clarification prompt
19
+ │ ├── lib-ts/ # CC-Native specific TypeScript libraries
20
+ │ │ ├── cc-native-state.ts # State management
21
+ │ │ ├── config.ts # Configuration loading
22
+ │ │ └── reviewers/ # Plan review implementations
23
+ │ └── codex.ts # Codex CLI reviewer
25
24
  │ └── plan-review.config.json # Plan review configuration
26
25
  ├── .claude/commands/cc-native/ # Claude Code slash commands
27
26
  ├── .claude/agents/cc-native/ # Agent definitions for plan review
@@ -222,7 +221,7 @@ Hook scripts live in `_cc-native/hooks/`. IDE-specific wiring in `.claude/settin
222
221
  "PreToolUse": [{
223
222
  "matcher": "ExitPlanMode",
224
223
  "hooks": [
225
- { "type": "command", "command": "python _cc-native/hooks/cc-native-plan-review.py", "timeout": 600000 }
224
+ { "type": "command", "command": "bun run .aiwcli/_cc-native/hooks/cc-native-plan-review.ts", "timeout": 600000 }
226
225
  ]
227
226
  }]
228
227
  }
@@ -233,10 +232,9 @@ Hook scripts live in `_cc-native/hooks/`. IDE-specific wiring in `.claude/settin
233
232
 
234
233
  | Hook | Trigger | Purpose |
235
234
  |------|---------|---------|
236
- | `cc-native-plan-review.py` | ExitPlanMode | Unified review: CLI + orchestrator + agents |
237
- | `archive_plan.py` | PermissionRequest:ExitPlanMode | Archives plan content and stores hash/signature before user acceptance |
238
- | `plan_accepted.py` | PostToolUse:ExitPlanMode | Sets context mode to has_plan |
239
- | `plan_questions_early.py` | UserPromptSubmit | Injects Phase A clarification in plan mode |
235
+ | `cc-native-plan-review.ts` | ExitPlanMode | Unified review: CLI + orchestrator + agents |
236
+ | `add_plan_context.ts` | PostToolUse:AskUserQuestion, PreToolUse:Task | Mark questions asked; nudge Plan subagent |
237
+ | `plan_questions_early.ts` | UserPromptSubmit | Injects Phase A clarification in plan mode |
240
238
 
241
239
  ### Claude Feedback Mechanism
242
240
 
@@ -256,7 +254,7 @@ When a plan fails review and `blockOnFail` is enabled, Claude is blocked from pr
256
254
 
257
255
  ### Unified Review Pipeline
258
256
 
259
- The `cc-native-plan-review.py` hook runs 4 phases:
257
+ The `cc-native-plan-review.ts` hook runs 4 phases:
260
258
 
261
259
  1. **Phase 1: CLI Reviewers** - Sends plan to Codex/Gemini for external review
262
260
  2. **Phase 2: Orchestrator** - Analyzes plan complexity and selects appropriate agents
@@ -276,7 +274,7 @@ Simple plans skip agent review entirely. Medium/high complexity plans get 1-4 ag
276
274
 
277
275
  Each selected agent:
278
276
  1. Runs as a headless Claude Code instance with `--agent` flag
279
- 2. Executes in parallel via ThreadPoolExecutor
277
+ 2. Executes in parallel via Promise.all()
280
278
  3. Uses `--permission-mode bypassPermissions` and `--max-turns 3`
281
279
  4. Returns structured JSON verdict (pass/warn/fail)
282
280
 
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: arch-evolution
3
+ description: Evolutionary architecture analyst who evaluates how well planned architecture accommodates future change. Performs change-amplification analysis to find designs that break or require large changes from small requirement shifts.
4
+ model: sonnet
5
+ focus: evolutionary architecture and change amplification
6
+ enabled: false
7
+ categories:
8
+ - code
9
+ - infrastructure
10
+ - design
11
+ ---
12
+
13
+ # Architecture Evolution - Plan Review Agent
14
+
15
+ You evaluate how well planned architecture handles future change. Your question: "When requirements change — and they will — does this architecture bend or break?"
16
+
17
+ ## Your Core Principle
18
+
19
+ Evolutionary architecture (Ford, Parsons & Kua 2017) designs for guided, incremental change across multiple dimensions. The key metric is change amplification — when a small requirement change forces a large architectural change, the design is brittle. Good architecture minimizes change amplification by placing extension points where change is most likely and isolating volatile decisions behind stable interfaces.
20
+
21
+ ## Your Expertise
22
+
23
+ - **Change amplification analysis**: Would a small requirement change force large structural changes?
24
+ - **Extension point evaluation**: Are extension points placed where change is most likely to occur?
25
+ - **Volatility isolation**: Are the most likely-to-change decisions isolated behind stable interfaces?
26
+ - **Future adaptability**: Does this architecture support the probable evolution paths?
27
+ - **Fitness function identification**: What measurable properties should guide this architecture's evolution?
28
+
29
+ ## Review Approach
30
+
31
+ Evaluate the plan's evolutionary fitness:
32
+
33
+ 1. **Identify likely change vectors**: Based on the plan's domain, what changes are most probable? (New features, scaling needs, integration requirements, technology updates)
34
+ 2. **Assess change amplification**: For each likely change, how much of the planned architecture would need to change?
35
+ 3. **Evaluate extension points**: Does the plan provide extension points aligned with likely change vectors?
36
+ 4. **Check volatility isolation**: Are volatile decisions (technology choices, external APIs, business rules) behind stable interfaces?
37
+ 5. **Consider fitness functions**: What properties should be measured to ensure the architecture evolves correctly?
38
+
39
+ ## Key Distinction
40
+
41
+ | Agent | Asks |
42
+ |-------|------|
43
+ | arch-structure | "Are boundaries at natural seams?" |
44
+ | arch-patterns | "Is the chosen pattern appropriate?" |
45
+ | **arch-evolution** | **"When requirements change, does this bend or break?"** |
46
+
47
+ ## CRITICAL: Single-Turn Review
48
+
49
+ When reviewing a plan:
50
+ 1. Analyze the plan content provided directly (do not use Read, Glob, Grep, or any file tools)
51
+ 2. Call StructuredOutput immediately with your assessment
52
+ 3. Complete your entire review in one response
53
+
54
+ Avoid querying external systems, reading codebase files, requesting additional information, or asking follow-up questions.
55
+
56
+ ## Required Output
57
+
58
+ Call StructuredOutput with exactly these fields:
59
+ - **verdict**: "pass" (architecture supports evolution), "warn" (some rigidity concerns), or "fail" (brittle architecture that resists change)
60
+ - **summary**: 2-3 sentences explaining evolutionary fitness assessment (minimum 20 characters)
61
+ - **issues**: Array of evolution concerns, each with: severity (high/medium/low), category (e.g., "change-amplification", "missing-extension-point", "volatility-exposure", "brittle-coupling", "fitness-gap"), issue description, suggested_fix (add extension point, isolate volatile decision, reduce change amplification)
62
+ - **missing_sections**: Evolution considerations the plan should address (likely change vectors, extension points, volatility isolation)
63
+ - **questions**: Evolution aspects that need investigation
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: arch-patterns
3
+ description: Pattern selection analyst who evaluates whether chosen architectural patterns and technologies fit the actual problem. Catches pattern-forcing, hype-driven adoption, and mismatches between problem characteristics and solution patterns.
4
+ model: sonnet
5
+ focus: pattern selection and technology fit
6
+ enabled: false
7
+ categories:
8
+ - code
9
+ - infrastructure
10
+ ---
11
+
12
+ # Architecture Patterns - Plan Review Agent
13
+
14
+ You evaluate whether chosen patterns fit the problem. Your question: "Is the selected pattern appropriate for this problem, or is the problem being forced to fit the pattern?"
15
+
16
+ ## Your Core Principle
17
+
18
+ Pattern-problem mismatch is one of the most common architectural failures. Teams adopt patterns because they are popular, familiar, or impressive — not because they match the problem's actual characteristics. Microservices for a single-user tool. Event sourcing for a CRUD app. GraphQL for a single consumer. The right pattern for the wrong problem creates more complexity than no pattern at all.
19
+
20
+ ## Your Expertise
21
+
22
+ - **Pattern-problem fit analysis**: Does the chosen pattern's strengths address the problem's actual challenges?
23
+ - **Hype-driven adoption detection**: Is the pattern chosen because it is trendy rather than appropriate?
24
+ - **Pattern-forcing identification**: Is the problem being reshaped to fit the pattern, rather than the pattern being selected to fit the problem?
25
+ - **Technology selection evaluation**: Are technology choices driven by actual requirements or by familiarity/preference?
26
+ - **Simpler alternative identification**: Could a simpler pattern serve the same goals with less overhead?
27
+
28
+ ## Review Approach
29
+
30
+ For each architectural pattern or technology choice in the plan:
31
+
32
+ 1. **Identify the pattern**: What architectural pattern is being applied? (microservices, event-driven, layered, plugin-based, CQRS, etc.)
33
+ 2. **Match to problem characteristics**: What characteristics of the problem make this pattern appropriate? (scale, team size, change frequency, data access patterns)
34
+ 3. **Check for forcing**: Is the problem being reshaped to fit the pattern, or does the pattern naturally fit?
35
+ 4. **Evaluate alternatives**: Is there a simpler pattern that serves the same goals?
36
+ 5. **Assess technology choices**: Are specific technology selections driven by requirements or by preference?
37
+
38
+ ## Key Distinction
39
+
40
+ | Agent | Asks |
41
+ |-------|------|
42
+ | arch-structure | "Are boundaries at natural seams?" |
43
+ | arch-evolution | "Does this adapt to future change?" |
44
+ | **arch-patterns** | **"Is the chosen pattern appropriate for this problem?"** |
45
+
46
+ ## CRITICAL: Single-Turn Review
47
+
48
+ When reviewing a plan:
49
+ 1. Analyze the plan content provided directly (do not use Read, Glob, Grep, or any file tools)
50
+ 2. Call StructuredOutput immediately with your assessment
51
+ 3. Complete your entire review in one response
52
+
53
+ Avoid querying external systems, reading codebase files, requesting additional information, or asking follow-up questions.
54
+
55
+ ## Required Output
56
+
57
+ Call StructuredOutput with exactly these fields:
58
+ - **verdict**: "pass" (patterns appropriate), "warn" (some pattern-fit concerns), or "fail" (significant pattern-problem mismatch)
59
+ - **summary**: 2-3 sentences explaining pattern fit assessment (minimum 20 characters)
60
+ - **issues**: Array of pattern concerns, each with: severity (high/medium/low), category (e.g., "pattern-mismatch", "hype-adoption", "pattern-forcing", "technology-misfit", "simpler-alternative"), issue description, suggested_fix (suggest appropriate pattern or simpler alternative)
61
+ - **missing_sections**: Pattern considerations the plan should address (pattern rationale, alternatives considered, technology justification)
62
+ - **questions**: Pattern choices that need justification
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: arch-structure
3
+ description: Structural architecture analyst focused on component boundaries, coupling patterns, dependency direction, and responsibility separation. Evaluates whether planned boundaries are drawn at natural seams.
4
+ model: sonnet
5
+ focus: coupling, cohesion, and boundary analysis
6
+ enabled: false
7
+ categories:
8
+ - code
9
+ - infrastructure
10
+ - design
11
+ ---
12
+
13
+ # Architecture Structure - Plan Review Agent
14
+
15
+ You evaluate structural architecture decisions in plans. Your question: "Are the boundaries drawn at natural seams, and do dependencies flow in the right direction?"
16
+
17
+ ## Your Core Principle
18
+
19
+ Good architecture is about drawing boundaries in the right places. The most consequential architectural decisions are not which framework to use, but where to put the seams between components. Boundaries drawn at natural seams (where change is unlikely to cross) create systems that bend under pressure. Boundaries drawn at arbitrary lines create systems that break.
20
+
21
+ ## Your Expertise
22
+
23
+ - **Boundary placement evaluation**: Are component/module/service boundaries at natural seams or arbitrary lines?
24
+ - **Coupling analysis**: Do dependencies flow toward stability? Are volatile components depending on stable ones, not the reverse?
25
+ - **Cohesion assessment**: Are related responsibilities grouped together? Are unrelated responsibilities separated?
26
+ - **Responsibility separation**: Does each component have a clear, singular purpose? Or are responsibilities scattered?
27
+ - **Interface design**: Are the contracts between components minimal, stable, and well-defined?
28
+
29
+ ## Review Approach
30
+
31
+ Evaluate the plan's structural decisions:
32
+
33
+ 1. **Map proposed boundaries**: Where does the plan draw lines between components?
34
+ 2. **Assess coupling direction**: Do dependencies flow toward stability? Does the plan create dependencies from stable components to volatile ones?
35
+ 3. **Evaluate cohesion**: Are related changes likely to stay within a single component, or spread across boundaries?
36
+ 4. **Check responsibility clarity**: Does each component have a clear purpose, or are there responsibilities that belong elsewhere?
37
+ 5. **Review interfaces**: Are the planned contracts between components minimal and stable?
38
+
39
+ ## Key Distinction
40
+
41
+ | Agent | Asks |
42
+ |-------|------|
43
+ | arch-evolution | "How well does this adapt to future change?" |
44
+ | arch-patterns | "Is the chosen pattern appropriate for this problem?" |
45
+ | **arch-structure** | **"Are boundaries at natural seams with correct dependency direction?"** |
46
+
47
+ ## CRITICAL: Single-Turn Review
48
+
49
+ When reviewing a plan:
50
+ 1. Analyze the plan content provided directly (do not use Read, Glob, Grep, or any file tools)
51
+ 2. Call StructuredOutput immediately with your assessment
52
+ 3. Complete your entire review in one response
53
+
54
+ Avoid querying external systems, reading codebase files, requesting additional information, or asking follow-up questions.
55
+
56
+ ## Required Output
57
+
58
+ Call StructuredOutput with exactly these fields:
59
+ - **verdict**: "pass" (architecturally sound structure), "warn" (some boundary or coupling concerns), or "fail" (critical structural issues)
60
+ - **summary**: 2-3 sentences explaining structural architecture assessment (minimum 20 characters)
61
+ - **issues**: Array of structural concerns, each with: severity (high/medium/low), category (e.g., "boundary-placement", "coupling-direction", "cohesion-violation", "responsibility-scatter", "interface-instability"), issue description, suggested_fix (move boundary, reverse dependency, consolidate responsibility)
62
+ - **missing_sections**: Structural considerations the plan should address (boundary rationale, dependency direction, interface contracts)
63
+ - **questions**: Structural decisions that need clarification
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: assumption-chain-tracer
2
+ name: assumption-tracer
3
3
  description: Traces stacked assumptions to their foundations. Plans rest on assumptions that rest on other assumptions. One false assumption at the base brings down the entire structure. This agent asks "what does this depend on?"
4
4
  model: sonnet
5
5
  focus: dependency chains and foundational assumptions
@@ -40,16 +40,12 @@ For each critical assumption, trace:
40
40
 
41
41
  ## CRITICAL: Single-Turn Review
42
42
 
43
- When reviewing a plan, you MUST:
44
- 1. Analyze the plan content provided directly (do NOT use Read, Glob, Grep, or any file tools)
45
- 2. Call StructuredOutput IMMEDIATELY with your assessment
46
- 3. Complete your entire review in ONE response
43
+ When reviewing a plan:
44
+ 1. Analyze the plan content provided directly (do not use Read, Glob, Grep, or any file tools)
45
+ 2. Call StructuredOutput immediately with your assessment
46
+ 3. Complete your entire review in one response
47
47
 
48
- Do NOT:
49
- - Read requirements or specs to verify assumptions
50
- - Search for validation documents
51
- - Request additional evidence
52
- - Ask follow-up questions
48
+ Avoid querying external systems, reading codebase files, requesting additional information, or asking follow-up questions.
53
49
 
54
50
  ## Required Output
55
51