Skip to main content

Ecosystem map and registry

This page is the single place where the ecosystem is enumerated and governed.

It lists the active projects, assigns each project a primary role in the constellation, and specifies the stable seams that are allowed between them.

This is a planning and enforcement artifact, not a feature list. If something is not captured here, it is not a stable dependency.

What this page is for

This registry is used to:

  • Plan integration work without guessing how repos connect
  • Enforce that consumers read only from bus endpoints
  • Provide a fast audit surface for health checks and smoke tests
  • Make drift visible as soon as it happens

Core concept: bus role

A bus role is the primary responsibility a repo has in the ecosystem, defined by the artifacts it emits and the contracts it guarantees.

Why each repo has exactly one primary role:

  • It forces clean boundaries and prevents hidden coupling
  • It makes ownership of a bus explicit
  • It keeps pipelines composable: producers produce, consumers consume, publishers publish
  • It reduces rework by making failures attributable to one contract boundary

A repo may have secondary utilities, but it must have one primary role that determines:

  • its required outputs
  • its schema versions
  • its smoke test
  • its run record format and location

The registry

The table below is the authoritative map of projects and integration seams.

Update this table whenever a repo becomes a dependency of another repo.

ProjectBus rolePrimary inputsPrimary outputsEntrypointsSmoke testRun record locationSchema versions emitted
gpt_eventbusEvent bus producerRaw exports (local input only)Daily event JSONL + manifestCLI entrypoint for ingestSmoke: ingest yesterday with empty allowedartifacts/run_records/event.v1
gpt_sessionsSessions bus producerEvent bus daily + manifestSessions daily + clusters + manifestCLI entrypoint for sessionizeSmoke: read eventbus and emit empty valid sessionsartifacts/run_records/sessions.v1, clusters.v1
summarizerSummary bus producerEvent bus, Sessions busSummary daily + manifestCLI entrypoint for summarizeSmoke: summarize zero items deterministicallyartifacts/run_records/summary.v1
kb_digestsDigest bus packagerSummary bus (preferred), Sessions bus (fallback)Digests + indexes + published markdownCLI entrypoint for bag buildSmoke: build with empty input and emit indexesartifacts/run_records/digests.l2.v1
kb_chunksChunk bus producerPapers, notes, parsersCanonical chunks + manifestCLI entrypoint for chunk ingestSmoke: ingest a single fixture into chunksartifacts/run_records/chunks.v1

Notes:

  • Inputs listed here are the only allowed integration seams.
  • Any additional coupling is considered a contract violation.

Integration constraints

These constraints are not suggestions. They are hard rules that keep integration cheap.

Consumers read buses only

A consumer must read only:

  • the bus endpoint artifacts (daily files plus manifests)
  • the index files that are explicitly part of a contract

A consumer must not:

  • reach into upstream repo internals
  • import upstream internal modules
  • read upstream staging folders
  • depend on upstream local caches

No raw upstream reads across repos

Raw inputs are private to the producer repo.

If a downstream repo needs something that only exists in raw form upstream, the correct fix is:

  • add a field to the bus contract and bump the schema version
  • or add a new bus artifact with a manifest
  • and document the change with an ADR

How to add a new project

A new project can be added only when it is intended to become a stable dependency in the ecosystem.

Criteria for adding a project:

  • It has a single primary bus role
  • It emits at least one contract defined artifact that other repos will consume
  • It can be run deterministically on a defined input set
  • It can fail fast on contract violations

Required for admission:

  1. Contracts
  • Declared schemas for its emitted bus artifacts
  • A manifest format for emitted artifacts
  • Versioning rules and compatibility expectations
  1. Smoke test
  • A command that runs in a clean environment
  • Uses a minimal fixture or an empty day
  • Emits required outputs even if empty
  • Validates schemas and writes a run record
  1. Run record compliance
  • Writes a run record on every run, success or failure
  • Records input manifests, output paths, schema versions, and error taxonomy
  • Records deterministic identifiers for the run (run_id, prompt hash if applicable, code version if available)

After admission, the project must be added to the registry table with:

  • bus role
  • seams
  • entrypoint and smoke test
  • run record location
  • schema versions emitted

Allowed exceptions

Exceptions exist, but they must remain quarantined.

Allowed exceptions:

  • Experimental scratchpads can exist for exploration and spikes.
  • They may read bus artifacts for analysis.

Not allowed:

  • Scratchpads must not become upstream dependencies.
  • No other repo may depend on scratchpad outputs.
  • Scratchpad artifacts must not be treated as buses.
  • Any reusable result must be promoted into a proper repo with contracts, manifests, smoke tests, and run records.

If an experiment proves valuable, promote it by extracting a stable contract and creating a proper bus producing or consuming module, then add it to this registry.