Design Franklin County StarLang actor runtime #58

Merged
lost-rob0t merged 4 commits from design/franklin-county-starlang-actors into design/ohio-government-data-catalog 2026-08-02 17:25:28 +00:00
lost-rob0t commented 2026-07-29 00:03:28 +00:00 (Migrated from github.com)

Stack

Depends on draft PR #53, which defines the Ohio coverage, source-profile, adapter, and revision-protocol contracts.

This branch was rebuilt on the latest design/ohio-government-data-catalog head before opening the PR. It is now four commits ahead and does not overwrite the newer Ohio review-fix commits.

Summary

  • add STAR-GOVDATA-DESIGN-004 Franklin County StarLang Actor System
  • add STAR-LANG-002 Durable Actor Runtime
  • add STAR-LANG-RESEARCH-019 Common Lisp Library Gap Analysis
  • define the complete Franklin County actor topology for GEOID 39049
  • choose StarLang for application-level actor declarations and Common Lisp for the compiler/runtime substrate
  • define exclusive source-deployment and source-profile authorities
  • define a separate atomic Coverage Gate Authority; the Coverage Ledger remains observational
  • define bounded mailboxes, supervision, durable jobs, attempts, leases, fencing, capabilities, artifacts, provenance, independent review, coverage, and reconciliation
  • define crash-safe artifact delivery through durable evidence-delivery intents, an idempotent outbox, replay, and orphan-artifact recovery
  • define nine data-family normalizer pools without embedding future offender-website policy
  • integrate the existing normative STAR-RESEARCH-PIPELINE-004 revision protocol amendment
  • index the work in Adaptive Research and both StarLang indexes

Review fixes applied

  • changed STAR-LANG-RESEARCH-019 from premature DONE to REVIEW
  • added canonical owners for source-deployment and source-profile revisions
  • added atomic, CAS-linear coverage-gate ownership with deterministic basis hashes and immediate validity expiry
  • closed the artifact-commit crash window with durable delivery intents and recovery semantics
  • corrected the normalizer count from eight to nine

Actor groups

  1. control and policy
  2. jurisdiction, component, source-deployment, and source-profile identity
  3. discovery, route planning, platform fingerprinting, and historical source location
  4. acquisition dispatch, leases, generic adapters, Ohio adapters, and process workers
  5. raw artifacts, retrieval events, evidence-delivery intents, hashes, metadata, and provenance
  6. identity, meetings, finance, property, courts, elections, safety/justice, permits, and records normalizers
  7. applicability, route assessment, independent review, atomic coverage gates, coverage ledger, and gaps
  8. scheduling, migration detection, reconciliation, quarantine, health, and metrics

Government offices, sources, records, and people remain durable records and bounded job keys rather than permanent actors.

Language and repository decision

The Franklin application is authored in StarLang and compiled to Common Lisp. Low-level HTTP, TLS, parsing, archive, hashing, persistence, and process functionality remains in Common Lisp libraries behind runtime ports.

A new reusable runtime repository is justified. Issue #57 tracks provisioning the proposed lost-rob0t/star-lang repository. starintel-auto-research remains the design/evidence repository; starintel-server later consumes released runtime systems.

Common Lisp library strategy

Adopt and pin mature primitives where they pass conformance:

  • Bordeaux Threads
  • Sento/cl-gserver behind star-sento-compat
  • lparallel
  • Dexador, QURI, and cl+ssl
  • jzon
  • Plump and CXML
  • cl-csv
  • chipz
  • Ironclad
  • local-time, cl-ppcre, SQLite/CouchDB ports, and test tooling

Build reusable missing systems:

  • star-actor-protocol
  • star-supervisor
  • star-mailbox
  • star-journal
  • star-lease
  • star-capability
  • star-artifact
  • star-adapter-sdk
  • star-http-port
  • star-process-port
  • star-xlsx
  • star-canonical-json
  • starlang-compiler
  • starlang-runtime

Wrap Sento first. Fork only if the conformance suite proves public extension points cannot provide bounded mailboxes, supervision, generations, readiness, durable-job integration, and capability hooks.

Effort range

The research node records engineering planning ranges, not delivery guarantees:

  • credible non-production Franklin pilot: roughly 4-6 calendar months with a focused parallel team
  • reusable production-quality runtime plus full Franklin route coverage: roughly 9-15 calendar months for a small experienced team
  • a single engineer should expect longer because compiler, runtime, adapters, source research, normalization, and operations cannot proceed fully in parallel

Boundaries

  • no live Franklin acquisition
  • no website implementation
  • no offender classification, scoring, or publication policy
  • no private-data brokers
  • no access-control, CAPTCHA, fee, or authentication bypass
  • no automatic public-records request sending
  • no claim that any Franklin route is complete

Validation

  • branch is four commits ahead of the latest Ohio design head
  • 7 changed files
  • 3 substantive new design/research nodes plus one compatibility redirect
  • Ohio base-only changes are preserved
  • all new design and research nodes remain in review; no approval state is claimed
  • future website assumptions are excluded from ingestion semantics
  • successful artifact attempts now require a durable evidence-delivery intent
  • current completion requires a reviewed, valid, passed coverage-gate revision

