release-prep · git:20261004.5baa412 · 2026-10-04 · sha256 f98a2e766bdf1dc3
release-prep git:20261004.5baa412A
Immutable. This exact content never changes and is served at /api/v1/blob/f98a2e766bdf1dc3.
--- name: release-prep description: Clean verified release artifacts and prepare MemPalace metadata, installed acceptance, and local qualification before separately authorized publication. disable-model-invocation: true --- # Release preparation ## Entry and authority - Read `AGENTS.md`, `docs/RELEASING.md`, `CONTRIBUTING.md`, and `docs/quality/acceptance/README.md`. Those files own gates and report format. - Derive permitted edits, cleanup, commits, and exclusions from the active request. Reuse existing authorization. Inspection alone permits no mutations. - Verify cwd, Git root/common directory, status, worktrees, processes and open files. Use `autopilot doctor --json` when available; otherwise use the repository's documented manual ownership check. Preserve initial edits and stop overlapping writes. - Never invoke Codex, Claude, Gemini, another model/provider, or an authenticated client as a preparation or qualification gate. Never inspect or require credentials, tokens, keychains, auth files or paid-account state. - Push, tag creation, public ref promotion, settings changes and publication each require explicit operator authorization. Preparation grants none of them. Never use `--force` or rewrite a public ref. ## Inspect and clean - Read current backlog through the project-bound `backlog-utility` interface. Do not create tasks, worksets or a second release plan merely to run this skill. - Resolve public history with `python scripts/release_public_read.py --version-tags`. Local tags and local development `main` are insufficient release identity. Separate newest public tag, last published release and pending local version. - Compare public history with the current behavior owners. Choose the smallest justified version change; keep an already prepared unpublished version when suitable. - Inspect untracked/ignored files, stashes and commits unique to affected worktrees before cleanup. Remove only identified disposable artifacts with verified ownership and no open writer; apply the repository's target-identity gate before deletion. Preserve palaces, databases, backups, handoffs, evidence, environments and unique work. Missing ownership blocks only cleanup of that item. Do not blanket-clean or prune. ## Prepare the existing owners - Use `pyproject.toml`, `CHANGELOG.md`, public docs and existing generators. Keep `## Unreleased`; consolidate user-visible changes under the pending version. Exclude private operational history and local machine details from public notes. - State exact edited paths and acceptance commands before writing; verify all four Git views afterward. Do not add another release controller, gate or procedure. - Follow section 1a of `docs/RELEASING.md` for installed-candidate acceptance and write its report at `docs/quality/acceptance/vX.Y.Z.md`. Use disposable installs, palaces and profiles; preserve real data and user configuration. - Reuse unchanged, identity-bound evidence. Rebuild and rerun affected acceptance after package changes; do not count source tests as installed CLI/MCP execution. Never inspect or import real user conversations to satisfy synthetic coverage. - Triage findings in the existing evidence. Fix a small blocking defect only when required and within current authority; otherwise report its smallest correction. No automatic backlog decomposition or separately mandated task per fix. ## Qualification Use the repository virtualenv. Run the exact existing gate set in RELEASING section 1 and CONTRIBUTING; retain raw logs outside the published tree. Core preparation checks: ```bash python scripts/docs_drift_guard.py python scripts/public_safety_scan.py --tracked --staged python scripts/quality_scorecard.py --check python scripts/gen_code_intelligence_packet.py --check python scripts/release_preflight.py --json ``` Build the reviewed wheel, then run the existing installer matrix and installed application owner; get all flags and platform prerequisites from RELEASING: ```bash python -m build --wheel --outdir dist python scripts/release_install_metadata_smoke.py --all-installers --install-spec . --json python scripts/release_readiness_gate.py --installed-golden-wheel "$MEMPALACE_RELEASE_WHEEL" --json ``` Bind `MEMPALACE_RELEASE_WHEEL` to the exact built wheel before invocation. The required Linux systemd-user receipt cannot be replaced by macOS results. Missing model provenance or platform prerequisites remain blocking `UNRUN`; provision only within current authority, then retry the existing owner command. No confirmed high/critical issue may remain; record other findings and explicit deferrals per the acceptance-report contract. Never invent PASS or weaken a gate. An authorized local commit follows the repository's independent source-review policy; that review is separate from credential-free release qualification and is not application-acceptance evidence. Do not launch provider clients from this workflow. Once the acceptance report is committed for the exact package ids: ```bash python scripts/release_preflight.py --tag vX.Y.Z --require-clean --json ``` For the opt-in read-only pre-tag check at its documented stage: ```bash python scripts/release_preflight.py --tag vX.Y.Z --require-clean --check-live-upstream ``` Clean-tree or committed-report checks remain pending until their prerequisites exist. Candidate creation follows RELEASING and requires installed acceptance first. ## Result and recovery Report version/public baseline, reviewed source SHA, exact changes and cleanup, wheel/source identities, checks run versus reused, unrun/failed gates and one existing recovery command. Mark local readiness separately from public admission. Hand off to `/release` only after local qualification and committed acceptance pass. Push, tag, release and live-palace actions remain pending unless explicitly authorized.