030-source-adapter-framework

Source adapters: one contract, incremental and resumable, so a capability is never a fork

Lifecycle approvedImplementation pendingVerification unknownQualification unknown

The predecessor's ecosystem grew by forking the server: fifty-odd capabilities, each a copy of the same six hundred lines, so a fix in one never reached the others. This spec is the alternative. A source is an implementation of one trait, registered by name, driven by one runner that owns fetching pages, mapping to candidates, passing the gate, staging the transaction, recording a resumable cursor, and reporting progress. Adding a source is a module and a fixture set, and it inherits dedup, retries, provenance, egress governance, and the untrusted content boundary without restating any of them.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/Cargo.toml"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/lib.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/adapter.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/run.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/cursor.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/mapping.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/registry.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/src/migrations.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/tests/adapter.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-ingest/tests/run.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "012-store-schema-and-repositories",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-store/src/migrations.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "020-http-api-and-scopes",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-api/src/router.rs"
      }
    }

Source headings

  1. 030: Source adapters
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 4. Functional requirements
  6. 5. Acceptance criteria
  7. 6. Out of scope
  8. 7. Resolved decisions
  9. Verification

Frozen anchors

No frozen anchors declared.