@qball-inc/the-bulwark 1.2.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "the-bulwark",
3
- "version": "1.2.0",
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/CHANGELOG.md CHANGED
@@ -15,6 +15,36 @@ No unreleased changes at this time.
15
15
 
16
16
  ---
17
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
+
18
48
  ## [1.2.0] - 2026-05-17
19
49
 
20
50
  Hardening + observability bundle covering 13+ phases of post-launch reliability,
package/README.md CHANGED
@@ -61,6 +61,18 @@ Without guardrails, you get:
61
61
 
62
62
  The Bulwark fixes this by making enforcement automatic. Hooks run quality checks after every write. Skills orchestrate multi-agent pipelines where each agent has a single focus. Rules are injected at session start and enforced throughout. You don't have to remember to ask Claude to run tests or check types. It just happens.
63
63
 
64
+ ## Recent additions
65
+
66
+ **v1.2.0** (2026-05-17) — Hardening + observability bundle
67
+
68
+ - **2 new skills**: [`plan-to-tasks`](docs/skills/plan-to-tasks.md) (transforms `plan-creation` output into CLEAR-compatible task structure), [`spec-drift-check`](docs/skills/spec-drift-check.md) (mandatory pre-WP claim verification with PROCEED/STOP verdict)
69
+ - **New `SD1` rule** + **`init --update` mode** for guided drift remediation when `CLAUDE.md` or `Rules.md` fall out of sync with canonical templates
70
+ - **3 new/redesigned hooks**: `check-template-drift` (SessionStart), `cleanup-review-registry` (SessionStart), file-type-aware `suggest-pipeline-stop` with post-fix grace period
71
+ - **`MultiEdit` now triggers quality enforcement** (previously only `Write` / `Edit`)
72
+ - Skill schema migration across 15+ assets for stricter validator compliance
73
+
74
+ Detail in the [v1.2.0 release notes](https://github.com/QBall-Inc/the-bulwark/releases/tag/v1.2.0) and full history in [CHANGELOG.md](CHANGELOG.md).
75
+
64
76
  ## Quick install
65
77
 
66
78
  Two ways to install. Pick whichever works for you.
@@ -206,7 +218,7 @@ All hooks use `${CLAUDE_PLUGIN_ROOT}` for path resolution, so they work regardle
206
218
 
207
219
  ## Skill registry
208
220
 
209
- The Bulwark ships 28 skills. Each one is invoked with `/the-bulwark:{skill-name}` or triggered automatically by hooks and pipelines. Skills are grouped by what they do.
221
+ The Bulwark ships 30 skills. Each one is invoked with `/the-bulwark:{skill-name}` or triggered automatically by hooks and pipelines. Skills are grouped by what they do.
210
222
 
211
223
  ### Product & strategy
212
224
 
@@ -384,13 +396,46 @@ You can't disable individual plugin hooks without modifying `hooks/hooks.json` i
384
396
 
385
397
  ---
386
398
 
399
+ ## What's new in v1.2.0
400
+
401
+ The first major post-launch bundle. v1.0.0 → v1.1.0 was a single hook redesign. v1.2.0 covers 13+ phases (P10.5 → P10.25) of hardening, observability, and workflow improvements that emerged from real-world dogfooding.
402
+
403
+ ### Spec drift enforcement
404
+
405
+ `Rules.md` was a single document users could quietly let fall behind canonical templates. The new `SD1` (Spec Drift) rule makes a pre-WP drift check mandatory: before any new or resumed implementation, the [`spec-drift-check`](docs/skills/spec-drift-check.md) skill extracts every claim from the brief — file paths, line numbers, function names, behavioral assertions — and verifies each against current code. It emits a structured PROCEED/STOP verdict with a per-claim log. STOP requires explicit user sign-off before implementation begins. This eliminates an entire class of failures where a brief said "modify function `foo` at line 142" but the function had moved or been renamed three sessions ago.
406
+
407
+ ### `init --update` mode for stale CLAUDE.md / Rules.md
408
+
409
+ A new SessionStart hook (`check-template-drift`) detects when your project's `CLAUDE.md` or `Rules.md` have drifted from the canonical templates and surfaces the diff for review. The new `/the-bulwark:init --update` flow walks you through accepting each drifting section, with batched/tabbed prompts when 4+ sections need review and full pre-flight visibility into what's about to change. Parent/child section anchors are handled correctly so nested sections never duplicate.
410
+
411
+ ### Plan → tasks workflow
412
+
413
+ [`plan-to-tasks`](docs/skills/plan-to-tasks.md) closes the gap between [`plan-creation`](docs/skills/plan-creation.md) output (markdown plan with phases and workpackages) and execution-ready task tracking. It transforms a `plan_v{N}.md` into a `tasks.yaml` workpackage index plus per-WP YAML files, with bidirectional parent/child plan linkage. Parallel Sonnet sub-agents do the per-WP transform.
414
+
415
+ ### Stop hook redesign
416
+
417
+ The `Stop` hook (`suggest-pipeline-stop`) is rebuilt around a per-file registry, file-type-aware pipeline routing (code vs test vs doc vs config), log-pattern suppression, and a post-fix grace period that prevents re-suggesting a pipeline immediately after a fix lands. False-positive pipeline suggestions on doc-only or test-only changes are gone.
418
+
419
+ ### Quality enforcement covers `MultiEdit`
420
+
421
+ The `PostToolUse` matcher previously caught only `Write` and `Edit`. v1.2.0 widens it to `Write|Edit|MultiEdit` so the same typecheck/lint/build gates apply to bulk edits — `MultiEdit` was a silent quality escape hatch.
422
+
423
+ ### Other notable improvements
424
+
425
+ - **Hook output schema validation** in `anthropic-validator` (catches hook output that violates Claude Code's hook contract before it ships)
426
+ - **`bun` runtime installer** (`scripts/install-bun.sh`) — platform-aware, idempotent, scaffolded into the Justfile templates for the upcoming evaluation framework
427
+ - **Statusline reliability**: `--no-optional-locks` flag avoids contention with concurrent git operations
428
+ - **Schema migration across 15+ assets** for stricter `anthropic-validator` compliance
429
+
430
+ ---
431
+
387
432
  ## Planned enhancements
388
433
 
389
434
  These are on the roadmap. No timeline commitments, but they represent the direction The Bulwark is heading.
390
435
 
391
436
  **Evaluation framework.** Skills and agents are the new code layer in agentic development. They need the same rigor as code: versioned, tested, measured. We're building two new skills — `create-eval` and `run-eval` — that generate and execute evaluations for any Claude Code asset. Define test prompts, expected outputs, and grading criteria. Run them across skill versions to catch regressions. Measure conversational invocation success, checklist compliance, and output quality with structured grading reports.
392
437
 
393
- **Asset baselines.** Once the eval skills exist, we'll baseline all 28 skills and 15 agents with versioned evaluations. Every asset gets a `version` field in its frontmatter and a set of evals that serve as regression references. Future changes get measured against these baselines automatically.
438
+ **Asset baselines.** Once the eval skills exist, we'll baseline all 30 skills and 15 agents with versioned evaluations. Every asset gets a `version` field in its frontmatter and a set of evals that serve as regression references. Future changes get measured against these baselines automatically.
394
439
 
395
440
  **Enterprise traceability.** Enhanced logging with version stamps (skill version, model, rules hash) in every sub-agent log header. Run manifests that tie together all artifacts from a pipeline execution into a single auditable record. Decision lineage: trace any output back to which model, skill version, and rules produced it.
396
441
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qball-inc/the-bulwark",
3
- "version": "1.2.0",
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
  "license": "MIT",
6
6
  "author": "Ashay Kubal <https://ashaykubal.com>",