Skip to content

feat: hawk-core-contracts architecture and ecosystem boundary enforcement#66

Open
Patel230 wants to merge 19 commits into
mainfrom
docs/contracts-architecture-truth
Open

feat: hawk-core-contracts architecture and ecosystem boundary enforcement#66
Patel230 wants to merge 19 commits into
mainfrom
docs/contracts-architecture-truth

Conversation

@Patel230

@Patel230 Patel230 commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • align Hawk to hawk-core-contracts as the shared cross-repo API and remove the legacy hawk/shared/types path
  • keep eyrie/client limited to Hawk transport adapter edges with Hawk-owned runtime DTOs
  • wire neutral review, verify, tools, events, and policy contracts at product boundaries
  • add ecosystem, shared-types, eyrie-client, and peer-coupling guards plus docs/meta-audit tests
  • repin Hawk external architecture dependencies and normalize architecture status docs

Merge order

Merge the support-engine and consumer boundary PRs first, then merge this Hawk integration PR.

Test plan

  • make ecosystem-guard contracts-guard eyrie-client-guard peer-guard
  • go test ./internal/testaudit/...
  • targeted local verification against the repinned external/* snapshot

Patel230 added 19 commits June 21, 2026 06:10
Add the hawk-core-contracts module to the local workspace and migrate Hawk runtime, session, policy, event, review, and verification boundaries to consume neutral contracts instead of leaking Hawk internals or eyrie/client types.

Also add import guardrails, architecture docs, and the sight/inspect submodule adapter commits required by the Hawk bridge layer.
…ality

The contracts architecture docs described an aspirational state that did not
match the implemented module. Bring them in sync with the code:

- dependency-rules: split the required graph (always-true edges) from contract
  edges. Document that an engine depends on hawk-core-contracts only when it
  produces/consumes a cross-repo contract. Reflect actual state: sight, inspect,
  and tok consume contracts; eyrie, yaad, and trace share no cross-repo types
  and stay contract-free. Mark enforcement (boundary guards in CI) as done and
  record open items (unpublished v0.0.0 module, rg dependency in guards).
- contracts-spec: drop the non-existent `engines/` and `sessions/` packages from
  the "present" layout (kept as explicitly planned), and replace the aspirational
  type list with the contracts that actually exist per package.
- migration backlog: record removal of the duplicate tok/types definitions.
Match the established ecosystem binding (eyrie/sight/etc.): require the module
by published version and keep the local redirect in go.work, not go.mod.

- go.mod: require hawk-core-contracts v0.1.0 (was v0.0.0), drop the
  `replace => ./external/hawk-core-contracts`
- go.work: move hawk-core-contracts into the replace block alongside the other
  engines (was a stray `use` directive)

Local builds resolve via go.work -> ./external/hawk-core-contracts; CI will
resolve the published v0.1.0 once the module is tagged. Matches eyrie exactly.
Update architecture.md to reflect the finished contracts migration and pin
the external hawk-core-contracts checkout to the refreshed README.
Document the shipping bar for the contracts-and-boundaries refactor,
including explicit non-goals and post-v1 contract governance rules.
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.

1 participant