Skip to content

Step 4 - Adjust ​

Goal: a draft you would sign your name to, with UNKNOWN deliberately zeroed. You say what you want changed; the agent edits the draft and re-checks until green.

State changes as intent, in plain language:

tools/ and examples/ are not products - exclude them, cite their READMEs
split the "frontend" kind: the SDKs and the infra packages are different populations
the cron jobs under jobs/ should be documented - add a kind for them
try the workspace-member grain instead and show me the unit-set diff

After each change the agent re-runs the check and shows you the result:

bash
alloy survey . --check    # exit 0 + an enumeration that matches your repo's reality

What "green" means ​

  • Exit 0 - no structural errors.
  • The enumeration matches your repo - the right units, under the right kinds, unmatched count explained.
  • UNKNOWN is a deliberate zero. Every UNKNOWN candidate got one of two rulings - it is a documentable unit (a definition now captures it) or it is not (an exclusion now records why). There is no third option, and the agent will keep surfacing them until you have ruled on each.

Warnings the agent will bring you ​

Most it fixes itself (a STALE exclusion whose path matches nothing, a missing coverage.reconcile on an enumerating rule pack). A few are genuinely yours - a TODO-set-repo placeholder, a bundling you might defensibly keep. It should ask rather than fabricate a value; if you keep a bundle, the decision lands in follow-ups.md with your reasoning, same standard as an exclusion.

Stop when the check is green, the unit list is the one you actually want, and every exclusion reads like a decision. Then: step 5 - Commit and install.

E11 Alloy - knowledge as a build artifact.