279faa4541
Four of the five fields the caveat said were silently lost are now persisted, so the caveat is retired rather than trimmed. What was genuinely unique in it -- the inbox predicate being a vestige that must stay unused -- moved into the Event bullet where the shape is described; what merely duplicated the entity leaf went. Only `themes` remains unpersisted, and since nothing reads it back it is a note rather than a hazard. The regeneration warning is reframed rather than deleted. It said the ORM generator had drifted from the committed bindings; that no longer reproduces -- regenerating from the unchanged shape gives byte-identical output. What survives is the technique that established it: run the generator on unchanged input first, so an ORM diff separates cleanly into the author's change and the generator's own. A warning became a way of working. The same stale claim sat independently in the commands leaf and was found by grep, not by the briefing. Recorded where the screen hazards live: the edit form seeds its inputs on first render, so mounted before its event lands in the reactive set it stays blank -- the same class as a value that is empty until a read arrives. Verified rather than assumed: the misleading French date example flagged for correction exists nowhere in the doctrine. It lives in a shape comment and the binding generated from it, both outside this pass, and is noted as such.
46 lines
2.9 KiB
YAML
46 lines
2.9 KiB
YAML
# 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
|