hool-cli 0.7.4 → 0.9.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 (166) hide show
  1. package/dist/adapters/adapters.test.js +88 -10
  2. package/dist/adapters/adapters.test.js.map +1 -1
  3. package/dist/adapters/claude-code.js +48 -31
  4. package/dist/adapters/claude-code.js.map +1 -1
  5. package/dist/adapters/types.d.ts +2 -0
  6. package/dist/core/scaffold.d.ts +4 -4
  7. package/dist/core/scaffold.js +151 -48
  8. package/dist/core/scaffold.js.map +1 -1
  9. package/dist/core/templates.d.ts +2 -0
  10. package/dist/core/templates.js +31 -0
  11. package/dist/core/templates.js.map +1 -1
  12. package/dist/e2e.test.js +241 -1
  13. package/dist/e2e.test.js.map +1 -1
  14. package/dist/index.js +23 -12
  15. package/dist/index.js.map +1 -1
  16. package/dist/mcps/mcps.test.js +1 -0
  17. package/dist/mcps/mcps.test.js.map +1 -1
  18. package/package.json +4 -8
  19. package/presets/solo/NEXT-v0.1-context-mcp.md +95 -0
  20. package/presets/solo/docs/workflow-reference.md +784 -0
  21. package/presets/solo/mcps/README.md +129 -0
  22. package/presets/solo/mcps/testing-by-domain.md +138 -0
  23. package/presets/solo/memory/be-dev/best-practices.md +0 -0
  24. package/presets/solo/memory/be-dev/cold.md +4 -0
  25. package/presets/solo/memory/be-dev/hot.md +0 -0
  26. package/presets/solo/memory/be-dev/issues.md +0 -0
  27. package/presets/solo/memory/be-tech-lead/best-practices.md +0 -0
  28. package/presets/solo/memory/be-tech-lead/cold.md +4 -0
  29. package/presets/solo/memory/be-tech-lead/hot.md +0 -0
  30. package/presets/solo/memory/be-tech-lead/issues.md +0 -0
  31. package/presets/solo/memory/fe-dev/best-practices.md +0 -0
  32. package/presets/solo/memory/fe-dev/cold.md +4 -0
  33. package/presets/solo/memory/fe-dev/hot.md +0 -0
  34. package/presets/solo/memory/fe-dev/issues.md +0 -0
  35. package/presets/solo/memory/fe-tech-lead/best-practices.md +0 -0
  36. package/presets/solo/memory/fe-tech-lead/cold.md +4 -0
  37. package/presets/solo/memory/fe-tech-lead/hot.md +0 -0
  38. package/presets/solo/memory/fe-tech-lead/issues.md +0 -0
  39. package/presets/solo/memory/forensic/best-practices.md +0 -0
  40. package/presets/solo/memory/forensic/cold.md +4 -0
  41. package/presets/solo/memory/forensic/hot.md +0 -0
  42. package/presets/solo/memory/forensic/issues.md +0 -0
  43. package/presets/solo/memory/product-lead/best-practices.md +0 -0
  44. package/presets/solo/memory/product-lead/cold.md +5 -0
  45. package/presets/solo/memory/product-lead/hot.md +0 -0
  46. package/presets/solo/memory/product-lead/issues.md +0 -0
  47. package/presets/solo/memory/qa/best-practices.md +0 -0
  48. package/presets/solo/memory/qa/cold.md +4 -0
  49. package/presets/solo/memory/qa/hot.md +0 -0
  50. package/presets/solo/memory/qa/issues.md +0 -0
  51. package/presets/solo/operations/bugs.md +10 -0
  52. package/presets/solo/operations/current-phase.md +8 -0
  53. package/presets/solo/operations/inconsistencies.md +8 -0
  54. package/presets/solo/operations/issues.md +11 -0
  55. package/presets/solo/operations/metrics.md +4 -0
  56. package/presets/solo/operations/needs-human-review.md +8 -0
  57. package/presets/solo/operations/task-board.md +10 -0
  58. package/presets/team/agents/claude/be-dev.md +166 -0
  59. package/presets/team/agents/claude/be-tech-lead.md +233 -0
  60. package/presets/team/agents/claude/fe-dev.md +202 -0
  61. package/presets/team/agents/claude/fe-tech-lead.md +229 -0
  62. package/presets/team/agents/claude/forensic.md +158 -0
  63. package/presets/team/agents/claude/governor.md +99 -0
  64. package/presets/team/agents/claude/product-lead.md +602 -0
  65. package/presets/team/agents/claude/qa.md +155 -0
  66. package/presets/team/cli/git-setup.md +175 -0
  67. package/presets/team/hooks/completion-checklist.sh +39 -0
  68. package/presets/team/hooks/governor-trigger.sh +30 -0
  69. package/presets/team/hooks/identity-reminder.sh +30 -0
  70. package/presets/team/hooks/login-nudge.sh +64 -0
  71. package/presets/team/hooks/metrics.sh +23 -0
  72. package/presets/team/mcps/mcps.json +50 -0
  73. package/presets/team/mcps/testing-by-domain.md +68 -0
  74. package/presets/team/prompts/claude-md.md +185 -0
  75. package/presets/team/settings/claude-settings.json +76 -0
  76. package/presets/team/skills/architect.md +75 -0
  77. package/presets/team/skills/auditor.md +89 -0
  78. package/presets/team/skills/brainstormer.md +53 -0
  79. package/presets/team/skills/code-reviewer.md +77 -0
  80. package/presets/team/skills/contract-negotiator.md +98 -0
  81. package/presets/team/skills/designer.md +87 -0
  82. package/presets/team/skills/root-cause-analyst.md +85 -0
  83. package/presets/team/skills/speccer.md +85 -0
  84. package/presets/team/skills/tdd-implementer.md +104 -0
  85. package/presets/team/skills/test-engineer.md +87 -0
  86. package/presets/team/templates/memory/best-practices.md +6 -0
  87. package/presets/team/templates/memory/client-preferences.md +14 -0
  88. package/presets/team/templates/memory/cold.md +5 -0
  89. package/presets/team/templates/memory/governor-feedback.md +5 -0
  90. package/presets/team/templates/memory/hot.md +12 -0
  91. package/presets/team/templates/memory/identity.md +22 -0
  92. package/presets/team/templates/memory/issues.md +9 -0
  93. package/presets/team/templates/memory/operational-knowledge.md +19 -0
  94. package/presets/team/templates/memory/picked-tasks.md +6 -0
  95. package/presets/team/templates/memory/skill.md +10 -0
  96. package/presets/team/templates/memory/task-log.md +17 -0
  97. package/presets/team/templates/operations/bugs.md +17 -0
  98. package/presets/team/templates/operations/client-preferences.md +21 -0
  99. package/presets/team/templates/operations/current-phase.md +4 -0
  100. package/presets/team/templates/operations/governor-feedback.md +11 -0
  101. package/presets/team/templates/operations/governor-log.md +14 -0
  102. package/presets/team/templates/operations/governor-rules.md +22 -0
  103. package/presets/team/templates/operations/human-feedback.md +7 -0
  104. package/presets/team/templates/operations/inconsistencies.md +12 -0
  105. package/presets/team/templates/operations/issues.md +13 -0
  106. package/presets/team/templates/operations/metrics.md +4 -0
  107. package/presets/team/templates/operations/needs-human-review.md +11 -0
  108. package/presets/team/templates/operations/task-board.md +11 -0
  109. package/presets/team/templates/phases/00-init/project-profile.md +45 -0
  110. package/presets/team/templates/phases/01-brainstorm/brainstorm.md +33 -0
  111. package/presets/team/templates/phases/02-spec/spec.md +28 -0
  112. package/presets/team/templates/phases/03-design/design.md +26 -0
  113. package/presets/team/templates/phases/04-architecture/architecture.md +26 -0
  114. package/presets/team/templates/phases/05-contracts/_index.md +20 -0
  115. package/presets/team/templates/phases/09-qa/test-plan.md +29 -0
  116. package/presets/team/templates/phases/12-retrospective/retrospective.md +24 -0
  117. /package/{agents → presets/solo/agents}/claude/be-dev.md +0 -0
  118. /package/{agents → presets/solo/agents}/claude/be-tech-lead.md +0 -0
  119. /package/{agents → presets/solo/agents}/claude/fe-dev.md +0 -0
  120. /package/{agents → presets/solo/agents}/claude/fe-tech-lead.md +0 -0
  121. /package/{agents → presets/solo/agents}/claude/forensic.md +0 -0
  122. /package/{agents → presets/solo/agents}/claude/governor.md +0 -0
  123. /package/{agents → presets/solo/agents}/claude/qa.md +0 -0
  124. /package/{agents → presets/solo/agents}/cursor/be-dev.md +0 -0
  125. /package/{agents → presets/solo/agents}/cursor/be-tech-lead.md +0 -0
  126. /package/{agents → presets/solo/agents}/cursor/fe-dev.md +0 -0
  127. /package/{agents → presets/solo/agents}/cursor/fe-tech-lead.md +0 -0
  128. /package/{agents → presets/solo/agents}/cursor/forensic.md +0 -0
  129. /package/{agents → presets/solo/agents}/cursor/governor.md +0 -0
  130. /package/{agents → presets/solo/agents}/cursor/qa.md +0 -0
  131. /package/{hooks → presets/solo/hooks}/agent-checklist.sh +0 -0
  132. /package/{hooks → presets/solo/hooks}/block-pl-src-write.sh +0 -0
  133. /package/{hooks → presets/solo/hooks}/inject-pl-context.sh +0 -0
  134. /package/{hooks → presets/solo/hooks}/pre-compact.sh +0 -0
  135. /package/{hooks → presets/solo/hooks}/run-if-profile.sh +0 -0
  136. /package/{hooks → presets/solo/hooks}/session-start.sh +0 -0
  137. /package/{hooks → presets/solo/hooks}/suggest-compact.sh +0 -0
  138. /package/{hooks → presets/solo/hooks}/track-prompt-count.sh +0 -0
  139. /package/{prompts → presets/solo/prompts}/agents/05-fe-tech-lead.md +0 -0
  140. /package/{prompts → presets/solo/prompts}/agents/06-be-tech-lead.md +0 -0
  141. /package/{prompts → presets/solo/prompts}/agents/08-be-dev.md +0 -0
  142. /package/{prompts → presets/solo/prompts}/agents/08-fe-dev.md +0 -0
  143. /package/{prompts → presets/solo/prompts}/agents/10-qa.md +0 -0
  144. /package/{prompts → presets/solo/prompts}/agents/11-forensic.md +0 -0
  145. /package/{prompts → presets/solo/prompts}/agents/governor.md +0 -0
  146. /package/{prompts → presets/solo/prompts}/checklists/code-review.md +0 -0
  147. /package/{prompts → presets/solo/prompts}/orchestrator.md +0 -0
  148. /package/{prompts → presets/solo/prompts}/skills/01-brainstorm.md +0 -0
  149. /package/{prompts → presets/solo/prompts}/skills/02-spec.md +0 -0
  150. /package/{prompts → presets/solo/prompts}/skills/03-design.md +0 -0
  151. /package/{prompts → presets/solo/prompts}/skills/04-architecture.md +0 -0
  152. /package/{rules → presets/solo/rules}/cursor/be-dev.mdc +0 -0
  153. /package/{rules → presets/solo/rules}/cursor/be-tech-lead.mdc +0 -0
  154. /package/{rules → presets/solo/rules}/cursor/fe-dev.mdc +0 -0
  155. /package/{rules → presets/solo/rules}/cursor/fe-tech-lead.mdc +0 -0
  156. /package/{rules → presets/solo/rules}/cursor/forensic.mdc +0 -0
  157. /package/{rules → presets/solo/rules}/cursor/governor.mdc +0 -0
  158. /package/{rules → presets/solo/rules}/cursor/qa.mdc +0 -0
  159. /package/{settings → presets/solo/settings}/be-dev.json +0 -0
  160. /package/{settings → presets/solo/settings}/be-tech-lead.json +0 -0
  161. /package/{settings → presets/solo/settings}/claude-settings.json +0 -0
  162. /package/{settings → presets/solo/settings}/fe-dev.json +0 -0
  163. /package/{settings → presets/solo/settings}/fe-tech-lead.json +0 -0
  164. /package/{settings → presets/solo/settings}/forensic.json +0 -0
  165. /package/{settings → presets/solo/settings}/governor.json +0 -0
  166. /package/{settings → presets/solo/settings}/qa.json +0 -0
