Skip to content

feat(semantic): agent orientation contract + machine-readable manifest (#20) - #42

Merged
earthshiner merged 1 commit into
Teradata:mainfrom
earthshiner:feat/orientation-manifest
Aug 12, 2026
Merged

earthshiner merged 1 commit into
Teradata:mainfrom
earthshiner:feat/orientation-manifest

Conversation

@earthshiner

@earthshiner earthshiner commented Jul 18, 2026 •

Copy link
Copy Markdown
Collaborator

Resolves #20. Rebased onto the post-#44 corpus (the Design / Implementation split from #49).

The original branch edited design-standards/Semantic_Module_Design_Standard.md (§3.10–3.11), deleted by the restructure. This re-expresses the change in the two-layer structure and reconciles it with the orientation layer already in main — which realised orientation as a prose handshake plus a manifest_json blob, but with no ordered relation and no generated (drift-proof) manifest.

Design (platform-neutral)

  • design/modules/semantic.md §3.2 — DataProductOrientation entity: an ordered relation, one row per resource, controlled resource_role vocabulary, is_required, discovery_order.
  • §4 — the orientation relation and consumption contract as normative (process in discovery_order; evaluate TRUST_GATE before any analytical resource; resolve required resources; use identities verbatim), and the manifest-is-generated rule (a derived view over registry + orientation, so it cannot drift). INV-SEMANTIC-008/009 + designer-checklist item.

Implementation (Teradata binding)

  • implementation/teradata/modules/semantic/07-orientation-manifest.sql.j2 — data_product_orientation table + the generated data_product_manifest view over governance.data_product_registry; canonical created_dts/updated_dts via the temporal macro.
  • validation.sql.j2 — five orientation checks + a manifest-consistency check. 06-orientation.md now points at the relation/view as authoritative; README updated.

Reconciliation with main

The generated data_product_manifest view supersedes hand-authoring the manifest; data_product_registry.manifest_json is kept as the serialised whole-document form (regenerated, not authored). The resource_role vocabulary is woven into the §4 prose that previously named resources only loosely.

Verification (clean on the branch)

python tooling/validation/design_lint.py design implementation examples
python tooling/evals/brief_lint.py tooling/evals/reference/customer-orders.md
python -m unittest discover -s tooling/validation/tests
design-lint: clean · brief-lint: clean · Ran 103 tests ... OK

Notes

@earthshiner
earthshiner requested a review from NathanG-TD July 18, 2026 02:06
@earthshiner earthshiner self-assigned this Jul 18, 2026
@earthshiner
earthshiner marked this pull request as ready for review July 20, 2026 05:05
earthshiner added a commit to earthshiner/ai-native-data-products that referenced this pull request Aug 12, 2026
…ated to design/implementation split

Resolves Teradata#20. Rebases PR Teradata#42 onto the post-Teradata#44 corpus: the old change edited
design-standards/Semantic_Module_Design_Standard.md, deleted by the restructure,
so this re-expresses it in the two-layer structure and reconciles it with the
orientation layer already in main (prose handshake + a manifest_json blob).

Design (platform-neutral, no SQL):
- design/modules/semantic.md §3.2: DataProductOrientation entity (ordered, one
  row per resource, controlled resource_role vocabulary, is_required,
  discovery_order). §4: the orientation relation and consumption contract as
  normative (process in discovery_order, trust gate before analytics, resolve
  required resources, identities verbatim), and the manifest-is-generated rule.
  INV-SEMANTIC-008/009; designer checklist item.

Implementation (Teradata binding):
- 07-orientation-manifest.sql.j2: data_product_orientation table + generated
  data_product_manifest view over governance.data_product_registry, so the
  manifest cannot drift; canonical created_dts/updated_dts via the temporal macro.
- validation.sql.j2: INV-SEMANTIC-008/009 checks (missing required role,
  duplicate role/order, undeployed object, unordered trust gate, unbacked
  manifest entrypoint). 06-orientation.md points at the relation/view as the
  authoritative source; manifest_json is the serialised form. README updated.

Reconciliation: the generated view supersedes hand-authoring manifest_json;
registry.manifest_json is kept as the serialised whole-document form.
Reference brief acknowledges the two new invariants.

Note: parallel PR Teradata#43 (Teradata#9) also introduces INV-SEMANTIC-008..010 and a 07-*.sql.j2;
whichever merges second needs a trivial invariant/file renumber.

design-lint + brief-lint clean; 103 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@earthshiner
earthshiner force-pushed the feat/orientation-manifest branch from ca0cd95 to 369346a Compare August 12, 2026 05:29
…ated to design/implementation split

Resolves Teradata#20. Rebases PR Teradata#42 onto the post-Teradata#44 corpus: the old change edited
design-standards/Semantic_Module_Design_Standard.md, deleted by the restructure,
so this re-expresses it in the two-layer structure and reconciles it with the
orientation layer already in main (prose handshake + a manifest_json blob).

Design (platform-neutral, no SQL):
- design/modules/semantic.md §3.2: DataProductOrientation entity (ordered, one
  row per resource, controlled resource_role vocabulary, is_required,
  discovery_order). §4: the orientation relation and consumption contract as
  normative (process in discovery_order, trust gate before analytics, resolve
  required resources, identities verbatim), and the manifest-is-generated rule.
  INV-SEMANTIC-011/012; designer checklist item.

Implementation (Teradata binding):
- 09-orientation-manifest.sql.j2: data_product_orientation table + generated
  data_product_manifest view over governance.data_product_registry, so the
  manifest cannot drift; canonical created_dts/updated_dts via the temporal macro.
- validation.sql.j2: INV-SEMANTIC-011/012 checks (missing required role,
  duplicate role/order, undeployed object, unordered trust gate, unbacked
  manifest entrypoint). 06-orientation.md points at the relation/view as the
  authoritative source; manifest_json is the serialised form. README updated.

Reconciliation: the generated view supersedes hand-authoring manifest_json;
registry.manifest_json is kept as the serialised whole-document form.
Reference brief acknowledges the two new invariants.

Numbered to co-exist with parallel PR Teradata#43 (Teradata#9), which owns INV-SEMANTIC-008..010
and 07-/08-*.sql.j2: this PR uses INV-SEMANTIC-011/012 and 09-*.sql.j2, so both
merge in either order with no collision.

design-lint + brief-lint clean; 103 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@earthshiner
earthshiner force-pushed the feat/orientation-manifest branch from 369346a to 3b06bf2 Compare August 12, 2026 05:34
@earthshiner
earthshiner merged commit 3b06bf2 into Teradata:main Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define a standard agent orientation and data product manifest contract

1 participant