{
  "schema_version": "actionist.state.v1",
  "generated_at": "2026-08-29T06:06:36.987Z",
  "generated_by": "site/system-map/scripts/derive-state.mjs",
  "contract": {
    "version": "actionist.state.v1",
    "policy": "Fields under stable[] are a published contract. Additive changes are free; renames and removals require notifying consumers[] first.",
    "consumers": [
      {
        "name": "SOL-BOUNDARY client view",
        "locator": "research/workstreams/2026-08-29-boundary/client-repo-scaffold/build-client-view.mjs",
        "reads": [
          "measurements.*.value",
          "funnel[].{id,label,definition,count}",
          "blocks[].{display_name,block_id,donor_repo,reuse_shape,admission_status}",
          "generated_at"
        ]
      },
      {
        "name": "Front door state page",
        "locator": "site/system-map/scripts/generate-state-page.mjs",
        "reads": [
          "*"
        ]
      },
      {
        "name": "Front page",
        "locator": "site/system-map/scripts/generate-front-page.mjs",
        "reads": [
          "measurements.*",
          "funnel[]",
          "domains[]"
        ]
      }
    ],
    "stable": [
      "schema_version",
      "generated_at",
      "headline.statement",
      "headline.largest_drop",
      "funnel[].id",
      "funnel[].label",
      "funnel[].definition",
      "funnel[].count",
      "measurements.*.value",
      "measurements.*.source",
      "blocks[].block_id",
      "blocks[].display_name",
      "blocks[].donor_repo",
      "blocks[].reuse_shape",
      "blocks[].admission_status",
      "domains[]"
    ],
    "disclosure": {
      "internal": [
        "freshness.lanes[].locator",
        "freshness.lanes[].refresh_command",
        "blocks[].dir",
        "blocks[].donor_repo_raw",
        "measurements.components_with_source.source"
      ],
      "internal_reason": "Local absolute paths, machine addresses, private corpus counts and on-disk layout. None of it is a secret in itself; all of it describes our machines rather than the work, and the component corpus is private pending the rights decision.",
      "public_default": true
    }
  },
  "boundary": {
    "research_only": true,
    "implementation_authorized": false,
    "note": "Every number in this file is computed from a named source at build time. None is asserted."
  },
  "headline": {
    "statement": "3,010 sources discovered. 0 admitted. The pipeline has never completed end to end.",
    "largest_drop": {
      "from": "discovered",
      "from_label": "Discovered",
      "to": "triaged",
      "to_label": "Triaged",
      "from_count": 3010,
      "to_count": 695,
      "lost": 2315,
      "retention": 0.2309
    },
    "first_zero_stage": {
      "id": "qualified",
      "label": "Qualified"
    }
  },
  "funnel": [
    {
      "id": "discovered",
      "label": "Discovered",
      "definition": "A row exists in the capability source registry.",
      "count": 3010,
      "lost": 0,
      "retention": 1
    },
    {
      "id": "triaged",
      "label": "Triaged",
      "definition": "A human or process assigned a disposition, or moved the verdict off the default discovery_candidate.",
      "count": 695,
      "lost": 2315,
      "retention": 0.2309
    },
    {
      "id": "rated",
      "label": "Rated",
      "definition": "Carries at least one observed fact about the source itself. Stars, tags, age and README claims are explicitly NOT evidence (R3).",
      "count": 103,
      "lost": 592,
      "retention": 0.1482
    },
    {
      "id": "forked",
      "label": "Forked",
      "definition": "We own the code: an Actionist block declares this source as its donor at a pinned revision.",
      "count": 2,
      "lost": 101,
      "retention": 0.0194
    },
    {
      "id": "built",
      "label": "Built",
      "definition": "A block manifest exists with linked records under blocks/.",
      "count": 2,
      "lost": 0,
      "retention": 1
    },
    {
      "id": "qualified",
      "label": "Qualified",
      "definition": "Qualification status is an affirmatively qualified value. Read by allowlist: an absent or unrecognised status is never qualified.",
      "count": 0,
      "lost": 2,
      "retention": 0
    },
    {
      "id": "admitted",
      "label": "Admitted",
      "definition": "Admitted for a named host and tenant scope, read by allowlist. Never \"reusable on the internet\", and never inferred from the absence of a rejection.",
      "count": 0,
      "lost": 0,
      "retention": null
    }
  ],
  "drops": [
    {
      "from": "discovered",
      "from_label": "Discovered",
      "to": "triaged",
      "to_label": "Triaged",
      "from_count": 3010,
      "to_count": 695,
      "lost": 2315,
      "retention": 0.2309
    },
    {
      "from": "triaged",
      "from_label": "Triaged",
      "to": "rated",
      "to_label": "Rated",
      "from_count": 695,
      "to_count": 103,
      "lost": 592,
      "retention": 0.1482
    },
    {
      "from": "rated",
      "from_label": "Rated",
      "to": "forked",
      "to_label": "Forked",
      "from_count": 103,
      "to_count": 2,
      "lost": 101,
      "retention": 0.0194
    },
    {
      "from": "forked",
      "from_label": "Forked",
      "to": "built",
      "to_label": "Built",
      "from_count": 2,
      "to_count": 2,
      "lost": 0,
      "retention": 1
    },
    {
      "from": "built",
      "from_label": "Built",
      "to": "qualified",
      "to_label": "Qualified",
      "from_count": 2,
      "to_count": 0,
      "lost": 2,
      "retention": 0
    },
    {
      "from": "qualified",
      "from_label": "Qualified",
      "to": "admitted",
      "to_label": "Admitted",
      "from_count": 0,
      "to_count": 0,
      "lost": 0,
      "retention": null
    }
  ],
  "blocks": [
    {
      "dir": "blocks/affine-workspace",
      "block_id": "actionist/affine-workspace",
      "display_name": "AFFiNE workspace",
      "donor_repo": "toeverything/AFFiNE",
      "donor_repo_raw": "https://github.com/toeverything/AFFiNE",
      "manifest_shape": "flat_block_id",
      "donor_pinned_revision": "v0.27.3",
      "reuse_shape": "intact_service",
      "mount_topology": "iframe_cross_origin",
      "coherence_ceiling": "bounded",
      "execution_status": "unexecuted",
      "admission_status": "held_for_decision",
      "admission_scope": {
        "tenants": [],
        "applications": [],
        "environments": []
      },
      "is_admitted": false,
      "record_count": 7,
      "qualification": {
        "status": "NOT_QUALIFIED",
        "status_field": "qualification_status",
        "family_shape": "bare_string",
        "evidence_tier": "T0",
        "families_total": 9,
        "families_pass": 1,
        "families_blocked": 8,
        "families_by_status": {
          "unknown": 2,
          "pass": 1,
          "not_run": 5,
          "deferred": 1
        },
        "dossier": "blocks/affine-workspace/records/05-qualification.json"
      }
    },
    {
      "dir": "blocks/teable-data-grid",
      "block_id": "actionist/teable-data-grid",
      "display_name": "Teable data grid",
      "donor_repo": "teableio/teable",
      "donor_repo_raw": "https://github.com/teableio/teable.git",
      "manifest_shape": "flat_block_id",
      "donor_pinned_revision": "b245a987f8bfb7411d4e2423907b9cbb0a1c9b6b",
      "reuse_shape": "intact_service",
      "mount_topology": "service_only",
      "coherence_ceiling": null,
      "execution_status": "partial_local_proof",
      "admission_status": "held_for_decision",
      "admission_scope": {
        "tenants": [],
        "applications": [],
        "environments": [
          "synthetic_fixture_only"
        ],
        "interpretation": "An empty tenant/application scope means admitted nowhere; synthetic fixture status is a test boundary, not an admission."
      },
      "is_admitted": false,
      "record_count": 7,
      "qualification": {
        "status": "partial_local_proof_hold",
        "status_field": "status",
        "family_shape": "object_with_status",
        "evidence_tier": "T0",
        "families_total": 9,
        "families_pass": 4,
        "families_blocked": 5,
        "families_by_status": {
          "pass": 4,
          "deferred": 4,
          "not_run": 1
        },
        "dossier": "blocks/teable-data-grid/records/qualification.json"
      }
    }
  ],
  "estate_defects": [
    {
      "id": "divergent_block_manifest_schemas",
      "severity": "structural",
      "owner": "Blocks (SOL-ESTATE)",
      "statement": "The block manifests and qualification dossiers use disjoint schemas. No single validator can read both, so nothing mechanically checks that a block is well-formed.",
      "observed": [
        {
          "block_id": "actionist/affine-workspace",
          "id_field": "block_id",
          "admission_vocabulary": "admission_status + execution_status",
          "dossier_status_field": "qualification_status",
          "family_value_shape": "bare_string"
        },
        {
          "block_id": "actionist/teable-data-grid",
          "id_field": "block_id",
          "admission_vocabulary": "admission_status + execution_status",
          "dossier_status_field": "status",
          "family_value_shape": "object_with_status"
        }
      ],
      "why_it_matters": "Two blocks can be reconciled by hand. A shelf heading for hundreds cannot. Every consumer currently re-implements the same field-shape guesswork, and each one can guess differently — this has already produced one wrong published number: a reader expecting object-shaped family entries silently counted AFFiNE's passing family as zero, and the error reached a client-facing artifact before it was caught.",
      "detection": "Computed by comparing manifest_shape and qualification family value shapes across blocks/. Resolves automatically when the schemas converge."
    },
    {
      "id": "inconsistent_donor_identity_in_manifests",
      "severity": "data",
      "owner": "Blocks (SOL-ESTATE)",
      "statement": "Donor repositories are recorded in different formats across manifests: a bare owner/repo slug in one, a full .git clone URL in another.",
      "observed": [
        {
          "block_id": "actionist/affine-workspace",
          "raw": "https://github.com/toeverything/AFFiNE",
          "canonical": "toeverything/AFFiNE"
        },
        {
          "block_id": "actionist/teable-data-grid",
          "raw": "https://github.com/teableio/teable.git",
          "canonical": "teableio/teable"
        }
      ],
      "why_it_matters": "Anything joining on donor identity silently fails to match rather than erroring. state.json normalises on the way out, so consumers are protected, but the underlying records still disagree.",
      "detection": "Computed by comparing each manifest raw donor value against its canonical owner/repo form."
    }
  ],
  "freshness": {
    "policy": "Per-lane budgets, never uniform. Local lanes are measured every build; external lanes are declared and never triggered by the front door.",
    "lanes": [
      {
        "id": "capability_source_registry",
        "label": "Capability source registry",
        "tier": "local",
        "owner": "Discovery",
        "locator": "knowledge/capability-shelf/source-registry.jsonl",
        "staleness_budget_days": 14,
        "budget_rationale": "Discovery runs in campaign waves, not continuously. Two weeks between waves is normal operation, not decay.",
        "refresh_command": "See research/workstreams/*/shelf-prebake/ intake receipts",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-29",
        "age_days": 0.03,
        "note": "3,010 rows. Stage-0 intake with no judgment applied; row count is explicitly NOT a measure of shelf quality."
      },
      {
        "id": "blocks",
        "label": "Actionist blocks",
        "tier": "local",
        "owner": "Blocks",
        "locator": "blocks",
        "staleness_budget_days": 21,
        "budget_rationale": "A block is weeks of work. Three weeks without a change is a slow patch, not a stall.",
        "refresh_command": "knowledge/capability-shelf/FOUNDRY-PROCESS.md",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-29",
        "age_days": 0.01,
        "note": "Two prototypes, zero admitted."
      },
      {
        "id": "framework_register",
        "label": "Framework register",
        "tier": "local",
        "owner": "Front door",
        "locator": "knowledge/frameworks/framework-register.json",
        "staleness_budget_days": 30,
        "budget_rationale": "Frameworks are synthesis artifacts. They should change slowly; churn here would be a smell, not health.",
        "refresh_command": "node site/system-map/scripts/generate-framework-pages.mjs",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-28",
        "age_days": 0.91,
        "note": "Canonical original. The copy under site/system-map/task-graph/frameworks/ is generated, never edited."
      },
      {
        "id": "page_registry",
        "label": "Site page registry",
        "tier": "local",
        "owner": "Front door",
        "locator": "site/system-map/data/page-registry.json",
        "staleness_budget_days": 7,
        "budget_rationale": "The registry projects the entire site IA at runtime. If it lags the HTML by more than a week, navigation is lying.",
        "refresh_command": "node site/system-map/scripts/build.mjs",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-29",
        "age_days": 0,
        "note": "Drives nav, cmd-K, sections and ordering. Route/registry closure is enforced by verify-site.mjs."
      },
      {
        "id": "parts",
        "label": "System parts",
        "tier": "local",
        "owner": "Front door",
        "locator": "site/system-map/data/parts.json",
        "staleness_budget_days": 30,
        "budget_rationale": "The 15-part decomposition is the stable spine of the system map. Frequent change would mean the model is not settled.",
        "refresh_command": "node site/system-map/scripts/generate-part-pages.mjs",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-29",
        "age_days": 0.08,
        "note": "Single source for the 15 part pages, the front-page map and the inline card data."
      },
      {
        "id": "component_store_21st",
        "label": "Component store (21st)",
        "tier": "local",
        "owner": "Components",
        "locator": "/Users/shaansisodia/SISO_Workspace/SISO_Knowledge/design-system/library/21st-dev",
        "staleness_budget_days": 180,
        "budget_rationale": "A settled corpus on disk. It is not decaying; it is inventory. A long budget prevents this lane from crying wolf every week about a store nobody intended to change.",
        "refresh_command": "Components domain — acquisition is paused pending the rights decision (INTENT §5)",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-04-23",
        "age_days": 127.51,
        "note": "3,509 component directories with real source. Private: built by a mechanism 21st.dev's terms prohibit."
      },
      {
        "id": "great_library",
        "label": "Great Library registry",
        "tier": "local",
        "owner": "Great Library",
        "locator": "/Users/shaansisodia/SISO_Workspace/Great_Library_of_SISO/registry/works",
        "staleness_budget_days": 14,
        "budget_rationale": "Maintained daily upstream. Two weeks of silence locally means our copy of the relationship has gone quiet, which is worth surfacing.",
        "refresh_command": "Great Library is a separate repo; pull upstream",
        "state": "FRESH",
        "reachable": true,
        "last_swept": "2026-08-27",
        "age_days": 2.06,
        "note": "Actionist answers GQ-004 and instantiates GQ-006. Read-only from here."
      },
      {
        "id": "mini_corpus",
        "label": "Mac Mini discovery corpus",
        "tier": "external",
        "owner": "Discovery",
        "locator": "ssh://100.86.94.117 identity.sqlite",
        "staleness_budget_days": 30,
        "budget_rationale": "A 1.9GB working index refreshed by campaign, not continuously. But it has been unreachable, and unreachable is a different fact from stale.",
        "refresh_command": "ssh 100.86.94.117 — see mac-mini-herdr-control",
        "state": "DECLARED",
        "reachable": null,
        "last_swept": null,
        "age_days": null,
        "note": "1,358,200 repo_card rows, 465k identities, 386k categorisations. UNREACHABLE when last probed (2026-08-29, connection timed out). Deliberately NOT probed at build time: the front door never opens an SSH session. Its row counts are cited in research as historical observations and must never be rendered as current.",
        "probe": "not_attempted_by_design"
      },
      {
        "id": "github_discovery",
        "label": "GitHub discovery sweeps",
        "tier": "external",
        "owner": "Discovery",
        "locator": "https://api.github.com",
        "staleness_budget_days": 30,
        "budget_rationale": "Rate-limited and expensive. Campaign-driven by design.",
        "refresh_command": "research/workstreams/2026-08-28-night-discovery-verticals/",
        "state": "DECLARED",
        "reachable": null,
        "last_swept": "2026-08-28",
        "age_days": 1.25,
        "note": "577 rows admitted at stage 0 in the last wave. Declared, never triggered by a page load.",
        "probe": "not_attempted_by_design"
      }
    ],
    "summary": {
      "fresh": 7,
      "overdue": 0,
      "unreachable": 0,
      "declared": 2,
      "total": 9
    }
  },
  "measurements": {
    "sources_registered": {
      "value": 3010,
      "source": "knowledge/capability-shelf/source-registry.jsonl",
      "method": "JSONL line count"
    },
    "blocks_built": {
      "value": 2,
      "source": "blocks/*/actionist-block.json",
      "method": "manifest count"
    },
    "blocks_admitted": {
      "value": 0,
      "source": "blocks/*/actionist-block.json",
      "method": "lifecycle.admission_status in {admitted, admitted_for_scope} AND admission_scope names at least one tenant or application. Allowlist, not a negation against a sentinel — an absent or unrecognised status is never counted as admitted."
    },
    "parts_mapped": {
      "value": 15,
      "source": "site/system-map/data/parts.json",
      "method": "array length"
    },
    "frameworks_registered": {
      "value": 24,
      "source": "knowledge/frameworks/framework-register.json",
      "method": "frameworks[] length"
    },
    "published_routes": {
      "value": 206,
      "source": "site/system-map/data/page-registry.json",
      "method": "pages[] where !external"
    },
    "components_with_source": {
      "value": 3507,
      "source": "SISO_Knowledge/design-system/library/21st-dev/",
      "method": "directory count excluding _utils"
    },
    "great_library_works": {
      "value": 33,
      "source": "Great_Library_of_SISO/registry/works/",
      "method": "*.json file count"
    }
  },
  "domains": [
    {
      "domain": "Components",
      "owns": "The UI corpus: acquisition, taxonomy, curation, storage",
      "contract": "Canonical entity + alias set, normalised author/slug identity, Dynamic Search wire format"
    },
    {
      "domain": "Blocks",
      "owns": "Repo→block conversion, forks, the catalog",
      "contract": "The seven linked records; actionist/<name>@<semver> identity"
    },
    {
      "domain": "Discovery",
      "owns": "Mining all seams (Mini corpus, GitHub, industry scrapes)",
      "contract": "Rated candidates with provenance and evidence class"
    },
    {
      "domain": "Composition",
      "owns": "Fitting blocks into an app",
      "contract": "AssemblyPlan, CompatibilityProof, UNDERDETERMINED questions"
    },
    {
      "domain": "Host",
      "owns": "Identity, tenancy, data, settings, navigation, connectors",
      "contract": "HostContract"
    },
    {
      "domain": "Front door",
      "owns": "INTENT.md, the site, the state record",
      "contract": "INTENT.md, STATE.json, the published map"
    }
  ]
}
