- vis-missing failure mode now fails loud. Per s2.0 recommendation (lifecycle-research arc). Cloning a sibling plugin into a fresh directory without
visalongside used to leave@-importssilently missing (Claude Code's@-loader fails soft). Now:scripts/bootstrap.shauto-clonesvisfromENCHANTER_VIS_REPO(default: github.com/enchanter-ai/vis) if not alongside.scripts/hooks/sessionstart-vis-drift.shfires on every Claude Code session start; exits non-zero with"vis sibling missing — run ./scripts/bootstrap.sh"if absent..github/workflows/vis-verify.ymlruns./scripts/bootstrap.sh --verifyon every push to main; CI fails on any drift or missing-vis state.
- Drift detection.
.vis-lockpinsvis_commit+ per-packagetag_commit+ per-conduct-file SHA1.bootstrap.sh --verifyfails loud with a verbatim one-line remediation on any divergence (corruption, vis HEAD move, missing file). - Verified before/after. Sandbox-tested with a fresh clone of
crowin isolation; before: silent fail; after: loud fail with named remediation. Sandbox report at the recommendation workspace.
packages/orchestration/templates/bootstrap.sh+.ps1(Bash + PowerShell) — resolve / verify modes.packages/orchestration/templates/sessionstart-vis-drift.sh— SessionStart hook template.packages/orchestration/templates/vis-verify.yml— GitHub Actions workflow template.packages/orchestration/docs/vis-lock-spec.md— lock-file schema specification.
docs/future/org-mirror.md— Cargo source-replacement pattern-precedent + 3 trigger conditions. Built only when triggers fire.