# Inter-repo contracts. Festipod is a CONSUMER only: it publishes no interface of its own, # and it consumes two — the SDK surface `@ng-eventually/polyfill` engages toward the # applications built on it, and the indexing layer `ng-helpers` engages toward the # applications that need to make things findable. # # The pulled copy under `into:` IS the specification Festipod codes against. An agent # working here reads that copy and never opens the provider's own source: a gap is raised # upstream (see `data-layer/rule_app-uses-sdk-surface-only`), never peeked around. # # Each interface gets its own FOLDER inside the concept that owns it, holding the pulled # engagement and — once Festipod actually consumes the interface — the `usage_festipod.md` # declaration beside it. Both interfaces land in `data-layer`: it is the concept that owns # how Festipod uses an external data surface, including the machinery behind discovery # (`functional-domain` owns the product intent of discovery and explicitly delegates its # technical how to the data SDK). # # `pullFrom:` names the canonical identity of the provider (its git remote URL + the # repo-relative path of the leaf), so the manifest travels with the branch. Per-developer # access to a local checkout lives in `.project/contracts.local.yaml`, which is never # committed. consume: - contract: polyfill-surface into: concepts/data-layer/polyfill-surface/ type: git # BLOCKED on the provider: it has moved this leaf into its own interface folder # (`.../app-contract/polyfill-surface/contract_polyfill-surface.md`) and has NOT pushed # that move. The path below is the only one that resolves at a pushed commit, and it is # the path the local copy's stamp came from — so it stays until the move is pushed. # Until then `pull` and `check` both fail on this entry (the file no longer exists at # this path in a working copy that has the move). Adopt the new path and re-pull the # moment the provider pushes; the pulled copy's basename does not change. pullFrom: https://gitea.reconnexion.apps.gueraud.net/Reconnexion/ng-eventually.git/.project/concepts/app-contract/contract_polyfill-surface.md # The contract is published from the branch that carries it while that branch is still # in flight; it moves to `main` once the provider lands it there. Flip this line then, # and re-pull — the stamp records which commit the local copy actually came from. ref: a8d53010c227462cc9317e9be499c2100ca8d533 - contract: indexing-layer into: concepts/data-layer/indexing-layer/ type: git pullFrom: https://gitea.reconnexion.apps.gueraud.net/Sylvain/ng-helpers.git/.project/concepts/indexing/indexing-layer/contract_indexing-layer.md # Pinned on the TAG, never on a branch: a branch moves under us and the pin would stop # naming a state anyone can go back to. Re-pin to the next tag at each upgrade. ref: v1.0.0