-
Read the trace analysis and name the smallest prevention target.
-
Gather deterministic signals before deciding. Run the runtime-agnostic
improvement bundle:
node .harness/scripts/improvement-bundle.mjs --window 14
Treat taxonomy_classification, suggested_records, and nextSteps as
the machine-readable starting point. If no signal appears, use the user's
failure report as evidence and record that evidence path explicitly.
-
Read .harness/failures/taxonomy.json. If no failure record exists yet,
run the relevant suggested record-failure.mjs command from the bundle, or
create one with .harness/scripts/record-failure.mjs. It writes
.harness/failures/records/<id>.json, emits promotion nextSteps, and
validates the record.
-
Write a prediction record before editing:
.harness/improvements/<YYYYMMDD-HHMM>-<slug>.json
-
Include these fields:
failureClass
preventionTarget
failureRecordPath
expectedMetric
expectedDirection
baselineEvidence
verificationCommand
-
Apply the smallest change in one place: skill, hook, subagent, deterministic script, eval task, permission policy, structural rule, or docs.
-
Run the matching verification command. Prefer the narrow eval first, then a broader regression run if the change touches shared harness behavior.
-
Run .harness/scripts/check-failure-records.mjs.
-
Run .harness/scripts/harness-report.mjs --json --fail-on=fail --review-promotion=fail
and follow any repairCommands or nextSteps it emits.
-
Append the observed result to the prediction record and promote the failure
record with .harness/scripts/record-failure.mjs --update=<id> --status=applied|verified .... Do not hand-edit promotion state unless the
helper is unavailable.