PHASE-K7-MUSE-GIT-MIRROR-DOGFOOD.md markdown
456 lines 28.8 KB
Raw
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 11 hours ago

Phase K7 — Dogfood muse+git-mirror (Frozen Thinking Outline, K7a)

Status: Frozen dogfood design + footprint contract + parity gate + K7b seven-tier matrix. No Build in this step. No live muse bridge git-export on the overseer-kit development tree. No git push origin main. No staging push without Tier-3 authorization. No retirement of git-only as a first-class baseline. This document is the machine-checkable ground truth K7b implements mechanically against; it refines — and stays compatible with — docs/OVERSEER-KIT-SPEC.md §4 / §8, the regime capability tiers in docs/ROADMAP.md, AGENTS.md (planned → active flip notes), and the K4 footprint membership contract (docs/archive/phases/PHASE-K4-VENDORING-CLI-CONTRACT.md §K4.5). Live K6 consumer pilots remain separate operator work (docs/archive/phases/PHASE-K6-PILOT-INSTALL-MATRIX.md, docs/MIGRATE-EXISTING-REPO.md).

Freeze-contract declaration (§6.1 schema)

phase: K7a
outputs:
  - id: k7-muse-git-mirror-dogfood
    path: docs/archive/phases/PHASE-K7-MUSE-GIT-MIRROR-DOGFOOD.md
    frozen: true                     # K7b treats this as ground truth without re-deriving
frozen_inputs:
  - id: kit-spec-vcs-adapters
    path: docs/OVERSEER-KIT-SPEC.md#4
  - id: kit-spec-migration-path
    path: docs/OVERSEER-KIT-SPEC.md#8
  - id: kit-regime-capability-tiers
    path: docs/ROADMAP.md#regime-capability-tiers
  - id: kit-vendoring-cli-contract
    path: docs/archive/phases/PHASE-K4-VENDORING-CLI-CONTRACT.md
  - id: kit-agents-regime-notes
    path: AGENTS.md
  - id: kit-test-tiers
    path: policy/test-tiers.yaml

Downstream edge: K7b (Auto) → consumes k7-muse-git-mirror-dogfood as ground truth. Per §6, this is a mandatory reviewed freeze before K7b builds. Human escalation is required only if a finding hits security | irreversible | real_money | gates_tier3.

Review record (§6.2):

Round Reviewer Verdict Resolution
1 (2026-07-11) Independent Freeze-Step Reviewer (Cursor Grok 4.5 Thinking) findings (2 MAJOR + 3 MINOR) M1 S7↔S9 mirror publish underspecified; M2 default-sync new-destination cases underspecified; N1 §K7.1 Auto scope vs footprint-first; N2 deploy-script muse -C; N3 bash token quoting. Not cleared for K7b.
1-fix (2026-07-11) Author fix revision (M1 + M2 + N1–N3) M1: S7 cwd-safe muse -C + S13 publish mirror_branch only (no --no-push without that push; never main). M2: §K7.3.4 default-sync new-destination seed/conflict rows + integration cases. N1: §K7.1 config/AGENTS.md flip → operator slice. N2: folded into S7. N3: S11/S12 require double-quoted token expansions. Awaiting K7a-r2.
2 (2026-07-11) Independent Freeze-Step Reviewer (Cursor Grok 4.5 Thinking); different session from round 1; file+line citations pass Round-1 M1 + M2 + N1–N3 confirmed RESOLVED. Full regress §K7.0–§K7.10 vs SPEC §4/§8, ROADMAP regime tiers, PHASE-K4 §K4.5, AGENTS.md: no new contradictions; no K7b leak. Cleared for K7b. No human escalation.

Freeze-review findings ledger (K7a-r1)

ID Severity Status Where resolved
M1 MAJOR RESOLVED (r2 confirmed) §K7.3.3 S7 + S13; P10; unit/security matrix
M2 MAJOR RESOLVED (r2 confirmed) §K7.3.4 default-sync new-destination rows; §K7.8 integration
N1 MINOR RESOLVED (r2 confirmed) §K7.1 scope table (config/AGENTS.md → operator)
N2 MINOR RESOLVED (r2 confirmed) §K7.3.3 S7 muse -C
N3 MINOR RESOLVED (r2 confirmed) §K7.3.3 S11/S12 quoted expansions; §K7.9