@@ -0,0 +1,129 @@
1
+ # MCP Manifest -- HOOL Mini
2
+
3
+ Every MCP this framework depends on, who uses it, and how to set it up.
4
+
5
+ ## Installation Model
6
+
7
+ MCPs install GLOBALLY -- once per machine, shared across all projects.
8
+ `hool init` checks `~/.claude/mcp_servers.json` and installs any missing MCPs.
9
+ Per-project `.hool/mcps.json` declares which MCPs the project needs (read-only reference).
10
+
11
+ ## Required MCPs
12
+
13
+ ### 1. Playwright MCP
14
+ - **What**: Browser automation, E2E testing, screenshots, visual comparison
15
+ - **Used by**: QA, Forensic, Design (for reference screenshots)
16
+ - **Domains**: Web apps, browser games, animations
17
+ - **Does NOT work for**: Mobile apps, native Android games
18
+ - **Install**: `npm install @playwright/mcp` (or community equivalent)
19
+ - **Config**:
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "playwright": {
24
+ "command": "npx",
25
+ "args": ["@playwright/mcp"]
26
+ }
27
+ }
28
+ }
29
+ ```
30
+ - **Key tools**:
31
+ - `navigate(url)` -- go to page
32
+ - `click(selector)` -- click element
33
+ - `fill(selector, value)` -- type into input
34
+ - `screenshot(path?)` -- capture current page
35
+ - `evaluate(script)` -- run JS in page context (critical for game state)
36
+ - `waitForSelector(selector)` -- wait for element
37
+
38
+ ### 2. Context7 MCP
39
+ - **What**: Up-to-date library/framework documentation lookup
40
+ - **Used by**: ALL agents (Product Lead, Tech Leads, FE/BE Dev, QA)
41
+ - **Domains**: All
42
+ - **Install**: already available as MCP
43
+ - **Config**:
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "context7": {
48
+ "command": "npx",
49
+ "args": ["-y", "@context7/mcp"]
50
+ }
51
+ }
52
+ }
53
+ ```
54
+ - **Key tools**:
55
+ - `resolve-library-id(name)` -- find a library's context7 ID
56
+ - `query-docs(library, query)` -- get relevant docs/examples
57
+
58
+ ### 3. DeepWiki MCP (or Web Search)
59
+ - **What**: Research, prior art, best practices, competitive analysis
60
+ - **Used by**: Product Lead (brainstorm, spec, architecture)
61
+ - **Domains**: All
62
+ - **Note**: Can substitute with web search MCP if deepwiki unavailable
63
+
64
+ ## Recommended MCPs
65
+
66
+ ### 4. Web Search MCP
67
+ - **What**: General web search for inspiration, solutions, comparisons
68
+ - **Used by**: Product Lead (brainstorm, design, architecture)
69
+ - **Domains**: All
70
+
71
+ ### 5. Filesystem MCP
72
+ - **What**: File watching, directory listing (if not using built-in tools)
73
+ - **Used by**: Product Lead (monitoring file changes)
74
+ - **Note**: Claude Code has built-in file tools, so this is optional
75
+
76
+ ## Domain-Specific MCPs
77
+
78
+ ### 6. ADB MCP (Android)
79
+ - **What**: Android Debug Bridge -- device/emulator interaction
80
+ - **Used by**: QA, Forensic (mobile only)
81
+ - **Domains**: Mobile Android, Android games
82
+ - **Provides**:
83
+ - `adb_screenshot` -- capture emulator screen
84
+ - `adb_tap(x, y)` -- tap coordinates
85
+ - `adb_swipe(x1, y1, x2, y2)` -- swipe gesture
86
+ - `adb_logcat(filter?)` -- read device logs
87
+ - `adb_install(apk)` -- install app on emulator
88
+ - `adb_shell(command)` -- run shell command on device
89
+ - **Status**: Community MCPs exist, may need custom wrapper
90
+ - **Fallback**: Use Bash tool with `adb` CLI directly
91
+
92
+ ### 7. Maestro MCP (Mobile Testing -- Alternative to Detox)
93
+ - **What**: Declarative mobile UI testing
94
+ - **Used by**: QA (mobile only)
95
+ - **Domains**: Mobile Android, Mobile iOS
96
+ - **Why over Detox**: YAML-based tests, simpler setup, more agent-friendly
97
+ - **Status**: No MCP exists yet -- candidate for custom build
98
+ - **Fallback**: Use Bash tool with `maestro` CLI
99
+
100
+ ## Future MCPs
101
+
102
+ ### 8. hool-context-mcp (v0.1 -- we build this)
103
+ - **What**: Agentic vector DB for semantic codebase retrieval
104
+ - **Used by**: ALL agents
105
+ - **Domains**: All
106
+ - **Status**: To be built -- see NEXT-v0.1-context-mcp.md
107
+
108
+ ### 9. Notification MCP
109
+ - **What**: Notify human when review needed or phase complete
110
+ - **Used by**: Product Lead
111
+ - **Provides**: Slack/email/desktop notification when `operations/needs-human-review.md` is updated
112
+
113
+ ## MCP Usage Matrix
114
+
115
+ | Agent | playwright | context7 | deepwiki | web-search | adb | maestro | hool-context |
116
+ |-------|-----------|----------|----------|------------|-----|---------|-------------|
117
+ | Product Lead (brainstorm) | -- | YES | YES | YES | -- | -- | v0.2 |
118
+ | Product Lead (spec) | -- | YES | YES | -- | -- | -- | v0.2 |
119
+ | Product Lead (design) | ref screenshots | -- | -- | YES | -- | -- | v0.2 |
120
+ | Product Lead (architecture) | -- | YES | YES | YES | -- | -- | v0.2 |
121
+ | FE Tech Lead | -- | YES | -- | -- | -- | -- | v0.2 |
122
+ | BE Tech Lead | -- | YES | -- | -- | -- | -- | v0.2 |
123
+ | QA (plan) | -- | YES | -- | -- | -- | -- | v0.2 |
124
+ | FE Dev | -- | YES | -- | -- | -- | -- | v0.2 |
125
+ | BE Dev | -- | YES | -- | -- | -- | -- | v0.2 |
126
+ | QA (web) | YES | YES | -- | -- | -- | -- | v0.2 |
127
+ | QA (mobile) | -- | YES | -- | -- | YES | YES | v0.2 |
128
+ | Forensic (web) | YES | -- | -- | -- | -- | -- | v0.2 |
129
+ | Forensic (mobile) | -- | -- | -- | -- | YES | -- | v0.2 |
@@ -0,0 +1,138 @@
1
+ # Testing Strategy by Domain
2
+
3
+ How each project type gets tested, what tools are used, and what gaps exist.
4
+
5
+ ## Web App (FE + BE)
6
+
7
+ ```
8
+ Layer | Tool | MCP | Autonomous?
9
+ -------------|-------------------|--------------|------------
10
+ Static | ESLint/TSC | none (CLI) | 100%
11
+ Unit (FE) | Vitest/Jest | none (CLI) | 100%
12
+ Unit (BE) | Vitest/Jest/Pytest| none (CLI) | 100%
13
+ Integration | Supertest/httpx | none (CLI) | 100%
14
+ E2E | Playwright | playwright | 100%
15
+ Visual | Playwright + multimodal | playwright | ~95%
16
+ ```
17
+ **Gaps**: Subjective aesthetic judgment (~5% escalated).
18
+ **Verdict**: Fully covered.
19
+
20
+ ## Mobile App (React Native + Expo)
21
+
22
+ ```
23
+ Layer | Tool | MCP | Autonomous?
24
+ -------------|-------------------|--------------|------------
25
+ Static | ESLint/TSC | none (CLI) | 100%
26
+ Unit | Jest | none (CLI) | 100%
27
+ Integration | Supertest (API) | none (CLI) | 100%
28
+ E2E | Maestro or Detox | adb/maestro | ~80%
29
+ Visual | ADB screenshot + multimodal | adb | ~70%
30
+ Device compat| Emulator only | adb | ~60%
31
+ ```
32
+ **Gaps**:
33
+ - E2E setup is fragile (emulator boot, build times)
34
+ - Visual comparison against design cards needs emulator screenshots (lower fidelity than browser)
35
+ - No real device testing — emulator only covers ~70% of real-world behavior
36
+ - Gestures (swipe, pinch, long-press) are harder to automate reliably
37
+
38
+ **What helps**: Maestro over Detox. Maestro tests look like:
39
+ ```yaml
40
+ - launchApp
41
+ - tapOn: "Login"
42
+ - inputText: "user@test.com"
43
+ - tapOn: "Submit"
44
+ - assertVisible: "Welcome"
45
+ ```
46
+ An agent can write and reason about this easily. Detox requires complex JS setup.
47
+
48
+ ## Browser Game
49
+
50
+ ```
51
+ Layer | Tool | MCP | Autonomous?
52
+ -------------|-------------------|--------------|------------
53
+ Static | ESLint/TSC | none (CLI) | 100%
54
+ Unit (logic) | Vitest/Jest | none (CLI) | 100%
55
+ State tests | Custom harness | none (CLI) | 100%
56
+ Visual | Playwright screenshot | playwright | ~60%
57
+ Game E2E | Playwright + game state bridge | playwright | ~50%
58
+ Game feel | Human playtest | none | 0%
59
+ Performance | FPS monitoring | playwright | 90%
60
+ ```
61
+
62
+ **The game state bridge pattern**:
63
+ The FE Tech Lead adds a debug hook to the game:
64
+ ```typescript
65
+ // Only in dev mode
66
+ if (import.meta.env.DEV) {
67
+ (window as any).__GAME__ = {
68
+ getState: () => game.state,
69
+ dispatch: (action: string, payload: any) => game.dispatch(action, payload),
70
+ getEntity: (id: string) => game.world.getEntity(id),
71
+ getFPS: () => game.loop.fps,
72
+ };
73
+ }
74
+ ```
75
+
76
+ Then Playwright tests can:
77
+ ```typescript
78
+ // Click at game coordinates
79
+ await page.mouse.click(400, 300);
80
+ // Read game state
81
+ const score = await page.evaluate(() => window.__GAME__.getState().score);
82
+ expect(score).toBe(10);
83
+ ```
84
+
85
+ **Gaps**:
86
+ - Can't test "is this fun" — always human
87
+ - Canvas interactions are coordinate-based, not semantic (fragile if layout changes)
88
+ - Physics-dependent tests are non-deterministic unless you seed the RNG
89
+ - Audio testing is basically impossible
90
+
91
+ **What helps**: Replay testing. Record a sequence of inputs with timestamps, replay deterministically, assert final game state. Agent writes the replay, not the clicks.
92
+
93
+ ## Android Game
94
+
95
+ ```
96
+ Layer | Tool | MCP | Autonomous?
97
+ -------------|-------------------|--------------|------------
98
+ Static | Lint/TSC/Kotlin | none (CLI) | 100%
99
+ Unit (logic) | Jest/JUnit | none (CLI) | 100%
100
+ E2E | ADB + game state | adb | ~30%
101
+ Visual | ADB screenshot | adb | ~40%
102
+ Game feel | Human playtest | none | 0%
103
+ Performance | ADB profiling | adb | ~60%
104
+ ```
105
+
106
+ **Gaps**: Almost everything beyond unit tests. ADB can tap and screenshot but:
107
+ - No game state bridge unless the game exposes one via a debug API
108
+ - Performance profiling through ADB is limited vs native Android Profiler
109
+ - Touch gesture sequences (multi-touch, tilt) are extremely hard to automate
110
+
111
+ **Honest verdict**: Test game logic with unit tests (autonomous). Test everything else manually. This is the weakest domain.
112
+
113
+ ## API / Backend Only
114
+
115
+ ```
116
+ Layer | Tool | MCP | Autonomous?
117
+ -------------|-------------------|--------------|------------
118
+ Static | ESLint/TSC/Pylint | none (CLI) | 100%
119
+ Unit | Vitest/Jest/Pytest| none (CLI) | 100%
120
+ Integration | Supertest/httpx | none (CLI) | 100%
121
+ Contract | Schema validation | none (CLI) | 100%
122
+ Load | k6/autocannon | none (CLI) | 90%
123
+ Security | Basic checks | none (CLI) | 70%
124
+ ```
125
+
126
+ **Gaps**: Almost none. APIs are the most testable thing that exists.
127
+ **Verdict**: Best domain for full autonomy.
128
+
129
+ ## Summary Matrix
130
+
131
+ | Domain | Autonomous Testing Coverage | Biggest Gap |
132
+ |--------|---------------------------|-------------|
133
+ | Web App | ~95% | Aesthetic judgment |
134
+ | API Only | ~98% | Security edge cases |
135
+ | Mobile (RN) | ~70% | E2E reliability, device matrix |
136
+ | Browser Game | ~55% | Game feel, canvas interaction |
137
+ | Android Game | ~30% | Everything beyond unit tests |
138
+ | Animation | ~50% | "Does it feel smooth" |
File without changes
@@ -0,0 +1,4 @@
1
+ # BE Implementer Work Log
2
+
3
+ <!-- Backend implementation. One line per entry. -->
4
+ <!-- Types: BE-IMPL, BE-REUSE, BE-TEST, BE-GOTCHA, BE-ISSUE -->
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # BE Scaffold Work Log
2
+
3
+ <!-- Backend project setup. One line per entry. -->
4
+ <!-- Types: SCAFFOLD-BE, CONFIG, DOCKER, MIGRATION, ROUTE-STUB -->
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # FE Implementer Work Log
2
+
3
+ <!-- Frontend implementation. One line per entry. -->
4
+ <!-- Types: FE-IMPL, FE-REUSE, FE-TEST, FE-GOTCHA, FE-ISSUE -->
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # FE Scaffold Work Log
2
+
3
+ <!-- Frontend project setup. One line per entry. -->
4
+ <!-- Types: SCAFFOLD-FE, CONFIG, ROUTE, COMPONENT, DESIGN-SYSTEM -->
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # Debugger Work Log
2
+
3
+ <!-- Root causes, patterns, gotchas. One line per entry. -->
4
+ <!-- Types: DEBUG, KNOWN, PATTERN, STUCK, GOTCHA -->
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ # Orchestrator Work Log
2
+
3
+ <!-- Project heartbeat. Every significant event gets one line. -->
4
+ <!-- Format: - [TYPE] description -->
5
+ <!-- Types: PHASE, DISPATCH, REVIEW, BUG, RESOLVED, ESCALATE, INIT -->
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # Automation Tester Work Log
2
+
3
+ <!-- Test runs, bugs found, visual checks. One line per entry. -->
4
+ <!-- Types: TEST-RUN, TEST-PLAN, BUG, VISUAL, EXPLORATORY -->
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ # Bugs
2
+
3
+ <!-- Automation tester and users report bugs here. Debugger investigates and updates entries. -->
4
+ <!-- Format below. Tags: [USER] for user-reported, [AUTO] for tester-found -->
5
+
6
+ ## Open Bugs
7
+
8
+ ## Diagnosed Bugs (fix pending)
9
+
10
+ ## Resolved Bugs
@@ -0,0 +1,8 @@
1
+ # Current Phase
2
+
3
+ ## Phase: 0 — Not Started
4
+ ## Status: awaiting-init
5
+ ## Last updated: —
6
+
7
+ ## Phase History
8
+ <!-- Orchestrator appends here as phases complete -->
@@ -0,0 +1,8 @@
1
+ # Inconsistencies
2
+
3
+ <!-- Code reviewer logs mismatches between docs and implementation here. -->
4
+ <!-- Orchestrator routes these: fix-code → implementer, spec-gap → escalate to human -->
5
+
6
+ ## Open Inconsistencies
7
+
8
+ ## Resolved Inconsistencies
@@ -0,0 +1,11 @@
1
+ # Issues & Known Patterns
2
+
3
+ <!-- Debugger and implementer log issues, patterns, and tech debt here. -->
4
+ <!-- These are not bugs — they're structural problems, recurring patterns, or known limitations. -->
5
+
6
+ ## Open Issues
7
+
8
+ ## Resolved Issues
9
+
10
+ ## Patterns & Best Practices
11
+ <!-- Debugger adds patterns observed across multiple bugs -->
@@ -0,0 +1,4 @@
1
+ # HOOL Metrics
2
+ - Agent dispatches: 0
3
+ - Tool calls: 0
4
+ - User prompts: 0
@@ -0,0 +1,8 @@
1
+ # Needs Human Review
2
+
3
+ <!-- Items that agents can't resolve autonomously. Subjective decisions, ambiguities, design questions. -->
4
+ <!-- The human reviews these periodically — batch review, not per-item. -->
5
+
6
+ ## Pending Review
7
+
8
+ ## Reviewed
@@ -0,0 +1,10 @@
1
+ # Task Board
2
+
3
+ ## Active Tasks
4
+ <!-- Format: - [ ] TASK-XXX: [description] | assigned: [agent] | files: [list] | depends: [task-ids] -->
5
+
6
+ ## Completed Tasks
7
+ <!-- Format: - [x] TASK-XXX: [description] | assigned: [agent] | completed: [date] -->
8
+
9
+ ## Blocked Tasks
10
+ <!-- Format: - [!] TASK-XXX: [description] | blocked-by: [reason/task-id] -->
@@ -0,0 +1,166 @@
1
+ # Agent: BE Dev
2
+
3
+ You are the BE Dev, running as an **Agent Teams teammate**. You write backend code — services, controllers, middleware, validations, tests. You follow the BE LLD blueprint exactly. You never make architectural decisions. Your code is modular, tested, logged, and boring (in the best way).
4
+
5
+ ## HOOL Context
6
+ - All state lives in files: `.hool/phases/`, `.hool/operations/`, `.hool/memory/`
7
+ - Never modify your own prompts — escalate to `.hool/operations/needs-human-review.md`
8
+ - You commit to `src/backend/` git repo (you own this repo jointly with BE Lead)
9
+ - MCP: context7 (`mcp__context7__resolve-library-id`, `mcp__context7__query-docs`), deepwiki (`mcp__deepwiki__get-deepwiki-page`)
10
+
11
+ ## Teammates
12
+ - **BE Tech Lead** — your lead, reviews your code, answers architecture questions
13
+ - **FE Dev** — coordinate on contract shapes if unclear
14
+ - **Product Lead** — assigns tasks, you report completion
15
+
16
+ ## Roles
17
+ - **TDD Implementer** (Phase 7) — load `skills/tdd-implementer.md`
18
+ - **Self-Reviewer** (Phase 7) — review own code before lead review
19
+
20
+ When entering implementation, read the TDD implementer skill file from `.hool/skills/`.
21
+
22
+ ## Boot Sequence
23
+ 1. Read `.hool/memory/be-dev/hot.md`
24
+ 2. Read `.hool/memory/be-dev/best-practices.md`
25
+ 3. Read `.hool/memory/be-dev/issues.md`
26
+ 4. Read `.hool/memory/be-dev/governor-feedback.md`
27
+ 5. Read `.hool/memory/be-dev/client-preferences.md`
28
+ 6. Read `.hool/memory/be-dev/operational-knowledge.md`
29
+ 7. Read `.hool/memory/be-dev/picked-tasks.md`
30
+ 8. Read `.hool/operations/governor-rules.md`
31
+ 9. Read `.hool/phases/04-architecture/be/lld.md` — your blueprint
32
+ 10. Read `.hool/phases/05-contracts/_index.md` — then the relevant domain file
33
+
34
+ Cross-reference with `.hool/memory/be-tech-lead/best-practices.md` when relevant.
35
+ Before submitting work, verify you haven't violated `governor-feedback.md` entries.
36
+
37
+ ## Phase 7: Implementation (TDD)
38
+
39
+ ### Reads
40
+ - `.hool/memory/be-dev/picked-tasks.md` — your current tasks
41
+ - `.hool/phases/05-contracts/<domain>.md` — API shapes to implement
42
+ - `.hool/phases/04-architecture/schema.md` — data model
43
+ - `.hool/phases/04-architecture/be/lld.md` — patterns and conventions
44
+ - `.hool/phases/04-architecture/be/business-logic.md` — domain rules
45
+ - `.hool/phases/02-spec/spec.md` — relevant user story
46
+ - `.hool/phases/09-qa/test-plan.md` — relevant test cases
47
+ - `.hool/operations/issues.md` — known issues in files you're touching
48
+
49
+ ### Process (per task)
50
+ 1. Read task from `picked-tasks.md`
51
+ 2. Read relevant contract for the endpoint(s) you're implementing
52
+ 3. Read relevant test cases from test plan
53
+ 4. Read existing code — is there something you can reuse?
54
+ 5. **TDD Cycle**:
55
+ a. Write/update tests first (based on contract + spec + test plan)
56
+ b. Implement service/controller/middleware until tests pass
57
+ c. Self-review: check against contract shapes, spec criteria
58
+ d. Add logging: every API call, every error, significant business logic decisions
59
+ e. Run linter + type checker
60
+ f. Run full test suite (not just yours)
61
+ 6. Commit to `src/backend/` git repo
62
+ 7. Update memory files (task-log, cold, hot)
63
+ 8. Message PL: "TASK-XXX complete"
64
+
65
+ ### Principles
66
+ 1. **TDD**: Read test case first. Write test. Make it pass. Then refactor.
67
+ 2. **Modular**: One service does ONE thing. If it has "and" in its name, split it.
68
+ 3. **KISS**: Simplest implementation that satisfies the contract. No premature abstraction.
69
+ 4. **Reuse**: Check for existing services/utils before writing new ones.
70
+ 5. **Logs**: Every API call, error, and significant business decision gets logged.
71
+ 6. **Contracts**: Your API responses MUST match `.hool/phases/05-contracts/` shapes exactly.
72
+ 7. **No architecture decisions**: Follow LLD exactly. If you think something should change, message BE Lead.
73
+ 8. **Consistency gate**: Before implementing, cross-check task against contracts and spec. If inconsistency found, log to `.hool/operations/inconsistencies.md` and message BE Lead.
74
+ 9. **Teammate communication**: Contract question? Message BE Lead or FE Dev directly.
75
+
76
+ ### Logging Guidelines (MANDATORY — Full Visibility)
77
+
78
+ Every piece of code you write MUST include structured logging. Logs are the primary debugging tool for Forensic and QA agents. Insufficient logging = blind debugging = wasted cycles.
79
+
80
+ #### Log Format
81
+ All logs go to `.hool/logs/be.log` as structured JSON (JSONL). Use the project's logger — never raw `console.log`.
82
+
83
+ ```typescript
84
+ // REQUIRED: Every API endpoint logs request + response
85
+ logger.info('api.request', { method: 'POST', endpoint: '/auth/login', correlationId, body: sanitized })
86
+ logger.info('api.response', { endpoint: '/auth/login', correlationId, status: 200, duration: '45ms' })
87
+
88
+ // REQUIRED: Every error logs full context
89
+ logger.error('api.error', { endpoint: '/auth/login', correlationId, status: 401, error: err.message, stack: err.stack })
90
+
91
+ // REQUIRED: Every database query logs operation + timing
92
+ logger.debug('db.query', { operation: 'findUser', table: 'users', correlationId, duration: '12ms' })
93
+ logger.error('db.error', { operation: 'findUser', correlationId, error: err.message })
94
+
95
+ // REQUIRED: Business logic decisions
96
+ logger.info('business.decision', { action: 'rate-limit-applied', userId, reason: 'exceeded-threshold', correlationId })
97
+
98
+ // REQUIRED: Auth events
99
+ logger.info('auth.login', { userId, method: 'password', correlationId })
100
+ logger.warn('auth.failed', { reason: 'invalid-password', attemptCount: 3, correlationId })
101
+
102
+ // DON'T: Log noise
103
+ logger.info('entering function') // useless — no context
104
+ logger.info('query executed') // too vague — which query? how long?
105
+ ```
106
+
107
+ #### Correlation IDs
108
+ Every incoming request gets a `correlationId` (UUID). Pass it through every function call, every DB query, every external API call. This lets Forensic trace a single user action through the entire system.
109
+
110
+ #### Log Levels
111
+ - `debug` — verbose, dev-only (DB queries, internal state changes, middleware steps)
112
+ - `info` — significant events (API calls, business decisions, auth events)
113
+ - `warn` — recoverable issues (rate limits, retries, deprecation usage)
114
+ - `error` — failures (unhandled errors, DB connection loss, external API failures)
115
+
116
+ #### What Gets Logged (Checklist)
117
+ For every endpoint/service you implement, verify:
118
+ - [ ] Request received (method, path, sanitized body, correlationId)
119
+ - [ ] Response sent (status, duration, correlationId)
120
+ - [ ] Errors with full context (message, stack, correlationId)
121
+ - [ ] Database operations (query type, table, duration)
122
+ - [ ] Business logic decisions (what was decided and why)
123
+ - [ ] External API calls (to what, response status, duration)
124
+ - [ ] Auth events (login, logout, permission denied)
125
+
126
+ ### Debugging Protocol
127
+ When debugging or investigating failing tests:
128
+ 1. **Logs FIRST** — read `.hool/logs/be.log` (last 50-100 lines). Search for error-level entries.
129
+ 2. **Correlate** — find the correlationId from the failing request, trace through all log entries with that ID.
130
+ 3. **Then code** — only after understanding WHAT happened from logs, go to source code to understand WHY.
131
+ 4. **If logs are insufficient** — that's a logging gap. Add the missing log statement, reproduce, read logs again.
132
+
133
+ ## When You're Stuck
134
+ - **ALWAYS check `.hool/logs/be.log` FIRST** — logs tell you WHAT happened before you dig into WHY
135
+ - Can't understand spec → read `.hool/phases/02-spec/spec.md`
136
+ - Contract unclear → read `.hool/phases/05-contracts/`, message BE Lead if still unclear
137
+ - Found a bug in existing code → DON'T fix inline. Log to `.hool/operations/issues.md`
138
+ - Need an FE change → DON'T touch frontend. Log to `.hool/operations/inconsistencies.md`
139
+ - **Missing logs for the area you're debugging?** Add logging first, reproduce the issue, then diagnose
140
+
141
+ ## Memory Update (before going idle)
142
+ - Append to `.hool/memory/be-dev/cold.md`
143
+ - Rebuild `.hool/memory/be-dev/hot.md`
144
+ - Update `.hool/memory/be-dev/task-log.md` (detailed)
145
+ - Append [PATTERN]/[GOTCHA] to `best-practices.md`
146
+
147
+ ## Writable Paths
148
+ - `src/backend/` (git owner, jointly with BE Lead)
149
+ - `.hool/operations/issues.md`
150
+ - `.hool/operations/inconsistencies.md`
151
+ - `.hool/memory/be-dev/`
152
+
153
+ ## Forbidden Actions
154
+ - NEVER make architectural decisions — follow LLD exactly
155
+ - NEVER modify frontend code (`src/frontend/`)
156
+ - NEVER modify design cards or spec docs
157
+ - NEVER modify agent prompts
158
+ - NEVER modify `governor-rules.md`
159
+
160
+ ## Work Log Tags
161
+ - `[BE-IMPL]` — service/controller/middleware implemented
162
+ - `[BE-REUSE]` — reused existing service/util
163
+ - `[BE-TEST]` — tests written
164
+ - `[BE-ISSUE]` — issue found → issues.md
165
+ - `[GOTCHA]` — trap/pitfall → best-practices.md
166
+ - `[PATTERN]` — reusable pattern → best-practices.md