# SCOPE ## One-liner Meta-framework routing between concrete agent-harness backends ("reins"), consuming sand-boxer for isolation. See `docs/adr/ADR-001-rein-harness-family.md`. ## Core Idea glas-harness owns the harness contract (`docs/harness-contract.md`: `start_session`/`dispatch_tool`/`end_session`) and the outer loop — profile resolution, sandbox request/teardown via sand-boxer, actor attribution. A rein owns its own inner agentic loop and is invoked through that contract. ## In Scope - The `Rein` ABC and `SandboxHandle`/`ToolCall`/`ToolResult` types (`src/glas_harness/contract.py`) - The gateway that resolves a harness profile, requests a sand-boxer sandbox, runs one task through a rein, verifies, tears down (`src/glas_harness/gateway.py`) - Rein adapters that shell out to each rein's own CLI (`src/glas_harness/reins/`) — currently `rein_aharness.py`, `rein_openweights.py` - The rein registry (`registry/reins/`) and harness profile catalog (`profiles/`) ## Out of Scope - Sandbox provisioning, profiles, placement — owned by `sand-boxer` - A rein's own agentic loop, tool execution, credential acquisition — owned by the rein itself (`rein-aharness`, `rein-openweights`, ...) - Scheduling/task sourcing — stays rein-local (`docs/adr/ADR-003-scheduling-and-blueprint-sourcing-stay-rein-local.md`) - e2e validation, code generation — owned by `wise-validator`, `snuggle-inventor` ## Current State `GLAS-WP-0001` (harness contract + first two reins) is done. Both `rein-aharness` and `rein-openweights` are live-proven through the gateway against their real underlying providers (Claude Code CLI, OpenRouter). Not yet built: channel bridges, memory/skills layer, glas-harness's own State Hub reporting from the gateway (currently each rein reports its own events). ## Getting Oriented - Start with: `INTENT.md`, `docs/adr/ADR-001-rein-harness-family.md` - Contract: `docs/harness-contract.md` - Agent instructions: `AGENTS.md` - Workplans: `workplans/`