HCE output is ADVISORY ONLY. Nothing here is a ruling; the operator's recorded decision (registry status + decided_ref + log event) is the only authority. Grades: GREEN (could not break it), YELLOW (real open call), RED (defective as filed), EXECUTE (already ruled - needs execution, never re-ruling).
| row | grade | rank | title · HCE recommendation · blockers | your decision |
|---|
Approve exports a mint whose decided_ref is the HCE recommendation plus your notes; reject requires notes (a reasoned rejection names its reason); hold exports nothing. Hand the file to the working session — the runner re-validates every row against the registry, then commits one ruling per commit (D178) behind the canary.
Every ruling commit ran the full board build + airlock canary before committing; batch ends re-ran reserialisation and one-ruling-per-commit checks; CI re-runs the airlock on every PR. decided_ref is the ruling text of record.
| row | outcome | decided | title · decided_ref · log trail |
|---|---|---|---|
| SUB-0160 | minted | 2026-08-16 | Gate the ruling, not the filing — a path-based automerge allowlistRULED 2026-08-16, operator (in-chat): choice A — adopt the path-based automerge allowlist with ALL SIX paths including submissions/SUB-*/** (filing is not ruling); fail-closed all-or-nothing on the path set, the required status check still runs, every automerge writes a PR-ledger line. Returns as the D-entry amending rule 2 plus path-guard workflows in DP-OS and DP-OS-REVIEW. minted@2026-08-16 |
| SUB-0173 | minted | 2026-08-15 | A session handoff must expire on consumption, not on someone rememberingRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: Yes - adopt a mandatory termination clause on handoff docs: delete on the receiving session's first completed round, move-it-first clause required. registered@2026-08-03 · ready@2026-08-03 · minted@2026-08-15 |
| SUB-0175 | minted | 2026-08-16 | def conversion canonMINTED as a D-entry plus payload, not a CAN slot (the row's own returns_as names "a D-entry or DOC row"): the two-mode business-folder standard. MODE A - idea-in-collector: registry/businesses/<slug>/record.yaml schema-validated (tools/validate.py GREEN is the gate), profiles/<slug>.md, optional <BUSINESS>/ folder carrying a hive/ inbox, and generated views regenerated from the record and never hand-edited; anything outside that set is DRIFT. MODE B - go-live standalone fork, TRIGGERED when the business reaches secure-launch build: live surface, real motion, or the operator rules it. POST-CONVERSION OWNERSHIP RULED: the repo is the home of established finals, the collector keeps ideas/drafts/history, and the board record stays registry-mastered with a dated snapshot in the repo - the cans.yaml pattern, NO PARALLEL REGISTRIES. Fork parent is DP-OS, resolved visibly: §1 says "a DP-OS-MCP fork" while §2, the checklist template and MANIFEST.yaml all say DP-OS; the ruling takes DP-OS and records that the cover disagreed with itself. The fork-or-map law stands (greenfield gets thin pointer docs; a repo predating the pattern keeps its working masters under their own names and canon docs land as maps, the ruling recorded in its CARVE_OUTS; never duplicate content). The HIVE-and-prune law stands with "a review cycle" FIXED AT 7 DAYS - taken from §4's own "weekly full-folder review pass", the only cadence the row states - so the prune trigger is measurable. templates/DEF_CHECKLIST_TEMPLATE.md and templates/PROVENANCE_TEMPLATE.md land verbatim in the DP-OS structural template set. The checklist is EIGHT gates (G1-G8, per the template), not the five of the cover's §2 - and the three extra gates (G4 board-record snapshot, G7 human Approve+merge, G8 business gates) are each already stated in the cover's own prose and checklist laws, so this corrects a heading, not the substance; corrected visibly, and the worked-example numbering (YSH G5, YSH G8) is NOT rewritten to match. Checklist laws carried whole: a gate never shown red is not a gate and premature stamps are corrected visibly; evidence states only what the trail can verify - approvals are formal GitHub Approve reviews, never chat assertions; open business gates stay ⏳ visibly open forever. §4's standing folder-review validator is NOT canon: recorded as a build candidate, no new DOR row (moratorium). LegalForge (BUS-0020) is the queued next conversion and converts under this standard; whether that session ran is not on the record. CORRECTED rather than held open: "proven twice" is proven ONCE. Greenfield WF-YOUSIGNEDHERE merged (PRs #73/#74, 44282c8/1e874fe, @ main); the brownfield half is pinned in MANIFEST.yaml to branch claude/def-rollup-ef6tdc f93933c with no merge sha, and SUB-0178 records PR 175 as BLOCKED by the unsatisfiable 1-approval gate with no reachable merge path. The map-not-duplicate lesson stands on the work done; the merge does not, and the D-entry says so. registered@2026-08-04 · ready@2026-08-04 · minted@2026-08-16 |
| SUB-0178 | minted | 2026-08-16 | merge-gate conformance (D217) + tier B invariant floorRULED 2026-08-16, operator (in-chat, HCE line approved): a=yes b=yes c=canonical d=inline — (a) D217 conformance sweep ratified; the four repo fixes stand as PRs. (b) Tier B invariant floor adopted: floors rise with MORE REQUIRED CHECKS, never approvals; WF-YOUSIGNEDHERE is the first Tier B repo. (c) Tier A means specifically the canonical Claude PR Review / review check — DP-MARKETING-WING adds it alongside its validate gate. (d) The governor rubric is INLINED into the workflow prompt and the pointer deleted: a workflow must not name an authority it cannot load. Drafting law: this D-entry EXTENDS the rule-2 text as amended by SUB-0160, never overwrites it. refreshed@2026-08-05 · refreshed@2026-08-05 · minted@2026-08-16 |
| SUB-0179 | minted | 2026-08-16 | kit/base-build lets credential files be committedRULED 2026-08-16, operator (in-chat, HCE line approved): both asks — kit/base-build .gitignore gains *.env with !*.env.example (templates survive by suffix), and .gitguard.json blocked_ext gains .env, the durable half of the fix. The three canary cases land in _05_tests: gmail.env staged must FAIL, server.pem staged must FAIL, gmail.env.example staged must SUCCEED. Verified both directions on a fresh git init; every future fork inherits the closed gap. ready@2026-08-05 · refreshed@2026-08-05 · minted@2026-08-16 |
| SUB-0180 | minted | 2026-08-16 | retrieval over reconstruction — the fabricated-reference class, the ladder, andRULED 2026-08-16, operator (in-chat, HCE line approved): all four artifacts in their operator-chosen vehicles — A1 identifiers are RETRIEVED, never typed (CLAUDE.md rule) + the DP-CODES corpus as a DP-OS-MCP fork, gated per-source by rule 39 before any ingestion and excluding git state by design. A2 the reference resolver as a pre-commit gate, shipping with the HAST_TOKEN red fixture. A3 the escalation ladder as a CLAUDE.md core clause: retry, then a DIFFERENT METHOD (different mechanism or trust boundary, not parameters), then human with the schema'd rundown; count per root cause; zero-retry classes never ladder. A4 mention-vs-use minted as a DEF — proven in production by the allocator reading its own bug report as 40 taken ids. Section 7's refs/heads/claims/* namespace fix is ratified as executed; claim-ref reaping stays an operator/PAT action. refreshed@2026-08-05 · refreshed@2026-08-05 · minted@2026-08-16 |
| SUB-0181 | minted | 2026-08-16 | PROXY — a local control plane that owns branches, holds pushes, and does not merRULED 2026-08-16, operator (in-chat): RATIFY PROXY as the estate's branch-and-merge control plane, scoped to what §4 actually states rather than to an invented four: it allocates ids and cuts the branch in one command by winning a ref push (refs/heads/claims/<id>, SUB-0180 §7), runs the governed repo's own gate config, holds the push at the transport, and READS BUT NEVER WRITES the project ledger — §4 says "It does not own the project ledger", so "owns four things" is NOT the ratified wording. The merge verbs stay ABSENT, not flagged off, and a reviewer checks that they stay an absence. RECORDED AGAINST §4, because the cover's phrasing is loose: --admin, force-push and --no-verify are not implemented as PROXY verbs, but they do NOT "appear nowhere" — proxy.py's own docstring and its hook carry "HONEST LIMIT: `git push --no-verify` skips this hook entirely." The push hold is ratified WITH that bypass on the record, not without it. GAP 5 RULED as a trip-wire: the local gate stands while exactly ONE write-access account exists; the moment a second exists it becomes self-certification by a party who can edit the certificate and stops counting as a gate. WHAT REPLACES IT IS NOT RULED — the cover proposes no replacement, so "moves server-side" is not ruled here. WHERE IT LIVES: NOT RULED TODAY, and the reason is recorded rather than glossed. §7 recommends "its own repo… but not before gap 1 below is closed", and §8.1 records gap 1 CLOSED 2026-08-05 — so the cover's own precondition for DP-PROXY is already satisfied and its own recommendation is (a). It is held anyway because PROXY/CONTINUITY.md (payload, not cover) sets a STRICTER bar for the same move — "still not before adoption is proved further than two repos" — and the payload therefore states two different preconditions. Interim custody stays in DOR; DP-PROXY approved in principle, created on whichever precondition the operator adopts. Note that §7 supplies an objection to ALL THREE options, including staying in DOR ("a runnable control living in the airlock is a category error once it is adopted"). HELD OPEN: gap 2 (no before/after run count — the 8→1 table is arithmetic from the workflow's trigger list) and gap 4 (claims/** ruleset, one unrun gh api call); and the §7-vs-CONTINUITY precondition conflict. RECORDED AS A SIXTH LIMIT, verified in this checkout 2026-08-16 and NOT from the cover: .proxy/gates.json is tracked, core.hooksPath is unset, and .git/hooks holds only .sample files, so no PROXY pre-push hook is live here. Hooks are untracked per-checkout state, so this does not contradict the 2026-08-05 held-push measurement; it does mean enforcement dies at every clone and worktree. RECORDED AS A SEVENTH: the cover's "**8** subcommands" is stale against proxy.py, which registers NINE — init-gates was added with SUB-0182 and never swept into §1. That is §6b finding 4's own defect class, third recurrence, inside the cover being ratified; ratification does not certify the count, and the sweep is owed before this row is closed. refreshed@2026-08-05 · refreshed@2026-08-05 · minted@2026-08-16 |
| SUB-0182 | minted | 2026-08-15 | gap 3 closed — PROXY's gates come from the governed repo, and it no longerRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: GREEN — yes, ratify: verified against live PROXY source in this repo (four-state gate loading, claim-ref push fix both present in code). Proven in a 2nd repo, honest limits stated. registered@2026-08-05 · ready@2026-08-05 · minted@2026-08-15 |
| SUB-0183 | minted | 2026-08-16 | 55 checks guard the data; none guards a claim ABOUT the dataRULED: prose-claim checking lands in the ADVISORY lane, not the sweep. (1) `DEF-*` in `lint_os.py` (BRK-0034), never blocking — on the cover's own ground: `structured_edit_guard.py` is advisory because "a check that blocks correct work gets bypassed within a week," and this check's sole exemption is self-declared. Promotion to a `C##` is available once it has gone red on a real instance with zero false FAILs across a stated run count, predicate written first — D101's discipline, that a gate never shown red is not a gate and a check ships with the fixture that fails it. (2) PATH SCOPE IS RULED HERE, because the cover's own two scope statements disagree: §2 proposes `draft/**/*.md`, but finding 3 sits in `docs/superpowers/specs/2026-08-04-structure-applier-design.md`, outside `draft/` — a lane scoped as proposed would not have caught one of the three findings that justify it. The lane reads any tracked `.md` that names a registry key; `draft/` alone is rejected as under-scoped. The claim-type boundary stands as the cover decided it: in scope, a document that cites a registry key and asserts a number or status about it; out of scope, free prose making no citable claim. (3) Verdicts. A claim that NAMES its registry and cannot be resolved reports `UNCHECKED` and PRINTS — `PASS_DOCTRINE`, D107, a skip is never silent. Prose asserting a count WITHOUT naming a source is out of the lane and reports nothing. THIS DEPARTS FROM THE COVER, deliberately and on the record: the cover holds that "the honest verdict there is `UNCHECKED`, not `FAIL`"; the departure rests on the cover's own stated worry that "a checker that reports `UNCHECKED` on most sentences may be noise rather than signal," and it is recorded as a departure rather than as the cover's position. (4) The historical-marker exemption stays NARROW: the marker must name the date or PR at which the claim stopped being true, and the exemption PRINTS every run (D107). An unbounded marker is a bypass, and the cover already says why — "mark any stale claim 'historical' and it passes ... printing is not preventing." NOT ASKED BY THE COVER, recorded as an operator-facing addition rather than a ruled requirement, because it gates the other three: whether citations must take a declared machine-readable form or the checker scans sentences heuristically. The three defects from PR #265 (findings 1 and 2) and #266 (finding 3) are fixed in `main` and are not reopened; this ruling is about the absence of a gate. minted@2026-08-16 |
| SUB-0184 | minted | 2026-08-16 | conformance is a RELATIONSHIP, not a checklist — the lane quadruple-checkRULED 2026-08-16, operator (in-chat): choice A — build the lane quadruple-check (legs A workflow / B variable / C webhook 2xx / D secret-via-C) as a DP-OS C-check; adopt section 3 (a conformance check compares RELATIONSHIPS, not parts) as canon and section 4 (guard a tool's EXIT CODE, not its presence) as a coding default. Per rule 8/D101 the check counts only once shown red against the dated 2026-08-05 estate states. registered@2026-08-05 · ready@2026-08-05 · minted@2026-08-16 |
| SUB-0186 | minted | 2026-08-16 | the step that proves a review was posted is satisfied by the placeholder commentRULED 2026-08-16, operator (in-chat): fix shapes 2+3 combined — the 'Prove a review was posted' predicate must require the action's terminal 'Claude finished' marker AND that the qualifying comment postdate the current run's start; the placeholder and stale comments from prior runs can never satisfy it. Implementation coordinates with the in-flight CI fix on branch claude/review-name-the-error rather than duplicating it, and ships the D101 fixture: a placeholder-only PR state must turn the step red. Propagates with the canonical template estate-wide. registered@2026-08-05 · ready@2026-08-05 · minted@2026-08-16 |
| SUB-0195 | minted | 2026-08-15 | closing a sign-off issue is AGENT work -- an instruction the operator must rememRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: GREEN — yes, adopt the 5-point flow (agent closes sign-off issues, operator only creates them). Self-contained, honest n=2 evidence, offers a fair counter-argument. minted@2026-08-15 |
| SUB-0199 | rejected | 2026-08-15 | CI runners have no live DP-side owner, no registry, and the record contradicts iRULED 2026-08-15, operator (in-chat): REJECTED: Do not confirm as-is: ready row SUB-0213 (impact) already corrects its srv1-exposure claim and folds this ask into its own five-part ruling. Rule SUB-0213 instead. rejected@2026-08-15 |
| SUB-0202 | minted | 2026-08-16 | CAN-0084 is still forming, and the population its promotion trigger names cannotRULED 2026-08-16, operator (in-chat): ASK 1 - a canon file alone does NOT satisfy CAN-0084 obligation 2. The measured unauthenticated 404 on agenticbusiness/WF-LOCAL proves the reservation is invisible on the path an admin actually walks: FileOS-HASM/WF-LOCAL is private, so the browser check a person runs returns 404 rather than a redirect, and "nothing in the path between intention and creation carries CAN-0084's rule." WHICH SURFACE carries it is HELD OPEN across exactly the three the cover names - an org-level ruleset, a repository-creation policy, or a named row in the operations runbook. The cover ranks none of them, so none is ruled the weaker fallback here, and no capability check is prescribed by this ruling. ASK 2 MINTED as written: CAN-0084's promotion trigger must NAME how the population is measured, because "an unmeasurable trigger is a gate that cannot go green *or* red." The 71-vs-78 discrepancy STAYS AN OPEN UNKNOWN and is NOT closed by this ruling - the cover's finding is "the honest reading is *unknown*, not *grown by seven*", and it records this row's 78 as a code-search FLOOR that matches the string anywhere in a SOVEREIGN_LINK.yaml and measures the index, not the estate. No method is imported to close it: SUB-0100 measured a DIFFERENT population a DIFFERENT way (109 repos enumerated, every SOVEREIGN_LINK.yaml read directly; 78 = repos carrying a link file, 71 = the stale subset of those 78, 3 correct, 4 with no kernel line), so its 78 and this row's search-derived 78 are not the same 78, and the delta is a subset relation, not "search-derived vs file-derived." SUB-0100's file-read enumeration is the RECOMMENDED method to write into the trigger; whether it reconciles the two counts is a separate question this row did not answer and this ruling does not answer for it. ASK 3 MINTED - record the 404 on CAN-0084 whichever way ask 1 lands; it is one unauthenticated request, cheap for anyone to repeat. NOT RULED: CAN-0084's other two obligations - whether the 14 DP-* pointers carry the three-tier form, whether BASE_BUILD_KIT emits the new shape - were never checked by this row, which says so itself, so promotion status is untouched and this ruling is not a verdict on it. registered@2026-08-09 · ready@2026-08-09 · minted@2026-08-16 |
| SUB-0203 | minted | 2026-08-16 | the estate's permissive licence set, and the notice-preservation duty its lRULED: MINT-LEAN, five asks separately. (1) ADOPT the 28-licence set in TWO GROUPS -- Group 2's notice duty is the field that decides whether work is owed, and a flat list erases it. It lands as an EXPANSION of draft/registries/LICENSE_REGISTRY.md's 6-entry "Permitted for intake" list under the D116 intake bar; that list is superseded, new entries take LIC ids, and the ad-hoc per-repo `allowed` lists ask 1 names are superseded with it -- each repo's checker reads the registry, and no second permitted list is minted in draft/defaults. (2) attribution_required + the notices gate GO IN THE BASE KIT, ruled FOR LICENCES ALONE: SUB-0194 and SUB-0201 sit at staging, so the general travelling-enforcement question is not before this board and this row does not settle it. (3) CANARY-PLANT RULE MINTED GENERALLY -- a plant may not hardcode a value its own repo's policy can legalise; two independent repros, same plant and same ruling in DP-CONVERTERS-API and DP-CONVERTERS. (4) The four odd entries stay ALLOWED WITH RECORDED CONDITIONS, flags not gates. (5) DECLARES-vs-BINDS MINTED GENERALLY -- the shape of any check comparing a considered judgement against a machine-readable fact -- with the enforceable form landing on the licence surface: `licence:` is the effective obligation, `declares:` is the package's own claim, and because `declares:` is the one field capable of MUTING a checker, a divergence with no `via:` explaining it is itself a failure and carries its own plant. HELD OPEN: counsel read of BSD-4-Clause's advertising clause before anything ships under it. RECORDED, NOT RULED: C-LIC-6 is proven by its canary and not by a live case, and AFL-3.0 / ECL-2.0 / MS-PL / MulanPSL-2.0 are ruled but never met in this estate -- the mint is not evidence of field use. minted@2026-08-16 |
| SUB-0205 | minted | 2026-08-16 | A ruling batch is a sweep over a closed population, and it accounts for nothingRULED: MINT-LEAN. The row's own falsifying test was NOT RUN: it asks whether deferrals were reasoned OFF-board -- operator notes, session transcript, chat -- and that is unreadable from this board. What is verified is only the on-board form the row already asserted: log.jsonl carries nine event types (registered, staged, ready, refreshed, amended, minted, rejected, established, reviewed), none a batch or deferral event, and registry.yaml carries no deferral field. The row is therefore ruled on the NARROWER CLAIM the cover itself names -- the accounting is not on a surface the board can read -- and is NOT rejected, because that narrower claim is the one the mechanism fixes and a re-file buys nothing but a date. (1) THE RULING BATCH IS ADMITTED as a fifth CAN-0061 consumer; CAN-0061 takes rev 3 recording the three outcomes at submission grain (extension precedent: rev 2 = SUB-0140 item 1, ruled 2026-08-03). Mechanism is DOR-side: a batch-closed event in log.jsonl naming the swept population and every row's disposition. It enters SCHEMA.md's REPORTS list first and becomes a refusal only after backfill -- that staging is THIS RULING'S addition, taken from SUB-0206 (ruled 2026-08-11), not something the row asked for. FORWARD-ONLY: the 2026-07-27, 08-02 and 08-03 batches are not retro-accounted, so the 50 rows this row measures stay collapsed; a one-time retro sweep is separate work and is not ordered here. (2) A deferral carries a REASON FROM A CLOSED VOCABULARY -- not a bare mark, not free text; the closed vocabulary is the row's own opening sentence, which its ask omits. (3) No ordering rule; SUB-0144 untouched. CAN-0061 stays `forming` with `canon: null` -- not for want of consumers (its own trigger fired at four) but because canon is UNSET for want of an implementation in DP-OS, and a DOR-side event supplies none. HELD OPEN: whether deferrals were reasoned off-board, and the retro question above. registered@2026-08-09 · ready@2026-08-09 · minted@2026-08-16 |
| SUB-0207 | minted | 2026-08-16 | Rule 7 says "enters", and a session read that as excluding changesRULED 2026-08-16, operator (in-chat, HCE line approved): (1) rule 7 amended — nothing enters OR CHANGES IN the OS without an ID, and there is one record door. (2) The D-entry is ratified. (3) A forming-to-active CAN promotion files as update-existing against the NAMED CAN — chosen deliberately; matches the 50-row practice and adds no new machinery. (4) Door backfill: CAN-0041 backfilled via SUB-0017's decided_ref; CAN-0003 and CAN-0042 get a DP-OS-side search and are recorded unknown if unfound. The past is not audited by this ruling — a clean rule going forward, per the row's own NOT-MEASURED disclosure. ready@2026-08-10 · refreshed@2026-08-10 · minted@2026-08-16 |
| SUB-0211 | minted | 2026-08-16 | 104 files of uncommitted work in WF-LOCAL's checkpoint refs, 13 sets recoveRULED 2026-08-16, operator (in-chat, HCE line approved): (1)+(2) the DOR payload archive — 38 per-branch patches plus wip_index.json with base-reachability — is the RECOVERY OF RECORD for all 104 files, including the 13 orphaned sets whose refs were the only copy; per-file value triage is future work, not a blocker. (3) The checkpoint refs are thereby cleared for retirement with WF-LOCAL. (4) Reusable law minted: no repo is frozen, archived, or pruned without sweeping refs/heads/checkpoint/* for work that exists nowhere else. minted@2026-08-16 |
| SUB-0212 | minted | 2026-08-16 | A URL can be corrupt before it is ever resolved, and CAN-0073's reach is onRULED: MINT, three asks. (1) SHAPE CHECK ADDED ahead of resolution as a named step of CAN-0073 (rev 2): no character outside the unreserved/reserved sets, and EXACTLY ONE SCHEME, adopted as the row writes it. NO POSITIONAL EXEMPTION -- a scheme appearing after a path or query separator is precisely the defect this row measured (`https://arxiv.org/html/2603.28052v1/https://arxiv.org/pdf/2603.28052v1`), and an exemption phrased that way would exempt it, leaving one of the two demonstrated defects uncaught. If a wrapper form (archival prefix, redirect) must carry a second scheme, it is admitted by percent-encoding or by a named allowlist of prefix hosts and reported as a WARN carrying that annotation -- never a silent pass. Recorded as an application of CAN-0049's whose-side axis (rev 2, SUB-0110): a corrupt transcription is OURS and must never ship as "the source is dead". (2) REACH: OPTION 1 -- CAN-0073 states its narrowness in the slot and stays scoped to curated legal sources; reason of record is that its canon is resolve-AND-ARCHIVE (verify_sources.py + fetch_statutes.py + docs/legal/statutes/), an obligation options 2 and 3 would impose estate-wide uncosted. (3) The four properties (GET not HEAD, follow redirects, browser UA, cert store trusting wikipedia.org) are RECORDED IN CAN-0073 REGARDLESS of reach. Ask 3 is written as conditional on reach widening and is taken anyway, on the row's own reason: a docstring is not reachable from another repo, and that is true at any reach. No method change; the 122 URLs are not DOR's business. HELD OPEN: the row's NOT MEASURED item -- whether any other estate repo has independently rebuilt a link checker. Option 1 is ruled on one session's evidence and the row says so plainly; a sweep finding other independent rebuilds reopens reach without needing a new row. registered@2026-08-10 · ready@2026-08-10 · minted@2026-08-16 |
| SUB-0213 | minted | 2026-08-16 | a CI runner standard, and the measurement that says why it is overduePAYLOAD SUPERSEDED by SUB-0216 rev 2 (its ask 1: "same five asks, corrected numbers"); rev 1 stays addressable as filed under `supersedes_rev:`. Counts of record are rev 2's: population 113, not 100 — `gh repo list --limit 100` returned a page, and `agenticbusiness` is a user account, not an org; 74 with workflows, not 72; 53 fixable-billed, not 51; 21 on the $0 lane at survey time. ROUTING, stated rather than assumed: asks 1 (adopt as protocol), 2 (srv1 deviation) and 3 (runner registry) are DEFERRED to SUB-0216, which carries them forward as its own ask 4 and is ruled in this same pass — this row records the deferral, not the outcome. Recorded against that deferral: the operator's rejection of SUB-0199 (registry `decided_ref`, 2026-08-15) reads "ready row SUB-0213 (impact) already corrects its srv1-exposure claim and folds this ask into its own five-part ruling. Rule SUB-0213 instead" — read strictly, that directs all five asks HERE. Operator picks which row carries 1/2/3; the terms are identical either way. Ask 4 (the hosted-fallback repos) is ANSWERED, not moot: the operator ruled "[51 billed] needs to be 0. no exception" and the rollout executed 2026-08-10 — 53 webhooks, 53 variables, 15 PRs merged green, fixable-billed 53 → 0 — under the carve-out "0 billed, EXCEPT job classes for which the estate owns no runner," with TWO STRUCTURAL EXCEPTIONS (DP-HIGGSFIELD-GATE's Windows canary, DP-CALENDARS' implicit Pages deploy). Reported as two numbers, never one. Ask 5 GRANTED and ruled HERE, which is also where SUB-0199's rejection routed it: a host sweep MUST enumerate `systemctl list-timers`; a path grep plus cron is not a sweep. SUB-0199 claimed "one systemd unit referencing WF-LOCAL, no cron, no checkout — the exposure is that single runner and nothing else"; srv1 in fact carries six estate timers and four units referencing `WF-*` repos, one failing every 15 minutes since the 2026-07-30 rename. Findings PRESERVED as the record: `cp -a` left `bin` an absolute symlink, so `config.sh` read the SOURCE runner's config and refused with "already configured" — read three times as an obstacle when it was a guard — and the command carried `--replace`, which on success would have silently retargeted the only persistent runner on the host. STILL OPEN from rev 1, not closed by rev 2 and not to be lost in the supersession: §6's checklist has no automated checker and no drift log exists (both fold into ask 3); 13 repos carry no required status check; DP-OS carries an ARM label in the x86 slot (`WF_RUNNER_LINUX=wf-linux-arm`), which works today and means DP-OS can never fall back to a real x86 runner. HELD OPEN with a named follow-on row: the rename cascade — one rename, four downstream failures (dead merge lane, 404 on deregistration, clone stranded 24 commits behind, `wf-boards-refresh` failing every 15 minutes) — carries no ask and no checklist. minted@2026-08-16 |
| SUB-0214 | minted | 2026-08-16 | Five product capabilities that run today and have no slotMINTED: four CAN slots, status active, canon SET to the named build, each stamped "documented entry point run 2026-08-09"; ids allocated from the same sequence as SUB-0224's CAN-0093 so the batch does not collide. (1) E-signature Execution - WF-YOUSIGNEDHERE/BLD-0108, 143 tests: 140 pass, 0 fail, 3 skipped. (2) Drawing-to-Model Generation - WF-2Dto3D/BLD-0131, 752 passed, 2 skipped, 6 xfailed; the xfails, the repo's own declared T0-T4 clustering defects, recorded in the slot. (3) Drawing Take-Off & Bill of Materials - same build, wf2d3d/takeoff/bom.py + ten test_blueprint_* suites; its text carries a see-also disambiguating it from CAN-0035 SBOM, and CAN-0035 is not edited. (5) Clean-Room Reimplementation - DP-CLEANROOM/BLD-0079, 50 pass; the MECHANISM slot, sitting under SUB-0090's AGPL doctrine. CORRECTION RECORDED VISIBLY, not silently applied: the cover calls SUB-0090 "(ready)"; the registry carries it at status minted, decided 2026-08-03, decision confirm - the cover's label is stale and the slot cites the registry state. (4) Model De-Versioning is FOLDED into slot 2 as a named sub-capability, not rejected - it cites no module and no suite of its own, and folding is the cover's own stated fallback. STAMPED ON ALL FOUR SLOTS: tier 3 proves the documented entry point RUNS, not that the capability is correct - correctness is NOT MEASURED by this row. The fourteen unbuilt capabilities the cover names are REFUSED as backlog under CAN-0060, WITHOUT PREJUDICE: the cover's own NOT-EXCLUDED states that a capability living in a repo carrying no BLD record reads here as "no build" (SUB-0212's class), so the refusal rests on present evidence and a later-found build record reopens any of the fourteen without re-argument. HELD OPEN: DP-CLEANROOM's README says 21 tests; there are 50. registered@2026-08-10 · ready@2026-08-10 · minted@2026-08-16 |
| SUB-0216 | minted | 2026-08-16 | runner standard rev 2 -- a1 measured, the count corrected, and the onboarding stGRANTED, in four parts — noting what this row is: ask 2 RECORDS executed work, asks 1, 3 and 4 AUTHORISE new work. (1) rev 2 supersedes SUB-0213's payload; rev 1 stays addressable under `supersedes_rev:`. Counts of record: population 113, 74 with workflows, 53 fixable-billed — not 100/72/51. Recorded with them, because it is the structural finding and not a detail: `agenticbusiness` is a USER account, not an organisation — `orgs/…/hooks` returns 404, there is no org-level webhook to inherit, so every repo needs its own `workflow_job` webhook in addition to the variable, and the ORDER is load-bearing. Webhook is row 2 of the §6 checklist, variable row 3; reversed, `runs-on` resolves to a label nothing answers and jobs queue forever with no error surfaced — "before the change a repo is billed but working; after it, free and broken." Row 2 did not exist before 2026-08-10. (2) Webhook rollout already granted and EXECUTED 2026-08-10 — 53 webhooks created on a1 (secrets from `/etc/wf-actions-orchestrator.env`, passed by environment, never on a command line), 53 variables, 15 PRs merged green, fixable-billed 53 → 0, 2 structural exceptions — RECORDED, not re-ruled. The operator's carve-out stands as written: "0 billed, EXCEPT job classes for which the estate owns no runner," an exception names a JOB CLASS the estate owns no runner for and never a repo that is awkward, reported as TWO numbers, never one: fixable-billed (stays 0) and structural exceptions (permanently visible) — currently DP-HIGGSFIELD-GATE's Windows canary and DP-CALENDARS' implicit Pages deploy. Two stated imprecisions ride with the number rather than being smoothed off it: the metric counts REPOS CONFIGURED, not JOBS ROUTED, so DP-CALENDARS reads as on-lane while its Pages job bills; and the 2-minute variables-before-webhooks window is unaudited beyond an observed queued-job count of 0 — "0 jobs stranded — by luck, not design." (3) Sweep-completeness GRANTED as a standalone estate decision, cited by the PRT rather than living only inside it: a population-wide claim states its population and proves it complete. Its evidence is minted with it, because the principle without the instances is a slogan — four silent successes in this session's own tooling (`gh repo list --limit 100` against a 113-repo account reported a floor as a count; `grep vars.WF_RUNNER` scored a PARTIAL chain compliant, leaving the variable inert on 10 repos while every check read green; `gh run rerun` replays original configuration and never re-evaluates `runs-on`; `gh api` printed a 404 body to STDOUT, so 16 PRs were skipped while the script reported success) plus the rewriter's end-of-line anchor that skipped DP-HIVE's `heartbeat.yml` — the one file annotated "never hardcode the runner ($0-Actions posture)." (4) Carried asks, ruled item-by-item: (a) adopt rev 2 as a PRT record in DP-OS `draft/`, applying SUB-0082's 2026-07-31 ruling on rows 1/5/10 ("fold into DP-OS `draft/` as records. Do NOT mint hub repos"), which makes SUB-0213 ask 1's "no protocol home" blocker stale; (b) runner registry MINTED as the OUTPUT of a registered generator (door `BRK-####`), never hand-kept, with the drift log that makes it a gate rather than a photograph; (c) srv1 persistent deviation RULED — migrate DP-CONVERTERS and DP-CONVERTERS-API to JIT on a1, srv1 runners retired only after one green JIT run on each repo. a1 is reachable (`id_ed25519_oracle` on disk, `oracle-a1` at 100.64.90.32, user `opc` not `root`), and `MAX_CONCURRENT=3` with shared images means added repos raise queue depth, not peak load; (d) `systemctl list-timers` HELD to SUB-0213, where SUB-0199's rejection routed it. ALSO RULED, folded in from §5 and not optional: `ps aux` on a CI host is a CREDENTIAL DISCLOSURE, not a diagnostic — the runner launches with `--jitconfig` in `argv` and it decodes to the runner's RSA private key. Incident filed to DP-HIVE, key revoked; revoking a JIT runner requires cancelling its job first, since `DELETE` returns 422 while one is running and there is no revoke-in-place. HELD OPEN: 13 repos with no required status check; DP-OS's ARM label in the x86 slot; and a1's 7.0 GB free against srv1's 18 GB — the safety of 53 added repos is argued from shared images and `MAX_CONCURRENT=3`, which is reasoning, not a load test. minted@2026-08-16 |
| SUB-0217 | minted | 2026-08-16 | CORRECTED -- 113 of 172 build records DO name their capability, and nothing indeRULED 2026-08-16, operator in-chat: MINT-LEAN on the surviving ask. APPROVED ask 2: a registered script aggregating `about:` across the 172 draft/builds records into a capability index - rule 7 door (a), derivation, mints nothing. Step 1 before any code: list the registered generators and confirm none already aggregates; if one does, this row collapses to the 59. The index ships with its own reader and blocks on nothing; the reader must read `about:` plus the ownership fields `repo:` and `source_path:` whose omission produced the withdrawn 24. (The proposed shared record accessor named in the open-question list as SUB-0220 appears nowhere in this cover or its MANIFEST and is not relied on here.) AFFIRMED ask 4: no CAN slot per capability - CAN-0060 via CAN-0061, one consumer validates no abstraction. Asks 1 (`delivers:`) and 3 (172-record backfill) stand WITHDRAWN by the row's own appended correction - 113 of 172 already carry `about:`, and nothing was written to DP-OS. The 59 blanks: fetch and fill the 22 that have a GitHub description. The remaining 37 are NOT settled by this ruling. The cover contradicts itself here - it asks that they "stay empty and print by name, exactly as BLD-0131 already does", while BLD-0131 in fact carries `about: "NONE - the repo carries no description. Not probed beyond existence, size and push date."`, which the same cover calls "a properly recorded checked-absent" applying CAN-0061's three-outcome discipline. OPERATOR CHOICE, not a finding: (a) write the BLD-0131-style checked-absent string on all 37, consistent with CAN-0061 - noting the cover states these 37 were checked and "have none", so this is a checked-absent and not an unprobed record; or (b) leave the field unwritten and print the 37 by name. Absent an operator pick, follow the precedent this cover explicitly endorses: (a). HELD OPEN: whether `about:` acquires a controlled vocabulary - the cover states plainly that this is "a preference, not a measurement" and asks the ruling to treat it as one; free text stays for now, and the question is recorded against `about:` rather than dying with the withdrawn `delivers:`. BLD-0005 and BLD-0077, the two residual UNKNOWNs, noted as a note, not actioned. ready@2026-08-10 · amended@2026-08-10 · minted@2026-08-16 |
| SUB-0218 | minted | 2026-08-16 | DP-OS-MCP's review gate refused correctly for six days and two PRs merged pRULED 2026-08-16, operator (in-chat): ASK 1 MINTED - a check with zero passes ever is a signal to INVESTIGATE, never a row to skip. Per the cover, "the skip was right and the reading behind it was wrong": skipping was correct under SUB-0132 (registry: minted, decided 2026-08-03, "A gate no one present can satisfy is an outage, not a control"), and this row adds the half SUB-0132 does not cover - what happens after the skip. ASK 2 RULED as a norm, not a mechanism: a visibly red check is a stop whether or not a ruleset exists - "no ruleset" is NOT out of scope, or the 13 repos with no required status check read as licence to merge past red. No fault assigned for the two 2026-08-04 merges; whether it was deliberate or unnoticed "is not recorded anywhere and is not guessed at here." ASK 3 STANDING CONDITIONAL: require `review` on DP-OS-MCP after its next PR goes green - the SUB-0132 ordering, one repo later - carried on the runner-standard row (SUB-0216, still `ready`) so it is not a free-floating TODO. ASK 4 ACCEPTED, DEFERRED: "this specific check has never been green" joins SUB-0216 §6 when SUB-0216 is ruled, recorded now so it is not rediscovered; §6 today checks only that at least one green run exists. HELD OPEN: the check's current health is UNPROVEN - there are no open PRs on DP-OS-MCP, and the re-run failure was a compare-two-commits artefact, not a defect. CARRIED, not treated as closed: the 65-repo sweep tested PRESENCE, not VALIDITY, and only CLAUDE_CODE_OAUTH_TOKEN was swept - "0 of 65 missing" establishes the absence was not systemic, not that any token is live. This ruling adds NO ruleset to DP-OS-MCP; the cover declines that deliberately, because "adding branch protection to a repo mid-investigation is a change the operator should choose." minted@2026-08-16 |
| SUB-0219 | minted | 2026-08-16 | the last five WF-LOCAL branches, including a live deployment no registry knows aRULED 2026-08-16, operator (in-chat, HCE line approved): all four asks — (1) rescue/stranded-main-state recovered FIRST: its registry facts (pay.fileos.cloud deployed; INFRASTRUCTURE_REGISTER + proxy_port_registry entries) route to the live owner DOR names; liveness itself stays a DP-side check — recording is not confirming it is up. (2) claude/rules-pointer-retarget: WF-AUDIO-CREATION onboarding routes through the door as its own row. (3) The three closed-unmerged branches route to DP-HIVE per D197. (4) Counting correction minted as reusable law: 'commits not on main' is not a measure of stranded work in a squash-merge repo — sweeps must test merge state, not commit reachability. minted@2026-08-16 |
| SUB-0220 | minted | 2026-08-16 | 110 scripts read the estate, and no two agree howRULED 2026-08-16, operator (in-chat): MINT (lean). Ask 1 YES - one accessor module under scripts/, knowing both record shapes (term:-shaped and the intake name:/owner:/about: shape), the full field set incl. about:, repo:, source_path:, front matter as the block BEFORE the closing ---, and reading a detached worktree at origin/main, never the working clone. Ask 2 RULED new-only (D132 MVP-first): new checks must import it; no 110-script migration ordered. One named exception, offered not required: checks_records.py (C18-C21) may be refactored onto it as first consumer, being the one script the row shows already holds the shape knowledge unexported - the row does not ask this, so it is a carve-out from the new-only rule and not the start of a migration. Ask 3 CONFIRMED out of scope: fetching/HTTP posture stays with verify_sources.py and SUB-0212; defect 1 is cited as evidence of the class only. HELD OPEN: whether BRK-0109's detached-worktree rule generalises beyond this accessor to all sweeps. Accepted on the row's own limits - it addresses defects 2, 3 and 5 directly, 1, 4 and 6 only by habit; the evidence is six defects by one agent in one session, self-reviewed under PSN-0001 rather than peer-reviewed, and what carries it is the measured 3-of-110 about: count, a property of the codebase rather than of the author. registered@2026-08-10 · ready@2026-08-10 · minted@2026-08-16 |
| SUB-0221 | minted | 2026-08-16 | A task that completes without producing what was authorised must say soRULED 2026-08-16, operator (in-chat): MINT (lean). Mint one PSN-* fixing the required CONTENT of a round-limit handback, ruled fresh here (the 2026-08-10 "THIS IS PERFECT!" approved one message, not a permanent rule). All four parts binding: (1) name the outcome in CAN-0061's vocabulary at task grain - completed-as-authorised / completed-differently / could-not-complete; (2) attribute the error plainly; (3) list what is needed as operator decisions, not status - each item a question only the operator can answer; (4) say whether the work should continue, including recommending its own cancellation - a ticked "considered stopping" does not satisfy it. Parts 2 and 4 are ruled in on the row's own condition - for what they give the operator, not for how they sound: an unattributed wrong instruction teaches the operator to distrust their own direction, and a handback that cannot recommend its own cancellation leaves no cheap way to kill work that is not earning its place. The row's warning that 2 can read as pre-emptive apology and 4 can become theatre is carried into the PSN as the failure mode each part must avoid. CAN-0061 is cited, not amended. NOT ruled, per the row: no change to the three-round rule, no new state or field, no fill-in template. The PSN must carry its limit in its own text: N=1, self-authored and self-graded. HELD OPEN: what a handback blocked externally or on a pending operator decision must contain - untested. registered@2026-08-10 · ready@2026-08-10 · minted@2026-08-16 |
| SUB-0223 | minted | 2026-08-16 | an authenticated deploy has no public liveness surface, so "deployed"RULED 2026-08-16, operator (in-chat, HCE line approved): /__build adopted as the estate default for every authenticated deploy — a public fingerprint (sha, built, round, counts ONLY) in front of the auth gate; redeploy scripts assert served sha equals built sha and a mismatch is a FAILED deploy; a host without /__build reports UNCHECKED, never PASS (D107/DEF-VER-04). The 2026-08-10 approval covers exactly this fingerprint; a richer payload needs its own ruling. Unblocks PRT-0030's atomic gate, which is reachable only via execution-test. minted@2026-08-16 |
| SUB-0224 | minted | 2026-08-16 | Large data lives on Google Drive, and nowhere elseMINTED as CAN-0093 (id per the cover, next free as measured 2026-08-10 — re-verify before writing, since this batch also mints new CAN slots for SUB-0214; allocate both from one sequence): Google Drive is THE home for large data - any payload too big or too binary for git. The operator directive of 2026-08-10, "no exception right now", stands. Boundary ruled: CAN-0078/HASM keeps application persistence, Drive takes large-data payloads. D29 is NOT repealed - CAN-0093 narrows it, and the narrowing is recorded in BOTH records (Check 3). CAN-0093 inherits Sovereign_Backup_Protocol's encryption obligation in full for the sensitive class (AES-256/age/gpg, key offline, never beside the archive). Slot text mandates ID-ADDRESSED destinations - Drive keys on id, not name. Review trigger 2026-11-16, three months from ruling: the date is DOR-SET and marked as such - the cover names none; unreviewed, "right now" lapses rather than hardening (D94). Evidentiary scope stamped on the slot: one .gitignore comment on one host - the cover claims no estate-wide measurement and neither does this ruling. HELD OPEN, not swallowed: no numeric size threshold is fixed for "too big for git"; no owner, detector or expiry exists for Drive debris (516 duplicate-name folders, still present 15 days after the same-day fix as measured at filing 2026-08-10, 21 days as at ruling); the enforcement gate is separate work. RECORDED, not filed as a new row (moratorium): the cover's own follow-on - DP-PROXY-REGISTRY/scripts/build_hosts.py already collects per-host disk and service inventory over SSH, and its published board is stamped 2026-07-24T15:24:54Z, 17 days stale at filing, reporting srv1 at 103 GB/73% against a measured 96 GB/79%. The instrument exists and is not being run; running it is the check that would have caught this finding without a human looking. minted@2026-08-16 |
| SUB-0226 | minted | 2026-08-16 | the session-close report card is not collectable; move the trigger to branch cloRULED 2026-08-16, operator (in-chat, HCE line approved): the report-card trigger moves from session close to BRANCH CLOSE (merge or delete), atomic with the close — a close that has not collected is not a close; enrolment is derived, not declared, dissolving the invisible-vs-exempt hole; the card records the BRANCH's work. Formalizes the operator's verbatim 2026-08-11 ruling. The compliance check is deliberately unbundled and owes its own red fixture before it can gate. minted@2026-08-16 |
| SUB-0230 | minted | 2026-08-16 | Edge Construction -- the rules for making an edge, and the checks that prove theRULED 2026-08-16, operator (in-chat): R1 = flow (one name for the hub-to-hub flow relation); R2 = yes, canon and can2canon are separate relations; R3 = grp2hub is an ALIAS of contains (one containment relation; TRM-0014 one-parent binds once); R4 = assign build_registry_book.py's edges a kind, no written exemption; R6 = correct TRM-0027's mindmap count 3 to 4. R0 (edge field name kind) and R5 (mint the four graph-type TRM records) were pre-ruled 2026-08-11 in-doc and are hereby recorded in the registry. R7 (which single TRM binds a generator claimed by several, esp. flowmap under TRM-0013 no-cycles vs TRM-0027 cycles-permitted) is EXPLICITLY HELD OPEN and owed its own row — this mint does not decide it. PRT id owed to the source repo. refreshed@2026-08-12 · refreshed@2026-08-12 · minted@2026-08-16 |
| SUB-0233 | minted | 2026-08-16 | Exhaustive Source Ingestion Protocol -- when an ingestion may claim it read everRULED 2026-08-16, operator (in-chat): MINT (lean), CONDITIONAL, as a PRT - DP-OS gains a protocol for when an ingestion may claim it read everything; the gap against D101/C30/D107, which all govern check-PASS, is accepted as real. CONDITION on force: the submission names only "LIST → READ → EXTRACT → …" and does not reproduce the seven steps, so the id may be claimed now but the PRT binds nothing until its full text is transcribed into the estate from the Drive protocol.md and readable on the board. The seven steps are then carried IN the PRT as the ruled text with the Drive path as provenance - this deliberately overrides the row's own clause that "the source is the living authority and wins on any disagreement": D29 keeps the bytes and the bulk artifacts on Drive, but a mandatory rule cannot have its text change off-estate. H2: scope is set here, not inherited - MANDATORY only for an ingestion that publishes a completeness or coverage claim, advisory otherwise. H1: the vocabulary-replacement clause is NOT ruled in and the PRT retires no estate language - this drops only the claim on "1.2x review / deep review / thorough audit" vocabulary, NOT the countable gap check, which is the substance of the ask and is ruled in. H3 adjacency accepted on the submitter's reasoning, on condition the PRT states the D107 boundary in its own text. Per the row's returns_as, the PRT id is cited back in the source document and the three Drive artifacts collapse to one record plus pointers. HELD OPEN: (a) whether gemini_integration.md's landing in agent operating instructions is ruled with this PRT or separately - it stays a pointer for now, undecided on the merits; (b) whether ingestions already published must be re-run under it - the row does not address retro-application. registered@2026-08-11 · ready@2026-08-11 · minted@2026-08-16 |
| SUB-0235 | minted | 2026-08-15 | A real AGT-0002 sweep found in the estate -- and the sibling document it contradRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: GREEN — yes: cite as 3rd AGT-0002 exemplar, route the SOP-vs-audit contradiction to BLD-0033's owner. Organic evidence, honest holes incl. its own staleness caveat (H1). registered@2026-08-11 · ready@2026-08-11 · minted@2026-08-15 |
| SUB-0236 | minted | 2026-08-16 | No Silent Drift - what a generated artifact owes, and the three properties thatRULED 2026-08-16, operator (in-chat): choice A — mint No Silent Drift as an OPT-IN protocol (PRT id owed), NOT an estate DEF-*; incorporates the filed 2026-08-12 correction: clause C excludes feedback-loop artifacts (generator triggered by the verification itself) — excluded by field or untracked per D159, never committed-and-diffed. Scope is consistent with SUB-0243's CROSS-FOOT ruling (a CHECK, not an estate default), which refutes completeness for 3 of the 10 motivating defects. refreshed@2026-08-12 · minted@2026-08-16 |
| SUB-0239 | minted | 2026-08-16 | One door for seven records minted on operator instruction in a sessionRULED 2026-08-16, operator (in-chat): choice A — all seven records ratified through this door (rule 7 path b): BLD-0175, BLD-0176, BLD-0177, BLD-0179, BLD-0180 plus hubs DP-GRAPHS and DP-REPORTS. PULL SURFACE is accepted as the named attribute sufficient to supersede R2/Q79 for DP-REPORTS: R2's finding stands (every repo carries its reporting; TELEMETRY keeps the report cards) and DP-REPORTS owns only the surface they are read from. The five '# door:' comments become live 'door: SUB-0239' fields; C38 goes green. minted@2026-08-16 |
| SUB-0243 | minted | 2026-08-15 | CROSS-FOOT — assert a derived population against the source's own publishedRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: Pick GTE-#### as a CHECK, not an estate DEFAULT yet — mechanism and plant already built and proven; cheap, self-limiting to totals-publishing sources. minted@2026-08-15 |
| SUB-0248 | minted | 2026-08-15 | BRK-0120 treats every unrecognised argument as "do it" — `--help` perfRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: Yes - add an argv guard (unknown flags exit 2) to wip_checkpoint_autopush.py plus a fixture proving it; code sketch given is correct, holes H1-H4 disclosed not hidden. ready@2026-08-13 · amended@2026-08-13 · minted@2026-08-15 |
| SUB-0251 | rejected | 2026-08-15 | The workbook and the org chart disagree about 31 repos - but only 8 are disagreeRULED 2026-08-15, operator (in-chat): REJECTED: RED — superseded: SUB-0253 (next day) shows a stale-branch count (true 25/18 not 23/8, 15 not 17 off-chart). Rule SUB-0253 instead; even then, splits 6 rulings from 1 confirm. rejected@2026-08-16 |
| SUB-0252 | rejected | 2026-08-15 | 17 repos are in the workbook and on no hub - a repo nobody placed obeys no hubRULED 2026-08-15, operator (in-chat): REJECTED: Do not confirm: '17 unplaced repos' was measured against a stale branch (report/unattached, not origin/main). Ready row SUB-0253 recomputes canon as 15. Rule SUB-0253 first. rejected@2026-08-16 |
| SUB-0253 | minted | 2026-08-15 | SUB-0251 and SUB-0252 were measured against a stale branchRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: Yes - corrected origin/main figures (25 sheet-lag / 18 genuine in 4 classes / 15 off-chart) supersede SUB-0251/SUB-0252's stale report/unattached numbers; rule the 4 classes, not 18 rows. minted@2026-08-15 |
| SUB-0254 | minted | 2026-08-16 | DP-EDUCATION-SOCIAL's setups become LEAVES of MARKETING WING - containment,RULED 2026-08-16, operator (in-chat): asks 1-2 — it is CONTAINMENT, not an edge (Q89(4)): the setups become leaves of MARKETING WING, but leaf creation stays DEFERRED because 'once done' names an event nothing detects; a leaf that should exist later is not a leaf that exists. If the setups carry credentials they enter env_inventory by NAME only — SECURITY owns values; leaves hold facts (rule 6, PRT-0004). Ask 3 (whether PROXY->MARKETING WING 'SOCIAL MEDIA LOGINS' is the same capability arriving from another direction) is NOT ruled — recorded as a verification task owed before either route is retired. minted@2026-08-16 |
| SUB-0257 | minted | 2026-08-15 | The generators have a dependency DAG and nothing declares itRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: Per-brick reads:/writes: in brk.yaml over a central build_order.yaml — keeps the fact next to what it describes. Also yes: C59 should name the likely cause. minted@2026-08-15 |
| SUB-0259 | minted | 2026-08-16 | Personal data must not be written inside a git working tree, and nothing enforceRULED 2026-08-16, operator (in-chat, HCE line approved): the personal-data write guard becomes a DEF, and the .git-upward-walk shape is ratified as-is — refuse the CLASS: an untracked file inside a worktree is one 'git add -A' from committed. Declared gap accepted and recorded: the guard governs WHERE data may be written, not what data is; a session that never tags its input as personal is not caught. The permanent red fixture is owed on canon entry. registered@2026-08-14 · minted@2026-08-16 |
| SUB-0260 | minted | 2026-08-15 | PASS_DOCTRINE covers a gate never shown red; it does not cover a gate shown redRULED 2026-08-15, operator (in-chat): CONFIRMED as recommended: GREEN — yes: adopt the negative-fixture corollary into PASS_DOCTRINE.md. Single clear ask, concrete incident (9 fired / 8 false positives), honest cost & scope limits stated. registered@2026-08-14 · minted@2026-08-15 |
| SUB-0261 | minted | 2026-08-16 | An operation that replaces a population wholesale must refuse to shrink it silenRULED 2026-08-16, operator in-chat: MINT as a DEF in draft/defaults/CODING_DEFAULTS.md - the cover's named target record, and where the cover states NO such default exists today. A writer that replaces a countable population wholesale must refuse a write cutting it below 50% of the count it read. NON-DUPLICATION recorded, on the cover's own grounds: rule 3's verified-backup gate triggers on operations that INTEND to destroy, and this one intended to save; check C59 compares an artifact against a second run of its generator and so cannot see a generator that was wrong both times. That is why this mints a new DEF rather than amending rule 3. 50% ADOPTED AS PROVISIONAL and recorded arbitrary - the cover says so itself, and the 1,263-to-2 incident discriminates no threshold. SCOPE (operator pick, not measured by the cover): writers with a readable before-count of rows/records; artifacts with no countable unit are OUT, declared rather than silently covered. LOOP (operator pick, not the cover's position - it names all three failures as separable and splits only failure 1): the floor is evaluated on EVERY write including each loop iteration, which absorbs failure 3 rather than leaving it unowned. OVERRIDE (operator pick, the cover measures nothing here): refuse by default, bypass only via an explicit per-invocation flag that names the expected new count. Failure 1 (silent str.replace no-op) stays SPLIT, as the cover asks - and the cover names the default it needs, "assert every programmatic replacement", which no row currently owns: FILE IT as its own CODING DEFAULT. Prospective: credentials_xlsx.py is done and proven red against a deliberately truncated sheet; no estate-wide retrofit and no C59 change authorised here. HELD OPEN: an audit of existing wholesale writers, and whether the floor gets a C-check. registered@2026-08-14 · minted@2026-08-16 |
| row | title | what closes it |
|---|---|---|
| SUB-0030 | The decay law, written for DP-OS to lift | EXECUTE, not re-rule - already RULED ACCEPT 2026-08-03. Land the decay+reinstatement law as a DP-OS record with DP-OS's own base_threshold; stays open till that record exists (BRK-0094). |
| SUB-0069 | The Master ID Ledger is authoritative but not discoverable from outside DP-OS | EXECUTE ruled 2026-08-03: pointer obligation via SOVEREIGN_LINK.yaml naming the ledger as ID authority — no check, no service. Add the field, roll out to repos. |
| SUB-0083 | The estate converts files it has no protocol for, in a repo it has no record of | PRE-RULING only cleared a BRK-0098 flag, not S5's ask. Execute: mint PRT-0029/0030, hold WASM=theoretical, record WF-TYPES-DATA, retire dup registry - sequence after SUB-0082 rules the corpus home. |
| SUB-0096 | Correcting the pointers does not empty the free path | EXECUTE: RULED (opt B) 2026-07-31, mostly done — DP-* 16/16 merged & verified zero. Remaining: land the 59 non-DP-* PRs still merging; re-verify count (dated-snapshot). |
| SUB-0102 | A fork made before a ruling never receives the ruling | RULED ACCEPT 2026-08-03 (verified in registry.yaml). Execute: refresh pass in mirror_dor.py (re-fork rows whose DOR status changed) + fix Held-counts line to say current vs as-forked. |
| SUB-0103 | Rule 24 and its own manifest disagree about the compliance sweep | EXECUTE ruled 2026-08-03: manifest wins (one-time sweep); correct rule-24 text to match; also build the comparison-check option, adopted as well. |
| SUB-0134 | The proxy registry knows which machine is live in which repo. Nothing else does. | EXECUTE ruled 2026-08-03: shape (a) — allocators query DP-PROXY-REGISTRY before minting; DOR PR#148 shows the need beyond atomic claim alone. |
| SUB-0209 | 12 PRs stranded in WF-LOCAL's dead merge lane, recovered and awaiting a rou | Execute: asks 1-2 ruled 2026-08-11 (hive notes, registry rows) per PRE-RULING; registry.yaml itself still shows status:ready - the ruling was never committed. Asks 3-5 unclear from brief. |
| row | status | title | why |
|---|---|---|---|
| SUB-0032 | staging | The document term registry as a knowledge source | RED: no stated recommendation, just contents. Sibling SUB-0005 (same pairing, same-week cohort) was sent back 2026-08-03 |
| SUB-0087 | staging | Four rev asks against existing DP-OS records - nothing minted | RED shape: 4 record-asks in 1 confirm. CAN-0060/0050/0028 revs are each well-argued - but CAN-0038 asks DP-OS to rule an |
| SUB-0155 | staging | Custody model for a HASM-backed sovereign vault — Shamir share-count flaw and the A/B/ | RED — A/B/C already decided in this row's own addendum (2026-08-02: offer all 3, toggle). Reformulate around the 3 |
| SUB-0159 | staging | Characterise the corpus before choosing a retrieval strategy — make it a standard buil | RED - no: cover (SUBMISSION.md) and its sole payload file are both 0 bytes. Nothing here to confirm; send back for resub |
| SUB-0163 | staging | Extract an MCP base from DP-OS-MCP — and do not call the instance a base | RED: split it — confirm only the 'not-a-base-yet' clarification now; the BBK/CAN mint isn't ripe (row adm |
| SUB-0164 | staging | SUB-0079's licence finding is half right — Apache-2.0 code, restricted OpenRAIL-M | Reject/send back: SUBMISSION.md is 0 bytes, payload has 0 files. No licence-split analysis or citation exists to confirm |
| SUB-0192 | staging | a decision-routing default, so an agent is told WHEN to convene a panel rather than al | RED: 6 separately-rulable asks (routing DEF, citations register, PRT-0026 fix, DP-CODES reconciliation, estate-wide lice |
| SUB-0193 | staging | the critic-panel protocol cannot run for a corpus-less artifact, so its mandated gate | Send back to intake: cover self-declares 'DRAFT, not submitted - No SUB-#### minted here,' yet sits ready with |
| SUB-0194 | staging | the base kit ships enforcement DOCUMENTS and zero enforcement, so every repo that fork | RED shape: cover asks 4 things - S2 closure amendment, C41 extension, a new GTE-0003 mint, and the kit floor. Pt.1 touch |
| SUB-0201 | staging | a command handed to the operator carries its execution context, or it is not handed ov | RED: the context-aware-command rule is sound, but SUBMISSION.md's 'one session, 2026-08-06' claim contrad |
| finding | evidence | fix |
|---|---|---|
| Addendum rulings never reach the pre_ruling field | SUB-0155, SUB-0230 | Have D178's ruling capture scan payload prose for RULED/APPROVED/operator-quote markers, or require submitters to promote any in-doc ruling to a real commit before re-queueing as ready. |
| Sibling rows refute each other; COLLIDES misses it | SUB-0236, SUB-0243 | Index record: references inside submission prose (e.g. 'refuted by SUB-0243') as a collision key, not just shared file/dir paths, so semantic rebuttals surface next to file-based collisions. |
| One 'choice' row bundles eight independent rulings | SUB-0230 | Split multi-ruling protocol mints (R0..R7 style) into one row per named ruling, or let triage grade sub-items individually instead of forcing one grade across mechanical picks and real conflicts. |
| Cover sheet omits evidence that only lives in the manifest | SUB-0236 | Either fold MANIFEST.yaml's adopters/evidence block into SUBMISSION.md, or state explicitly in the brief when a payload file (not just the cover) carries load-bearing evidence the reviewer must open. |
| Governance-file edits in the same chunk don't cross-collide | SUB-0160, SUB-0236 | Verify the file:CLAUDE.md tag on SUB-0236 (no CLAUDE.md text found in cover or manifest) and, if genuine, cross-list it against SUB-0160's rule-2 D-entry so reviewers see the shared surface. |
| Confirm rows bundle multiple independent decisions | SUB-0087, SUB-0194, SUB-0201 | Require exactly one recommendation per confirm row; split multi-record or multi-question asks into one row each, or reclassify as impact/choice. |
| Row-summaries can omit most of the actual cover | SUB-0194 | Regenerate TARGET/RETURNS_AS from the cover sheet's own numbered asks, not a payload subfile; flag when the summary covers less than the cover's full ask list. |
| Submission prose can contradict its own attached evidence | SUB-0201 | Add a pre-ready check that cross-references dates/counts in SUBMISSION.md prose against any attached evidence table (e.g. HIVE_CARD.md) before promoting to ready. |
| Evidence tag left (unset) despite measured claims in body | SUB-0186, SUB-0194, SUB-0201, SUB-0030 | Block ready-promotion when body text uses 'MEASURED'/timestamps but evidence field is (unset); force an explicit organic/induced/asserted choice at filing. |
| Ready rows with no ready@ log event | SUB-0159, SUB-0194, SUB-0201, SUB-0253 | Audit why 4/9 rows here show has_ready_event=False; SUB-0159's zero-byte payload suggests the ready gate checks neither log emission nor content presence. |
| Confirm rows bundle multiple separately-rulable decisions | SUB-0192, SUB-0251, SUB-0163 | Require a confirm row to carry exactly one ruling; a submission needing N rulings must file N rows, not get flattened into a single yes/no. |
| Registry returns_as can omit scope present in the payload | SUB-0192 | Diff registry returns_as against payload headings at ready-transition; an ask missing from returns_as (e.g. a LEGAL-destination ban) should block ready status. |
| Stale/superseded rows carry no back-reference from the correcting row | SUB-0251/SUB-0253, SUB-0032/SUB-0005 | When a row is sent back or superseded for staleness, stamp a superseded_by/see_also pointer on the sibling row(s) too, not only on the row naming the correction. |
| Ready-queue rows sit with zero logged event history | SUB-0163, SUB-0192, SUB-0195, SUB-0251 | Hard-require a logged ready@ event before a row is eligible for HCE triage; audit has_ready_event=False rows mechanically instead of leaving reviewers to rediscover it per row. |
| Evidence field left unset even when the payload proves itself | SUB-0182 | Back-fill evidence classification at ready-transition by scanning the cover for verification language (measured/proved/tested) instead of trusting only the submitter's original tag. |
| Ready queue accepts rows with no intake log trail | SUB-0164, SUB-0193, SUB-0199, SUB-0239, SUB-0252 | Require both registered and ready log.jsonl events before a row can surface as ready; audit the current queue - 5 of this batch's 8 rows have zero log.jsonl hits. |
| A fully empty submission carries a live ready status | SUB-0164 | Block the ready transition on a minimum-content check (non-empty SUBMISSION.md, required sections) instead of trusting registry.yaml's separately-authored summary. |
| Self-declared unminted draft holds a live SUB id | SUB-0193 | Reject or reprocess any cover sheet whose own text disclaims minting (e.g. 'No SUB-#### is minted here') before it carries a live id into ready. |
| Collision index misses later rows that name-correct earlier ones | SUB-0199 corrected by SUB-0213; SUB-0252 corrected by SUB-0253 | When a new row's text cites an earlier record:SUB-#### as corrected/superseded, backfill a COLLIDES entry onto the cited row, not only forward or same-file matches. |
| evidence field left unset on rows that read as fully measured | SUB-0184, SUB-0193, SUB-0199 | Make evidence required at filing (script-enforced); reserve (unset) for genuine unknowns so organic>induced>asserted stays meaningful. |
| Same undercounted-population defect rediscovered 3x, uncited | SUB-0202, SUB-0216, SUB-0219 | Rule SUB-0216's sweep-completeness principle as the one general law, then close SUB-0202's count-method gap and SUB-0219's commits-not-on-main lesson as instances of it, not separate rulings. |
| Evidence field left (unset) on rows that plainly qualify | SUB-0175, SUB-0180, SUB-0202, SUB-0207, SUB-0212, SUB-0216, SUB-0219, SUB-0223 | Nudge submitters to self-declare evidence when a MEASURED/Honest-limits section exists at ready time -- 8 of 9 impact rows in this chunk qualify but ship (unset). |
| Urgent hotfix bundled with discretionary policy, one ruling unit | SUB-0180 | Split the one-line refs/heads/claims fix (+A4) from the DP-CODES licensing proposal (A1) and CLAUDE.md core-clause ask (A3) so the urgent fix isn't waiting on the slower policy read. |
| Rows ask for internal sequencing the board can't express | SUB-0219, SUB-0216 | SUB-0219 asks to rule its own item 1 FIRST; SUB-0216's ask 4 bundles 4 sub-asks. Give impact/request rows an optional per-ask priority flag so a yes can land the urgent part without the rest. |
| Collision detector misses topically-linked rows, no shared file key | SUB-0207, SUB-0202 | SUB-0207 sets the forming->active CAN filing convention; SUB-0202 is a forming CAN asking exactly that. Neither COLLIDES line names the other -- add a topic/keyword signal beside file/record/dir. |
| Chat-ruled PRE-RULING never reached registry.yaml or log.jsonl | SUB-0209 | Treat a PRE-RULING block as a TODO, not a ruling, until status/decided_ref/log event land; require the commit hash of the recording PR in the row itself. |
| PROXY control plane adopted before being ruled on | SUB-0181 | Refuse or flag any submission whose own text says its payload already ran against a live estate checkout - ratify-then-run, never the reverse, even for control-plane tooling. |
| Collision/ripeness signals may miss rows with no ready log event | SUB-0259, SUB-0203, SUB-0209, SUB-0213, SUB-0224 | Confirm whether the 3 collision keys derive 'ready' from status or from the log; if from the log, backfill the missing ready events on these 5 rows before trusting 'no collisions'. |
| evidence: is emptiest on the rows where it matters most | SUB-0178, SUB-0181, SUB-0203, SUB-0209, SUB-0213, SUB-0217, SUB-0220, SUB-0224 | Prompt filers of impact rows specifically for organic/induced/asserted at the ready transition; 8 of 9 impact rows in this chunk skipped it entirely. |
| One status field can't hold N separately-rulable asks | SUB-0203, SUB-0209, SUB-0213 | Give multi-ask request rows a sub-checklist (ask id -> ruled y/n) so a 2-of-5-ruled state, like SUB-0209's PRE-RULING, is representable instead of invisible in the registry. |
| ready queue lacks ready@ log events for 5 of 9 rows | SUB-0183, SUB-0211, SUB-0218, SUB-0226, SUB-0261 | Emit a ready@ log event unconditionally whenever a row enters ready state; audit why the majority of impact_3 rows show has_ready_event=False despite being reviewable today. |
| untriaged oversized payload sits on an irreversible-loss claim | SUB-0211 (SCHEMA.md also names SUB-0209) | Require payload-size triage before filing when the ask is itself time-critical; a 2.8MB untriaged payload plus 'refs may be pruned any day' is the worst pairing. |
| operator rulings quoted in cover prose bypass pre_ruling routing | SUB-0221, SUB-0226 | When a cover cites a verbatim operator ruling/approval as Authority, require the pre_ruling field to be set so the row routes to EXECUTE rather than full impact-weighing triage. |
| a row nominates its own falsifying check but nothing runs it | SUB-0205 | Add a pre-ready gate: any NOT-MEASURED item a submitter flags as row-flipping must be checked (or explicitly marked unchecked-by-design) before leaving staging. |
| evidence= metadata undercounts organic proof actually shown | SUB-0179, SUB-0214 vs SUB-0261 | Populate evidence= from the cover's actual proof (reproduced tests, verified before/after runs) at filing time instead of defaulting to (unset); an unreliable field is worse than none. |