Skip to content

RFC reference

This page mirrors the enriched RFC table from the M8Shift repository README. Treat the README on the published main branch as the data source: RFC numbers are permanent, statuses only change after code and documentation are merged and released.

Numbering discipline

RFC numbers are assigned in creation order, not implementation order. For example, RFC 010 was authored before later runtime companion RFCs, but its retained patterns shipped across v3.21 to v3.26.

Drafts are not shipped releases

Unmerged work does not count as implemented. RFC 029 (Companion workboard) and RFC 030 (Tamper-evidence) remain draft here until the release that implements them is merged and published.

RFCDescriptionStatusImplementedHow
001RosterConfigurable agent roster (early design)historical / supersededv2.1.0 · 2026-06-22superseded by RFC 002
002N agentsN-agent relay with one shared penhistorical / implementedv2.4.0 · 2026-06-23one-pen routing (append --to)
003I18n packsBuild-time language packs (EN core + 8)shippedv3.0.0 · 2026-06-23AST injector m8shift-i18n.py
004MemoryShared append-only memory ledgershippedv3.2.0 · 2026-06-23remember / recap, pen-free
005Claim checkAdvisory pre-claim overlap checkshippedv3.3.0 · 2026-06-23claim --check, read-only
006TasksShared append-only task boardshippedv3.4.0 · 2026-06-23task event-log, pen-free
007SubturnSub-turn streaming proposalrejectedrejected by adversarial panel
008Worktree companionDegree-2 worktree parallelism + serialized integrationimplemented v1v3.5.0 · 2026-06-24m8shift-worktree.py; core LOCK as integration pen
009Runtime companionLocal presence / inbox / progress / diagnosticsimplemented v1v3.15.0 · 2026-06-25m8shift-runtime.py companion
010Runtime patternsPattern filter: retained / rejected / deferredaccepted (filter)v3.21–v3.26 · 2026-06-266 retained shipped; 13 rejected; 6 deferred → RFC 024–029
011Session historySession history ledger + historyimplementedv3.7.0 · 2026-06-24M8SHIFT.sessions.jsonl
012Contracts validationStage-4 contracts + read-only validationimplementedv3.13.0 · 2026-06-25read-only validation surface
013Hosted runtime control planeFuture hosted / runtime control planefuture / not impl.optional layer outside the passive core
014Provider managementLocal provider / adapter registryimplemented v1v3.16.0 · 2026-06-25m8shift-runtime.py providers
015Shared tree degree gt1True degree > 1 writes in one treerejected (research)rejected for the core
016Cooperative turn requestCooperative baton request + operator steeringimplementedv3.15.0 · 2026-06-25core baton request
017Stage6 integrationsStage-6 closure: local integration layerimplementedStage 6 · 2026-06-25local layer; heavier integrations deferred
018Agent runtime architectureLocal scaffold: roles / workflows / approvals / reportsimplemented v1v3.16.0 · 2026-06-25m8shift-runtime.py scaffold
019Input neutral patternsNeutral runtime-pattern inventorycurated input / not impl.reference for future RFCs
020Headless runner hardeningReference runner: validation / dry-run / timeout / auditimplemented v1v3.16.0 · 2026-06-25examples/headless_runner.py
021Pause resumeStable PAUSED state for idle sessionsimplemented v1v3.17.0 · 2026-06-25core PAUSED + pause / resume
022Session reportsSession reports + decision ledgerimplemented v1v3.18.3 · 2026-06-26report generated from existing turns
023Agent token footprintCut the mandatory protocol readimplemented (Phase 1)v3.19.0 · 2026-06-26split protocol.md / protocol-reference.md
024Doctor splitSplit core doctor vs companion diagnosticsbaseline impl.v3.27.0 · 2026-06-26core doctor owns relay hygiene; runtime owns sidecar diagnostics
025Runtime status compositionRuntime status over core + sidecarsbaseline impl.v3.27.0 · 2026-06-26status-runtime [--brief] [--json]
026Sidecar retentionBound / prune runtime sidecar ledgersshippedv3.34.2 · 2026-07-01retention apply / policy show; path-safety hardened (#73)
027NotificationsLocal notifications for handoffs / stale turnsshippedv3.32.0 · 2026-07-01notify: stdout/file/bell/OS/hook tiers
028Headless command templatesSafe headless command templatesshippedv3.33.0 · 2026-07-01provider examples, argv_by_platform, strict run-plan validation
029Companion workboardRicher companion workboard outside coredraftdeferred from RFC 010
030Tamper evidenceHash-chain tamper-evidence for relay recordsdraftdetection/warning only
031Decision traceabilityTool-independent decision recordsshippedv3.31.0 · 2026-07-01forge/git/ADR fallback
032Tiered delegationCapability-tiered delegation charterPhase 1 shippedv3.35.0 · 2026-07-01advisory route recommend
033Context economyCompact task packets and verification-first context disciplinedraftRFC file is draft; elements shipped separately (the verification-first raw-proof rule in v3.51.0, compression records via RFC 037)
034Companion adapter interfaceIdentity-pinned argv-only companion adaptersshippedv3.36.0 · 2026-07-01RTK visible + fail-closed
035Interactive listener gapKeep listeners armed around PAUSED/resumeshippedv3.28.0 · 2026-06-26quiet wait/resume behavior
036Token-window exhaustionRuntime headroom guardshippedv3.28.0 · 2026-06-26m8shift-runtime.py headroom internal guard, not the external Headroom adapter
037Agent context compression backendsDigest-based context compression + optional backendsPhase D follow-up shippedv3.40.0 · 2026-07-02builtin + RTK + explicit/opt-in headroom_ext
038Multi-sessionNamed parallel relay sessionsdraftfuture companion/core namespace work
039Model/task routingCapability-first routing recommendationsPhase 1 shippedv3.35.0 · 2026-07-01read-only route recommend
040AI session usage monitoringUsage snapshots + cooperative cooldown holds + live-verified usage adaptersPhase 4 implemented and hardenedv3.48.0 + v3.53.0 + v3.56.0 + v3.57.0 · 2026-07-11Phase 2: usage init/adapters/snapshot/status + guard/watch/wait/resume (advisory, fail-open, no force/auto-resume). Phase 3: opt-in real adapters, aggregate-only bounded jsonl_scan, ratio-native quota, and an opt-in budget bridge. Phase 4: four disabled-by-default Claude+Codex adapters and mutation-verified privacy/fail-open contracts. v3.57.0 live-verifies and hardens both official paths: Claude top-level five_hour/seven_day used-percent windows with aware reset normalization, and Codex account/rateLimits/read over held-open stdin with a bounded daemon-reader deadline. v3.58.0 adds a fifth disabled scaffold entry: the opt-in tokscale spend example (#103) — spend-only local_estimate fixture, bounded tri-state token reader, hard never-submit boundary.
041Agent skillsReusable multi-agent competency definitionsamended — open formatv3.58.0 · 2026-07-12bespoke skills/<id>.md + index.json superseded by the open Agent Skills format (agentskills.io); shared skills/ dir with RFC 050; tracker #83
042Compression-backend routingHybrid builtin/Headroom routing (evidence-gated)design + Phase Bv3.41.0 · 2026-07-02signals plumbed; auto-route gated on measurement (#84)
043Routing principleUnify the routing skeleton of 037/039/042/032draft (design-only)one canonical 6-stage pipeline; no behavior
044Companion installVersion-locked companion install at initshippedv3.44.0 · 2026-07-03init --companions / --with-* / --full / --companion-source; idempotent, no-clobber, atomic; .m8shift/kit.json + doctor kit checks
045Module referenceOne reference page per shipped moduleshippedv3.44.0 · 2026-07-03docs/en/modules/ — 7 pages: Mermaid ownership diagrams, command tables, tagged examples, drift test
046Interactive/headless modesExecution-mode distinction + project identityPart 1 shippedv3.45.0 · 2026-07-03status / watch show project name + cwd + root; status-guard in the protocol core; runner install next
047Headless livenessRunner final-state enforcement + listener lifecycle + host-wake observabilityimplemented + slice 2v3.46.0 + v3.47.0 + v3.59.0 · 2026-07-12Authorship-primary classification + claim --refresh (v3.46.0); listener lifecycle companion with OS backends, resume-working retry, 9 doctor findings (v3.47.0). v3.59.0 (#108 slice 2): additive listener capability fields (backend_configured, can_invoke_agent, survives_parent_exit, last_successful_runALIVE keeps meaning process residency), TTY-only waiter notice, and a fail-open stale-AWAITING advisory (300 s default, doctor --stale-after, equal-to-threshold is not stale)
048Adoption discipline pack + local updateAgent pack + adoption health diagnostics + source-driven updateimplementedv3.49.0–v3.50.1 + v3.55.0 · 2026-07-08M8SHIFT.agent-pack.md, compact anchor floor, adoption doctor findings, update --target --source, stale-banner baseline hotfix; v3.55.0 (#60) adds the default runner component — refreshes installed watch-status.sh/headless_runner.py with sha256-proven no-clobber + target path-confinement (refuses symlinked-ancestor escape), plus read-only doctor --source runner.stale/runner.manual_review_required findings
049Holder liveness + stale-claim hardeningSeparate holder liveness from pen TTL; force-claim cannot collide with a live holderimplemented (PR A+B+C)v3.57.0 · 2026-07-11PR A: protective heartbeat, audit-only refresh, two-phase stale recovery and audited live override. PR B: listener-produced liveness + early refresh while a child lives. PR C: advisory worktree ownership sidecars, explicit takeover, per-id locks, generation-nonce ABA defense, and durable takeover ledger.
050Manual multi-agent specialistsManual-trigger specialist profile of RFC 032; specialists are open-format Agent Skillsimplemented — Phase 1+1bv3.58.0 · 2026-07-12skills/ seeds (one per lane, no executable payloads), foreign-loader safety contract for the mutating lane, advisory doctor skills.* validation (fail-open, never gates), wiring walkthrough in examples/; Phase 2 runtime indexing remains future
051Usage advisory in the core displayRead-only usage line in core status/watch, fed by the companion sidecarimplemented + amendment Ev3.54.0 + v3.55.0 + v3.57.0 · 2026-07-11Echo-only, byte-identical when off; companion decision_window; TOCTOU-safe, bounded, sanitized and fail-open. v3.55.0 (#59) adds raw consumption. v3.57.0 (#106) unifies every plausible provider window with consumed percentage + reset, field-level degradation, deterministic caps, and the existing single-window fallback. v3.59.0 (#107): explicit last-known fallback — a transient empty snapshot falls back to the newest usable one, marked last_known: true in public JSON, em-dash byte-identical when nothing usable exists.
052Project compartmentalization & data hygieneCross-project isolation invariant + data-hygiene lintimplemented (PR1–PR4)v3.56.0 + v3.57.0 · 2026-07-11PR1: path hygiene and agent-floor compartmentalization. PR2: confidential out-of-repo denylist + scrub-check hooks. PR3: opt-in anchor hygiene. PR4: mechanical one-project session binding with ambiguity refusal and path disclosure redaction. v3.59.0: activation path documented (core.hooksPath + denylist + CI secret backstop), scrub-check --range + pushed-range pre-push scanning (seconds, not minutes), and a security.anti_leak_gate_dormant doctor advisory so a shipped-but-unarmed gate is visible.
053Shared rules and governed habitsGoverned project-local normative rules distinct from memory/skills/preferencesdraftquarantine→candidate→proposed→active lifecycle, ≥2 human-scrutinized evidence + human validation, reserved-authority never-list, optional m8shift-rules.py companion
054Pre-exhaustion checkpoint and session rotationProvider-aware checkpoint and operator-confirmed fresh-session rotationdraft / design onlyextends RFC 036; bounded resume packet, no UI automation
055Wait-on-operator holder stateExplicit held-pen marker while blocked on the operatordraft / design onlyliveness governs; distinct from PAUSED and AWAITING
056Self-declared agent model provenanceAdditive model attribution in LOCK, turns, snapshots, and dashboardimplemented2026-07-13M8SHIFT_AGENT_MODEL (#43); explicitly unverified and never routing authority
057Index-accurate checksum manifestRefresh checksummed staged paths from Git-index blobsimplemented2026-07-13pre-commit refresh after pen guard (#51); pre-push remains backstop
058Go-forward RFC disciplineSame-PR RFC policy plus RFC-index integrity checksimplemented policy/tooling baseline2026-07-14advisory doctor and pre-commit findings (#56)
059Terminal colour capabilityTiered truecolour/256/ANSI-16/plain semantic dashboard renderingimplemented2026-07-14colour is redundant; frame width is invariant (#50)
060Adaptive terminal geometryReal-width flex tracks, exact-height activity viewport, and immediate resize redrawsimplemented2026-07-14no mode flag or width cap; 120-column baseline is stable (#55)
061Bounded adaptive activity provisionParameterized snapshot history, capped viewport, true turn positions, and a visible buffer edgeimplemented2026-07-14default 8; consumer limit capped at 200; no archive read (#61)
062Listening ends only at DONEAny halt (incl. holding the pen, PAUSED, a denied action) suspends acting, never listeningimplemented2026-07-14keep a waiter armed until DONE; DONE is the only state that ends listening (#73)
063On-demand expanded activity readerToggleable, word-wrapped full done-text blocks fetched by immutable turn numberimplemented2026-07-14e toggles; ↑/↓ selects blocks; ←/→ pages text; status snapshot stays lean (#63)
064Effective-work and non-work time accountingState-duration accounting for effective work vs awaiting, paused, idle, and unknown timeaccepted for implementation2026-07-14WORKING proxy; honest partial retroactivity; one primary work item per window; permanent global TIME strip
065Ticketed, committed, and pushed deliveryOne forge ticket and remotely recoverable Git history for every intentional changeaccepted / implemented2026-07-14advisory offline reminders; named role-based forge gateway (#72, finalization #74)
066Asymmetric solo advanceBounded solo progress during an explicit peer absence, followed by mandatory deferred reconciliationaccepted / design-onlysigned project policy; reversible branch-local work; returning peer may require follow-up corrections; implementation deferred (#155)
067Detached, vendor-neutral CLI agent orchestrationPassive relay + runtime control plane + generic runner + per-CLI adapters (launch/stop/resume/health) surviving an IDE crash; Codex/Claude phase 1, Gemini/Mistral Vibe lateraccepted / design-onlyno behavior active; relay stays degree-1 and passive; D1–D16 accepted; delivery phased through RFC 073 (#157)
069Top-owned incremental status foldIn-memory verified tail fold for the long-lived interactive dashboardimplemented2026-07-15one-shot status stays full; frozen snapshot v1 and RFC 064 preserved; every invalidation falls back to the full oracle (#79)
070Provider-pinned model launchFail-closed per-agent model pins compiled into managed provider argvimplemented2026-07-15Codex/Claude adapters (#86); RFC 056 provenance stays self-declared/unverified
071Pen-guarded live roster additionAdd one exact routing identity without resetting or rewriting relay stateimplemented2026-07-15holder-only live pen (#89); anchors remain manual and untouched
072Exact-identity fleet bootstrapBootstrap listeners and schedule verified isolated jobsimplemented — slices 1–6v3.61.0 · 2026-07-16O1–O6 (#85): fleet plan/health/apply/reconcile/stop/resume + immutable fleet jobs submit/assign/attempt/integrate; explicit done criteria + shell-free verification recipes (provider exit alone never completes a job); at most two isolated producer worktrees; merge/handoff/drop serialized by the designated integrator; enrollment stays holder-attributed through core roster add
073Adapter registry and detached durabilityDeliver RFC 067 as adapter, durable-supervisor, live-provider, and routing slicesslices 1–2 implemented; slices 3–4 acceptedv3.61.0 · 2026-07-16Slice 1 (#65/#66): provider-keyed m8shift.agent-cli-adapter.v1 registry (launch_argv / stop / resume / health); Codex/Claude managed launch migrated byte-identical; Gemini validated stub. Slice 2 (#65): fleet supervise --detach durable control plane — schema-versioned fsync + atomic-replace store under .m8shift/runtime/fleet/, PID start-identity reconciliation (adopt exact match / restart missing lanes once / defer-unverified on a transient probe failure / fail-closed needs_reconciliation), SIGTERM-clean shutdown, stale-pid takeover, launchd/systemd/Windows-service seam with the weaker local tier reported explicitly. Slices 3–4 (live Gemini + native resume; #59 routing-matrix extension) accepted, not shipped

Built with ❤️ and M8Shift · Accessibility · r/m8shift