claude-mpm 5.4.55__py3-none-any.whl → 5.4.85__py3-none-any.whl

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.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

Files changed (173) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/CLAUDE_MPM_FOUNDERS_OUTPUT_STYLE.md +405 -0
  3. claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +63 -241
  4. claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +109 -1925
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +36 -9
  6. claude_mpm/cli/__init__.py +5 -1
  7. claude_mpm/cli/commands/agents.py +2 -4
  8. claude_mpm/cli/commands/agents_reconcile.py +197 -0
  9. claude_mpm/cli/commands/configure.py +620 -21
  10. claude_mpm/cli/commands/skills.py +166 -14
  11. claude_mpm/cli/executor.py +1 -0
  12. claude_mpm/cli/interactive/__init__.py +10 -0
  13. claude_mpm/cli/interactive/agent_wizard.py +30 -50
  14. claude_mpm/cli/interactive/questionary_styles.py +65 -0
  15. claude_mpm/cli/interactive/skill_selector.py +481 -0
  16. claude_mpm/cli/parsers/base_parser.py +5 -0
  17. claude_mpm/cli/startup.py +223 -388
  18. claude_mpm/constants.py +1 -0
  19. claude_mpm/core/claude_runner.py +2 -2
  20. claude_mpm/core/interactive_session.py +7 -7
  21. claude_mpm/core/output_style_manager.py +21 -13
  22. claude_mpm/core/unified_config.py +50 -8
  23. claude_mpm/core/unified_paths.py +30 -13
  24. claude_mpm/scripts/start_activity_logging.py +0 -0
  25. claude_mpm/services/agents/deployment/agent_template_builder.py +8 -0
  26. claude_mpm/services/agents/deployment/deployment_reconciler.py +577 -0
  27. claude_mpm/services/agents/deployment/startup_reconciliation.py +138 -0
  28. claude_mpm/services/agents/sources/git_source_sync_service.py +7 -4
  29. claude_mpm/services/agents/startup_sync.py +5 -2
  30. claude_mpm/services/pm_skills_deployer.py +4 -0
  31. claude_mpm/services/skills/git_skill_source_manager.py +24 -8
  32. claude_mpm/services/skills/selective_skill_deployer.py +82 -83
  33. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  34. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  35. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  36. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  37. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  38. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  39. claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
  40. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  41. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  42. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  43. claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
  44. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  45. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  46. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  47. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  48. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  49. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  50. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  51. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  52. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  53. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  54. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  55. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  56. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  57. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  58. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  59. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  60. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  61. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  62. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  63. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  64. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  65. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  66. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  67. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
  68. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
  69. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
  70. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
  71. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
  72. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
  73. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
  74. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
  75. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
  76. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  77. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  78. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  79. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  80. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  81. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  82. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  83. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  84. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  85. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  86. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  87. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  88. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  89. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  90. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  91. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  92. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  93. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  94. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  95. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  96. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  97. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  98. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  99. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  100. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  101. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  102. claude_mpm/skills/bundled/pm/pm-bug-reporting/pm-bug-reporting.md +248 -0
  103. claude_mpm/skills/bundled/pm/pm-delegation-patterns/SKILL.md +167 -0
  104. claude_mpm/skills/bundled/pm/pm-git-file-tracking/SKILL.md +113 -0
  105. claude_mpm/skills/bundled/pm/pm-pr-workflow/SKILL.md +124 -0
  106. claude_mpm/skills/bundled/pm/pm-teaching-mode/SKILL.md +657 -0
  107. claude_mpm/skills/bundled/pm/pm-ticketing-integration/SKILL.md +154 -0
  108. claude_mpm/skills/bundled/pm/pm-verification-protocols/SKILL.md +198 -0
  109. claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
  110. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  111. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  112. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  113. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  114. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  115. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  116. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  117. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
  118. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
  119. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
  120. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
  121. claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
  122. claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
  123. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
  124. claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
  125. claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
  126. claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
  127. claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
  128. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  129. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  130. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  131. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  132. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  133. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  134. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  135. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  136. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
  137. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
  138. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
  139. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
  140. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
  141. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  142. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  143. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  144. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  145. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  146. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  147. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  148. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  149. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  150. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  151. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  152. claude_mpm/utils/agent_dependency_loader.py +103 -4
  153. claude_mpm/utils/robust_installer.py +45 -24
  154. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/METADATA +47 -23
  155. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/RECORD +159 -47
  156. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  157. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  158. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  159. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  160. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  161. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  162. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  163. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  164. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  165. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  166. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  167. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  168. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  169. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/WHEEL +0 -0
  170. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/entry_points.txt +0 -0
  171. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/licenses/LICENSE +0 -0
  172. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  173. {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,438 @@
1
+ # Integration with Other Skills
2
+
3
+ How root-cause-tracing integrates with systematic-debugging and other debugging skills to form a complete debugging toolkit.
4
+
5
+ ## Relationship with Systematic Debugging
6
+
7
+ ### The Big Picture
8
+
9
+ **systematic-debugging** is the overall framework:
10
+ - Phase 1: Root Cause Investigation
11
+ - Phase 2: Pattern Analysis
12
+ - Phase 3: Hypothesis and Testing
13
+ - Phase 4: Implementation
14
+
15
+ **root-cause-tracing** is a specialized technique used within **Phase 1** when dealing with deep call stacks and unclear data origins.
16
+
17
+ ### When to Use Which Skill
18
+
19
+ ```
20
+ User reports bug
21
+
22
+ Activate: systematic-debugging
23
+
24
+ Phase 1: Root Cause Investigation
25
+
26
+ Error deep in call stack?
27
+ → Yes: Use root-cause-tracing
28
+ → Trace backward to find source
29
+ → Return to systematic-debugging Phase 2
30
+ → No: Continue with Phase 1
31
+ → Read error messages
32
+ → Check recent changes
33
+ → Continue to Phase 2
34
+ ```
35
+
36
+ ### Integration Flow
37
+
38
+ #### Example: Database Connection Error
39
+
40
+ **1. Start with systematic-debugging Phase 1:**
41
+ - Read error message: "Connection failed: database 'undefined' does not exist"
42
+ - Reproduce consistently: Yes, happens every time
43
+ - Check recent changes: No recent changes to database code
44
+
45
+ **2. Recognize need for root-cause-tracing:**
46
+ - Error happens deep in execution (database.connect())
47
+ - Unclear where "undefined" value originates
48
+ - Long call chain from app startup to connection
49
+
50
+ **3. Apply root-cause-tracing:**
51
+ - Step 1: Observe symptom → database name is "undefined"
52
+ - Step 2: Find immediate cause → Database constructor receives undefined
53
+ - Step 3: Trace to caller → Config object has undefined database field
54
+ - Step 4: Continue tracing → Environment variable not set
55
+ - Step 5: Root cause → Missing DATABASE_NAME env var
56
+
57
+ **4. Return to systematic-debugging Phase 2:**
58
+ - Find working examples: Other services have DATABASE_NAME set
59
+ - Compare differences: This service's .env missing the variable
60
+ - Understand dependencies: App requires DATABASE_NAME to start
61
+
62
+ **5. Proceed to Phase 3 (Hypothesis):**
63
+ - Hypothesis: Adding DATABASE_NAME env var will fix the issue
64
+ - Test minimally: Add DATABASE_NAME=testdb to .env
65
+ - Verify: App starts successfully
66
+
67
+ **6. Continue to Phase 4 (Implementation):**
68
+ - Write test: App startup should fail if DATABASE_NAME missing
69
+ - Implement fix: Add validation for required env vars
70
+ - Verify: All tests pass, app fails fast with clear error
71
+
72
+ ## Integration with Defense-in-Depth
73
+
74
+ **After finding root cause with tracing, apply defense-in-depth pattern.**
75
+
76
+ ### The Pattern
77
+
78
+ 1. **Fix at source** (what root-cause-tracing finds)
79
+ 2. **Add validation at intermediate layers** (defense-in-depth)
80
+ 3. **Fail fast with clear errors** (both skills)
81
+
82
+ ### Example: Git Init in Wrong Directory
83
+
84
+ **Root-cause-tracing finds:**
85
+ - Source: `setupCoreTest()` returns empty tempDir before initialization
86
+
87
+ **Defense-in-depth adds layers:**
88
+ ```typescript
89
+ // Layer 0: Fix at source (root-cause-tracing result)
90
+ get tempDir(): string {
91
+ if (!this._tempDir) {
92
+ throw new Error('tempDir accessed before initialization');
93
+ }
94
+ return this._tempDir;
95
+ }
96
+
97
+ // Layer 1: Validate at entry point
98
+ static async create(name: string, directory: string) {
99
+ if (!directory) throw new Error('Directory required');
100
+ // ...
101
+ }
102
+
103
+ // Layer 2: Validate at workspace level
104
+ async initializeWorkspace(projectDir: string) {
105
+ if (!projectDir) throw new Error('projectDir required');
106
+ // ...
107
+ }
108
+
109
+ // Layer 3: Environment guard
110
+ async function gitInit(directory: string) {
111
+ if (process.env.NODE_ENV === 'test' && !directory.includes('tmp')) {
112
+ throw new Error('Test safety: refusing git init outside tmpdir');
113
+ }
114
+ // ...
115
+ }
116
+
117
+ // Layer 4: Instrumentation
118
+ async function gitInit(directory: string) {
119
+ if (!directory || directory === process.cwd()) {
120
+ console.error('SUSPICIOUS git init', { directory, stack: new Error().stack });
121
+ }
122
+ // ...
123
+ }
124
+ ```
125
+
126
+ **Result:** Bug impossible at multiple levels
127
+
128
+ ## Integration with Verification-Before-Completion
129
+
130
+ **After implementing fix, verify it worked.**
131
+
132
+ ### The Pattern
133
+
134
+ 1. **Find root cause** (root-cause-tracing)
135
+ 2. **Implement fix** (systematic-debugging Phase 4)
136
+ 3. **Verify fix** (verification-before-completion)
137
+
138
+ ### Verification Checklist
139
+
140
+ ```typescript
141
+ // After fixing root cause, verify:
142
+
143
+ // ✓ 1. Fix addresses root cause (not symptom)
144
+ const fix = 'Added validation for tempDir before access';
145
+ const rootCause = 'tempDir accessed before initialization';
146
+ // Matches? YES
147
+
148
+ // ✓ 2. All tests pass
149
+ npm test
150
+ // Result: 1847 tests passed
151
+
152
+ // ✓ 3. Specific test case for root cause
153
+ it('should throw if tempDir accessed before beforeEach', () => {
154
+ const context = setupCoreTest();
155
+ expect(() => context.tempDir).toThrow('before initialization');
156
+ });
157
+
158
+ // ✓ 4. No pollution/side effects
159
+ ls -la src/
160
+ // No .git directory in source
161
+
162
+ // ✓ 5. Defense layers working
163
+ // Each validation layer tested independently
164
+ ```
165
+
166
+ **Only after ALL checks pass:** Mark as complete
167
+
168
+ ## Integration with Test-Driven-Development
169
+
170
+ **Use TDD to create test for root cause (not symptom).**
171
+
172
+ ### The Pattern
173
+
174
+ 1. **Find root cause** (root-cause-tracing)
175
+ 2. **Write failing test for root cause** (TDD)
176
+ 3. **Fix root cause** (systematic-debugging)
177
+ 4. **Verify test passes** (verification-before-completion)
178
+
179
+ ### Example: Writing Test for Root Cause
180
+
181
+ **Symptom:** Git init in wrong directory
182
+ **Root cause:** tempDir accessed before initialization
183
+
184
+ **WRONG: Test for symptom**
185
+ ```typescript
186
+ // ❌ Tests symptom, not root cause
187
+ it('should not create .git in source directory', async () => {
188
+ await Project.create('test', '');
189
+ expect(fs.existsSync('.git')).toBe(false);
190
+ });
191
+ ```
192
+
193
+ **RIGHT: Test for root cause**
194
+ ```typescript
195
+ // ✅ Tests root cause
196
+ it('should throw if tempDir accessed before initialization', () => {
197
+ const context = setupCoreTest();
198
+ expect(() => context.tempDir).toThrow('before initialization');
199
+ });
200
+
201
+ // ✅ Test defense layer
202
+ it('should validate directory parameter', async () => {
203
+ await expect(Project.create('test', ''))
204
+ .rejects.toThrow('Directory required');
205
+ });
206
+ ```
207
+
208
+ **Why this matters:**
209
+ - Root cause test fails if bug reintroduced
210
+ - Symptom test might pass even if bug exists (different code path)
211
+ - Root cause test documents the actual issue
212
+
213
+ ## Integration with Condition-Based-Waiting
214
+
215
+ **Sometimes root cause is a timing/race condition.**
216
+
217
+ ### The Pattern
218
+
219
+ 1. **Trace reveals race condition** (root-cause-tracing)
220
+ 2. **Replace timeouts with condition-based waiting** (condition-based-waiting)
221
+
222
+ ### Example: Database Query Before Connection
223
+
224
+ **Trace finds:**
225
+ ```
226
+ Error: Connection not established
227
+ ← database.query() called
228
+ ← from constructor initialization
229
+ ← constructor doesn't wait for connection
230
+ ```
231
+
232
+ **Root cause:** Query runs before connection completes
233
+
234
+ **WRONG: Add timeout**
235
+ ```typescript
236
+ constructor() {
237
+ this.connect();
238
+ await new Promise(resolve => setTimeout(resolve, 100)); // ❌ Race condition
239
+ }
240
+ ```
241
+
242
+ **RIGHT: Condition-based waiting**
243
+ ```typescript
244
+ private connectionReady: Promise<void>;
245
+
246
+ constructor() {
247
+ this.connectionReady = this.connect();
248
+ }
249
+
250
+ async query(sql: string) {
251
+ await this.connectionReady; // ✅ Wait for actual condition
252
+ return this.db.execute(sql);
253
+ }
254
+ ```
255
+
256
+ ## Skill Activation Decision Tree
257
+
258
+ ```
259
+ User reports bug
260
+
261
+ Use: systematic-debugging (overall framework)
262
+
263
+ Phase 1: Root Cause Investigation
264
+
265
+ Is error deep in call stack?
266
+ → Yes: Apply root-cause-tracing
267
+ → Manual tracing sufficient?
268
+ → Yes: Use tracing-techniques.md
269
+ → No: Use advanced-techniques.md
270
+ → Root cause found? → Continue to Phase 2
271
+ → No: Continue Phase 1 investigation
272
+
273
+ Phase 2: Pattern Analysis
274
+ → Timing issue found?
275
+ → Yes: Consider condition-based-waiting
276
+
277
+ Phase 3: Hypothesis and Testing
278
+
279
+ Phase 4: Implementation
280
+ → Write test: Use test-driven-development
281
+ → Add defense: Use defense-in-depth
282
+ → Verify: Use verification-before-completion
283
+ ```
284
+
285
+ ## Complete Debugging Toolkit
286
+
287
+ ### The Core Skills
288
+
289
+ 1. **systematic-debugging**: Overall debugging framework (Phases 1-4)
290
+ 2. **root-cause-tracing**: Technique for Phase 1 (deep call stacks)
291
+ 3. **defense-in-depth**: Pattern for Phase 4 (multiple validation layers)
292
+ 4. **verification-before-completion**: Ensures fix worked before claiming success
293
+ 5. **test-driven-development**: Write tests for root cause, not symptoms
294
+
295
+ ### When to Use Each
296
+
297
+ | Situation | Primary Skill | Supporting Skills |
298
+ |-----------|--------------|-------------------|
299
+ | Any bug report | systematic-debugging | All others |
300
+ | Deep call stack | root-cause-tracing | systematic-debugging Phase 1 |
301
+ | After finding root cause | defense-in-depth | verification-before-completion |
302
+ | Writing fix | test-driven-development | verification-before-completion |
303
+ | Timing/race conditions | condition-based-waiting | root-cause-tracing |
304
+ | Test pollution | root-cause-tracing (advanced) | systematic-debugging |
305
+
306
+ ## Real-World Workflow Example
307
+
308
+ ### Bug: Application Crashes on Startup
309
+
310
+ **Step 1: Activate systematic-debugging**
311
+ - Read error: "TypeError: Cannot read property 'host' of undefined"
312
+ - Reproduce: Yes, happens every time
313
+ - Recent changes: None
314
+
315
+ **Step 2: Recognize deep call stack → Use root-cause-tracing**
316
+ ```
317
+ Error at database.connect()
318
+ ← from DatabaseService.initialize()
319
+ ← from App.start()
320
+ ← from main()
321
+ ```
322
+
323
+ **Step 3: Trace backward**
324
+ - database.connect() receives undefined config
325
+ - DatabaseService.initialize() gets config from ConfigService
326
+ - ConfigService.load() returns undefined
327
+ - Root cause: Config file not loaded before DatabaseService initialized
328
+
329
+ **Step 4: Return to systematic-debugging Phase 2**
330
+ - Find working examples: Other apps load config in main()
331
+ - Compare: This app tries to load config in service initialization
332
+ - Pattern: Initialization order problem
333
+
334
+ **Step 5: Phase 3 - Hypothesis**
335
+ - Hypothesis: Loading config before services will fix issue
336
+ - Test: Move config loading to top of main()
337
+ - Result: Works!
338
+
339
+ **Step 6: Phase 4 - Implementation with TDD**
340
+ ```typescript
341
+ // Test for root cause
342
+ it('should load config before initializing services', () => {
343
+ expect(ConfigService.isLoaded()).toBe(true);
344
+ });
345
+
346
+ // Test defense layer
347
+ it('should throw if DatabaseService initialized before config', () => {
348
+ ConfigService.reset();
349
+ expect(() => new DatabaseService()).toThrow('Config not loaded');
350
+ });
351
+ ```
352
+
353
+ **Step 7: Add defense-in-depth**
354
+ - Layer 1: Load config first in main()
355
+ - Layer 2: DatabaseService validates config on init
356
+ - Layer 3: ConfigService throws if accessed before loaded
357
+
358
+ **Step 8: verification-before-completion**
359
+ - ✓ All tests pass
360
+ - ✓ App starts successfully
361
+ - ✓ Config loaded before services
362
+ - ✓ Clear error if config missing
363
+
364
+ **Result:** Bug fixed at root cause with multiple defensive layers
365
+
366
+ ## Common Anti-Patterns
367
+
368
+ ### Anti-Pattern 1: Tracing Without Framework
369
+
370
+ **Wrong:**
371
+ ```
372
+ Use root-cause-tracing alone
373
+ → Find root cause
374
+ → Quick fix
375
+ → No verification
376
+ → Bug reappears later
377
+ ```
378
+
379
+ **Right:**
380
+ ```
381
+ Use systematic-debugging framework
382
+ → Use root-cause-tracing in Phase 1
383
+ → Continue through all phases
384
+ → Verify fix
385
+ → Bug stays fixed
386
+ ```
387
+
388
+ ### Anti-Pattern 2: Symptom Tests
389
+
390
+ **Wrong:**
391
+ ```
392
+ Root cause: Config not loaded
393
+ Test: "Should not crash on startup"
394
+ ```
395
+
396
+ **Right:**
397
+ ```
398
+ Root cause: Config not loaded
399
+ Test: "Should throw if config accessed before load"
400
+ Test: "Should load config before services"
401
+ ```
402
+
403
+ ### Anti-Pattern 3: Fix Without Defense
404
+
405
+ **Wrong:**
406
+ ```
407
+ Find root cause
408
+ → Fix at source only
409
+ → No validation at layers
410
+ → Similar bug appears elsewhere
411
+ ```
412
+
413
+ **Right:**
414
+ ```
415
+ Find root cause
416
+ → Fix at source
417
+ → Add defense-in-depth
418
+ → Test each layer
419
+ → Similar bugs prevented
420
+ ```
421
+
422
+ ## Summary
423
+
424
+ **Root-cause-tracing is a technique, not a complete framework:**
425
+ - Use within systematic-debugging Phase 1
426
+ - Combine with defense-in-depth after finding root cause
427
+ - Write tests for root cause with test-driven-development
428
+ - Verify fix with verification-before-completion
429
+ - Use condition-based-waiting for timing issues
430
+
431
+ **The complete workflow:**
432
+ 1. systematic-debugging (framework)
433
+ 2. root-cause-tracing (investigation technique)
434
+ 3. test-driven-development (test root cause)
435
+ 4. defense-in-depth (multiple layers)
436
+ 5. verification-before-completion (ensure success)
437
+
438
+ **Result:** Bugs fixed permanently with comprehensive prevention