/cs-harness¶
Parse $ARGUMENTS: the first token is the domain (one of the 18 manifest names under
engineering/agent-harness/skills/agent-harness/assets/harnesses/); the rest is the goal.
If the domain token doesn't match a manifest file, list the available manifests and ask.
Sequence (gates are blocking — never skip forward)¶
- Compile —
python3 engineering/agent-harness/skills/agent-harness/scripts/goal_compiler.py --goal "<goal>" --manifest engineering/agent-harness/skills/agent-harness/assets/harnesses/<domain>.json --out .agent-harness/plan.json - Exit 3: relay the forcing questions to the user one at a time (recommended answer first), then recompile with the enriched goal. Do not proceed on a vague goal.
- Exit 4: show
nearest_candidates, ask whether to switch domain or refine the goal. - Review the plan with the user — show tasks, verifications, and caps. Confirm before initializing: this is the only approval gate in the loop.
- Init —
python3 .../scripts/loop_controller.py init --plan .agent-harness/plan.json --state .agent-harness/state.json - Drive — repeat:
next→ execute the task per its skill's SKILL.md →record→verify. For long goals, spawn theharness-runneragent per task instead of executing inline, one at a time (writes stay serialized). - On exit 2 or 5 — stop, show
statusand the failing evidence; the user decides: fix and continue, waive with a reason, or abandon. - Close —
close --state .agent-harness/state.json; paste the handoff block (tasks, statuses, evidence, waivers) as the deliverable summary.
Rules¶
- Never edit checks, manifests, or the plan mid-loop to make verification pass.
- Never report an exhausted budget as success.
.agent-harness/is git-ignorable working state; the handoff block is the record.