Home · MIT · one Go binary · GitHub
Brownfield services already work. Coding agents still pay to rediscover place-order every session. Clew keeps the four graphs you already have, and joins them onto a path you can walk.
A new teammate — or a new agent — cannot walk a payload across orders → payments → inventory without grepping six repos. Four tools each hold a slice. Alone, they stay irrelevant:
charge() calls authorize(). That does not tell you CARD vs COD.orderId in a log line.Not competitors. Inputs. Clew is the join.
| Core | We take | We drop |
|---|---|---|
| Code graph | HTTP / ASYNC / CROSS edges (CBM) | Rebuilding tree-sitter; GitNexus (noncommercial) |
| Catalog | services, messages, schemas, consumers | EventCatalog Scale MCP |
| Loadout | one path in the prompt, skills, clew:// ids | Chat L0–L3 hubs |
| Traces | span links + log stitch keys | Treating a live trace as the map |
A hop is one node. A tree is Input → Branches → Output. A forest dispatches inbound events onto trees — OrderCancelled is not a hop of place-order. This service owns one level; next is another service’s tree. Async OUT without stitch is a P0.
The loop: measure → one P0 → capture → measure until reflected.
docs/hops.md trees. Humans and agents write the same file.loadout, who_consumes, drift, next_p0. Join keys: service · HTTP method+path · message name.Go binary, MIT MCP, no Neo4j, no OpenSearch, no Scale license. Rust is for indexers; CBM already is one. Clew is the thread.
measure → one P0 → capture → measure
CI: clew score --fail-p0. New routes turn the sensor red. You do not finish docs.
go build -o clew ./cmd/clew
./clew loop --root examples/shop
./clew loadout --root examples/shop --use-case place-order --payload '{"paymentMethod":"CARD"}'
./clew mcp — stdio tools: loadout, who_consumes, next_p0, drift, score.