Simple summary (no jargon)

The kit already supports Muse-as-canonical with a GitHub mirror, but this repo still runs on plain GitHub. K7 freezes how we flip this kit repo itself to that Muse+mirror setup, what extra files the installer ships for that setup (a bridge workflow doc + a safe deploy script), what “good enough” looks like before we claim the flip worked, and how we prove GitHub-only users still get every core feature. No live Muse export on the working tree in this outline.

Technical summary

K7a freezes: (1) ordered dogfood steps for flipping overseer-kit from git-only to muse+git-mirror; (2) additive, regime-conditional footprint membership — templates/MUSE-BRIDGE-WORKFLOW.template.md → root MUSE-BRIDGE-WORKFLOW.md and a tokenized muse-bridge-deploy.shscripts/muse-bridge-deploy.sh, vendored only when vcs.regime == muse+git-mirror; (3) a kit self-install parity gate (K7.P1–K7.P10) plus operator-gated live bridge evidence; (4) the explicit no MuseHub-only core capability guardrail with concrete K7b checks; (5) the K7b seven-tier test matrix. Deploy-script contract is S1–S13 (cwd-safe muse -C, quoted tokens, publish mirror_branch only). Live Muse init, first bridge export, and staging push remain operator-gated after green fixture tests — never part of Auto Build’s definition of green. Auto is footprint-first: kit stays git-only until operator L1.

Recommendation: after K7a-r2 → pass, run K7b Auto for footprint + resolver + tests + runbook on a feature branch (config stays git-only); keep the first live Muse bind / bridge of overseer-kit as a separate operator session against the parity checklist.


§K7.0 — Hard stops (frozen)

Hard stop Rationale
No Build / no code changes in K7a Thinking freeze only
Never muse bridge git-export --git-dir . on the overseer-kit (or any) dev tree Destructive delete-and-replace; deletes ignored files (.env.local, etc.) — SD-14 / AGENTS.md
Bridge target is always isolated .muse/mirror/ (or config-equivalent under that rule) Same failure mode as Knowtation/Scooling
No git push origin main SD-14; mirror via muse-mirror PR only
No staging push / main merge / live gate flip without Tier-3 operator authorization Spec §9; kit never automates Tier 3
No claim that K6 live consumer pilots are PASS Separate operator runbook
No core governance capability becomes MuseHub-only Regime capability tiers (ROADMAP); §K7.5
K7b fixture tests must not invoke live Muse against the real overseer-kit working tree Injected runners / tmp fixtures only

§K7.1 — Scope split (K7a vs K7b vs operator)

Slice Owner In scope Out of scope
K7a (this doc) Thinking Freeze WHAT/HOW; update ROADMAP + handover Any Build; any live Muse command on this tree
K7b (Auto) Auto against this freeze Footprint templates + regime-conditional resolver; token registry if needed; seven-tier tests on fixtures; operator runbook for kit self-flip (docs/K7-DOGFOOD-OPERATOR-RUNBOOK.md). Footprint-first: do not flip overseer-kit .overseer/config.yaml or AGENTS.md off git-only / “planned” in this Auto slice (§K7.7) Live Muse bind; live bridge export; staging push; merging muse-mirrormain; kit config/AGENTS.md regime flip
Operator live dogfood Human after K7b green + freeze-review pass Muse init/bind (D2); config flip to §K7.2.3 + AGENTS.md active-regime language (D3–D4); first safe bridge via vendored script (L1); PR merge Tier-3 (L2) Redesign of adapter interface

K6 live pilots (Scooling → Knowtation → MuseHub → VideoFactory) stay on docs/MIGRATE-EXISTING-REPO.md. K7 does not re-run those inits. When K7b lands bridge assets, later consumer sync may pick them up under K4/K6 sync rules (§K7.3.4).


§K7.2 — Dogfood steps (frozen order)

