ruling-2026-08-31-unit12-scopeThis ruling records the Principal’s decision on the seven open questions the
read-only Unit 12 scope descent surfaced but explicitly did not resolve. The
descent itself (.unit12/SCOPE-DESCENT.md at the time of this ruling, untracked
investigation evidence — corrected additively by Master after independent
re-verification found a false branch-naming claim, then independently
re-confirmed correct by Sparring) is superseded as the citable scope authority
by this file. No code, curriculum content, or SOW exists for Unit 12 yet; this
ruling authorizes scope only, not implementation, and not the SOW’s own
authoring — see “Next authorized action” below.
done_when clause and sequencing amendment 6
(docs/sows/sovereign-agent-v1-educational-control-plane.md:14-21,62-68)
still describe Unit 12 as “finishing” a real 30-day pilot — a premise
docs/rulings/2026-08-30-unit11-local-closure-supersedes-real-deployment-gate.md
already withdrew for Unit 11’s own closure, without saying what replaces it
for Unit 12.sovereign-agent package itself
exists anywhere in the ratified record, as distinct from the book’s own
publication (already settled by
docs/rulings/2026-08-27-book-publication-destination.md).docs/rulings/2026-08-26-deferral-unit6-smokes.md; what
Unit 12 must do to close that deferral without fabricating credential
evidence.Unit 12 does not finish or simulate a real 30-day pilot.
The superseded definition (docs/sows/sovereign-agent-v1-educational-control-plane.md:21):
30-day Sovereign Store pilot -> redacted proof pack accepted
becomes:
local, learner-controlled Sovereign Store release evaluation -> redacted Unit 12 proof pack accepted
Unit 12 may exercise the accepted pilot-start mechanism (start_pilot,
src/reference_organizations/store/pilot.py, built and independently falsified
in Unit 11) against disposable local SQLite identities. It does not need a
pilot.completed event, elapsed-time simulation, production database, or
governance receipt — none of that mechanism exists, and this holding does not
create it.
The proof pack closes the educational release-evaluation cycle; it does not
prove operational endurance. A genuine deployment pilot remains future ZEO Go
work, matching
docs/rulings/2026-08-30-unit11-local-closure-supersedes-real-deployment-gate.md’s
own holding 7 (“A genuine 30-day deployment pilot belongs to a later,
separately authorized operational program — most naturally ZEO Go… — not to
completion of this Python textbook”).
Unit 12 must file a machine-verifiable manifest at:
docs/evidence/unit12/proof-pack.json
It records:
Allowed provider statuses, exactly these four:
LIVE_PASSNOT_RUN_UNAVAILABLENOT_RUN_UNAUTHENTICATEDFAILRaw credentials, prompts, provider transcripts, personal identifiers, and unredacted environment dumps must never be committed.
A verifier must reject missing fields, unknown statuses, digest mismatches,
path escape, secret-shaped content, and any claim that NOT_RUN means PASS.
Sparring verifies the pack technically. Principal accepts the release candidate. Neither act claims a real pilot occurred.
Unit 12 creates a new full-curriculum evaluation record; it does not rewrite
either historical Andrea evaluation
(docs/andrea-alpha-evaluation.md,
docs/andrea-chapters-0-7-evaluation.md).
Parameters:
done_when clause,
docs/sows/sovereign-agent-v1-educational-control-plane.md:19, which this
holding does not touch).docs/andrea-chapters-0-7-evaluation.md,
confirmed at this ruling’s base commit to score a maximum of 14 across
seven two-point tasks) and add:
Each task scores 0-2; maximum 20 (14 existing + 3 new tasks x 2). Do not average across participants.
Record wrong answers as curriculum findings. Use a participant alias; commit no recording or personal data.
The final 1.0 curriculum is Chapters 0-12: 13 chapters, confirmed as the
current chapter count at this ruling’s base commit
(python scripts/verify_curriculum.py -> “13 chapters, 13 exercises”). Unit 12
adds no Chapter 13.
Unit 12 must:
docs/rulings/2026-08-27-book-publication-destination.md) and add no
publication pipeline.The existing scripts/verify_curriculum.py remains the structural gate; Unit
12 adds a distinct release gate rather than overloading one script with
unrelated release responsibilities.
“Release” means publishing Sovereign Agent 1.0.0 to PyPI as the executable
textbook — not publishing the book site (already settled, separately, by
docs/rulings/2026-08-27-book-publication-destination.md, which governs
zeo-site and does not use the word “release”) and not declaring production
readiness.
Sequence:
1.0.0rc1; publish through the existing TestPyPI path.v1.0.0.PROPOSED -> ACCEPTED change
and clean-main gate.The publish infrastructure this sequence uses already exists and is unchanged
by this holding: .github/workflows/publish.yml, confirmed at this ruling’s
base commit — tags matching v*.*.*a*/b*/rc* publish to TestPyPI, tags
matching bare v*.*.* publish to PyPI via the trusted-publisher OIDC flow
(id-token: write), both gated behind a build-and-verify job that installs the
built wheel into a clean venv and runs sovereign-agent doctor. The current
pyproject.toml version is confirmed 1.0.0.dev1 at this ruling’s base
commit.
Merging Unit 12 implementation does not itself authorize either release tag.
Claude, Codex, and Cursor remain optional external integrations. Sovereign Agent 1.0 must remain fully teachable without installing or authenticating any of them.
For each provider:
An unavailable or unauthenticated provider does not block the offline
educational release and must be recorded as NOT_RUN, not silently deselected
and not reported as verified.
If a live assignment is attempted and fails because of Sovereign Agent
behavior, release is blocked until fixed or that integration is explicitly
removed from the supported claim. Providers with no LIVE_PASS must be
described as included adapters with offline contract coverage, not
live-verified integrations.
This closes docs/rulings/2026-08-26-deferral-unit6-smokes.md’s own deferral
(confirmed at this ruling’s base commit: nine tests collected under the live
marker, deselected by default, exactly matching that ruling’s holding 2) by
narrowing the release claim honestly; it does not fabricate missing credential
evidence. That ruling’s own holdings 1-3 (Unit 6 accepted on offline evidence;
the smokes have not run; default CI never needs a credential) are unaffected
and remain binding.
Current Unit 12 language is Andrea live evaluation.
docs/v0.6-soak.md remain
untouched.docs/rulings/2026-08-30-unit11-scope.md, which this holding extends rather
than replaces.Master may file this decision as this append-only Unit 12 scope ruling and update the rulings index. This filing must:
After the ruling is merged and verified on clean main, Master may prepare —
but not implement — the Unit 12 SOW. The SOW must include the proof-pack
schema, the Andrea protocol, the installed-wheel curriculum gate, the provider
evidence matrix, the release-candidate/final-release separation, and mutation
checks.
If Unit 12 requires changing src/sovereign_agent/, only 42 nonblank
lines remain under the current ceiling (27/40 modules, 6208/6250 nonblank
lines, 7/30 root exports, confirmed by scripts/verify_source_budget.py at
this ruling’s base commit). Stop and request a precise budget ruling before
implementation; do not compress correctness to fit, and do not raise the
ceiling preemptively.
No Unit 12 implementation, real pilot start, credentialed provider smoke, release, or PyPI publication is authorized by this ruling.
# Confirms the current budget headroom Holding 7 (filing/sequencing) cites
python scripts/verify_source_budget.py
# Confirms the superseded pilot-completion language is still present,
# unedited, at its cited location (Holding 1)
grep -n "30-day Sovereign Store pilot -> redacted proof pack accepted" \
docs/sows/sovereign-agent-v1-educational-control-plane.md
# Confirms the current chapter count Holding 4 cites
python scripts/verify_curriculum.py
# Confirms the current Andrea Chapters 0-7 scoring maximum Holding 3 cites
grep -n "maximum 14\|Tasks 1-6" docs/andrea-chapters-0-7-evaluation.md
# Confirms the nine deselected live-marked tests Holding 6 cites
uv run --python 3.14 pytest tests/test_providers_live.py --collect-only -q -m live
# Confirms the publish workflow Holding 5 cites already exists unchanged
test -f .github/workflows/publish.yml && echo "publish.yml exists"
grep -n "version = " pyproject.toml
# The rulings index and directory agree
python scripts/verify_curriculum.py