Skip to content

feat(core): land platform API symbols as typed stubs (XWING-2206) - #7

Merged
smith-xyz merged 1 commit into
mainfrom
feat/symbol-pass
Oct 16, 2026
Merged

smith-xyz merged 1 commit into
mainfrom
feat/symbol-pass

Conversation

@smith-xyz

@smith-xyz smith-xyz commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Land the full platform API surface in traust_core.v1 as typed stubs: models (typed IDs, contracts vocabulary, shared types, every domain's entities with behaviour on the model), repository and provider ports, and one service per domain with prepare / record skill doors and reads, plus onboarding, insight (dashboards), lint, ledger, provider catalog, migrations. 224 stubs, each naming the legacy code it replaces; everything already implemented keeps working.

  • Replace the 18 per-domain stub tests with tests/v1/test_stubs.py, which discovers every stub and checks it raises and is fully typed. Mark agreed-but-unbuilt platform needs in code as # NEED(<topic>): (config, SQLite-as-index local mode, local→server migration, query-first storage, vendor-agnostic object storage, UUIDv7 ids, optional ledger, identity verification, REST/SDK direction).

  • House cleaning: core is the dependency hub (only code dependency: the traust-ledger client inside the ledger adapter); HTTP is in scope (outbound in providers, inbound as a thin adapter); remove release machinery (release.py, VERSION, release workflow, bump targets) — consumers pin a commit SHA. Renames: providers Provenance → Acquisition, publisher ArtifactIndex → BindingIndex; TransitionPolicy folds into Disposition.

  • Make the design rules explicit for contributors and agents: a Design rules section at the top of AGENTS.md (one owner per capability, one service per domain, behaviour placed by responsibility, domain boundaries, typed IDs, shared method shapes, JobResult only at adapters, find the owner before adding a symbol); traust-core-patterns recipes (service.md, repository.md, SKILL.md) and README rewritten to match; legacy worked examples flagged as mechanics-only.

Test plan

  • make lint — clean
  • make test — 638 passed, 18 deselected (integration)
  • grep -rn "NEED(" src lists the open platform needs

@smith-xyz
smith-xyz merged commit af7f940 into main Oct 16, 2026
5 checks passed
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