Agent harness component in the glas-harness framework of the helix-forge software factory ecosystem.
Find a file
tegwick 9cd95c531a Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files
Registered with State Hub (statehub register) and renamed
REIN-A-WP-0002 to HARNESS-WP-0002 per fix-consistency's C-26 check
(repo's canonical workplan prefix is HARNESS-WP, established by
HARNESS-WP-0001).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 12:32:59 +02:00
agent_harness feat: brief-daily via llm-connect (structured daily brief) 2026-07-22 00:18:52 +02:00
deploy feat: Railiance package and deploy (HARNESS-WP-0001-T06) 2026-07-18 10:48:44 +02:00
docs feat: mail-triage via llm-connect (no host Claude) 2026-07-22 00:05:23 +02:00
examples feat: instance manifest, tool profiles, metrics, and budget enforcement 2026-07-17 23:49:03 +02:00
scripts feat: blueprint-aware policy resolve for multi-instance tenants (T07) 2026-07-18 11:07:10 +02:00
tests feat: brief-daily via llm-connect (structured daily brief) 2026-07-22 00:18:52 +02:00
workplans Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files 2026-07-26 12:32:59 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-07-26 12:31:24 +02:00
.gitignore Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files 2026-07-26 12:32:59 +02:00
AGENTS.md Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files 2026-07-26 12:32:59 +02:00
Containerfile feat: Railiance package and deploy (HARNESS-WP-0001-T06) 2026-07-18 10:48:44 +02:00
INTENT.md Rename repo to rein-aharness per glas-harness ADR-001 2026-07-26 12:28:44 +02:00
LICENSE Initial commit 2026-07-17 21:30:39 +00:00
Makefile feat: Railiance package and deploy (HARNESS-WP-0001-T06) 2026-07-18 10:48:44 +02:00
pyproject.toml Rename repo to rein-aharness per glas-harness ADR-001 2026-07-26 12:28:44 +02:00
README.md Rename repo to rein-aharness per glas-harness ADR-001 2026-07-26 12:28:44 +02:00
SCOPE.md Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files 2026-07-26 12:32:59 +02:00
WORK-RECORDS.md Adopt canonical HARNESS-WP prefix, add State Hub bootstrap files 2026-07-26 12:32:59 +02:00

rein-aharness

(formerly agent-harness, renamed per glas-harness ADR-001 "rein" harness family)

The single shared runtime for unattended agent instances in the Coulomb / Operational Knowledge ecosystem. Projects declare agents (manifest + .kaizen/ state); this harness runs them — blueprint via kaizen-agentic, tasks via activity-core, compute via llm-connect, credentials via OpenBao/ops-warden, reporting to the Custodian State Hub.

Within the glas-harness meta-framework, this repo is the rein-aharness rein: the Claude-Code-CLI-driven, unattended/scheduled harness for tenants that need governed cron-style agent runs. See glas-harness ADR-001 for how it relates to other reins (e.g. rein-openweights).

The CLI command (agent-harness), Python package (agent_harness), and deploy artifacts (Docker image tag, k8s namespace, Railiance host paths) still use the old name — that rename is tracked separately in workplans/REIN-A-WP-0002 because it touches a live Railiance deployment.

Usage

# Validate a consuming repo's instance manifest (.kaizen/schedule.yml)
agent-harness validate --target ~/binky-control
agent-harness validate --target ~/binky-control --strict   # require harness fields

# List named tool profiles
agent-harness profiles

# Run exactly one task (local JSON task-file path — dev)
agent-harness run --task-file examples/task-hello-sandbox.json [--no-hub] [--no-metrics]

# Production intake: poll issue-core (activity-core emissions), claim, run, close
export ISSUE_CORE_URL=http://127.0.0.1:8765 ISSUE_CORE_API_KEY=…
agent-harness poll
agent-harness run --from-issue-core


# Deterministic mailbox scan (no LLM session)
agent-harness mail-scan --target-repo ~/binky-control

# Mail triage via llm-connect HTTP (OpenRouter behind the service; no Claude CLI)
export LLM_CONNECT_URL=http://llm-connect.activity-core.svc.cluster.local:8080
agent-harness mail-triage --target-repo ~/binky-control

# Daily brief via llm-connect (structured JSON → briefs/YYYY-MM-DD-daily-brief.md)
agent-harness brief-daily --target-repo ~/binky-control

# Railiance packaging smoke (commit + optional push + hub; no Claude required)
agent-harness smoke --work-dir ~/work/executor-sandbox

Railiance deploy: deploy/README.md.

Each run resolves the agent's tool profile + budget from the target repo's instance manifest (default green-commit-only), loads a persona bundle (kaizen-agentic schedule prepare), runs a bounded agentic session (cwd-pinned, hard allow-list, never pushes), verifies a local commit, writes .kaizen/metrics, and posts a State Hub progress event.

Instance manifest contract: docs/instance-manifest.md. Example: examples/schedule.harness.yml.

Tests: PYTHONPATH=".:$HOME/llm-connect" python3 -m pytest tests/ -q