Operator sequence for flipping this repo (overseer-kit) after K7b ships the footprint assets. Each step is Tier-1 feature-branch work unless marked Tier-3.

K7.2.1 — Prerequisites (operator)

# Prerequisite Evidence
1 muse CLI on PATH muse --version
2 gh authenticated gh auth status
3 Git remote origin → GitHub overseer-kit git remote -v
4 Muse staging remote provisioned for this repo (or explicit operator decision to defer staging push while local Muse works) .muse/config.toml / Muse hub repo exists
5 Permanent GitHub branch muse-mirror exists or may be created by the first safe bridge gh api / remote branch list — not by exporting onto .
6 K7b merged (or available on the feature branch under test): bridge template + deploy script in kit sources; resolver regime gate live status --check-footprint after config flip

K7.2.2 — Ordered flip steps

Step Action Writes? Tier
D1 Confirm clean git working tree; do not run any muse bridge git-export yet No
D2 Initialize / bind Muse for overseer-kit (operator Muse setup; cwd-safe muse -C <abs-root>) Muse metadata under .muse/ (local) 1 / local
D3 Flip .overseer/config.yaml to the frozen self-install matrix (§K7.2.3) Yes (config) 1
D4 Update AGENTS.md: regime active muse+git-mirror; keep SD-14 rules; remove “planned / not yet active” language Yes 1
D5 overseer sync (or init --migrate if treating as migrate) so regime-conditional footprint adds MUSE-BRIDGE-WORKFLOW.md + scripts/muse-bridge-deploy.sh Yes (footprint) 1
D6 Run parity gate K7.P1–K7.P10 (§K7.4) on fixtures + read-only adapter probes Read / dry-run
D7 First live bridge only via ./scripts/muse-bridge-deploy.sh "mirror: …" → isolated .muse/mirror/ → push muse-mirror → open/update PR to main Mirror checkout + remote muse-mirror 1 for branch push; Tier-3 for merge to main
D8 After merge: day-to-day = muse commit on feature branches; never git push origin main; mirror only via deploy script Muse + mirror PR 1 / 3

K7.2.3 — Overseer-kit self-install config matrix (frozen)

Target .overseer/config.yaml after the flip (names/booleans only; no secrets):

overseer_config_version: 1

repo:
  name: overseer-kit
  root_relative_docs: docs

vcs:
  regime: muse+git-mirror
  canonical: muse
  git:
    remote: origin
    main_branch: main
    mirror_branch: muse-mirror
    feature_branch_pattern: "feat/{slug}"
  muse:
    staging_remote: staging
    main_branch: main
    working_dir: null          # install root == Muse root

docs:
  handover: OVERSEER-HANDOVER.md
  roadmap: ROADMAP.md
  coordination: null           # kit keeps SD/ADR pointers in ROADMAP today; no CROSS-REPO doc
  standing_decisions: ROADMAP.md

thresholds:
  realign_max_commits: 50
  drift_warn_only: true

freeze_contract:
  enabled: true
  reviewer: agent
  human_escalation:
    - security
    - irreversible
    - real_money
    - gates_tier3

Frozen notes:

  • docs.coordination: null is intentional for overseer-kit (matches current dogfood; coordination template stays skipped per §K4.5).
  • working_dir: null — Muse root is the install root (unlike MuseHub’s nested working_dir).
  • staging_remote: staging satisfies regime validation; if staging is not yet operational, the operator may skip muse push staging (Scooling precedent) but must not invent a fake remote in config — config names the intended remote; push deferral is operational, not a schema lie.

K7.2.4 — Day-to-day rules after flip (frozen; mirrors AGENTS.md / SD-14)

  1. Canonical history = MuseHub; GitHub main is the mirror merge target only.
  2. Feature work: muse commit on a feature branch; never commit governance via unprotected git push origin main.
  3. Publish to GitHub: ./scripts/muse-bridge-deploy.sh "mirror: <summary>" only.
  4. Permanent branch muse-mirror; do not delete; do not hand-edit as a substitute for Muse.
  5. Never muse bridge git-export --git-dir . (or any path equal to the development checkout).

