# AGENT-PROMPT-v5-P1-1b — O8 amendment: close the governed source-manifest conflict and resume Scope 1

**Date:** 2026-08-06
**Follows:** `docs/AGENT-PROMPT-v5-P1-1b.md` (the standing prompt), `docs/AGENT-PROMPT-v5-P1-1b-c8-amendment.md`, `docs/p1-1b-status.md` (the O8 stop record)
**Authority:** Miguel. This amendment records the two Miguel-owned decisions that close **O8**
and authorizes the documentation amendment they require, followed by the Scope 1 restart. **It
authorizes zero prototype writes.** The P1-1b prompt's prototype-write prohibition, fail-closed
import rules, and every stop-and-report rule remain fully in force.

## The decisions (O8-D1, O8-D2)

**O8-D1 — DOCEFL: re-author the Monthly-gap code and extend the manifest to all 52 source rows.**
The target's authored Monthly-gap rule moves off `EF0000046` to the **lowest permanent code
verified free on both sides** (expected `EF0000053`) by governed documentation amendment. This is
legitimate because the authored row has never been imported, activated, or first-used — C3
immutability has not attached; it is a docs-only row whose code is still movable by governed
decision, exactly once, now. The governed DOCEFL import manifest is then **extended from
`EF0000001`–`EF0000045` to `EF0000001`–`EF0000052`**: all 52 source rows import with per-field
`extracted` provenance, including the source's visual-read `EF0000046`, which ceases to collide.
Source permanence is never touched; render parity (Scope 5) and validation (Scope 3) keep full
fidelity; no prototype write occurs.

**O8-D2 — DOCTYP: exclude the uncoded source row; the accepted target rule governs.** The
twentieth source row (`Bank Statement | External | Exclude`, blank `DTCode`) is recorded as an
**explicit C12-style exclusion** — it cannot import without inventing a permanent code, which is
forbidden. The accepted authored rule `Bank Statement | External | Include` routed `ArchiveOnly`
stands unchanged: bank statements reach Sibyla through the BNK pipeline and are archived, not
dropped. The DOCTYP import manifest remains exactly the 19 transcribed rows.

## Ordered execution

1. **Preflight — stop and report if any fails.** Sibyla clean on `feature/p1-1b` at `16531b9`
   or a descendant, in sync with its remote. Prototype read-only check (metadata and `git show`
   only): after `git fetch --prune origin`, local `HEAD`, local `origin/main`, and the live
   remote `refs/heads/main` all still equal the immutable pin
   `b91768513fc638381fbde91f0b576b08220a98f6`; all **49 of 49** rostered paths resolve to their
   recorded blobs; the direct `Editor/Data` surface is exactly the 48 rostered JSON files. Any
   drift → stop; the premise of this amendment is the O8 stop record's exact measurements.

2. **Verify the new code is free on both sides — stop if not.** From rostered blobs at the pin
   only: `flag_evaluation.json` must contain exactly 52 rows `EF0000001`–`EF0000052`;
   `permanent_code_ledger.json` and `flag_instances.json` must show no allocation of, or
   reference to, any `EF` code above `EF0000052` (the sentinel `EF0000000` aside). Then
   `EF0000053` is the new Monthly-gap code. If anything above `EF0000052` exists, take the
   lowest verified-free code instead and record the evidence. Report counts only; no source
   values are copied into command output.

3. **Governed docs amendment (records stage, one commit).** Repository-wide search for the
   authored Monthly-gap row's code and re-author it `EF0000046` → `EF0000053` everywhere it
   denotes that row — schema mapping, vocabularies, authored-row records, the inactive-seed
   activation guard (`RequireRunnableActiveDecisionDOCEFL` CHECK and `ActivateDOCEFLRule`
   references), drafts, and `AGENTS.md` if present. **Only the code changes**; every other
   field, the `authored`/`absent` provenance markers, and the inactive-seed + governed-activation
   semantics carry over verbatim. Occurrences of `EF0000046` that describe the *source*
   visual-read rule or this O8 history stay as they are — read each occurrence, do not
   search-and-replace blindly. Record O8-D1 and O8-D2 in `docs/p1-1b-status.md`; close O8 in
   `docs/PROJECT-STATE.md` (open-items table, phase table, changelog); update
   `docs/project-todo.md` where it states the 45-row manifest. Commit this amendment (with this
   prompt file) and push before any import work starts.

4. **Restart Scope 1 at its preflight** against the unchanged pin `b917685…` and proceed with
   the ordered Scopes 1–6 of `docs/AGENT-PROMPT-v5-P1-1b.md` exactly as written — disposable
   rehearsal first, live pass only after green — with these manifest clarifications:
   - DOCEFL import = source rows `EF0000001`–`EF0000052`, each field `extracted` from the
     rostered blob; a source field that is absent imports as honest `absent`/`NULL`; a source
     field that is required non-null by the accepted schema and cannot be transcribed → stop
     and report, never invent.
   - The authored rows seed alongside: sentinel `EF0000000` unchanged; Monthly-gap now
     `EF0000053`, seeded inactive behind its activation guard exactly as specified for the old
     code.
   - DOCTYP import = the 19 transcribed rows; the excluded twentieth row is reported with its
     exclusion citation, like `document_gaps.json` under C12.
   - DOCFLG instances referencing source `EF0000046`–`EF0000052` now resolve inside the
     manifest; any instance referencing a code **outside** `EF0000000`–`EF0000052` → stop and
     report. C13's complete five-field key rule is unchanged.

5. **Scopes 7–8** stay behind their own review gates, exactly as before.

## What this amendment does not authorize

Any prototype write, edit, or cleanup — including "fixing" the uncoded DOCTYP row or renumbering
anything at source. Any change to accepted taxonomy semantics (the Bank-Statement rule stays
`Include | ArchiveOnly`). Reassigning any code other than the single governed `EF0000046` →
`EF0000053` re-authoring. Any shared/live database write before the complete disposable
rehearsal passes and a verified fresh backup exists. No history rewrite in either repository.
If the source, the roster, or the counts differ in any way from the O8 stop record, the answer
is stop and report, never adapt.
