Repository navigation
Description
Parent
What to build
References in Project Intent are typed references in the domain model, not strings: a route's Process and surface, a scrape's Process and surface, a dependency edge's Application and surface, and an ${exposure:...} placeholder's Application and exposure name. One linking step resolves them after parsing.
- References inside one document (routes, scrapes) resolve here.
E_UNKNOWN_SURFACEfires when a route or scrape names a surface its Process does not provide, and the diagnostic carries the route's document path. - References to another Application are recorded unresolved and resolved over the composed union by Evaluate identity and reference invariants over a composed union #46.
- Chapter 10 states one opt-out convention: where an absent block means "none" (an omitted
observabilityblock means no monitoring) and where an explicitnoneis required (probes, because a forgotten probe block is more dangerous than a forgotten alert). The metamodel encodes it. - Chapter 10's class diagram draws the references as associations instead of dependency arrows labelled "resolves by name".
Parity
References become typed references in both implementations: domain types in src/, and Ecore references (not string attributes) in the Java Project Intent metamodel, which the descriptor records as references so the two cannot silently differ. E_UNKNOWN_SURFACE and the scrape code each get a refusal fixture with a committed diagnostics.json whose path is the JSON Pointer of the route or scrape. The Java counterpart is a Complete OCL invariant named by each code, filed with the Java Task 1 work.
Acceptance criteria
- A route naming a surface its Process does not provide fails with
E_UNKNOWN_SURFACEand the route's path, proved by a refusal fixture. - A scrape naming a Process outside its Application fails with a code.
- The domain types hold references to Processes and surfaces, not name strings.
- The opt-out convention is stated once in chapter 10.
- The descriptor records every reference as a reference with its target class, and both refusal fixtures carry committed diagnostics.
Activity
fix(ci): claim only what closes, fixes or resolves a pull request
docs: route every agent through AGENTS.md (#121)