Review → fix workflow
aster fix takes findings produced by aster review --json and asks the model for concrete edits. It is dry-run by default and only writes with --apply, subject to the permissions block in aster.yaml.
The pipeline
aster review --json > findings.json # 1. review, capture findings
aster fix --findings-json findings.json # 2. dry-run: preview proposed edits
aster fix --findings-json findings.json --apply # 3. write to the working tree
Or as one stream:
aster review --json | aster fix --findings-json - --apply
Rules
- ALWAYS run the dry-run first and read the preview before
--apply. Never jump straight to--applyon findings you have not seen. --applywrites to the working tree only; it never commits. Review the diff withgit diffafterward and commit yourself.- Writes are gated by
permissionsin aster.yaml (mode, plusallow/ask/denyrules). A headless run has no way to answer a prompt, so anything that reachesaskis refused: automation needsmode: editwith explicitallowrules likeEdit(src/**). --jsonemits one JSON array of per-finding results (useful to report which fixes applied, failed, or were skipped).--modeloverrides the fix model (elseASTER_MODEL, else aster.yaml);--repo-root <DIR>sets the root the finding paths are relative to.
Curating findings
aster fix fixes whatever is in the array, so filter first. Findings are JSON; drop low-confidence or out-of-scope entries before fixing, e.g.:
aster review --json | jq '[.[] | select(.confidence >= 0.8)]' | aster fix --findings-json -
After applying
Run the project's tests/build to confirm the fixes hold, then commit. Treat model edits like any other patch: verified, not trusted.