§K7.3 — Footprint additions (frozen)

K7.3.1 — Additive membership (regime-conditional)

Extends §K4.5. New rows apply if and only if config.vcs.regime == "muse+git-mirror". For git-only and muse-only, these sources are not resolved, not written, and not entered in version.lock.

Kit source Consumer destination Rendering Regime
templates/MUSE-BRIDGE-WORKFLOW.template.md MUSE-BRIDGE-WORKFLOW.md (repo root, not under docs/) token-substituted muse+git-mirror only
templates/scripts/muse-bridge-deploy.sh.template scripts/muse-bridge-deploy.sh token-substituted; file mode executable (0755) on write muse+git-mirror only

Destination uniqueness: both paths are fixed and must not collide with any other footprint destination. Root MUSE-BRIDGE-WORKFLOW.md matches Scooling/Knowtation convention.

Not living docs: these paths are not members of living_doc_destinations (handover / roadmap / coordination). They follow ordinary shared-asset sync classification (K4/K6), not origin: preserved living-doc rules.

K7.3.2 — Template content contract (WHAT must appear)

MUSE-BRIDGE-WORKFLOW.template.md MUST encode, after token substitution:

Clause Required content
Plain + technical summary Muse canonical; GitHub via isolated mirror checkout
Flow diagram Muse {{vcs.muse.main_branch}} → deploy script → .muse/mirror/{{vcs.git.remote}}/{{vcs.git.mirror_branch}} → PR → {{vcs.git.main_branch}}
Hard rule Never muse bridge git-export --git-dir .
Hard rule Never git push {{vcs.git.remote}} {{vcs.git.main_branch}}
Hard rule {{vcs.git.mirror_branch}} is permanent
Day-to-day Feature work in Muse; bridge from Muse main after merge
Pointer Run ./scripts/muse-bridge-deploy.sh

Tokens used MUST be members of ALLOWED_TOKENS / templates/tokens.yaml. Prefer existing keys: repo.name, vcs.regime, vcs.git.remote, vcs.git.main_branch, vcs.git.mirror_branch, vcs.muse.main_branch, vcs.muse.staging_remote. No new token keys unless a freeze-review finding proves an existing key cannot express a required clause — then add to ALLOWED_TOKENS + tokens.yaml + build_token_map together (single additive change).

K7.3.3 — Deploy script contract (tokenized safety invariants)

templates/scripts/muse-bridge-deploy.sh.template MUST implement, after substitution:

