Skip to content

Releases: hhamja/claude-code-harness

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 08:29
d66f642
  • Auto-push (new Stop hook auto_push.sh): realizes the decision doctrine's T0 rule "pushing a work branch is reversible → act autonomously, never re-ask". At turn end inside a loop project the current work branch is pushed automatically — plain git push when it is ahead of its upstream, or git push -u origin <branch> on the first push. It is the active complement to decision_gate.sh, which blocks pushing a protected branch.
  • Safe by construction: never pushes a protected_branches branch (a human gate stays a human gate), stands down when gate_push: true (direct-to-main repos where every push is already T2), never force-pushes or pushes tags, and a push failure is logged to .claude/loop/.last-push without ever blocking the turn.
  • loop.config.md gains auto_push (default true); set auto_push: false to opt out. Absent key falls back to the default, so existing loops need no change.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 01:03
c25606e
  • Decision gates: classify every side-effecting action by reversibility × impact. Reversible/local work (edits, tests, local commits, work-branch push) runs autonomously — never re-confirmed; only irreversible or high-impact actions stop on a human gate. Doctrine in the loop-engineering skill + references/decision-gates.md.
  • decision_gate.sh (new PreToolUse Bash hook) mechanically blocks the T2 class inside a loop project: package publish, release/submit (gh release, eas submit), gh pr merge, push to a protected branch, force-push, tag push, catastrophic rm -rf. Scoped to loop projects only (fail-open everywhere else).
  • loop.config.md gains protected_branches (default main master), gate_push (default false — set true for direct-to-main repos), and extra_gates (optional project regex). Absent keys fall back to defaults, so existing loops need no change.
  • One-shot approval marker .claude/loop/.gate-approved (action class + session + 15-min TTL, gitignored): the main agent writes it only after explicit human approval, retries the gated command, then removes it.
  • loop-audit (new command) + auditor (new read-only subagent): audit the loop process — maker/checker separation, machine-verifiable stops, disk-memory discipline, and gate adherence (over-/under-confirmation) — and write a scored report to audit.md. Complements the product-grading verifier.
  • verifier_guard.sh now also guards the auditor agent (both are read-only checkers).
  • loop-ci (new command) + gen_ci.sh: scaffold a GitHub Actions CI workflow from the loop's detected test/lint/build (a pure, golden-tested generator; node stacks for now).
  • CI/CD for this repo: ci.yml (shellcheck + bash -n + jq manifest validation + tests/run.sh) on push/PR; release.yml cuts a GitHub Release from the matching CHANGELOG section when a v* tag is pushed.
  • .gitignore for OS/editor files and loop runtime artifacts (.run-marker, .gate-approved, codex logs, …).

v0.1.0 — initial release

Choose a tag to compare

@hhamja hhamja released this 06 Jul 12:25

Initial release of loop-harness — a Claude Code plugin for loop engineering: implement→verify cycles with machine-verifiable stop conditions, an independent read-only verifier, and disk-based state that survives session death.

What's included

  • Commands: loop-init, loop-run (--once, --verify-only), loop-status
  • Agents: verifier (read-only grader), explorer (haiku scout)
  • Skill: loop-engineering + 3 references (memory-protocol, rubric-guide, worktree-guide)
  • Hooks: Stop gate (stop_gate.sh), verifier write guard (verifier_guard.sh, PreToolUse Bash)
  • check_budget.sh token-budget proof script

Install

/plugin marketplace add https://github.com/hhamja/loop-harness
/plugin install loop-harness@loop-harness-marketplace

See the README for a 3-minute quickstart.