The agent owns investigation, judgment, writing and verification. A helper succeeding proves only its mechanical operation, not that the task is correct or complete.
Harness gives agents shared project knowledge and current handoffs without depending on a conversation or model. Knowledge is ordinary Markdown. Agents search, interpret and maintain it using their existing tools.
One small Python helper handles the operations that need a shared transaction: external project identity, overlapping resource reservations, current handoff publication, and document writes checked against the content the agent read. Harness does not classify knowledge, generate prose, run agents or maintain execution histories.
npx skills add cekrauseee/harness --skill '*' -g -a codex -a claude-code -yUse npx skills add . --list to inspect a local checkout. Add --copy when independent copies are needed. Every skill contains the same helper generated from src/harness.py; installing one skill does not require the repository or other skills. The helper uses Python 3.10+ standard library on macOS or Linux. Workflows is a separate instruction-only package.
Install or update the short host instruction through the host's normal file tools. It provides the triggers for recall, confirmed guidance, shared ownership and delivery cleanup. It can also route relevant tasks to an installed Workflows package. No hooks or configuration installer are included.
From an installed skill directory:
python3 scripts/harness.py init --project /path/to/project
python3 scripts/harness.py claim --project /path/to/project --purpose 'Revise introduction' --resource introduction.mdKeep the returned contribution ID and version. Before the final response, consolidate useful knowledge, then publish the current outcome and release the reservation together:
python3 scripts/harness.py handoff --project /path/to/project --owner <id> --expect <version> --input /path/to/handoff.md --releaseUse --input - for stdin. Without --release, the writer retains its resources. A handoff replaces the current account; it does not append previous versions or imply user acceptance/publication. status shows current contributions and reservations.
If the work is complete and no continuation needs that handoff, remove it using the version returned by the release:
python3 scripts/harness.py drop --project /path/to/project --owner <id> --expect <released-version>Retire superseded records for the same work and verify the resulting state before delivery. The user never needs to announce session closure. Genuine pending work keeps one current handoff; unrelated records and other writers' reservations remain intact. Harness Task defines the complete delivery procedure. This is agent behavior; an interrupted execution must reconcile unfinished cleanup on resumption.
State stays under ${HARNESS_HOME:-~/.harness}/projects/<id>/:
project.jsonholds identity, registered roots and current contributions.knowledge/*.mdholds documents written and curated by agents.references/may contain useful source documents or assets.
Within knowledge, guidelines.md retains confirmed durable project guidance when there is any to keep. Agents read it when entering or resuming substantive work. Harness Remember defines what belongs there and how to keep its source, scope and current wording clear.
Git worktrees share project identity through their common Git directory and preserve workspace provenance. Ordinary folders use explicit path bindings. Reference-only projects can be selected by project ID. Remote URLs never join identities automatically.
| Skill | Responsibility |
|---|---|
harness-init |
Locate, establish or explicitly rebind project storage. |
harness-recall |
Recall confirmed guidelines and relevant documents and handoffs. |
harness-remember |
Preserve durable project guidance and sourced Markdown knowledge. |
harness-task |
Coordinate shared work and complete delivery cleanup. |
harness-maintain |
Consolidate knowledge and retire obsolete records within scope. |
Reservations coordinate participating agents; they cannot stop external editors. Silence never releases ownership. Knowledge-file hashes prevent overwriting an unobserved change. Sources, uncertainty and semantic decisions remain the agent's responsibility. Do not store secrets, transcripts or private reasoning.
See architecture, helper operations, and development. MIT, Henrique Krause.