@qball-inc/the-bulwark 1.0.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.
- package/.claude-plugin/plugin.json +43 -0
- package/agents/bulwark-fix-validator.md +633 -0
- package/agents/bulwark-implementer.md +391 -0
- package/agents/bulwark-issue-analyzer.md +308 -0
- package/agents/bulwark-standards-reviewer.md +221 -0
- package/agents/plan-creation-architect.md +323 -0
- package/agents/plan-creation-eng-lead.md +352 -0
- package/agents/plan-creation-po.md +300 -0
- package/agents/plan-creation-qa-critic.md +334 -0
- package/agents/product-ideation-competitive-analyzer.md +298 -0
- package/agents/product-ideation-idea-validator.md +268 -0
- package/agents/product-ideation-market-researcher.md +292 -0
- package/agents/product-ideation-pattern-documenter.md +308 -0
- package/agents/product-ideation-segment-analyzer.md +303 -0
- package/agents/product-ideation-strategist.md +259 -0
- package/agents/statusline-setup.md +97 -0
- package/hooks/hooks.json +59 -0
- package/package.json +45 -0
- package/scripts/hooks/cleanup-stale.sh +13 -0
- package/scripts/hooks/enforce-quality.sh +166 -0
- package/scripts/hooks/implementer-quality.sh +256 -0
- package/scripts/hooks/inject-protocol.sh +52 -0
- package/scripts/hooks/suggest-pipeline.sh +175 -0
- package/scripts/hooks/track-pipeline-start.sh +37 -0
- package/scripts/hooks/track-pipeline-stop.sh +52 -0
- package/scripts/init-rules.sh +35 -0
- package/scripts/init.sh +151 -0
- package/skills/anthropic-validator/SKILL.md +607 -0
- package/skills/anthropic-validator/references/agents-checklist.md +131 -0
- package/skills/anthropic-validator/references/commands-checklist.md +102 -0
- package/skills/anthropic-validator/references/hooks-checklist.md +151 -0
- package/skills/anthropic-validator/references/mcp-checklist.md +136 -0
- package/skills/anthropic-validator/references/plugins-checklist.md +148 -0
- package/skills/anthropic-validator/references/skills-checklist.md +85 -0
- package/skills/assertion-patterns/SKILL.md +296 -0
- package/skills/bug-magnet-data/SKILL.md +284 -0
- package/skills/bug-magnet-data/context/cli-args.md +91 -0
- package/skills/bug-magnet-data/context/db-query.md +104 -0
- package/skills/bug-magnet-data/context/file-contents.md +103 -0
- package/skills/bug-magnet-data/context/http-body.md +91 -0
- package/skills/bug-magnet-data/context/process-spawn.md +123 -0
- package/skills/bug-magnet-data/data/booleans/boundaries.yaml +143 -0
- package/skills/bug-magnet-data/data/collections/arrays.yaml +114 -0
- package/skills/bug-magnet-data/data/collections/objects.yaml +123 -0
- package/skills/bug-magnet-data/data/concurrency/race-conditions.yaml +118 -0
- package/skills/bug-magnet-data/data/concurrency/state-machines.yaml +115 -0
- package/skills/bug-magnet-data/data/dates/boundaries.yaml +137 -0
- package/skills/bug-magnet-data/data/dates/invalid.yaml +132 -0
- package/skills/bug-magnet-data/data/dates/timezone.yaml +118 -0
- package/skills/bug-magnet-data/data/encoding/charset.yaml +79 -0
- package/skills/bug-magnet-data/data/encoding/normalization.yaml +105 -0
- package/skills/bug-magnet-data/data/formats/email.yaml +154 -0
- package/skills/bug-magnet-data/data/formats/json.yaml +187 -0
- package/skills/bug-magnet-data/data/formats/url.yaml +165 -0
- package/skills/bug-magnet-data/data/language-specific/javascript.yaml +182 -0
- package/skills/bug-magnet-data/data/language-specific/python.yaml +174 -0
- package/skills/bug-magnet-data/data/language-specific/rust.yaml +148 -0
- package/skills/bug-magnet-data/data/numbers/boundaries.yaml +161 -0
- package/skills/bug-magnet-data/data/numbers/precision.yaml +89 -0
- package/skills/bug-magnet-data/data/numbers/special.yaml +69 -0
- package/skills/bug-magnet-data/data/strings/boundaries.yaml +109 -0
- package/skills/bug-magnet-data/data/strings/injection.yaml +208 -0
- package/skills/bug-magnet-data/data/strings/special-chars.yaml +190 -0
- package/skills/bug-magnet-data/data/strings/unicode.yaml +139 -0
- package/skills/bug-magnet-data/references/external-lists.md +115 -0
- package/skills/bulwark-brainstorm/SKILL.md +563 -0
- package/skills/bulwark-brainstorm/references/at-teammate-prompts.md +60 -0
- package/skills/bulwark-brainstorm/references/role-critical-analyst.md +78 -0
- package/skills/bulwark-brainstorm/references/role-development-lead.md +66 -0
- package/skills/bulwark-brainstorm/references/role-product-delivery-lead.md +79 -0
- package/skills/bulwark-brainstorm/references/role-product-manager.md +62 -0
- package/skills/bulwark-brainstorm/references/role-project-sme.md +59 -0
- package/skills/bulwark-brainstorm/references/role-technical-architect.md +66 -0
- package/skills/bulwark-research/SKILL.md +298 -0
- package/skills/bulwark-research/references/viewpoint-contrarian.md +63 -0
- package/skills/bulwark-research/references/viewpoint-direct-investigation.md +62 -0
- package/skills/bulwark-research/references/viewpoint-first-principles.md +65 -0
- package/skills/bulwark-research/references/viewpoint-practitioner.md +62 -0
- package/skills/bulwark-research/references/viewpoint-prior-art.md +66 -0
- package/skills/bulwark-scaffold/SKILL.md +330 -0
- package/skills/bulwark-statusline/SKILL.md +161 -0
- package/skills/bulwark-statusline/scripts/statusline.sh +144 -0
- package/skills/bulwark-verify/SKILL.md +519 -0
- package/skills/code-review/SKILL.md +428 -0
- package/skills/code-review/examples/anti-patterns/linting.ts +181 -0
- package/skills/code-review/examples/anti-patterns/security.ts +91 -0
- package/skills/code-review/examples/anti-patterns/standards.ts +195 -0
- package/skills/code-review/examples/anti-patterns/type-safety.ts +108 -0
- package/skills/code-review/examples/recommended/linting.ts +195 -0
- package/skills/code-review/examples/recommended/security.ts +154 -0
- package/skills/code-review/examples/recommended/standards.ts +231 -0
- package/skills/code-review/examples/recommended/type-safety.ts +181 -0
- package/skills/code-review/frameworks/angular.md +218 -0
- package/skills/code-review/frameworks/django.md +235 -0
- package/skills/code-review/frameworks/express.md +207 -0
- package/skills/code-review/frameworks/flask.md +298 -0
- package/skills/code-review/frameworks/generic.md +146 -0
- package/skills/code-review/frameworks/react.md +152 -0
- package/skills/code-review/frameworks/vue.md +244 -0
- package/skills/code-review/references/linting-patterns.md +221 -0
- package/skills/code-review/references/security-patterns.md +125 -0
- package/skills/code-review/references/standards-patterns.md +246 -0
- package/skills/code-review/references/type-safety-patterns.md +130 -0
- package/skills/component-patterns/SKILL.md +131 -0
- package/skills/component-patterns/references/pattern-cli-command.md +118 -0
- package/skills/component-patterns/references/pattern-database.md +166 -0
- package/skills/component-patterns/references/pattern-external-api.md +139 -0
- package/skills/component-patterns/references/pattern-file-parser.md +168 -0
- package/skills/component-patterns/references/pattern-http-server.md +162 -0
- package/skills/component-patterns/references/pattern-process-spawner.md +133 -0
- package/skills/continuous-feedback/SKILL.md +327 -0
- package/skills/continuous-feedback/references/collect-instructions.md +81 -0
- package/skills/continuous-feedback/references/specialize-code-review.md +82 -0
- package/skills/continuous-feedback/references/specialize-general.md +98 -0
- package/skills/continuous-feedback/references/specialize-test-audit.md +81 -0
- package/skills/create-skill/SKILL.md +359 -0
- package/skills/create-skill/references/agent-conventions.md +194 -0
- package/skills/create-skill/references/agent-template.md +195 -0
- package/skills/create-skill/references/content-guidance.md +291 -0
- package/skills/create-skill/references/decision-framework.md +124 -0
- package/skills/create-skill/references/template-pipeline.md +217 -0
- package/skills/create-skill/references/template-reference-heavy.md +111 -0
- package/skills/create-skill/references/template-research.md +210 -0
- package/skills/create-skill/references/template-script-driven.md +172 -0
- package/skills/create-skill/references/template-simple.md +80 -0
- package/skills/create-subagent/SKILL.md +353 -0
- package/skills/create-subagent/references/agent-conventions.md +268 -0
- package/skills/create-subagent/references/content-guidance.md +232 -0
- package/skills/create-subagent/references/decision-framework.md +134 -0
- package/skills/create-subagent/references/template-single-agent.md +192 -0
- package/skills/fix-bug/SKILL.md +241 -0
- package/skills/governance-protocol/SKILL.md +116 -0
- package/skills/init/SKILL.md +341 -0
- package/skills/issue-debugging/SKILL.md +385 -0
- package/skills/issue-debugging/references/anti-patterns.md +245 -0
- package/skills/issue-debugging/references/debug-report-schema.md +227 -0
- package/skills/mock-detection/SKILL.md +511 -0
- package/skills/mock-detection/references/false-positive-prevention.md +402 -0
- package/skills/mock-detection/references/stub-patterns.md +236 -0
- package/skills/pipeline-templates/SKILL.md +215 -0
- package/skills/pipeline-templates/references/code-change-workflow.md +277 -0
- package/skills/pipeline-templates/references/code-review.md +336 -0
- package/skills/pipeline-templates/references/fix-validation.md +421 -0
- package/skills/pipeline-templates/references/new-feature.md +335 -0
- package/skills/pipeline-templates/references/research-brainstorm.md +161 -0
- package/skills/pipeline-templates/references/research-planning.md +257 -0
- package/skills/pipeline-templates/references/test-audit.md +389 -0
- package/skills/pipeline-templates/references/test-execution-fix.md +238 -0
- package/skills/plan-creation/SKILL.md +497 -0
- package/skills/product-ideation/SKILL.md +372 -0
- package/skills/product-ideation/references/analysis-frameworks.md +161 -0
- package/skills/session-handoff/SKILL.md +139 -0
- package/skills/session-handoff/references/examples.md +223 -0
- package/skills/setup-lsp/SKILL.md +312 -0
- package/skills/setup-lsp/references/server-registry.md +85 -0
- package/skills/setup-lsp/references/troubleshooting.md +135 -0
- package/skills/subagent-output-templating/SKILL.md +415 -0
- package/skills/subagent-output-templating/references/examples.md +440 -0
- package/skills/subagent-prompting/SKILL.md +364 -0
- package/skills/subagent-prompting/references/examples.md +342 -0
- package/skills/test-audit/SKILL.md +531 -0
- package/skills/test-audit/references/known-limitations.md +41 -0
- package/skills/test-audit/references/priority-classification.md +30 -0
- package/skills/test-audit/references/prompts/deep-mode-detection.md +83 -0
- package/skills/test-audit/references/prompts/synthesis.md +57 -0
- package/skills/test-audit/references/rewrite-instructions.md +46 -0
- package/skills/test-audit/references/schemas/audit-output.yaml +100 -0
- package/skills/test-audit/references/schemas/diagnostic-output.yaml +49 -0
- package/skills/test-audit/scripts/data-flow-analyzer.ts +509 -0
- package/skills/test-audit/scripts/integration-mock-detector.ts +462 -0
- package/skills/test-audit/scripts/package.json +20 -0
- package/skills/test-audit/scripts/skip-detector.ts +211 -0
- package/skills/test-audit/scripts/verification-counter.ts +295 -0
- package/skills/test-classification/SKILL.md +310 -0
- package/skills/test-fixture-creation/SKILL.md +295 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Debug Report Schema
|
|
2
|
+
|
|
3
|
+
Full YAML schema for debug reports generated by the issue-debugging methodology.
|
|
4
|
+
|
|
5
|
+
## Location
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
logs/debug-reports/{issue-id}-{timestamp}.yaml
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Complete Schema
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
debug_report:
|
|
15
|
+
# ============================================
|
|
16
|
+
# METADATA
|
|
17
|
+
# ============================================
|
|
18
|
+
metadata:
|
|
19
|
+
issue_id: "{identifier}" # Required: Unique issue identifier
|
|
20
|
+
timestamp: "{ISO-8601}" # Required: When analysis completed
|
|
21
|
+
analyzer: "bulwark-issue-analyzer" # Required: Agent that produced this
|
|
22
|
+
complexity: low | medium | high # Required: Determined during analysis
|
|
23
|
+
|
|
24
|
+
# ============================================
|
|
25
|
+
# ANALYSIS
|
|
26
|
+
# ============================================
|
|
27
|
+
analysis:
|
|
28
|
+
symptom: "{user-visible problem}"
|
|
29
|
+
# Example: "Login button returns 500 error"
|
|
30
|
+
|
|
31
|
+
root_cause: "{underlying reason - NOT just symptom}"
|
|
32
|
+
# Example: "Null profile object accessed when user has no profile data"
|
|
33
|
+
# BAD: "API returns 500" (that's the symptom)
|
|
34
|
+
|
|
35
|
+
fix_approach: "{recommended approach}"
|
|
36
|
+
# Example: "Add null check before accessing profile.name"
|
|
37
|
+
|
|
38
|
+
five_whys: # Optional but recommended
|
|
39
|
+
- "{first why}"
|
|
40
|
+
- "{second why}"
|
|
41
|
+
- "{third why}"
|
|
42
|
+
- "{fourth why}"
|
|
43
|
+
- "{fifth why - root cause}"
|
|
44
|
+
|
|
45
|
+
# ============================================
|
|
46
|
+
# IMPACT ANALYSIS
|
|
47
|
+
# ============================================
|
|
48
|
+
impact_analysis:
|
|
49
|
+
affected_files:
|
|
50
|
+
- path: "{file path}"
|
|
51
|
+
changes: "{what needs to change}"
|
|
52
|
+
# Example:
|
|
53
|
+
# - path: "src/auth/login.ts"
|
|
54
|
+
# changes: "Add null check at line 42"
|
|
55
|
+
|
|
56
|
+
upstream_dependencies:
|
|
57
|
+
- caller: "{what calls this code}"
|
|
58
|
+
file: "{file path}"
|
|
59
|
+
impact: "{how it's affected}"
|
|
60
|
+
# Example:
|
|
61
|
+
# - caller: "POST /api/login"
|
|
62
|
+
# file: "src/api/auth-routes.ts"
|
|
63
|
+
# impact: "Will receive null instead of crashing"
|
|
64
|
+
|
|
65
|
+
downstream_effects:
|
|
66
|
+
- consumer: "{what this code affects}"
|
|
67
|
+
file: "{file path}"
|
|
68
|
+
impact: "{potential impact}"
|
|
69
|
+
# Example:
|
|
70
|
+
# - consumer: "User dashboard"
|
|
71
|
+
# file: "src/pages/dashboard.tsx"
|
|
72
|
+
# impact: "Must handle empty profile gracefully"
|
|
73
|
+
|
|
74
|
+
risk_scope: isolated | medium | broad
|
|
75
|
+
# isolated: Self-contained, no affected areas
|
|
76
|
+
# medium: 1-5 affected areas
|
|
77
|
+
# broad: >5 affected areas, cross-cutting
|
|
78
|
+
|
|
79
|
+
# ============================================
|
|
80
|
+
# VALIDATION PLAN
|
|
81
|
+
# ============================================
|
|
82
|
+
validation_plan:
|
|
83
|
+
tests_to_execute:
|
|
84
|
+
- path: "{test file}"
|
|
85
|
+
test_name: "{specific test or describe block}" # Optional
|
|
86
|
+
reason: "{why this test matters}"
|
|
87
|
+
priority: 1 # 1=P1 must, 2=P2 should, 3=P3 nice-to-have
|
|
88
|
+
# Example:
|
|
89
|
+
# - path: "tests/auth/login.test.ts"
|
|
90
|
+
# test_name: "handles null profile"
|
|
91
|
+
# reason: "Direct test of the fix"
|
|
92
|
+
# priority: 1
|
|
93
|
+
|
|
94
|
+
functionalities_to_validate:
|
|
95
|
+
- functionality: "{user-level verification}"
|
|
96
|
+
how: "{validation method}"
|
|
97
|
+
automatable: true | false
|
|
98
|
+
# Example:
|
|
99
|
+
# - functionality: "User can log in successfully"
|
|
100
|
+
# how: "E2E test or manual login"
|
|
101
|
+
# automatable: true
|
|
102
|
+
|
|
103
|
+
test_commands:
|
|
104
|
+
p1: "{command to run P1 tests}"
|
|
105
|
+
p2: "{command to run P1+P2 tests}"
|
|
106
|
+
p3: "{command to run all tests}"
|
|
107
|
+
# Example:
|
|
108
|
+
# p1: "just test -- tests/auth/login.test.ts"
|
|
109
|
+
# p2: "just test -- tests/auth/"
|
|
110
|
+
# p3: "just test"
|
|
111
|
+
|
|
112
|
+
# ============================================
|
|
113
|
+
# CONFIDENCE CRITERIA
|
|
114
|
+
# ============================================
|
|
115
|
+
confidence_criteria:
|
|
116
|
+
high:
|
|
117
|
+
- "All P1 tests pass"
|
|
118
|
+
- "All P2 tests pass"
|
|
119
|
+
- "No regression in existing tests"
|
|
120
|
+
- "At least one functionality validated"
|
|
121
|
+
medium:
|
|
122
|
+
- "All P1 tests pass"
|
|
123
|
+
- "Some P2-P3 tests skipped or not applicable"
|
|
124
|
+
- "No critical regressions"
|
|
125
|
+
low:
|
|
126
|
+
- "Tests cannot reliably validate the fix"
|
|
127
|
+
- "Broad risk scope with untested paths"
|
|
128
|
+
- "Manual testing required"
|
|
129
|
+
|
|
130
|
+
escalation_required: true | false
|
|
131
|
+
escalation_reason: "{why manual testing needed}" # If escalation_required
|
|
132
|
+
|
|
133
|
+
# ============================================
|
|
134
|
+
# DEBUG JOURNEY (Required for medium/high complexity)
|
|
135
|
+
# ============================================
|
|
136
|
+
debug_journey:
|
|
137
|
+
started_at: "{ISO-8601}"
|
|
138
|
+
completed_at: "{ISO-8601}"
|
|
139
|
+
duration_minutes: 0
|
|
140
|
+
|
|
141
|
+
hypotheses_tested:
|
|
142
|
+
- id: 1
|
|
143
|
+
hypothesis: "{what was suspected}"
|
|
144
|
+
tested_at: "{ISO-8601}"
|
|
145
|
+
method: "{how it was tested}"
|
|
146
|
+
result: confirmed | rejected
|
|
147
|
+
evidence: "{what proved/disproved it}"
|
|
148
|
+
# Example:
|
|
149
|
+
# - id: 1
|
|
150
|
+
# hypothesis: "Database connection timeout"
|
|
151
|
+
# tested_at: "2026-01-16T10:30:00Z"
|
|
152
|
+
# method: "Checked DB logs and connection pool"
|
|
153
|
+
# result: rejected
|
|
154
|
+
# evidence: "DB logs show successful queries"
|
|
155
|
+
|
|
156
|
+
investigation_path:
|
|
157
|
+
- "{step 1 of investigation}"
|
|
158
|
+
- "{step 2 of investigation}"
|
|
159
|
+
# Breadcrumb trail of investigation steps
|
|
160
|
+
|
|
161
|
+
dead_ends: # Optional: Document what didn't work
|
|
162
|
+
- approach: "{what was tried}"
|
|
163
|
+
why_abandoned: "{why it didn't work}"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Minimal Valid Report (Low Complexity)
|
|
167
|
+
|
|
168
|
+
For low complexity issues, only required fields:
|
|
169
|
+
|
|
170
|
+
```yaml
|
|
171
|
+
debug_report:
|
|
172
|
+
metadata:
|
|
173
|
+
issue_id: "fix-typo-readme"
|
|
174
|
+
timestamp: "2026-01-16T10:00:00Z"
|
|
175
|
+
analyzer: "bulwark-issue-analyzer"
|
|
176
|
+
complexity: low
|
|
177
|
+
|
|
178
|
+
analysis:
|
|
179
|
+
symptom: "Typo in README installation section"
|
|
180
|
+
root_cause: "Misspelled 'npm' as 'nmp'"
|
|
181
|
+
fix_approach: "Correct spelling"
|
|
182
|
+
|
|
183
|
+
impact_analysis:
|
|
184
|
+
affected_files:
|
|
185
|
+
- path: "README.md"
|
|
186
|
+
changes: "Fix typo"
|
|
187
|
+
upstream_dependencies: []
|
|
188
|
+
downstream_effects: []
|
|
189
|
+
risk_scope: isolated
|
|
190
|
+
|
|
191
|
+
validation_plan:
|
|
192
|
+
tests_to_execute: []
|
|
193
|
+
functionalities_to_validate:
|
|
194
|
+
- functionality: "README displays correctly"
|
|
195
|
+
how: "Visual inspection"
|
|
196
|
+
automatable: false
|
|
197
|
+
test_commands:
|
|
198
|
+
p1: "# No tests needed"
|
|
199
|
+
|
|
200
|
+
confidence_criteria:
|
|
201
|
+
high: ["Visual inspection confirms fix"]
|
|
202
|
+
escalation_required: false
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Field Requirements by Complexity
|
|
206
|
+
|
|
207
|
+
| Field | Low | Medium | High |
|
|
208
|
+
|-------|-----|--------|------|
|
|
209
|
+
| metadata.* | Required | Required | Required |
|
|
210
|
+
| analysis.symptom | Required | Required | Required |
|
|
211
|
+
| analysis.root_cause | Required | Required | Required |
|
|
212
|
+
| analysis.fix_approach | Required | Required | Required |
|
|
213
|
+
| analysis.five_whys | Optional | Recommended | Required |
|
|
214
|
+
| impact_analysis.* | Required | Required | Required |
|
|
215
|
+
| validation_plan.* | Required | Required | Required |
|
|
216
|
+
| confidence_criteria.* | Required | Required | Required |
|
|
217
|
+
| debug_journey.* | Optional | **Required** | **Required** |
|
|
218
|
+
|
|
219
|
+
## Validation Rules
|
|
220
|
+
|
|
221
|
+
1. `issue_id` must be unique within the project
|
|
222
|
+
2. `timestamp` must be valid ISO-8601
|
|
223
|
+
3. `complexity` must be one of: `low`, `medium`, `high`
|
|
224
|
+
4. `risk_scope` must be one of: `isolated`, `medium`, `broad`
|
|
225
|
+
5. `priority` in tests must be 1, 2, or 3
|
|
226
|
+
6. `debug_journey` required when complexity is medium or high
|
|
227
|
+
7. `escalation_reason` required when `escalation_required` is true
|