Skip to main content

Campaign 7 — Core SYSTEM.yaml rollout

Purpose

Make the estate reconstructable from small repository-local declarations plus one portfolio graph. This first wave covers 25 repositories, 6 connected components, and 28 explicit cross-repository edges.

The objective is not to freeze architecture prematurely. It is to make current authority, interfaces, dependencies, and uncertainty inspectable before deeper integration or refactoring work.

Authority split

  • Each repository's SYSTEM.yaml owns that repository's precise boundary.
  • projects/estate/core-system-graph.yaml owns the portfolio-level projection.
  • projects is not a runtime dependency.
  • kb-contracts remains limited to shared knowledge interoperability; it does not become a general estate schema registry.
  • Viewer, documentation, routing, and MCP repositories remain projections or access adapters rather than alternative truth stores.

Components

ComponentRepositories
portfolio-control1
knowledge-fabric6
operations-loop4
accounting-flow4
poverty-research-flow7
web-factory3

Interface vocabulary

Interface identifiers use <kind>:<stable-name>@<major> where a version exists.

Examples:

  • contract:kb.chunk-set@1
  • artifact:acct.professional-pack@1
  • catalog:kb.context-routing@1
  • protocol:mcp.matias-context@1
  • publication:web.poverty-atlas@1

These names identify seams, not shared runtime imports.

Rollout rules

  1. Do not invent commands. Empty canonical_commands plus an explicit verification unknown is better than a false command.
  2. upstream and downstream describe operational or artifact relationships, not the control-plane relationship to projects.
  3. Proposed edges remain proposed until repository inspection or a successful integration check supplies stronger evidence.
  4. Generated paths describe outputs, caches, or publication builds; they do not imply those paths should be committed.
  5. A repository may remain an isolated component. Connectivity is informative, not a reason to create artificial dependencies.
  6. Renames do not change stable repo.* identifiers or declaration IDs.
  7. After every repository PR merges, update rollout_status and reconcile local declarations against this projection.

Validation

make system-check
make system-generate
make system-all

system-check validates node identity, registry membership, system membership, edge endpoints, interface compatibility, and graph/list symmetry.

Known limits

  • Runtime commands and generated paths are metadata-only for several repositories and are explicitly marked as unknown.
  • The graph does not execute remote repositories or validate production deployments.
  • repo.atlas-site remains the stable estate ID although the current GitHub repository is atlas-pobreza-docs.
  • This first wave excludes historical, frozen, superseded, standalone, and institutional-knowledge repositories; later waves can add them without changing these stable IDs.