Skip to content

feat(protocol): BeaconV3 building-identity beacon#5

Merged
zkSoju merged 1 commit into
mainfrom
beacon-v3-author
May 26, 2026
Merged

feat(protocol): BeaconV3 building-identity beacon#5
zkSoju merged 1 commit into
mainfrom
beacon-v3-author

Conversation

@zkSoju
Copy link
Copy Markdown
Contributor

@zkSoju zkSoju commented May 26, 2026

Summary

V3 building-identity beacon for inventory-api per ADR-008 §D-11. New file at packages/protocol/beacon.yaml.

  • Validated via Schema.decodeUnknown(BeaconV3Schema) — PASS

Diverged from canonical fixture (deliberate)

The fixture at loa-freeside/packages/beacon-schema/tests/fixtures/freeside-inventory-v3.yaml modeled this cell speculatively. Real-code findings:

  • No freeside-storage import in src/ — removed from composes_with. README §"Is not" line 18 names storage as the sovereign-target metadata successor (future), but today src/codex-client.ts reads local fixtures/codex-tokens.json.
  • Tools list rewritten: actual MCP registration is getHoldings, getNftsForOwner, getNftMetadata (3 tools per mcp.json + src/routes.ts). The fixture's list_holder_inventory / get_token_balance / resolve_collection_metadata names don't exist in code.
  • Hashes zeroed: fixture had fabricated a3f2c891d4e8b7c2-style hashes. Replaced with placeholder zeros for freeside-cli doctor to recompute.

Honest signals

  • acvp_invariants: ASPIRATIONAL — tests/acvp/ directory does NOT exist. event_completeness IS implemented in src/completeness.ts (proved by tests/live-smoke.test.ts) but not yet bound under tests/acvp/.
  • sealed_schemas[0].path (packages/protocol/inventory-snapshot.schema.json) does NOT exist yet — declared so consumer surface is named.
  • cycle_state: candidate (not active) — honored README §Provenance verbatim.

Substrate context

Part of cluster-wide BeaconV3 sweep dispatched from loa-freeside (/coord beacon-v3 2026-05-26).

Test plan

  • Operator reviews is/is_not
  • Bind event_completeness invariant under tests/acvp/ (follow-up)
  • Create packages/protocol/inventory-snapshot.schema.json (follow-up)

🤖 Generated with Claude Code

V3 author per ADR-008 §D-11 (separate shape from V2 MCP-tenant declaration).

is.scope: sovereign read-side inventory aggregator (ERC721+ERC1155); joins
sonar ownership with codex metadata; ACVP completeness envelope; HTTP +
MCP from one Hyper graph.

is_not: 4 grounded entries (no mint/burn/transfer; no chain RPC proxy;
no metadata ownership; no third-party indexers like Alchemy/Zapper/Dune).

composes_with:
  - freeside-sonar (required, CONFIDENT — src/inventory.ts imports sonarClient)
  - storage REMOVED from canonical fixture (no actual storage imports in src/)

tools: getHoldings, getNftsForOwner, getNftMetadata (the THREE actually
registered in src/routes.ts → mcp.json — fixture's list_holder_inventory/
get_token_balance/resolve_collection_metadata names don't exist in code).

acvp_invariants: ASPIRATIONAL — tests/acvp/ directory doesn't exist yet.
event_completeness IS implemented in src/completeness.ts but proved by
tests/live-smoke.test.ts not by a tests/acvp/ binding. Listed nonetheless
to declare intended verifiability shape.

cycle_state: candidate (matches README §Provenance verbatim).

Placeholder hashes on composes_with.tag + sealed_schemas.hash — freeside-cli
doctor recomputes at deploy.

Dispatched from loa-freeside cluster coordinator (/coord beacon-v3 sweep).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@zkSoju zkSoju merged commit 20df1cb into main May 26, 2026
3 checks passed
@zkSoju zkSoju deleted the beacon-v3-author branch May 26, 2026 22:51
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