diff --git a/INTENT.md b/INTENT.md index b75c809..51cca1d 100644 --- a/INTENT.md +++ b/INTENT.md @@ -1,9 +1,18 @@ # INTENT -> This file explains why agent-harness exists — the problem it solves, the -> principle that governs its boundaries, and what it must never become. -> Established by DEC-2026-002 (binky-control DecisionQueue, resolved -> 2026-07-17) and ADR-001 in this repo. +> This file explains why agent-harness (repo renamed `rein-aharness`, see +> glas-harness ADR-001) exists — the problem it solves, the principle that +> governs its boundaries, and what it must never become. Established by +> DEC-2026-002 (binky-control DecisionQueue, resolved 2026-07-17) and +> ADR-001 in this repo. +> +> **Naming note (post-rename):** this repo is one of possibly several +> **reins** — concrete harness implementations for different operating +> circumstances, analogous to how "rails" name different workload +> operations models. glas-harness is the meta-framework that routes +> between reins; `rein-aharness` is the Claude-Code-CLI-based rein for +> governed, unattended/scheduled tenant work. See +> `../glas-harness/docs/adr/ADR-001-rein-harness-family.md`. ## Why it exists diff --git a/README.md b/README.md index 3a4ae25..6abe9d2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# agent-harness +# 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 + @@ -6,6 +8,18 @@ Operational Knowledge ecosystem. Projects declare agents (manifest + 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](../glas-harness/docs/adr/ADR-001-rein-harness-family.md) +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](workplans/REIN-A-WP-0002-rename-and-glas-harness-alignment.md) +because it touches a live Railiance deployment. + - Why and boundaries: [INTENT.md](INTENT.md) - Decision + architecture: [docs/adr/ADR-001](docs/adr/ADR-001-agent-harness-architecture.md), [docs/architecture.md](docs/architecture.md) diff --git a/pyproject.toml b/pyproject.toml index 0f60ed4..b6310b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "agent-harness" +name = "rein-aharness" version = "0.1.0" description = "Thin executor worker: consumes emitted activity-core tasks and executes them via llm-connect adapters with kaizen persona orientation" requires-python = ">=3.11" diff --git a/workplans/REIN-A-WP-0002-rename-and-glas-harness-alignment.md b/workplans/REIN-A-WP-0002-rename-and-glas-harness-alignment.md new file mode 100644 index 0000000..b0835d3 --- /dev/null +++ b/workplans/REIN-A-WP-0002-rename-and-glas-harness-alignment.md @@ -0,0 +1,78 @@ +--- +id: REIN-A-WP-0002 +title: "Rename completion and glas-harness alignment" +status: proposed +--- + +Follow-up to HARNESS-WP-0001 (done) and glas-harness +`docs/adr/ADR-001-rein-harness-family.md`. This repo (formerly +agent-harness) is now the `rein-aharness` rein: the Claude-Code-CLI-driven +harness for governed, unattended/scheduled tenant work, consumed through +glas-harness's router once GLAS-WP-0001 lands. This workplan finishes the +rename and prepares the repo to be called *as* a rein rather than run +standalone. + +## Task: Repo-identity rename (this session) + +Local directory (`~/agent-harness` → `~/rein-aharness`), git remote +(`coulomb/agent-harness.git` → `coulomb/rein-aharness.git`, already +renamed on Forgejo by the operator), `pyproject.toml` `[project].name`, +and self-referencing prose in `README.md`/`INTENT.md`. Does **not** +touch the CLI command name, Python package name, or deploy artifacts — +see next task. + +```task +id: REIN-A-WP-0002-T01 +status: done +priority: high +``` + +## Task: Deploy/package rename (deliberate follow-up, needs a maintenance window) + +Rename the parts of this repo that a mechanical identity rename would +otherwise silently break, because they touch a *live* Railiance +deployment: the `agent-harness` CLI command (`pyproject.toml +[project.scripts]`, `agent_harness/cli.py` entry point), the +`agent_harness` Python package directory, the Docker image tag +(`agent-harness:railiance01`), the k8s namespace/labels/ConfigMap names +(`deploy/k8s/railiance/*.yaml`), the Railiance host directory +(`~/agent-harness/deploy/...`), and `deploy/scripts/railiance-smoke.sh`'s +`AGENT_HARNESS_ROOT` env var and SSH remote alias. Do this as one +reviewed change with a Railiance re-deploy and smoke-test run +immediately after, not as incidental cleanup. + +```task +id: REIN-A-WP-0002-T02 +status: todo +priority: medium +``` + +## Task: Implement the glas-harness rein contract + +Once `glas-harness` GLAS-WP-0001-T01 defines the harness contract +(`start_session`/`dispatch_tool`/`end_session` or equivalent), adapt this +repo's `runner.py`/`adapter.py` to expose it, so glas-harness can call +into `rein-aharness` instead of `rein-aharness` only running itself via +its own CLI/poll loop. + +```task +id: REIN-A-WP-0002-T03 +status: todo +priority: high +``` + +## Task: Decide scheduling/blueprint coupling boundary + +This repo depends directly on `kaizen-agentic` (blueprints) and +`activity-core`/`issue-core` (task intake). Decide, once +`rein-openweights` exists as a second rein with a possibly different +triggering model, whether that coupling stays rein-local (each rein +sources its own tasks) or moves into glas-harness as a shared concern. +Record the answer in `glas-harness/docs/adr/` before T03 forces the +question implicitly. + +```task +id: REIN-A-WP-0002-T04 +status: todo +priority: low +```