The same eight primitives — ledger, effects, call graph, policy, ratification, audit — show up as very different workflows depending on who's asking and why. Here are the ones teams reach for first.
Before touching a symbol, the agent calls effects_of and callers_of to see what the change reaches — disk, DB, network, and every caller downstream — so it scopes the edit instead of guessing.
$ asd effects_of processOrder $ asd callers_of billing.computeProration
A new agent session starts blind. With ASD wired in over MCP, it reads the ledger for the symbols it's about to touch and inherits the decisions, hazards, and constraints the last session recorded.
$ asd onboard # index + register MCP
When an agent makes a non-obvious choice, it appends a decision or hazard to the ledger. The rationale survives the rename, the file move, and the author leaving, because it lives in the sidecar, not a chat log.
$ asd ledger append --kind hazard \
payments.chargeCard A policy gate says: any agent write to payments.* requires approval. The gate is evaluated on every ledger mutation and emitted to the audit stream, so risky changes can't land unreviewed.
$ asd policy eval payments/* When a regression lands, tail the hash-chained audit log for the affected subtree. Every ledger mutation and policy decision is there in order — tamper-evident, replayable, independently verifiable.
$ asd audit tail --path billing/* $ asd audit verify
Per-developer ASD becomes team-wide when wired into the CTXone Hub: code_search, code_read, and callers_of are served next to shared memory and plans, over one MCP connection.
$ ctx bootstrap # offers to add asd
One command installs the binaries, indexes the repo, and registers the MCP server for your coding agent.