Review focus

  • completeness and ownership of the Franklin actor catalog
  • StarLang/Common Lisp boundary
  • Sento wrap-versus-fork criteria
  • durable job/attempt, lease, fencing, replay, evidence-outbox, and authority semantics
  • canonical source ownership and atomic coverage-gate semantics
  • new repository boundary and package decomposition
  • effort ranges and implementation order
## Stack Depends on draft PR #53, which defines the Ohio coverage, source-profile, adapter, and revision-protocol contracts. This branch was rebuilt on the latest `design/ohio-government-data-catalog` head before opening the PR. It is now four commits ahead and does not overwrite the newer Ohio review-fix commits. ## Summary - add `STAR-GOVDATA-DESIGN-004 Franklin County StarLang Actor System` - add `STAR-LANG-002 Durable Actor Runtime` - add `STAR-LANG-RESEARCH-019 Common Lisp Library Gap Analysis` - define the complete Franklin County actor topology for GEOID `39049` - choose StarLang for application-level actor declarations and Common Lisp for the compiler/runtime substrate - define exclusive source-deployment and source-profile authorities - define a separate atomic Coverage Gate Authority; the Coverage Ledger remains observational - define bounded mailboxes, supervision, durable jobs, attempts, leases, fencing, capabilities, artifacts, provenance, independent review, coverage, and reconciliation - define crash-safe artifact delivery through durable evidence-delivery intents, an idempotent outbox, replay, and orphan-artifact recovery - define nine data-family normalizer pools without embedding future offender-website policy - integrate the existing normative `STAR-RESEARCH-PIPELINE-004` revision protocol amendment - index the work in Adaptive Research and both StarLang indexes ## Review fixes applied - changed `STAR-LANG-RESEARCH-019` from premature `DONE` to `REVIEW` - added canonical owners for source-deployment and source-profile revisions - added atomic, CAS-linear coverage-gate ownership with deterministic basis hashes and immediate validity expiry - closed the artifact-commit crash window with durable delivery intents and recovery semantics - corrected the normalizer count from eight to nine ## Actor groups 1. control and policy 2. jurisdiction, component, source-deployment, and source-profile identity 3. discovery, route planning, platform fingerprinting, and historical source location 4. acquisition dispatch, leases, generic adapters, Ohio adapters, and process workers 5. raw artifacts, retrieval events, evidence-delivery intents, hashes, metadata, and provenance 6. identity, meetings, finance, property, courts, elections, safety/justice, permits, and records normalizers 7. applicability, route assessment, independent review, atomic coverage gates, coverage ledger, and gaps 8. scheduling, migration detection, reconciliation, quarantine, health, and metrics Government offices, sources, records, and people remain durable records and bounded job keys rather than permanent actors. ## Language and repository decision The Franklin application is authored in StarLang and compiled to Common Lisp. Low-level HTTP, TLS, parsing, archive, hashing, persistence, and process functionality remains in Common Lisp libraries behind runtime ports. A new reusable runtime repository is justified. Issue #57 tracks provisioning the proposed `lost-rob0t/star-lang` repository. `starintel-auto-research` remains the design/evidence repository; `starintel-server` later consumes released runtime systems. ## Common Lisp library strategy Adopt and pin mature primitives where they pass conformance: - Bordeaux Threads - Sento/cl-gserver behind `star-sento-compat` - lparallel - Dexador, QURI, and cl+ssl - jzon - Plump and CXML - cl-csv - chipz - Ironclad - local-time, cl-ppcre, SQLite/CouchDB ports, and test tooling Build reusable missing systems: - `star-actor-protocol` - `star-supervisor` - `star-mailbox` - `star-journal` - `star-lease` - `star-capability` - `star-artifact` - `star-adapter-sdk` - `star-http-port` - `star-process-port` - `star-xlsx` - `star-canonical-json` - `starlang-compiler` - `starlang-runtime` Wrap Sento first. Fork only if the conformance suite proves public extension points cannot provide bounded mailboxes, supervision, generations, readiness, durable-job integration, and capability hooks. ## Effort range The research node records engineering planning ranges, not delivery guarantees: - credible non-production Franklin pilot: roughly 4-6 calendar months with a focused parallel team - reusable production-quality runtime plus full Franklin route coverage: roughly 9-15 calendar months for a small experienced team - a single engineer should expect longer because compiler, runtime, adapters, source research, normalization, and operations cannot proceed fully in parallel ## Boundaries - no live Franklin acquisition - no website implementation - no offender classification, scoring, or publication policy - no private-data brokers - no access-control, CAPTCHA, fee, or authentication bypass - no automatic public-records request sending - no claim that any Franklin route is complete ## Validation - branch is four commits ahead of the latest Ohio design head - 7 changed files - 3 substantive new design/research nodes plus one compatibility redirect - Ohio base-only changes are preserved - all new design and research nodes remain in review; no approval state is claimed - future website assumptions are excluded from ingestion semantics - successful artifact attempts now require a durable evidence-delivery intent - current completion requires a reviewed, valid, passed coverage-gate revision ## Review focus - completeness and ownership of the Franklin actor catalog - StarLang/Common Lisp boundary - Sento wrap-versus-fork criteria - durable job/attempt, lease, fencing, replay, evidence-outbox, and authority semantics - canonical source ownership and atomic coverage-gate semantics - new repository boundary and package decomposition - effort ranges and implementation order
lost-rob0t (Migrated from github.com) reviewed 2026-07-30 03:55:14 +00:00
lost-rob0t (Migrated from github.com) left a comment

