# P1-0c status — mandatory source gate reached

**Date:** 2026-08-05
**Branch:** `feature/document-type-settings`
**Scope:** documentation only
**Result:** stopped as required because authoritative values are absent at the pin

## Prototype pin and access

The read-only prototype clone at `D:\fileStorage\repos\invoice-skill-build` is detached at
`9359c67c4ef0101218d7e0ffff1986114ba5cc7a`. The Sibyla repository and the prototype were clean
before inspection. No prototype file, branch, configuration or database was changed. Inspection
used the JSON sources, the generating script, and a read-only XML check of the rendered workbook.

The controlled sources inspected at that commit were:

| Source | Git blob |
|---|---|
| `Editor/Data/document_type_rules.json` | `7e687f6fba92a237bf3ea1a132026922176e2698` |
| `Editor/Data/flag_evaluation.json` | `02ec1ac5e8e1389c7a94ccc30a6b1977414d9098` |
| `Editor/Data/itemclass_taxonomy.json` | `6fcfcf1403b68c38583bb937f50767be0ed3d1ef` |
| `Editor/Data/bnkmat.json` | `d34c1bba03fe6f1d6a23851f25c328029f57b161` |
| `Scripts/build_bnkrec.py` | `e0a12b6e1f3be67f1091ee0b95124dda1f52c9cd` |
| `Editor/Data/permanent_code_ledger.json` | `a035ad676a8d9557b40a8c4e31c4fd6bbe30c612` |
| `Invoice_Registry.xlsx` | `0e858c52b84ec18699c67fd85e165414768ef0f2` |

## Extraction results

| Requested extraction | Result at `9359c67` |
|---|---|
| All 19 exact DOCTYP tuples | **Found.** `document_type_rules.json` contains exactly 19 rows with the six source fields `DocumentType`, `OriginClass`, `Treatment`, `Notes`, `DTCode`, `DocClass`; the rendered DOCTYP sheet also contains 19 rows. They were not copied into a draft because the assignment's stop condition fired before draft edits. |
| Complete DOCEFL seed, including sentinel placement | **Not available as requested.** `flag_evaluation.json` and the rendered DOCEFL sheet contain the same 45 existing rows. Neither contains `EF0000000`; therefore no verbatim complete sentinel row or authoritative placement exists at the pin. C11 supplies only four fields (`EFCode`, description, `ItemClass`, `BlockingLevel`), not the other fields required by the 20-field row. |
| Monthly-gap EFCode and complete DOCEFL row | **Not found.** The 45-row JSON source, rendered DOCEFL sheet, scripts and controlled specification search contain no Monthly-gap rule. OFDGAP exists separately as a recomputed detector. C12 decides that a new governed rule must be written; it does not supply its EFCode or complete row. |
| ITMCLS codes for Banks / Financing and Revenue / Intercompany | **Found verbatim.** `Banks / Financing` is `CL000005`; `Revenue / Intercompany` is `CL000025`. Both were cross-checked in `itemclass_taxonomy.json` and the rendered ITMCLS sheet. |
| D6 BTCode and complete 14-field BNKMAT row | **Not found.** `bnkmat.json` and the rendered BNKMAT sheet contain 11 rows and no ledger-reference/no-entry match type. The prototype schema describes ledger-only payroll matches as unlinked BNKREC rows; it does not define the new D6 governance row. |
| `MatchGroupID` CodeLedger natural key | **No permanent natural key found.** `build_bnkrec.py` groups the recomputed view by `(MatchStatus, BMCode)` for Unmatched, Internal, and Matched (payout reconciliation), and by `(MatchStatus, MatchedRef)` for other statuses, then assigns `MatchGroupID` from that run's group sequence. Neither `add_row_codes.py`, `verify_code_identity_stability.py` nor `permanent_code_ledger.json` defines a `MatchGroupID` bucket. These grouping tuples are evidence of current computation, not a verbatim permanent-identity contract. |
| `BRCode` CodeLedger natural key | **Not found.** `build_bnkrec.py` explicitly calls BRCode fresh sequential identity and assigns `BR{i+1:06d}` from current row order. `permanent_code_ledger.json` has no BRCode bucket. Treating `(BMCode, EntryCode)` or another plausible tuple as its key would be an inference forbidden by A3. |

## Stop consequence

The assignment says to stop when any required seed value is absent. Accordingly:

- no seed row was invented, completed from prose, or approximated;
- no P1-0 draft was edited and no carve-out box was ticked;
- A1–A7/S1–S4 folding, A2 provenance markers, B2/B3/B4/B12 governance, and the S2 P1-6 text
  correction were not started;
- `src/`, `tests/`, `migrations/`, databases, and all P1-1 work were untouched;
- Historical outcome superseded on 2026-08-05: P1-0d subsequently closed O1, O2 and O4; see
  `docs/PROJECT-STATE.md` for current state.

Continuing requires authoritative complete rows for the sentinel DOCEFL rule, the Monthly-gap
DOCEFL rule, and the D6 BNKMAT type, plus explicit permanent natural-key definitions for both A3
buckets. The values cannot be recovered verbatim from this pin.

## Verification

- `git diff --check` passed.
- The changed documents contain none of the prohibited stale-state wording.
- Codex sandbox attempts to run `dotnet build GOTT.Sibyla.slnx` and then a second `--no-restore`
  attempt both failed with NuGet error `NU1301` because the sandbox could not authenticate to
  `https://api.nuget.org/v3/index.json`.
- An independent host run of `dotnet build GOTT.Sibyla.slnx` then succeeded with 0 warnings and
  0 errors.

## Paths changed

- `docs/PROJECT-STATE.md`
- `docs/p1-0c-status.md`
