Skip to content

feat: sync the kit — deploy promotion, dependency position, fleet telemetry (1.1.0) - #28

Merged
MCKRUZ merged 2 commits into
masterfrom
feat/sync-kit-deploy-dependency-telemetry
Aug 1, 2026
Merged

feat: sync the kit — deploy promotion, dependency position, fleet telemetry (1.1.0)#28
MCKRUZ merged 2 commits into
masterfrom
feat/sync-kit-deploy-dependency-telemetry

Conversation

@MCKRUZ

@MCKRUZ MCKRUZ commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Regenerates harness/ from delivery-standard/kit (138 files, verified in sync) and wires the new files into the installer.

Pairs with MCKRUZ/intent-driven-development#39, #40, #41merge those first; this ships their payload.

What the installer needed, and why syncing in the same batch mattered

The test suite found three things the standard's own repo cannot see. This is the argument for not deferring the sync:

  1. Five new payload files installed nowhere. test_payload_completeness caught all five. The three closing-phase skeletons map to their final names (ROLLBACK.md, ALERTS.md, INCIDENT-PLAYBOOK.md) rather than a templates directory — unlike specs and spikes there is exactly one of each per repo, the same reasoning that puts CLAUDE.md.template at CLAUDE.md.

  2. Adding those mappings then failed 53 tests, correctly. The installer fails closed on any FILE_MAP source missing from the payload, and the synthetic fixture had not grown with the map. The fixture was wrong, not the invariant — so the fixture grew.

  3. The golden enterprise-tree snapshot gained exactly nine entries. That is the useful artifact here: proof that a real install now produces the promotion workflow, the dependency gate's scan and ledger, the telemetry report and schema, dependabot, and the three skeletons.

+.github/dependabot.yml
+.github/dependency-exceptions.md
+.github/rails-telemetry.schema.json
+.github/workflows/dependency-scan.yml
+.github/workflows/deploy-promote.yml
+.github/workflows/rails-telemetry.yml
+ALERTS.md
+INCIDENT-PLAYBOOK.md
+ROLLBACK.md

Version: minor, and the judgement is worth stating

dependency-gate is a new blocking required check, which by this project's own convention reads as breaking. I went 1.1.0 because nothing changes in an installed repo until an operator runs /sdlc-upgrade and re-applies branch protection — both deliberate, scripted actions. The migration note leads with that rather than burying it.

Say so if you'd rather this were 2.0.0 — it is a defensible read and easy to change before merge.

Test plan

  • uv run --project scripts python -m pytest scripts/tests -q532 passed, 6 skipped, identical to the pre-sync baseline
  • python scripts/sync_kit.py --check — in sync, 138 files
  • harness/ is generated; no file in it was hand-edited

🤖 Generated with Claude Code

…emetry (1.1.0)

Regenerates harness/ from delivery-standard/kit (138 files, verified in sync) and wires
the new files into the installer. Three additions land together: the second half of the
deploy rail, the standard's first position on third-party components, and fleet-level
visibility of gate outcomes. Full rationale in the CHANGELOG and in the kit's own commits.

The installer needed real changes, and the test suite is what found them — which is the
argument for syncing in the same batch rather than deferring it:

  - Five new payload files installed nowhere. test_payload_completeness caught all five.
    The three closing-phase skeletons map to their FINAL names (ROLLBACK.md, ALERTS.md,
    INCIDENT-PLAYBOOK.md) rather than to a templates directory, because unlike specs and
    spikes there is exactly one of each per repo — the same reasoning that puts
    CLAUDE.md.template at CLAUDE.md.
  - Adding those mappings then failed 53 tests, correctly: the installer fails closed on
    any FILE_MAP source missing from the payload, and the synthetic fixture had not grown
    with the map. The fixture is the thing that was wrong, not the invariant.
  - The golden enterprise-tree snapshot gained exactly nine entries, which is the useful
    artifact here: it is the proof that a real install now produces the promotion workflow,
    the dependency gate's scan and ledger, the telemetry report and schema, dependabot,
    and the three skeletons.

Version is MINOR, not major, and the judgement is worth stating: `dependency-gate` is a
new blocking required check, which by this project's own convention reads as breaking.
But nothing changes in an installed repo until an operator runs /sdlc-upgrade AND
re-applies branch protection — both deliberate, scripted actions. The migration note
leads with that rather than burying it.

532 passed, 6 skipped — the same as before the sync.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MCKRUZ

MCKRUZ commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

Version confirmed: 1.1.0 stands. Matt's call, 2026-08-01.

Rationale on record: dependency-gate is a new blocking required check, but nothing changes in an installed repo until someone runs /sdlc-upgrade and re-applies branch protection — two deliberate acts. Minor is the honest signal.

MCKRUZ added a commit that referenced this pull request Aug 1, 2026
Confirmed by Matt. A patch release rather than folding into 1.1.0: every
change in the stack is corrective, reconciling prose with what 1.0.0
already made the gates enforce.

Nothing becomes stricter. One requirement is removed — Phase 1 no longer
blocks on decision-list.md, a file nothing ever produced — so no passing
gate regresses. The receipts that already blocked still block; the plugin
now tells you what to write and ships templates.

Bumps plugin.json and marketplace.json, which both carry the version.

This releases from 1.0.0 and must land BEFORE the 1.1.0 kit sync (#28),
which is based on the same 1.0.0 tree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FEA6GZUG9NKNQYrJKyDGdb
@MCKRUZ

MCKRUZ commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

Merge-order note: the #29#36 fix stack (#37#38#39#40) now ships as 1.0.1, bumped from the same 1.0.0 tree this PR is based on.

Please merge that stack before this one. Landing 1.1.0 first would make the 1.0.1 bump a version regression, and plugin.json / marketplace.json / CHANGELOG.md would need hand-reconciling.

Merged in the right order, this PR takes a trivial conflict on those three files: keep 1.1.0 for the version, and keep both changelog sections with ## 1.1.0 above ## 1.0.1.

The 1.0.1 corrective stack (#37-#40) landed on master first, so this branch
takes its version and changelog. Resolution: 1.1.0 is the shipped version and
supersedes 1.0.1; both changelog sections are kept, newest first.

Two corrections made while resolving:

- marketplace.json auto-merged to 1.0.1 because this branch bumped plugin.json
  and never touched the marketplace manifest. Both now read 1.1.0; shipping
  them disagreeing is how a marketplace serves a stale version.
- 1.1.0 was dated 2026-07-31, the day the branch was cut. It ships today, so
  it carries today's date rather than sitting above 1.0.1 with an earlier one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FEA6GZUG9NKNQYrJKyDGdb
@MCKRUZ
MCKRUZ merged commit da9e874 into master Aug 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant