weft
MIT · foundryside-dev GitHub

The Weft federation · documentation hub

The tools are the threads. The weave is the product.

One identity, woven through every tool.

Small, sharp developer tools, each authoritative for one domain and useful standalone, each composable pairwise — and enrich-only, never load-bearing when composed. No all-green dashboards; the seams are inspectable.

Read the doctrine → Build a member →
$ weft dossier build_record
resolving entity → one SEI, typed facts from every present peer…
loomweave:eid:7f3a9c2e1b… loomweavepresent wardlinepresent warplinepresent legisabsent plainweaveunavailable

Doctrine · the federation axiom

Enrich-only, never load-bearing.

Each member is authoritative for one domain, solo-useful, meaningfully composable pairwise, and enrich-only — never load-bearing — when composed.

Documentation only — there is nothing called “weft” to install.
This hub owns the interop layer — the roster, the doctrine, the identity model, the matrix. It points to each member repo for that repo's surface facts (versions, tool counts, rule lists) and restates no moving number. Each member is its own tool, installed and used on its own; “weft” is the agreement that lets them compose.

SEI · THE CONNECTIVE TISSUE

One durable identity. Facts survive the rename.

Loomweave mints a Stable Entity Identity (SEI) for every function, class and module. Every other member keys its facts on that SEI — so a dossier stays correct when the code is refactored tomorrow. SEI is LOCKED (2026-06-05): the interface is frozen; remaining member backfills are conformance tasks.

entity
loomweave:eid:7f3a9c2e1b…
typed facts · one call
Loomweave callers · neighborhood present
Wardline EXTERNAL_RAW taint present
Filigree 2 open issues present
Legis no attestation yet absent
Warpline last change · 9d ago stale
Plainweave peer unreachable unavailable
present peer present, fact attached
absent peer present, no fact — explicitly missing, never "clean"
unavailable peer unreachable
stale fact attached but past its freshness window
  • SEI is the connective tissue: every binding keys on it; a tool keying on a mutable locator silently orphans every combination it is in.
  • There is no weft:// URI scheme and no federation registry/broker — identity is closed by SEI.

The combination matrix · value is the weave

Each pair lights up a capability neither tool has alone.

One non-conformant binding orphans every combination it participates in — so the matrix is also the conformance test. Every pairing's status is honest on its face; a partial or planned pair is never rendered as live.

Findings become tracked work.

A-1: native emitter shipped; asterisk stays live until the Loomweave-absent path is proven end-to-end (currently unit/server-wiring tier).

Issues bound to live code, surviving refactors.

Drift-aware entity⇄issue binding shipped: filigree stores content_hash_at_attach; loomweave issues_for detects + reports drift, integration-tested. Asterisk until a two-real-daemon drift dogfood lands.

Wardline Legis live

Agent-defined policy enforced at the CI/git boundary.

Loomweave Legis live

Governance attestations keyed to stable code identity.

Filigree Legis live

Governed issue lifecycle — sign-offs, RTM, verification.

The re-verification worklist becomes tracked work.

Filigree consumer (warpline_worklist_ingest) shipped in Filigree 3.0.0 — the EARNED inbound seam.

"Now" + "over time" — change history keyed on the SEI spine.

Shipped: warpline resolves loomweave SEIs (entity_resolve) and keys its temporal surfaces on them, default-on at ingest. Asterisk until an automated live round-trip e2e gate lands.

Warpline Wardline partial

Change-impact enriched with trust posture (risk-weighted blast radius).

Enrichment shipped: warpline annotates the change-impact worklist with wardline trust findings (advisory). The risk-weighted re-ranking of the blast radius is not yet built.

Warpline Legis planned

Temporal change facts available to governance preflight.

Seam frozen; implementation fast-follow.

Plainweave Loomweave partial

Intent bound to stable code identity — every requirement keys on the SEI.

Consumes Loomweave SEI via a catalog adapter; the intent graph reproduced on two LIVE peer catalogs (Lacuna, Loomweave), not stubs (Plainweave PDR-008). Still maturing — not yet a shipped seam: catalog public-surface tagging is degraded off Loomweave, and it falls back to file/symbol refs when Loomweave is absent.

Plainweave Legis planned

Intent-coverage available to governance — Legis owns the teeth and the audit.

Authority split designed (Plainweave attributes intent; Legis governs + audits); seam not yet shipped.

Plainweave Filigree planned

Closed work checked against intent — a closed issue is not a satisfied requirement.

Designed distinction; Plainweave does not treat work-closure as requirement-satisfaction. Seam not yet shipped.

Higher-order: all five close the loop.
The agent understands the code (Loomweave) and its trust posture (Wardline), Legis governs what it may do and records overrides, Warpline tracks how it changes over time (change-impact on the SEI spine), and every decision and unit of work is tracked against stable identity (Filigree + Loomweave). No single tool is load-bearing for another; each pair just makes the others sharper.

Want to see it actually run?

make tour the whole federation against Lacuna, the demonstration specimen — a small app with catalogued flaws, analyzed by every member at once.

See it on the specimen →