Status: 2026-08-09. This roadmap defines an evidence gate; it does not report that a beta, pilot, review, jurisdiction approval, or production deployment exists.
Permit Bearings is a tested prototype with automated evidence only. It has deterministic screening, source and fingerprint checks, Golden regression cases, generated browser data, accessibility and performance automation, a static no-storage deployment, and a statewide orientation profile for all 541 registry entries. Those entries share a bounded statewide candidate-rule baseline; only Davis and Woodland have limited jurisdiction-scoped records, and neither is comprehensive local-code coverage.
The strongest packet example is still a source-bound, made-up Woodland future-state simulation. The official program record says the City's preapproved-plan list is coming soon. The example does not inspect files, query a parcel, certify completeness, or represent a currently usable City workflow.
All 19 published rule records are currently machine_linked, with zero named
human reviews and zero jurisdiction approvals. The prepared content-review,
participant, manual-access, Spanish, partner, and source-change-rehearsal
evidence remains not_run or pending. The held-out scanner manifest is also
not_run: it has no case set, answer key, blind predictions, result, evaluator
or result hash, or freeze/prediction/scoring receipt. Automated checks cannot
promote any of those states.
A pilot-neutral beta operations package is now machine-testable but remains
PREPARED / NOT APPROVED. It proposes a public/static boundary with no
accounts, uploads, application-managed applicant storage, browser persistence,
application telemetry, runtime external model calls, or permitting-system
writeback. All nine role approvals, deployment/hosting fields, records
rehearsals, execution receipts, and partner decisions remain null/not_run.
Host request metadata and every deployment-specific privacy, security,
records, access, accessibility, language, support, and hosting decision remain
external work.
That package describes the static-only deployment shape. ADR 0004
(2026-08-21) directs a separate optional runtime AI service; a beta that
includes it needs its own operations package, subprocessor record, and
approvals, none of which exists.
A separate pilot-neutral aggregate is also PREPARED / TESTED BETA NOT
RUN. It digest-binds the current specialized artifacts, reconciles their
canonical roles and shared lock/prototype identity from one immutable input
snapshot, and recomputes current currency plus all 14 exit categories as
not_run. Its empty pilot scope and fixed false claim fields cannot be
promoted by editing an aggregate row or coordinated nested hand edits.
Current capability boundaries are canonical in
PRODUCT-CONTEXT.md. Current automated
quality evidence is summarized in the
README, and source/review provenance is in
PROVENANCE.md.
A limited tested beta is one frozen, deployed workflow for one active California jurisdiction and one permit subtype, evaluated against the exact reviewed sources, rules, requirements, test cases, commit, URL, and content fingerprints recorded in its evidence gate.
The first beta should:
- use an active local workflow with a named jurisdiction sponsor, source owner, and review owner;
- use official public sources and synthetic or properly redacted test material;
- produce candidate guidance and reported packet-presence findings while preserving explicit unknown and staff-review states;
- keep packet presence separate from consistency, legal sufficiency, compliance, eligibility, acceptance, and approval;
- persist no production applicant data and make no runtime model call; and
- remain portable beside, rather than replace, the jurisdiction's permitting system.
The beta claim applies only to that named jurisdiction/workflow. The statewide navigator, unreviewed routes, other jurisdictions, Spanish machine drafts, and the ordinance scanner retain their documented prototype boundaries. A jurisdiction-approved claim is allowed only when a formally authorized jurisdiction reviewer has approved the exact version and scope.
All evidence must bind to one immutable commit SHA, HTTPS deployment, source snapshot, workflow version, and fingerprint set. A blocking product or content change closes the old cohort and requires a new lock; results from different versions are never combined.
| Gate | Exit criterion | Current state | Dependency |
|---|---|---|---|
| Active scope | One named jurisdiction and active permit subtype; authoritative ordinance, form, checklist, procedure, and agency calendar; named sponsor and maintenance owner. | No active pilot workflow or sponsor is recorded. Woodland remains a future-state simulation. | External jurisdiction |
| Frozen artifact | Exact SHA, URL, freeze date, source snapshot and receipt, route/workflow/packet fingerprints, and a passing internal dry run are recorded. The same commit passes repository verification, browser accessibility checks, Lighthouse budgets, production smoke tests, and rollback verification. | Automation exists; the external-evidence artifact lock is not_run. |
Mostly autonomous; deployed URL required |
| Content authority | Two independent qualified reviewers classify 100% of reachable requirement mappings and action drafts. For the prepared 25-item workflow, at least 22 of 25 rows agree initially; every disagreement is sourced, suppressed, or routed to staff; zero blocking content defects remain. A differently sized pilot must freeze its threshold before review. | Two reviewer slots are not_run; no completed content-review claim exists. |
External reviewers |
| Review levels | Every rule and explanation reachable in the beta path is at least human_reviewed, bound to reviewer, method, date, exact version, citation fingerprint, and full-rule fingerprint. Local records use jurisdiction_approved only with institutional authorization. |
All 19 rules are effectively machine_linked. |
External reviewers and jurisdiction authority |
| Deterministic evaluation | The local Golden set includes positive, negative, boundary, ambiguous, wrong-jurisdiction, local/state-conflict, stale, and unsupported cases, with at least one case per category and every material rule boundary. All expected IDs and withheld states pass; zero unknown or conflicting material fact is treated favorably. Held-out fixtures and raw result counts are reported separately from development fixtures. | Twenty-nine structured Golden cases exist. A validated planned held-out scanner manifest records not_run, per-check official flag/targeted-quiet minima, structured development-source and near-duplicate exclusions, and a blind freeze/prediction/unblind/scoring sequence. Its case, answer-key, prediction, result, evaluator-hash, and execution-receipt fields are null; there is no independently adjudicated corpus or result for an active local workflow. |
Autonomous harness; external source custody and answer-key review |
| Packet behavior | Every requirement condition is exercised across applicable present, missing, not applicable, conflicting, needs staff review, and not evaluated states. No material false-favorable finding remains, and the interface never relabels presence as completeness or compliance. |
Implemented for one synthetic 25-item manifest; no real or redacted packet evaluation exists. | Autonomous fixtures; external content adjudication |
| Applicant evidence | Six same-version sessions meet the prepared cohort rules. At least 5/6 correctly describe candidate guidance, 5/6 correctly find source status and unknown escalation, and 5/6 identify the packet gap and next action. Median route time is at most 300 seconds, median packet time at most 360 seconds, no more than one repeated navigation-blocker session occurs, and there are zero confident critical over-trust errors. | Six scorecards are prepared and not_run. |
External recruitment and moderation |
| Problem evidence | At least three participants, including at least two primary beneficiaries, describe a specific recent pain, consequence, and workaround; at least one domain participant reports monthly-or-more recurrence. Raw counts and denominators remain visible. | No participant evidence exists. | External recruitment |
| Human access | All 21 version-bound manual checks pass, including keyboard, VoiceOver/Safari, NVDA, physical iOS and Android, zoom/reflow, forced colors, three print browsers, and PDF/assistive-technology review. Automated axe and Lighthouse results remain separate. | All manual rows are not_run. |
Human and assistive-technology testers |
| Language | If Spanish is presented as applicant-ready within the beta, every reachable Spanish source-derived record has exact-version semantic-parity approval and ES-USABILITY-JOURNEY passes. Otherwise Spanish stays explicitly review-pending and outside the beta claim. |
Nineteen semantic-review rows and Spanish usability are not_run. |
Qualified Spanish reviewers and participants |
| Maintainability | One controlled source change completes detection, affected/unaffected mapping, review, approval, republication, and rollback. The receipt records named human owners, elapsed and active-role time, defects, and the prospective partner's maintenance-burden decision. | Rehearsal is prepared and not_run; no human owner or burden decision is recorded. |
External reviewer and partner |
| Ownership and export | A jurisdiction-owned export of sources, rules, requirements, review receipts, fixtures, dependencies, and checksums opens and restores without vendor-only tooling. | A deterministic, Git-bound package builds, verifies, and restores either the frozen 58-file schema-v1 compatibility set or the current registry-aware 59-file schema-v2 public/synthetic evidence set. Its pinned allowlists exclude known sensitive records but are not privacy classifiers, and the mechanism does not establish contractual ownership, a production offboarding test, or partner acceptance. The later held-out planning artifact and future evaluation inputs/results are outside profiles v1 and v2 and require a separately reviewed profile version. | Implemented mechanism; external partner acceptance and any sensitive-data design |
| Privacy, records, and security | The first beta remains public/synthetic/redacted with no accounts, uploads, applicant store, telemetry, external model call, or write-back. Any expanded flow first records fields and purpose, access, retention/deletion, subprocessors, CPRA search/export and legal-hold behavior, threat model, control mapping, incident path, and deployment-specific approvals. | ADR 0002, a role-based runbook, a 17-control/nine-approval portable ledger, and a strict prepared-state validator now cover the proposed no-application-storage boundary, exact current-page fields, host metadata caveat, records routing, incident/support, release, and rollback. The ADR is proposed; every deployment field, execution receipt, records rehearsal, human approval, and partner decision is null/not_run. This is not privacy/security approval or CPRA, Information Practices Act, SAM, or SIMM compliance. |
Implemented planning validator; external deployment inventory, rehearsals, role assignment, and approvals |
| Partner and decision | A credible partner supplies a written next step with an owner role and date, accepts the maintenance plan, and signs a proceed, extend, pivot, or stop decision after every supporting receipt. |
Partner gate and aggregate decision are pending. | External partner |
Passing these gates permits a bounded statement such as:
Permit Bearings is a tested beta for [jurisdiction] [permit workflow] on [commit and date], evaluated with [methods and raw denominators]. It provides cited candidate guidance and packet-presence support. It does not provide legal advice, certify completeness or compliance, determine final eligibility, approve a permit, or establish coverage outside the named workflow.
It does not permit “statewide beta,” “applicant-ready statewide service,” “validated law,” “comprehensive local coverage,” “compliance determination,” or permitting-outcome claims.
This roadmap tranche completes ten machine-testable foundations without changing the product's maturity claim:
- the Statewide Coverage Navigator is deployed as orientation, not statewide local-code coverage;
- every populated applicant result has a state-specific decision boundary for candidate, unresolved, no-route, and source-review-hold outcomes;
- source changes can produce exact fingerprint-bound rule, Golden, readiness, remedy, packet, and journey work plus a separate blank decision ledger; and
- separate strict approval, publication, and rollback receipt schemas can bind
the exact changed-source snapshot, worklist, decision ledger, preceding
receipt, and reviewed publication/restoration source state without allowing
any validator or decision ledger to mutate state. The committed templates
keep every evidence field null and remain
not_run; no rehearsal, approval, publication, or rollback is claimed; and - a repeatable deployment smoke command checks the five public routes and the generated 541-profile/17-rule artifact contract; and
- a pinned canonical ZIP can package, verify, and inertly restore the selected versioned public/synthetic evidence set while rejecting uncommitted selected files, asserted validation-state drift, unsafe members, and existing destinations; its allowlist excludes known sensitive material but is not a privacy classifier; and
- a validated held-out scanner manifest freezes the evaluation semantics,
current scanner/check hashes, development-source exclusions, raw count
names and reporting grains, the full pair universe, per-check targeted-pair
roles/minima, blind execution chronology, and claim boundary while keeping
every case, answer-key, prediction, result path, evaluator hash, and execution
field explicitly null and
not_run; a future result-artifact hash is recorded out of band. A strict Python interface validates each future input, generates blind predictions, scores raw pairs, and writes an exclusive receipt. Its CLI exposesvalidate-plan, blindpredictwithout an answer-key argument, andscorewith frozen predictions plus the declared reviewer/adjudication key.validate-resultreloads all frozen inputs and recomputes the recorded result before accepting it; the tooling does not supply the external evidence; and - a proposed no-storage ADR, precise operations runbook, portable 17-control
and nine-approval ledger, and strict CLI pin the public/static beta boundary,
empty service field/purpose inventory, exact current-page facts, host
metadata caveat, retention/deletion, CPRA routing, access, incident,
support, release, rollback, and export limits. The ledger and validator bind
the ADR/runbook to exact raw-byte SHA-256 digests. The validator accepts only
prepared_not_approved; all future-beta deployment, rehearsal, approval, receipt, and partner-decision fields remain null/not_run, and later execution requires a separately reviewed schema; and - a strict applicant-copy contract checks English/Spanish key order, nested shapes, stable option identifiers, static and formatter placeholders, nonblank singular/plural output, and a copy-leaf pseudo-expansion transform while leaving complete pseudolocale generation, semantic review, Spanish applicant readiness, and rendered layout compatibility unclaimed; and
- a generic portable local-source intake and read-only CLI strictly validate
the five required source roles, source IDs/URLs/fingerprints/check dates,
operative passages and enactment/effective dates, project/parcel scope,
candidate exceptions, unresolved conflicts, open questions, and planned
accountable owner-role IDs/cadence. The committed template is
not_runand empty; the maximum accepted state isprepared_for_review, never reviewed, approved, encoded, or published; and - a strict portable workflow registry now replaces the builder and CLI's Woodland path constants. It raw-byte-pins and inventories canonical inputs, rejects ambiguous/oversized JSON, linked files, duplicate/orphan/wrong-ID/ unsafe-path/fingerprint states, and uses one explicit browser default. Bundle format 6 binds the raw registry to its generation receipt; the browser validates that embedded contract but cannot inventory repository directories. A synthetic two-entry test proves build and review-queue traversal. Only the Woodland future-state simulation is committed; this is not multiple active workflows; and
- a pilot-neutral aggregate record and read-only CLI bind 12 existing
specialized ledgers/artifacts to exact canonical role paths and raw
digests; capture the complete
data/tree and non-data dependencies once; reject path, type, content, membership, and symlink drift; independently pin every not-run ledger; accept changed/unverifiable arrays only through the strict source-state semantics; rebuild the registry-selected packet and journey; reconcile program availability and adopted dependencies; and recompute current source/rule/reference currency plus 14 beta exit categories asnot_run. The schema accepts onlyprepared/not_run, keeps the pilot scope empty, fixes every stronger-claim boolean false, and is outside export profiles v1 and v2.
The remaining execution work is:
- Exercise the registry with a second reviewed, real pilot workflow only after a jurisdiction supplies its authoritative source package and owners.
- Exercise the exact affected-output worklist and strict release-receipt schemas in a controlled rehearsal; complete assignments and dispositions with authorized people, then record separate approval, publication, and rollback evidence. The implemented validators cannot supply that human or deployment evidence and the decision ledger cannot clear a hold by itself.
- After independent source collection, two-reviewer adjudication, and freeze custody are available, execute the held-out scanner contract with frozen cases and answer key; generate blind pair-level predictions before unblinding, publish the six recomputable raw confusion/abstention counts, and keep development fixtures and synthetic controls separate. Record the freeze, prediction, unblind, and scoring chronology, then retire the revealed corpus from use with future scanner versions.
- Execute the deployment-specific host/subprocessor inventory, threat and control review, CPRA search/export and rollback rehearsals, and role approvals described by the prepared operations package. Record them in a separately reviewed execution schema; the prepared ledger cannot be promoted. These tasks can make the product pilot-ready, but they cannot supply a sponsor, source authority, human review, applicant observation, accessibility signoff, language approval, or jurisdiction acceptance.
- Select an active jurisdiction and one detached-ADU workflow; obtain the authoritative local source package and identify conflict-resolution authority.
- Encode the locally owned route, requirements, staff questions, source dependencies, and staff-adjudicated synthetic or redacted cases.
- Complete the independent content reviews and resolve or suppress every blocking issue before applicant testing.
- Freeze the exact deployment and execute the six participant sessions, manual access matrix, and language gates included in scope.
- Complete the source-change, republication, rollback, export, and support rehearsals; have the partner judge maintenance burden.
- Obtain deployment-specific privacy, records, security, accessibility, language-access, hosting, and support decisions.
- Publish the gate result and exact bounded claim. Use
extend,pivot, orstopwhen the evidence does not supportproceed.
- Measure first-pass completeness, correction cycles, time to deemed complete, applicant self-remedy, and staff effort on an agreed, appropriately handled pilot dataset.
- Add authoritative read-only parcel and zoning retrieval for the pilot jurisdiction, with disagreements and unknowns reviewed by staff.
- Build a human re-verification and local-rule authoring workbench.
- Evaluate the ordinance scanner on held-out positive and negative material, and build a cited comparable-jurisdiction HCD precedent explorer.
- Add new jurisdictions and permit subtypes one at a time with their own source owners, review evidence, Golden cases, and maintenance gate.
- Consider new-law discovery, bounded Scenario B comment resolution, SB 35, AB 2011, accounts, uploads, telemetry, model calls, and permitting-system integrations only after the beta proves its maintenance and governance loop.
| Evidence | Canonical record |
|---|---|
| Capability status and priority | PRODUCT-CONTEXT.md |
| Public behavior and automated quality | README.md |
| Architecture and deployment gaps | DESIGN.md and DATA-FLOW.md |
| Source and claim provenance | PROVENANCE.md |
| Proposed pilot scope and participation | SHOWCASE-PILOT-BRIEF.md |
| External validation method and thresholds | SHOWCASE-VALIDATION-PLAN.md |
| Woodland external-evidence aggregate | woodland-flagship-gate.json |
Pilot-neutral beta aggregate (prepared / not_run) |
pilot-beta-gate.json |
| Content-review ledger | woodland-content-review.json |
| Participant-session ledger | woodland-participant-sessions.json |
| Human accessibility and language ledger | woodland-manual-evidence.json and MANUAL-VALIDATION.md |
| Source-change rehearsal | woodland-source-change-rehearsal.json |
| Rule review levels | rule-verification.json |
| Adopted source-state receipt | current.json |
| Current Woodland program boundary | woodland-preapproved-adu-program.json |
Held-out scanner evaluation contract (not_run) |
manifest.json |
| Proposed no-storage beta decision | ADR 0002 |
| Beta operations procedure | BETA-OPERATIONS-RUNBOOK.md |
Beta operations control ledger (prepared_not_approved) |
beta-operations-readiness.json |
Machine-readable ledgers remain authoritative for activity state. Narrative
documentation may explain a recorded result, but it cannot turn not_run,
pending, unreviewed, or machine-linked evidence into a pass or approval.