Literate AI

Repository documentation

ADR 0039: Bound the Remaining 1.1 Capabilities Before Implementation

Context

The maintainer requested an architecture/onboarding/intelligence/research assessment, actionable 1.1 work, and release preparation. That schedules the outcomes; it does not resolve the design choices in #280, #279, #365 or the plugin support matrix. ADR 0006 requires a real review before significant capability implementation. The maintainer explicitly approved this decision after review. The existing HTML Phase 0 acceptance remains in force.

The audit fixes can proceed independently: correct onboarding destinations and readiness wording, repair documentation, retain qualified artifact bytes, constrain MCP dispatch, pin CI dependencies, and automate mechanical skill maintenance. The local plugin packaging prototype is not a qualified or shipped capability.

Decision

Keep execution claims bounded

Amendment accepted 2026-09-12: ADR 0041 supersedes this subsection's local-development-only release scope with the full SEC-360 containment obligation. Existing local execution claims remain accurate until the new backends are qualified. The text below retains the original decision for historical context.

Ship 1.1 as explicitly authorized local development execution, not production multi-tenant containment. Keep independent acceptance and execution acknowledgements mandatory. State that same-user execution can access that user's host resources. Requests for unavailable isolation must refuse, not fall back silently. Qualified OS/VM containment remains a distinct, explicitly unsupported capability; requiring it for 1.1 instead changes this proposal and the release's acceptance workload.

Qualify two plugin adapters from one catalog

Generate Codex and Claude archives from canonical instructions, with the matching wheel version and exact source/catalog identities. Include every routed supporting skill; no independent normative copies, automatic hooks, credential material, marketplace registration or permission changes. Cursor and OpenCode plugin release adapters remain unsupported, distinct from their existing generation adapters. Require fresh-session discovery and a real independently accepted generated Component for each supported plugin before a release claim. Byte/manifest tests alone cannot satisfy that gate. The current local prototype must pass that review and qualification before landing as release-ready functionality.

Admit an importable library with an explicit support matrix

Define a provider-neutral library-artifact contract with named exports, argument and result contracts, qualified artifact identity, language/runtime/ABI requirements, and consumer binding. First qualify Python pure functions end to end; other language adapters refuse until separately implemented and qualified. This is the accepted first support boundary, not an assertion that #280 asked for Python only.

Run independent acceptance in a verifier-owned interpreter which imports the exact generated artifact and calls exports in-process. The consumer also imports that artifact normally; no per-call CLI/subprocess bridge. Starting an isolated verifier process does not turn library calls into subprocess-shaped consumer APIs. Exclude private oracle material from generation. Bind the consumer to tested artifact bytes, invalidate it on dependency/runtime drift, and never treat entrypoint absence as acceptance success. Keep portable-application unchanged. Prove import, negative cases, invalidation, clean regeneration, and retirement of one retained boundary.

Keep monorepo and submodule ownership distinct

For #365, expose detected build roots as candidates, not authoritative inferred Components. An acknowledged content-identified plan selects nonoverlapping roots, shared-source ownership and per-root harness commands before any movement. Reject ambiguous overlaps rather than duplicating source. Retain independent receipts and boundary-transfer state per selected Component; preserve single-wrapper behavior when no refinement is selected.

For #279, add an explicit orchestration profile that leaves .gitmodules, Gitlinks, child paths and child Git histories intact. Root authority names exact child commits and relationships, not copies of child authority. Plan/check are read-only; refresh requires a reviewed delta and refuses dirty/missing/unpublished children. Default conversion continues to reject nested submodules. Qualify initialized, uninitialized, shallow, absorbed and nested worktrees, rollback and clean-clone reconstruction.

For #368, refresh retained source scope through plan/acknowledged apply with exact old/new inventories. Preserve baseline/parity as history, invalidate current receipts and require requalification; do not pretend old evidence covers added files. Build this on the reviewed #367 promotion implementation rather than a competing rewrite.

Alternatives and consequences

Production isolation in this cut is a larger security/backend qualification program. Claiming all plugin clients or all library languages without acceptance would be misleading. Automatically splitting every detected directory risks overlapping ownership; flattening submodules destroys their intended boundaries. A consumer CLI bridge would not resolve the in-process library requirement.

Acceptance of this ADR authorizes these design boundaries, not weakened release gates, automatic model spending, source retirement without evidence, tracker closure, public publication, or external account selection. No existing 1.1 issue is silently deferred. These capabilities remain open release blockers until implemented and qualified; design acceptance alone does not close them.

Validation and order after acceptance

Finish ordinary authority/onboarding fixes; review #369; implement retained refresh and the two distinct adoption plans; implement and qualify the library adapter; complete the already accepted HTML Phase 1 slice; qualify fresh plugin sessions; then run exact-revision full CI, installed upgrade, artifact and collateral gates. Reconcile contributions and prepare the release only after all included work passes.

Read the Markdown sourceConference homePublished 1.3.0 · Patch 1.3.1 in progress · Development 1.4