Invariant Behavior
S1 set -euo pipefail
S2 Resolve REPO_ROOT; default MIRROR_DIR=.muse/mirror (overridable via env, e.g. MUSE_BRIDGE_MIRROR_DIR)
S3 Refuse if resolved mirror dir equals REPO_ROOT (blocks --git-dir .)
S4 Provision / update isolated git checkout at mirror dir on {{vcs.git.mirror_branch}} from {{vcs.git.remote}}
S5 Before export: create non-secret sentinel(s) under REPO_ROOT; after export: fail if sentinel missing
S6 If .env / .env.local existed pre-export, fail if either disappeared
S7 Invoke Muse cwd-safe: muse -C <absolute Muse root> (install root when vcs.muse.working_dir is null; else install root / working_dir) then bridge git-export with --git-dir = absolute mirror path only; --git-branch {{vcs.git.mirror_branch}}; --git-remote {{vcs.git.remote}} (or equivalent); --exclude at least .muse/*, .env, .env.local. Must not pass --no-push unless S13 is satisfied by a later explicit push of only {{vcs.git.mirror_branch}}.
S8 Never push {{vcs.git.main_branch}} on {{vcs.git.remote}}
S9 After S13 succeeds: open or update GitHub PR {{vcs.git.mirror_branch}}{{vcs.git.main_branch}} via gh when available; warn + exit 0 if gh missing
S10 Stack audit is optional: if no package.json, skip pnpm audit (overseer-kit is Python). Do not hard-require Node.
S11 No secrets, tokens, absolute operator home paths, or hardcoded SHAs in the template. Every substituted {{…}} token that expands into a shell word MUST appear inside double quotes (or an equivalent safe expansion) so config values cannot break out of the script.
S12 Shebang #!/usr/bin/env bash; substituted output remains valid bash; S11 quoting preserved after substitution
S13 Publish mirror branch: after a successful export, {{vcs.git.mirror_branch}} must exist on {{vcs.git.remote}} — either because muse bridge git-export pushed it (default Muse behavior when --git-remote is set and --no-push is absent) or via an explicit git -C <mirror> push {{vcs.git.remote}} {{vcs.git.mirror_branch}} (or equivalent). Never push {{vcs.git.main_branch}}. Local-only export without this publish step is a contract failure.

Product-specific Scooling/Knowtation extras (Netlify, Knowtation config/local.yaml / data/ sentinels, forced pnpm audit fail) are not required in the kit baseline. Consumers may hand-extend after vendoring; kit sync treats divergent scripts as shared-asset conflicts unless --force.

K7.3.4 — Resolver + migrate/sync composition

Case Behavior
resolve_footprint + muse+git-mirror Include both new files (sorted with existing destinations)
resolve_footprint + git-only | muse-only Omit both; digest/lock unchanged vs pre-K7 for those regimes aside from unrelated kit changes
Greenfield init muse+git-mirror Write both; lock origin: kit
init --migrate where root workflow / script already exist and bytes differ Standard shared-asset conflict → refuse without --force (preserves Scooling/Knowtation hand-tuned scripts)
init --migrate identical bytes unchanged; lock origin: kit
Default sync (paths already in lock) Update when kit template changed and on-disk matches last lock baseline; refuse consumer edits without --force (shared-asset / K4.3 / K6 rules)
Default syncnew destination not in lock, absent on disk Classify missingrestore/seed write; lock origin: kit (overseer-kit dogfood D5 path)
Default syncnew destination not in lock, present on disk Classify both-changed (no baseline) → shared-asset conflict refuse exit 4 without --force (preserves existing Scooling/Knowtation bridge files)
Overseer-kit dogfood (files absent today) First sync/init after regime flip seeds both files via the new-destination-absent rule above

K7.3.5 — templates/tokens.yaml registry

Add the new template paths under templates::

  • MUSE-BRIDGE-WORKFLOW.template.md
  • scripts/muse-bridge-deploy.sh.template (path relative to templates/)

No change to the living-doc token set unless §K7.3.2 forces an additive token (reviewer-gated).


§K7.4 — Parity gate (kit self-install)

Parity is proven before claiming overseer-kit dogfood DONE. Fixture-automated checks (K7b tests) cover P1–P3 (static/config/footprint) and P9–P10 always; P4–P8 use injected runners on tmp fixtures. Live P4–P8 against the real tree are operator evidence recorded in the handover change log — not required for K7b Auto to merge footprint code.

K7.4.1 — Universal kit parity (K7.P1–K7.P10)

ID Criterion Evidence
K7.P1 Config matches §K7.2.3 regime matrix (muse+git-mirror, canonical: muse, required muse/git fields, mirror_branch: muse-mirror) Load .overseer/config.yaml; SUPPORTED_REGIMES validate
K7.P2 Footprint includes root MUSE-BRIDGE-WORKFLOW.md + scripts/muse-bridge-deploy.sh; status --check-footprint OK for kit-only digest Lock manifest + check
K7.P3 AGENTS.md states active muse+git-mirror + SD-14 (no “planned / not yet active”) File content
K7.P4 adapter.status() succeeds; notes include canonical=muse and SD-14 reminder Injected or live status
K7.P5 read_canonical_anchor() succeeds (.muse/git-bridge.toml and/or origin/muse-mirror) Adapter result
K7.P6 realign(dry_run=true) reachable; does not apply; respects realign_max_commits Adapter result applied: false
K7.P7 mirror(dry_run=true) returns diff summary; mirror(dry_run=false) does not push (operator-authorization-required or equivalent) Adapter result pushed: false
K7.P8 governance-sync --dry-run exit 0; zero additional writes Tree unchanged across invocation
K7.P9 Guardrail: git-only fixture still gets full init / sync / status / review --freeze / governance-sync --dry-run with no Muse invocation and without bridge footprint files Seven-tier + least-privilege tests
K7.P10 Deploy script (rendered) contains S3 refuse-root, S5 sentinel, S7 isolated --git-dir + muse -C, S8 no push main, S11/S12 quoted token expansions, S13 publish-mirror_branch (no local-only --no-push without later mirror push) Static unit assertions on rendered bytes — no live export

K7.4.2 — Operator live evidence (not Auto-green)

ID Criterion Notes
K7.L1 First successful ./scripts/muse-bridge-deploy.sh against overseer-kit using .muse/mirror/ only After K7b; Tier-1 remote muse-mirror
K7.L2 PR muse-mirrormain opened; merge only under Tier-3 Never force-push main

K7b marks code DONE when seven-tier tests green and governance docs updated. Kit dogfood operational DONE additionally requires K7.L1 (and K7.L2 when publishing). Handover must not conflate the two.


§K7.5 — Guardrail: no MuseHub-only core capability (frozen)

Restates and operationalizes the ROADMAP regime capability tiers for K7b:

Capability Must work on git-only after K7b Muse deepening only
init / sync / status / drift / footprint digest Yes
Governance docs + freeze review + governance-sync Yes
realign No-op (single-history) Active import path
mirror No-op Active SD-14 path + vendored script
Bridge workflow + deploy script in footprint Absent (not required) Present for muse+git-mirror only
Provenance / Muse version enrichment N/A Optional future; not a baseline gate

K7b concrete checks (frozen):

  1. No new CLI flag or subcommand that errors on git-only solely because Muse is missing, unless the command is explicitly Muse-deepening (realign apply / mirror apply) and already documented as no-op/report on git-only.
  2. Bridge files MUST NOT appear in git-only or muse-only footprints (P9).
  3. docs/GIT-ONLY-QUICKSTART.md remains valid; update only to point at K7 dogfood as optional Muse depth — never as a requirement for kit use.
  4. muse-only continues to report git/mirror forbidden; K7 does not weaken that least-privilege.

§K7.6 — Adapter / CLI surface (compose, do not fork)

K7b does not redesign §4. It consumes existing MuseGitMirrorAdapter behavior:

Method K7 expectation
status Already returns canonical=muse + SD-14 note
read_canonical_anchor Bridge toml / mirror ref
realign Dry-run first; git-import --incremental; max_commits guard
mirror Dry-run reports; non-dry-run stops for operator authorization (script is the operator path)
commit_feature Muse feature branches only

CLI footprint resolver (cli/footprint.py) gains the regime-conditional rows in §K7.3.1. Init/sync write path must set executable bit on scripts/muse-bridge-deploy.sh.


§K7.7 — K7b deliverables checklist

# Deliverable
1 templates/MUSE-BRIDGE-WORKFLOW.template.md per §K7.3.2
2 templates/scripts/muse-bridge-deploy.sh.template per §K7.3.3
3 resolve_footprint regime gate + executable mode on script write
4 templates/tokens.yaml lists new templates; token fail-closed preserved
5 Fixture config(s) for muse+git-mirror assert new destinations; git-only/muse-only assert absence
6 Committed dogfood doc updates deferred to operator: AGENTS.md active-regime section + .overseer/config.yaml flip land only in the operator dogfood PR (D3–D4), not in K7b Auto. Auto must not claim Muse canonical while config remains git-only
7 docs/K7-DOGFOOD-OPERATOR-RUNBOOK.md — operator steps D1–D8 + L1–L2 (no live execution in Auto)
8 Seven-tier tests green (§K7.8)
9 ROADMAP + OVERSEER-HANDOVER updated together

Sequencing note (frozen): K7b may land footprint + tests before the operator flips live config. If the PR includes the config/AGENTS.md flip, that flip must be accompanied by operator acknowledgment that Muse bind (D2) is done or immediately follows — otherwise land footprint first, flip config in a follow-up operator PR. Prefer footprint-first in Auto so CI/fixtures stay honest: kit repo can remain git-only until L1 path is ready, while still shipping the assets consumers need.

Frozen Auto default: K7b Auto ships assets + tests + runbook; leaves overseer-kit .overseer/config.yaml as git-only until operator dogfood session. AGENTS.md keeps “planned” until the operator flip PR. Handover records which sub-slice landed.


§K7.8 — Seven-tier test matrix (K7b)

Tier Focus Required cases
unit Footprint resolver; templating; script safety strings; argparse unchanged muse+git-mirror footprint includes both new destinations; git-only and muse-only omit them; token render of workflow + script uses only ALLOWED_TOKENS; rendered script matches S3/S5/S7 (muse -C + isolated --git-dir)/S8/S11–S13 assertions; unknown token → ConfigError; executable bit set on script write helper; config matrix §K7.2.3 loads
integration init/sync/status compose muse+git-mirror fixture init writes workflow + script + lock entries; git-only fixture init has neither path; status --check-footprint OK; sync no-op at same version; migrate conflict when pre-existing differing script without --force; default sync seeds new bridge destinations when absent from lock+disk; default sync conflicts (exit 4) when new bridge destinations exist on disk but not in lock, without --force
e2e Fixture dogfood cycle tmp muse+git-mirror tree: init → status → governance-sync --dry-run (injected runner) → footprint check; no live Muse; second sync no-op
stress Large rendered workflow + many policy/cursor files Footprint resolve + digest remain bounded with bridge files present
data-integrity Idempotency + digest Run-twice init identical lock digest; mid-write failure does not advance lock; kit-only digest includes bridge files when regime muse+git-mirror; omitting regime excludes them
performance status --check-footprint Completes within existing pilot bound with bridge files in footprint
security Least privilege + no leak + no live export git-only path invokes no muse; muse-only still forbids git mirror push; rendered script/templates contain no secrets/absolute homes/hardcoded SHAs; every shell-expanded token in the deploy script is double-quoted (S11); tests never call live git-export on workspace root; path confinement for script destination under install root

Explicit non-tests for K7b Auto: live Muse bind of overseer-kit; live bridge export; staging push; GitHub main merge.


§K7.9 — Security checklist (phase-specific)

  • Fail-closed reads unchanged (§4 / §9).
  • Deploy script refuses repo-root export (S3) — primary injection/destruction defense.
  • Sentinels prove export did not touch the dev tree (S5/S6).
  • Templates: fixed token set only; no shell interpolation of doc bodies.
  • Deploy script: every substituted token in a shell word is double-quoted (S11/S12); Muse invoked via muse -C (S7).
  • Mirror publish targets only {{vcs.git.mirror_branch}} (S13); never main (S8).
  • No credentials in config, templates, lock, or test fixtures.
  • Tier-3 surfaces (main merge, staging push) remain human-gated; adapter mirror(dry_run=false) does not push.

§K7.10 — Out of scope (explicit)

  • Redesigning VCS adapter method signatures
  • Making realign / mirror available as baseline requirements on git-only
  • Live K6 consumer inits or gate flips
  • Publishing the kit as a MuseHub-only product
  • Automating Tier-3 merges
  • Copying Scooling product runtime or Knowtation vault paths into the kit
  • Running muse bridge git-export --git-dir . “just to see”

Cross-references

  • docs/OVERSEER-KIT-SPEC.md §4 (adapters), §8 (migration), §9 (security)
  • docs/ROADMAP.md — regime capability tiers; K7a/K7b rows
  • docs/archive/phases/PHASE-K4-VENDORING-CLI-CONTRACT.md §K4.5 — footprint membership composition
  • docs/archive/phases/PHASE-K6-PILOT-INSTALL-MATRIX.md — consumer pilots (separate)
  • docs/GIT-ONLY-QUICKSTART.md — baseline promise K7 must not break
  • AGENTS.md — SD-14 / planned regime notes
  • Scooling / Knowtation root MUSE-BRIDGE-WORKFLOW.md + scripts/muse-bridge-deploy.sh — reference implementations (not vendored verbatim; kit ships tokenized baseline)
File History 1 commit
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 11 hours ago