Blocking design findings found. CI passes and the branch is mergeable, but the current actor catalog and durability contract do not yet satisfy the parent Ohio revision protocol. The inline comments identify four concrete gaps that should be fixed before approval.

Blocking design findings found. CI passes and the branch is mergeable, but the current actor catalog and durability contract do not yet satisfy the parent Ohio revision protocol. The inline comments identify four concrete gaps that should be fixed before approval.
@ -0,0 +1,779 @@
:PROPERTIES:
lost-rob0t (Migrated from github.com) commented 2026-07-30 03:55:14 +00:00

[P1] Assign canonical owners for source deployment and source-profile revisions. This pool explicitly cannot approve its proposals, but the actor catalog contains no Source Deployment Authority or Source Profile Authority to serialize those subject revisions. The parent protocol requires those revision families and disjoint subject/review ownership. Without explicit owners, verified proposals have nowhere to become canonical inputs for scheduling, jobs, assessments, or gates.

**[P1] Assign canonical owners for source deployment and source-profile revisions.** This pool explicitly cannot approve its proposals, but the actor catalog contains no Source Deployment Authority or Source Profile Authority to serialize those subject revisions. The parent protocol requires those revision families and disjoint subject/review ownership. Without explicit owners, verified proposals have nowhere to become canonical inputs for scheduling, jobs, assessments, or gates.
@ -0,0 +181,4 @@
Assessment --> "Independent Review Authority"
Assessment --> "Coverage Gate Authority"
Assessment --> "Coverage Ledger Authority"
Assessment --> "Gap Authority"
lost-rob0t (Migrated from github.com) commented 2026-07-30 03:55:14 +00:00

[P1] Add the atomic Coverage Gate Authority required by the parent protocol. The normative v1.1 protocol assigns aggregate gate revisions to a distinct Coverage Gate Authority and says only a reviewed, currently valid passed gate may drive completion. This topology has a Coverage Ledger but no gate owner, so the acceptance conditions cannot be committed atomically or expire through the required gate revision semantics. Add the authority, its messages/state, supervision placement, and end-to-end gate step.

**[P1] Add the atomic Coverage Gate Authority required by the parent protocol.** The normative v1.1 protocol assigns aggregate gate revisions to a distinct Coverage Gate Authority and says only a reviewed, currently valid passed gate may drive completion. This topology has a Coverage Ledger but no gate owner, so the acceptance conditions cannot be committed atomically or expire through the required gate revision semantics. Add the authority, its messages/state, supervision placement, and end-to-end gate step.
@ -0,0 +1,656 @@
:PROPERTIES:
lost-rob0t (Migrated from github.com) commented 2026-07-30 03:55:14 +00:00

[P1] Define a crash-safe transaction/outbox across artifact commit, retrieval-event append, and normalization release. These are separate ordered operations. A crash after the atomic artifact commit but before the retrieval event or durable normalization work is recorded leaves an orphaned artifact and violates the later conformance gate that says a crash after artifact commit cannot lose normalization work. Specify the durable intent/outbox/recovery scan and idempotency boundary that closes this window.

**[P1] Define a crash-safe transaction/outbox across artifact commit, retrieval-event append, and normalization release.** These are separate ordered operations. A crash after the atomic artifact commit but before the retrieval event or durable normalization work is recorded leaves an orphaned artifact and violates the later conformance gate that says a crash after artifact commit cannot lose normalization work. Specify the durable intent/outbox/recovery scan and idempotency boundary that closes this window.
@ -0,0 +1,364 @@
:PROPERTIES:
lost-rob0t (Migrated from github.com) commented 2026-07-30 03:55:14 +00:00

[P1] Keep this node in review state until it is approved. The file declares #+status: DONE, while its own approval table says Pending review, and the PR explicitly says no approval state is claimed. DONE makes the repository treat the research as completed rather than awaiting review. Set this to REVIEW (and include REVIEW in the TODO sequence) until the approval record changes.

**[P1] Keep this node in review state until it is approved.** The file declares `#+status: DONE`, while its own approval table says `Pending review`, and the PR explicitly says no approval state is claimed. `DONE` makes the repository treat the research as completed rather than awaiting review. Set this to `REVIEW` (and include `REVIEW` in the TODO sequence) until the approval record changes.
Sign in to join this conversation.
No description provided.