Dakota Oil & Production Outcomes — measured well status from the North Dakota Industrial Commission (NDIC) public GIS, plus a multi-domain issue-resolution packet schema for fail-closed proposals.
DOAPO reads public permit / spud / well-status data.
npm install
./node_modules/.bin/tsx --test src/lib/packet/packet.test.tsOr run the full test script:
npm testThe multi-domain packet schema lives under src/lib/packet/.
- Architecture certificate: docs/packet/README.md
- Authoring a domain pack: docs/packet/AUTHORING.md
- Bakken pack brief: docs/packet/BAKKEN.md
- ADR-001 (schema as platform core): docs/packet/ADR-001-packet-schema.md
- Named next gates: docs/packet/NEXT.md
- UI packet inspector: read-only
/packetroute (fixtures; no NDIC loader) - Kill-condition runtime: measured fact
kill.id/kill:<id>=triggeredforces STOP viaevaluatePacket - Advisor answer UI:
/packetfillsadvisorChecksinto the working packet before open - Durable ledger: opt-in localStorage persistence (prefer when present; still not durable authority)
- Pack import JSON: paste/file load on
/packet; validate + session overlay (static registry unchanged) - Multi-subject export zip:
/packetbundles evidence JSON for ≤16 subjects into one STORE zip + fail-closed manifest - Evidence bundle import: paste/file load on
/packet; verify digest + pack + packet; loads working state - Residue editor UI: edit / add / remove residue on
/packetbefore open (bounded, fail-closed) - Batch well kill scan: scan ≤64 search wells via well→packet→kill; hit table on
/packetlive + wells - Cross-pack kill audit: one validated packet vs every registered pack (+ overlay); hit table on
/packet - Outcome cohort summary: capped well→packet→outcomeClassId counts; cohort table on
/packetlive + wells - Kill fact authoring: toggle pack killConditions → measured
kill:<id>=triggeredon/packetworking packet - Operator / DUC prioritization: rank live search wells / operators by measured status + DUC age
- Durable analysis snapshot: persist prioritize / cohort freeze (pack + pull time + digest) in localStorage
- Cohort export JSON: download fail-closed cohort summary (schemaVersion + digest) from wells +
/packetlive strips - Cohort export import: paste/file load on cohort strips; verify schemaVersion + digest into inspector view
- Kill scan export JSON: download fail-closed batch kill-scan artifact (schemaVersion + digest) from wells +
/packetlive strips - Kill scan export import: paste/file load on kill scan strips; verify schemaVersion + digest into inspector view
- Cross-pack kill audit export JSON: download fail-closed cross-pack audit artifact (schemaVersion + digest) from
/packetstrip - Measured DUC/status derivation: live WellRow → residue / kill hints (
derive-from-well.tsviabuildPacketFromWell); no invented volumes; freeze on further export/import STOP gates
Schema overview landed in PR #1 (feat/multi-domain-packet-bakken).
| Wall | Rule |
|---|---|
| No invented volumes | Monthly oil/gas/water are not on the NDIC open GIS substrate DOAPO uses. Do not assert them from that service alone. |
| No external doc as SOP | Public product or marketing pages are not controlling SOPs or setpoints. |
| No unverified org claims | Do not claim organizational relationships that measured facts do not support. |
| Fail-closed OPEN | Agents may propose evidence. Only human_open may stamp OPEN_CANDIDATE. MaxOp: residue explicit. |
Agents propose evidence. Humans OPEN. Gates fail closed. Residue is stated, not implied. New packet code follows NASA/JPL Power of 10 discipline (bounded loops, no recursion, assertions, short functions).
Independent project. Not affiliated with any operator, service company, or regulator beyond citing public NDIC / DMR data as measured substrate.