@qball-inc/the-bulwark 1.1.0 → 1.2.1
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 +1 -1
- package/.gitattributes +48 -0
- package/CHANGELOG.md +151 -0
- package/LICENSE +21 -21
- package/README.md +471 -408
- package/agents/bulwark-fix-validator.md +643 -633
- package/agents/bulwark-implementer.md +407 -391
- package/agents/bulwark-issue-analyzer.md +310 -308
- package/agents/bulwark-standards-reviewer.md +305 -221
- package/agents/plan-creation-architect.md +325 -323
- package/agents/plan-creation-eng-lead.md +354 -352
- package/agents/plan-creation-po.md +302 -300
- package/agents/plan-creation-qa-critic.md +336 -334
- package/agents/product-ideation-competitive-analyzer.md +2 -0
- package/agents/product-ideation-idea-validator.md +2 -0
- package/agents/product-ideation-market-researcher.md +2 -0
- package/agents/product-ideation-pattern-documenter.md +2 -0
- package/agents/product-ideation-segment-analyzer.md +2 -0
- package/agents/product-ideation-strategist.md +2 -0
- package/agents/statusline-setup.md +99 -97
- package/hooks/hooks.json +19 -1
- package/package.json +6 -5
- package/scripts/apply-section.sh +243 -0
- package/scripts/hooks/check-template-drift.sh +191 -0
- package/scripts/hooks/cleanup-review-registry.sh +106 -0
- package/scripts/hooks/cleanup-stale.sh +19 -2
- package/scripts/hooks/enforce-quality.sh +2 -2
- package/scripts/hooks/lib/coverage_check.py +513 -0
- package/scripts/hooks/suggest-pipeline-stop.sh +172 -56
- package/scripts/init.sh +56 -0
- package/scripts/install-bun.sh +327 -0
- package/scripts/update.sh +342 -0
- package/skills/anthropic-validator/SKILL.md +497 -607
- package/skills/anthropic-validator/references/agents-checklist.md +144 -131
- package/skills/anthropic-validator/references/agents-validation.md +90 -0
- package/skills/anthropic-validator/references/commands-checklist.md +102 -102
- package/skills/anthropic-validator/references/commands-validation.md +42 -0
- package/skills/anthropic-validator/references/hooks-checklist.md +160 -151
- package/skills/anthropic-validator/references/hooks-validation.md +82 -0
- package/skills/anthropic-validator/references/mcp-checklist.md +136 -136
- package/skills/anthropic-validator/references/mcp-validation.md +39 -0
- package/skills/anthropic-validator/references/plugins-checklist.md +154 -148
- package/skills/anthropic-validator/references/plugins-validation.md +68 -0
- package/skills/anthropic-validator/references/skills-checklist.md +105 -85
- package/skills/anthropic-validator/references/skills-validation.md +79 -0
- package/skills/assertion-patterns/SKILL.md +298 -296
- package/skills/bug-magnet-data/SKILL.md +286 -284
- package/skills/bug-magnet-data/context/cli-args.md +91 -91
- package/skills/bug-magnet-data/context/db-query.md +104 -104
- package/skills/bug-magnet-data/context/file-contents.md +103 -103
- package/skills/bug-magnet-data/context/http-body.md +91 -91
- package/skills/bug-magnet-data/context/process-spawn.md +123 -123
- package/skills/bug-magnet-data/data/booleans/boundaries.yaml +143 -143
- package/skills/bug-magnet-data/data/collections/arrays.yaml +114 -114
- package/skills/bug-magnet-data/data/collections/objects.yaml +123 -123
- package/skills/bug-magnet-data/data/concurrency/race-conditions.yaml +118 -118
- package/skills/bug-magnet-data/data/concurrency/state-machines.yaml +115 -115
- package/skills/bug-magnet-data/data/dates/boundaries.yaml +137 -137
- package/skills/bug-magnet-data/data/dates/invalid.yaml +132 -132
- package/skills/bug-magnet-data/data/dates/timezone.yaml +118 -118
- package/skills/bug-magnet-data/data/encoding/charset.yaml +79 -79
- package/skills/bug-magnet-data/data/encoding/normalization.yaml +105 -105
- package/skills/bug-magnet-data/data/formats/email.yaml +154 -154
- package/skills/bug-magnet-data/data/formats/json.yaml +187 -187
- package/skills/bug-magnet-data/data/formats/url.yaml +165 -165
- package/skills/bug-magnet-data/data/language-specific/javascript.yaml +182 -182
- package/skills/bug-magnet-data/data/language-specific/python.yaml +174 -174
- package/skills/bug-magnet-data/data/language-specific/rust.yaml +148 -148
- package/skills/bug-magnet-data/data/numbers/boundaries.yaml +161 -161
- package/skills/bug-magnet-data/data/numbers/precision.yaml +89 -89
- package/skills/bug-magnet-data/data/numbers/special.yaml +69 -69
- package/skills/bug-magnet-data/data/strings/boundaries.yaml +109 -109
- package/skills/bug-magnet-data/data/strings/injection.yaml +208 -208
- package/skills/bug-magnet-data/data/strings/special-chars.yaml +190 -190
- package/skills/bug-magnet-data/data/strings/unicode.yaml +139 -139
- package/skills/bug-magnet-data/references/external-lists.md +115 -115
- package/skills/bulwark-brainstorm/SKILL.md +566 -563
- package/skills/bulwark-brainstorm/references/at-teammate-prompts.md +95 -60
- package/skills/bulwark-brainstorm/references/role-critical-analyst.md +78 -78
- package/skills/bulwark-brainstorm/references/role-development-lead.md +66 -66
- package/skills/bulwark-brainstorm/references/role-product-delivery-lead.md +79 -79
- package/skills/bulwark-brainstorm/references/role-product-manager.md +62 -62
- package/skills/bulwark-brainstorm/references/role-project-sme.md +59 -59
- package/skills/bulwark-brainstorm/references/role-technical-architect.md +66 -66
- package/skills/bulwark-research/SKILL.md +300 -298
- package/skills/bulwark-research/references/viewpoint-contrarian.md +63 -63
- package/skills/bulwark-research/references/viewpoint-direct-investigation.md +62 -62
- package/skills/bulwark-research/references/viewpoint-first-principles.md +65 -65
- package/skills/bulwark-research/references/viewpoint-practitioner.md +62 -62
- package/skills/bulwark-research/references/viewpoint-prior-art.md +66 -66
- package/skills/bulwark-scaffold/SKILL.md +483 -396
- package/skills/bulwark-statusline/SKILL.md +166 -161
- package/skills/bulwark-statusline/scripts/statusline.sh +1 -1
- package/skills/bulwark-verify/SKILL.md +532 -519
- package/skills/code-review/SKILL.md +488 -428
- package/skills/code-review/examples/anti-patterns/linting.ts +181 -181
- package/skills/code-review/examples/anti-patterns/security.ts +91 -91
- package/skills/code-review/examples/anti-patterns/standards.ts +195 -195
- package/skills/code-review/examples/anti-patterns/type-safety.ts +108 -108
- package/skills/code-review/examples/recommended/linting.ts +195 -195
- package/skills/code-review/examples/recommended/security.ts +154 -154
- package/skills/code-review/examples/recommended/standards.ts +231 -231
- package/skills/code-review/examples/recommended/type-safety.ts +181 -181
- package/skills/code-review/frameworks/angular.md +218 -218
- package/skills/code-review/frameworks/django.md +235 -235
- package/skills/code-review/frameworks/express.md +207 -207
- package/skills/code-review/frameworks/fastapi.md +326 -0
- package/skills/code-review/frameworks/flask.md +298 -298
- package/skills/code-review/frameworks/generic.md +146 -146
- package/skills/code-review/frameworks/react.md +152 -152
- package/skills/code-review/frameworks/vue.md +244 -244
- package/skills/code-review/references/linting-patterns.md +221 -221
- package/skills/code-review/references/security-patterns.md +125 -125
- package/skills/code-review/references/standards-patterns.md +246 -246
- package/skills/code-review/references/type-safety-patterns.md +130 -130
- package/skills/component-patterns/SKILL.md +133 -131
- package/skills/component-patterns/references/pattern-cli-command.md +118 -118
- package/skills/component-patterns/references/pattern-database.md +166 -166
- package/skills/component-patterns/references/pattern-external-api.md +139 -139
- package/skills/component-patterns/references/pattern-file-parser.md +168 -168
- package/skills/component-patterns/references/pattern-http-server.md +162 -162
- package/skills/component-patterns/references/pattern-process-spawner.md +133 -133
- package/skills/continuous-feedback/SKILL.md +329 -327
- package/skills/continuous-feedback/references/collect-instructions.md +81 -81
- package/skills/continuous-feedback/references/specialize-code-review.md +82 -82
- package/skills/continuous-feedback/references/specialize-general.md +98 -98
- package/skills/continuous-feedback/references/specialize-test-audit.md +81 -81
- package/skills/create-skill/SKILL.md +550 -359
- package/skills/create-skill/agents/skill-eval-comparator.md +158 -0
- package/skills/create-skill/agents/skill-eval-grader.md +168 -0
- package/skills/create-skill/references/agent-conventions.md +194 -194
- package/skills/create-skill/references/agent-template.md +195 -195
- package/skills/create-skill/references/content-guidance.md +541 -291
- package/skills/create-skill/references/decision-framework.md +232 -124
- package/skills/create-skill/references/eval-scaffolding.md +468 -0
- package/skills/create-skill/references/eval-shape.md +383 -0
- package/skills/create-skill/references/scripts-conventions.md +142 -0
- package/skills/create-skill/references/template-generator.md +183 -0
- package/skills/create-skill/references/template-inversion.md +269 -0
- package/skills/create-skill/references/template-pipeline.md +248 -217
- package/skills/create-skill/references/template-research.md +234 -210
- package/skills/create-skill/references/template-reviewer.md +231 -0
- package/skills/create-skill/references/template-script-driven.md +185 -172
- package/skills/create-skill/references/template-tool-wrapper.md +199 -0
- package/skills/create-skill/scripts/check-description.ts +238 -0
- package/skills/create-skill/scripts/check-skill-size.ts +201 -0
- package/skills/create-skill/scripts/grade.ts +855 -0
- package/skills/create-skill/scripts/run-loop.ts +297 -0
- package/skills/create-subagent/SKILL.md +355 -353
- package/skills/create-subagent/references/agent-conventions.md +268 -268
- package/skills/create-subagent/references/content-guidance.md +232 -232
- package/skills/create-subagent/references/decision-framework.md +134 -134
- package/skills/create-subagent/references/template-single-agent.md +194 -192
- package/skills/fix-bug/SKILL.md +243 -241
- package/skills/governance-protocol/SKILL.md +118 -116
- package/skills/init/SKILL.md +519 -437
- package/skills/init/references/update-askuser-prompts.md +198 -0
- package/skills/init/references/update-mode.md +305 -0
- package/skills/init/references/update-section-anchor-diff.md +163 -0
- package/skills/issue-debugging/SKILL.md +387 -385
- package/skills/issue-debugging/references/anti-patterns.md +245 -245
- package/skills/issue-debugging/references/debug-report-schema.md +227 -227
- package/skills/mock-detection/SKILL.md +528 -511
- package/skills/mock-detection/references/false-positive-prevention.md +402 -402
- package/skills/mock-detection/references/stub-patterns.md +236 -236
- package/skills/pipeline-templates/SKILL.md +262 -215
- package/skills/pipeline-templates/references/code-change-workflow.md +277 -277
- package/skills/pipeline-templates/references/code-review.md +348 -336
- package/skills/pipeline-templates/references/fix-validation.md +421 -421
- package/skills/pipeline-templates/references/new-feature.md +335 -335
- package/skills/pipeline-templates/references/research-brainstorm.md +161 -161
- package/skills/pipeline-templates/references/research-planning.md +257 -257
- package/skills/pipeline-templates/references/test-audit.md +389 -389
- package/skills/pipeline-templates/references/test-execution-fix.md +238 -238
- package/skills/plan-creation/SKILL.md +531 -497
- package/skills/plan-to-tasks/SKILL.md +151 -0
- package/skills/plan-to-tasks/references/askuserquestion-prompts.md +75 -0
- package/skills/plan-to-tasks/references/transform.md +253 -0
- package/skills/product-ideation/SKILL.md +2 -0
- package/skills/session-handoff/SKILL.md +167 -165
- package/skills/session-handoff/references/examples.md +223 -223
- package/skills/setup-lsp/SKILL.md +314 -312
- package/skills/setup-lsp/references/server-registry.md +85 -85
- package/skills/setup-lsp/references/troubleshooting.md +135 -135
- package/skills/spec-drift-check/SKILL.md +287 -0
- package/skills/spec-drift-check/evals/evals.json +33 -0
- package/skills/spec-drift-check/evals/triggers.json +19 -0
- package/skills/spec-drift-check/examples/clean-spec.md +52 -0
- package/skills/spec-drift-check/examples/expected-output-clean.yaml +96 -0
- package/skills/spec-drift-check/examples/expected-output-high-drift.yaml +78 -0
- package/skills/spec-drift-check/examples/expected-output-low-drift.yaml +67 -0
- package/skills/spec-drift-check/examples/high-drift-spec.md +49 -0
- package/skills/spec-drift-check/examples/low-drift-spec.md +39 -0
- package/skills/spec-drift-check/references/anti-patterns.md +65 -0
- package/skills/spec-drift-check/references/output-template.md +142 -0
- package/skills/spec-drift-check/references/step-1-claim-extraction.md +147 -0
- package/skills/spec-drift-check/references/step-2-verification-methods.md +203 -0
- package/skills/spec-drift-check/references/step-3-categorization.md +105 -0
- package/skills/spec-drift-check/references/step-4-plan-adjustment.md +122 -0
- package/skills/spec-drift-check/references/step-5-log-template.md +220 -0
- package/skills/spec-drift-check/references/step-6-decision-matrix.md +136 -0
- package/skills/subagent-output-templating/SKILL.md +417 -415
- package/skills/subagent-output-templating/references/examples.md +440 -440
- package/skills/subagent-prompting/SKILL.md +366 -364
- package/skills/subagent-prompting/references/examples.md +342 -342
- package/skills/test-audit/SKILL.md +545 -531
- package/skills/test-audit/references/known-limitations.md +41 -41
- package/skills/test-audit/references/priority-classification.md +30 -30
- package/skills/test-audit/references/prompts/deep-mode-detection.md +83 -83
- package/skills/test-audit/references/prompts/synthesis.md +58 -57
- package/skills/test-audit/references/rewrite-instructions.md +46 -46
- package/skills/test-audit/references/schemas/audit-output.yaml +131 -100
- package/skills/test-audit/references/schemas/diagnostic-output.yaml +56 -49
- package/skills/test-audit/references/two-gate-logic.md +43 -0
- package/skills/test-audit/scripts/data-flow-analyzer.ts +508 -508
- package/skills/test-audit/scripts/integration-mock-detector.ts +462 -462
- package/skills/test-audit/scripts/skip-detector.ts +211 -211
- package/skills/test-audit/scripts/verification-counter.ts +295 -295
- package/skills/test-classification/SKILL.md +326 -310
- package/skills/test-fixture-creation/SKILL.md +297 -295
- package/skills/create-skill/references/template-reference-heavy.md +0 -111
- package/skills/create-skill/references/template-simple.md +0 -80
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "the-bulwark",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Full-lifecycle SDLC guardrailing framework for Claude Code — from product ideation and planning through implementation, code review, and test validation. Enterprise-grade skills and agents for AI-human peer collaboration.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Ashay Kubal",
|
package/.gitattributes
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Line-ending policy for The Bulwark
|
|
2
|
+
#
|
|
3
|
+
# Authored S125 (P10.24) after empirical defect found in S124 stock-watcher
|
|
4
|
+
# init --update test: lib/templates/rules.md was CRLF (WSL+Windows checkout),
|
|
5
|
+
# apply-section.sh awk anchor match failed silently, full revert per Stage 9.
|
|
6
|
+
#
|
|
7
|
+
# Policy: LF on ALL text files. Git normalizes on commit; checkout produces LF
|
|
8
|
+
# even on Windows. Binary files auto-detected and unmodified by `* text=auto`.
|
|
9
|
+
|
|
10
|
+
# Default: auto-detect text vs binary; force LF on text files
|
|
11
|
+
* text=auto eol=lf
|
|
12
|
+
|
|
13
|
+
# Explicit per-extension rules (defense-in-depth; in case auto-detection
|
|
14
|
+
# misclassifies a file with unusual byte sequences as binary)
|
|
15
|
+
*.sh text eol=lf
|
|
16
|
+
*.bash text eol=lf
|
|
17
|
+
*.md text eol=lf
|
|
18
|
+
*.txt text eol=lf
|
|
19
|
+
*.yaml text eol=lf
|
|
20
|
+
*.yml text eol=lf
|
|
21
|
+
*.json text eol=lf
|
|
22
|
+
*.toml text eol=lf
|
|
23
|
+
*.ini text eol=lf
|
|
24
|
+
*.py text eol=lf
|
|
25
|
+
*.just text eol=lf
|
|
26
|
+
*.ts text eol=lf
|
|
27
|
+
*.tsx text eol=lf
|
|
28
|
+
*.js text eol=lf
|
|
29
|
+
*.jsx text eol=lf
|
|
30
|
+
*.mjs text eol=lf
|
|
31
|
+
*.cjs text eol=lf
|
|
32
|
+
*.rs text eol=lf
|
|
33
|
+
*.go text eol=lf
|
|
34
|
+
Justfile text eol=lf
|
|
35
|
+
LICENSE text eol=lf
|
|
36
|
+
.gitignore text eol=lf
|
|
37
|
+
.npmignore text eol=lf
|
|
38
|
+
|
|
39
|
+
# Explicit binary (in case auto-detection misclassifies)
|
|
40
|
+
*.png binary
|
|
41
|
+
*.jpg binary
|
|
42
|
+
*.jpeg binary
|
|
43
|
+
*.gif binary
|
|
44
|
+
*.ico binary
|
|
45
|
+
*.pdf binary
|
|
46
|
+
*.zip binary
|
|
47
|
+
*.tar binary
|
|
48
|
+
*.gz binary
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to **The Bulwark** plugin are documented here.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
Public repository: [QBall-Inc/the-bulwark](https://github.com/QBall-Inc/the-bulwark)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
No unreleased changes at this time.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## [1.2.1] - 2026-05-17
|
|
19
|
+
|
|
20
|
+
Hotfix for SessionStart and Stop hooks failing with `Permission denied` on
|
|
21
|
+
fresh v1.2.0 installs.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **Hook scripts shipped without executable bit** — three hooks
|
|
26
|
+
(`cleanup-review-registry.sh`, `check-template-drift.sh`,
|
|
27
|
+
`suggest-pipeline-stop.sh`) were stored in the v1.2.0 tree at mode `100644`
|
|
28
|
+
instead of `100755`, causing the Claude Code plugin runtime to fail with
|
|
29
|
+
`Permission denied` on direct execve. Five additional non-hook scripts shared
|
|
30
|
+
the same defect but were invoked via `bash <path>` wrappers and unaffected
|
|
31
|
+
at the user level. Root cause: the release sync workflow ran with
|
|
32
|
+
`core.fileMode = false` (inherited from the WSL/NTFS development repo via
|
|
33
|
+
worktree config sharing), causing `git add` to stage new `.sh` files at the
|
|
34
|
+
default mode `100644`. *(GitHub issue [#1](https://github.com/QBall-Inc/the-bulwark/issues/1))*
|
|
35
|
+
- **`sync-to-public.sh` mode preservation** — the publish script now scans
|
|
36
|
+
every tracked `.sh` file in the staging worktree and calls
|
|
37
|
+
`git update-index --chmod=+x` on each, bypassing `core.fileMode` entirely.
|
|
38
|
+
Idempotent and safe under any local git config.
|
|
39
|
+
|
|
40
|
+
### Upgrade notes
|
|
41
|
+
|
|
42
|
+
For users on a fresh v1.2.0 install affected by the hook failure, upgrading
|
|
43
|
+
to v1.2.1 via `/plugin update the-bulwark@qball-inc` (or a fresh install) will
|
|
44
|
+
restore correct hook execution. No project-level changes required.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## [1.2.0] - 2026-05-17
|
|
49
|
+
|
|
50
|
+
Hardening + observability bundle covering 13+ phases of post-launch reliability,
|
|
51
|
+
governance, and tooling enhancements built between v1.1.0 and v1.2.0.
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
|
|
55
|
+
- **`plan-to-tasks` skill** — transforms `plan-creation` output into CLEAR-compatible execution structure (`tasks.yaml` + `workpackages/`). Supports parent/child plan linkage. *(P10.5)*
|
|
56
|
+
- **`spec-drift-check` skill** — audits work package briefs, plan docs, and memory entries for drift against current code state. Extracts claims, verifies each, emits PROCEED/STOP verdict with a structured verification log. *(P10.18)*
|
|
57
|
+
- **`SD1` (Spec Drift) rule** in `Rules.md` — mandatory pre-WP drift check before any new or resumed implementation. *(P10.18, P10.20)*
|
|
58
|
+
- **`init --update` mode** — guided drift remediation for stale `CLAUDE.md` / `Rules.md` sections. Batched/tabbed `AskUserQuestion` UX for ≥4 drifting sections. Parent/child anchor handling. *(P10.20, P10.24, P10.25)*
|
|
59
|
+
- **`check-template-drift.sh` SessionStart hook** — detects when project's `CLAUDE.md` or `Rules.md` have drifted from canonical templates and surfaces them for review. *(P10.20)*
|
|
60
|
+
- **`cleanup-review-registry.sh` SessionStart hook** — wipes stale review-accumulator state at session start so pipeline gating works across sessions. *(P10.16)*
|
|
61
|
+
- **`.bulwark/init-marker.yaml`** — written on first `/the-bulwark:init` run; consumed by `check-template-drift.sh` to scope drift detection. *(P10.20)*
|
|
62
|
+
- **`install-bun.sh`** — platform-aware, idempotent bun runtime installer (preparation for the evaluation framework). *(P10.11)*
|
|
63
|
+
- **Justfile recipes for evaluation framework** — `install-bun`, `verify-bun`, `eval-skill`, `eval-grade`, `eval`. *(P10.14)*
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- **`Stop` hook (`suggest-pipeline-stop.sh`)** — re-architected with per-file registry, file-type-aware pipeline routing, log-pattern suppression, and post-fix grace period. Reduces false-positive pipeline suggestions on doc-only or test-only changes. *(P10.12, P10.15, P10.19, P10.22)*
|
|
68
|
+
- **`PostToolUse` matcher** widened from `Write|Edit` to `Write|Edit|MultiEdit` — quality enforcement now applies to all three mutation tools. *(P10.16)*
|
|
69
|
+
- **`enforce-quality.sh`** — defensive `jq` fallback for malformed stdin, symlink rejection on accumulator write, atomic registry writes. *(P10.16)*
|
|
70
|
+
- **`code-review` skill** — hook output schema validation, file-type-aware pipeline mapping, grace-window coverage aggregation. *(P10.10, P10.19, P10.22)*
|
|
71
|
+
- **`test-audit` skill** — schema migration, grace-window coverage. *(P10.10, P10.22)*
|
|
72
|
+
- **`plan-creation` and `bulwark-brainstorm`** — Agent Teams mode synthesis-gate fixes (CC-ALL, Work-Complete, Re-Entry gates). Resolves premature synthesis exit in dual-mode pipelines. *(P10.6)*
|
|
73
|
+
- **`anthropic-validator`** — `SKILL.md` refactored to ≤500 lines, per-asset-type detail pushed to `references/`. Added `when_to_use` frontmatter for clearer triggering. *(P10.13)*
|
|
74
|
+
- **`bulwark-statusline`** — uses `--no-optional-locks` to avoid `.git/index.lock` contention. *(P10.16)*
|
|
75
|
+
|
|
76
|
+
### Fixed
|
|
77
|
+
|
|
78
|
+
- **`init --update`: parent/child anchor duplicate** — when both a top-level (`## Section`) and a nested (`### Subsection`) anchor drifted, the child was applied twice (once at EOF via fallback, once nested under parent). Fix suppresses child drift entries when their canonical parent is also drifting; parent's section extraction naturally brings nested children along. *(P10.25, BUG-S11-APPLY-001)*
|
|
79
|
+
- **`init --update`: CRLF handling** — `apply-section.sh` now uses POSIX `sub(/\r$/, "")` for cross-platform CRLF stripping (gawk + mawk + BSD awk on macOS). Replaces `RS = "\r?\n"` which is gawk-only. *(P10.24)*
|
|
80
|
+
- **`init --update`: early-exit on FALLBACK** — `apply-section.sh` no longer crashes on predecessor-lookup failure; cleanly falls through to EOF append path. *(P10.24)*
|
|
81
|
+
- **`update.sh` and `check-template-drift.sh`: parallel CRLF risk** — same POSIX `sub(/\r$/, "")` pattern applied to all three scripts. *(P10.24)*
|
|
82
|
+
- **`scripts/update.sh`: flag-prefix anchors** — `grep -Fxq --` end-of-options separator + herestring conversion prevent flag-shaped anchor names (`-n`, `-e`, `-E` prefixes) from being misinterpreted as command flags. *(P10.25, CR-SYN-001)*
|
|
83
|
+
- **`bulwark-statusline`**: 3 anthropic-validator findings on frontmatter clarity. *(S119)*
|
|
84
|
+
|
|
85
|
+
### Security
|
|
86
|
+
|
|
87
|
+
- **Path validation hardening** in `suggest-pipeline-stop.sh` and `cleanup-review-registry.sh` — symlink rejection on registry write, file-size caps, atomic-write guarantee. *(P10.15 self-test, S116-S117)*
|
|
88
|
+
- **Environment variable validation** in registry-emitting hooks (`SEC-005`, `SEC-007`). *(P10.15)*
|
|
89
|
+
- **`grep`/`sed`/`awk` end-of-options separator (`--`)** for user-controlled values, defending against flag-prefix attack vectors. *(P10.25)*
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## [1.1.0] - 2026-04-21
|
|
94
|
+
|
|
95
|
+
P10.1 — Stop hook redesign + Justfile infrastructure rollout.
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
|
|
99
|
+
- **`--stage-only` flag** to `scripts/sync-to-public.sh` — stages the public asset set at `/tmp/bulwark-public-worktree` without committing or pushing, enabling local `claude --plugin-dir` testing before release.
|
|
100
|
+
- **Platform-aware `just` installer** (`scripts/install-just.sh`) invoked during `/the-bulwark:init`.
|
|
101
|
+
- **Toolchain smoke-run** (`scripts/toolchain-smoke-run.sh`) — verifies build/typecheck/lint recipes work end-to-end after init.
|
|
102
|
+
|
|
103
|
+
### Changed
|
|
104
|
+
|
|
105
|
+
- **Plugin manifest** (`.claude-plugin/plugin.json`) — adopted minimal schema; removed redundant `skills`/`agents`/`hooks` arrays now that Claude Code auto-discovers them. Resolves duplicate-hooks loading error reported by early users.
|
|
106
|
+
- **`Stop` hook output** — removed invalid `hookSpecificOutput` field that violated the Claude Code hook JSON schema. *(P10.10 root-cause-of-symptom)*
|
|
107
|
+
|
|
108
|
+
### Fixed
|
|
109
|
+
|
|
110
|
+
- **npm tarball size** reduced ~120x by adding `Infographics/` to `.npmignore`. Earlier `1.0.0` tarballs erroneously bundled high-resolution image assets.
|
|
111
|
+
- **`sync-to-public.sh` `--delete` bug** — `rsync -a --delete "$src" "$(dirname "$dest")/"` for top-level directories resolved to the worktree root and could wipe `.git`. Fixed with `mkdir -p "$dest"` + trailing-slash convention.
|
|
112
|
+
- **WSL symlink resolution** in `sync-to-public.sh` — `pwd -P` resolves symlinked working directories correctly.
|
|
113
|
+
- **`init` skill env-var reference** — `${CLAUDE_PLUGIN_ROOT}` (canonical) replaces `$CLAUDE_PLUGIN_DIR` (does not exist in Claude Code).
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## [1.0.1] - 2026-03-02
|
|
118
|
+
|
|
119
|
+
Same-day post-launch documentation polish.
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
|
|
123
|
+
- Rollout documentation updates (no behavioral changes).
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## [1.0.0] - 2026-03-02
|
|
128
|
+
|
|
129
|
+
Initial public release.
|
|
130
|
+
|
|
131
|
+
### Added
|
|
132
|
+
|
|
133
|
+
- **28 skills** spanning product/strategy, code quality, project setup, and meta orchestration.
|
|
134
|
+
- **15 single-purpose sub-agents** for fix validation, plan creation, product ideation, and statusline configuration.
|
|
135
|
+
- **6 hooks**:
|
|
136
|
+
- `enforce-quality.sh` (PostToolUse) — runs `just typecheck`, `just lint`, `just build` after every Write/Edit on code files.
|
|
137
|
+
- `inject-protocol.sh` (SessionStart) — injects governance protocol + `Rules.md` into every session.
|
|
138
|
+
- `cleanup-stale.sh` (SessionStart) — purges files older than 10 days from `logs/` and `tmp/`.
|
|
139
|
+
- `suggest-pipeline-stop.sh` (Stop) — surfaces relevant review/audit pipelines based on session activity.
|
|
140
|
+
- `track-pipeline-start.sh` (SubagentStart) / `track-pipeline-stop.sh` (SubagentStop) — pipeline observability.
|
|
141
|
+
- **`Rules.md` governance framework** — Coding Standards (CS1-CS4), Testing Rules (T1-T4), Verification Rules (V1-V4), Issue Debugging (ID1-ID3), Orchestrator Rules (OR1-OR3), Sub-Agent Rules (SA1-SA6), Skill Compliance Rules (SC1-SC3).
|
|
142
|
+
- **`/the-bulwark:init` skill** — guided project initialization with `CLAUDE.md` generation, `Rules.md` installation, and optional Justfile scaffolding, LSP setup, and statusline configuration.
|
|
143
|
+
- **Distribution channels**: npm (`@qball-inc/the-bulwark`) and plugin marketplace (`QBall-Inc/plugins-market`).
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
[Unreleased]: https://github.com/QBall-Inc/the-bulwark/compare/v1.2.0...HEAD
|
|
148
|
+
[1.2.0]: https://github.com/QBall-Inc/the-bulwark/compare/v1.1.0...v1.2.0
|
|
149
|
+
[1.1.0]: https://github.com/QBall-Inc/the-bulwark/compare/v1.0.1...v1.1.0
|
|
150
|
+
[1.0.1]: https://github.com/QBall-Inc/the-bulwark/compare/v1.0.0...v1.0.1
|
|
151
|
+
[1.0.0]: https://github.com/QBall-Inc/the-bulwark/releases/tag/v1.0.0
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Ashay Kubal
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ashay Kubal
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|