title: Adoption & setup status: stable kind: feature mode: infra source: > README.md § How adoption works / Adopting the framework / Maintenance. Implemented by the setup family (setup and siblings) and the snapshot + agentic-override model. acceptance:
.apache-magpie-local/ supplies per-person overrides that layer above the committed .apache-magpie-overrides/, cannot weaken the safety baseline, and can be ignored for a single run via a one-shot default switch.Gets the framework into an adopter repo and keeps it current using a snapshot + agentic-override model: one committed bootstrap skill, a gitignored framework snapshot (a build artefact, never committed), gitignored skill symlinks, and committed agent-readable override files.
setup (adopt, verify, upgrade, override).setup-isolated-setup-install / -update / -verify / -doctor (the sandbox harness; -doctor probes live restrictions — SSH agent / Yubikey reachability, localhost port binding, filesystem restrictions), setup-override-upstream (promote a stabilised override into a framework PR), setup-shared-config-sync.setup-status — renders a Markdown adoption dashboard: install method and pin, drift between local and committed locks, which skills are wired in the current repo.docs/setup/ (install recipes, agentic-overrides contract, prerequisites)..apache-magpie.lock (committed pin) and .apache-magpie.local.lock (gitignored, what this machine fetched)..apache-magpie/..agents/skills/ is the canonical home for framework-skill symlinks (the path shared by Codex, Cursor, Gemini CLI, Copilot, …); every other agent dir (.claude/skills/, .github/skills/, holdouts) gets per-skill relay symlinks into it. This is uniform — there is no per-project skills-dir convention to detect./magpie-setup and re-installs to the project's pinned version./magpie-setup upgrade..apache-magpie-overrides/, consulted at runtime and merged before default behaviour ([pairing/correctability is the model])..apache-magpie-local/, a per-person sibling to the committed .apache-magpie-overrides/ that is never committed. It is read at runtime under the same additive-only guardrail as any override: it may carry a person's paths, wording, or capability/MCP enablement (for example a release manager enabling a Policy MCP that other members leave off), but it cannot weaken the safety, confidentiality, or privacy baseline. Precedence, first hit wins: .apache-magpie-local/ -> .apache-magpie-overrides/ -> organization defaults -> framework default. Adoption adds the .gitignore entry; on a repo that has not adopted Magpie, the user adds that one line by hand so the directory stays untracked. This is the surface that makes hybrid setups work: one person can run Magpie against a shared or non-adopting repo without committing anything or requiring teammates to opt in..apache-magpie-local/ and .apache-magpie-overrides/, without editing or removing either file. The safety baseline still applies..claude/settings.json beyond what the install recipe declares..apache-magpie-local/ is read as a per-person override surface that layers above .apache-magpie-overrides/ (personal-local -> committed -> organization -> framework default, first hit wins), under the same additive-only guardrail, and works on a repo that has not adopted Magpie once its .gitignore line is present.test -f docs/setup/README.md uv run --project tools/skill-and-tool-validator --group dev skill-and-tool-validate
stable; gaps appear as new agent targets to add to the registry (agents.md) or new override surfaces — recorded by the plan pass..apache-magpie-local/ personal override surface (acceptance 5) and the one-shot default-run switch (acceptance 6). Both are intended behaviour recorded here and tracked as work items magpie-local-convention and override-bypass-one-shot in the plan. The three hybrid-setup how-tos that build on the local surface are tracked alongside them.