glas-harness/SCOPE.md
tegwick cac605abd7
Some checks failed
ci / validate (push) Has been cancelled
Make profile runtime readiness explicit
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0233b-178d-7162-b92f-31a31ea8ca9b
2026-08-23 11:32:23 +02:00

5.9 KiB

SCOPE

One-liner

glas-harness is a profile-driven control-plane library and CLI that resolves one governed execution request to a concrete rein/model/sandbox constellation, coordinates the outer lifecycle, and returns normalized evidence. It consumes sand-boxer; it does not provide a sandbox runtime itself.

Verified capabilities

The repository currently implements:

  • strict Pydantic models for execution requests, profiles, rein descriptors, lifecycle results, and compact evidence (src/glas_harness/contract.py);
  • deterministic, fail-closed profile and rein-registry resolution, including compatibility, duplicate, status, capability, and inline-secret checks (src/glas_harness/profiles.py);
  • one bounded outer gateway lifecycle: resolve, create sandbox, derive the returned transport, start and dispatch one rein session, summarize, clean up, destroy the sandbox, and report normalized evidence (src/glas_harness/gateway.py);
  • two CLI-backed rein adapters, for rein-aharness and rein-openweights;
  • transport enforcement for SSH workspaces and same-host namespace descriptors. Unsupported, incomplete, ambiguous, unavailable, or unauthorized transports fail closed without falling back to the caller checkout;
  • explicit governed actor validation (adm, agt, or atm) before sandbox creation, keeping queue worker_id values outside the actor field;
  • one invocation channel: the local glas-harness run CLI;
  • a packaged, versioned profile/rein catalog and glas-harness profiles validation command that reports catalog enablement separately from typed operational readiness; and
  • compact State Hub progress evidence that excludes prompts, model/tool output, provider bodies, and credentials.

The unit and boundary suite exercises these contracts and the Forgejo workflow installs the package, runs the suite, and validates the packaged catalog.

Operational capability status

Surface Current verified status
Profile/catalog resolution Implemented and CI-validated
Unknown, invalid, or known-blocked profile refusal Implemented before sandbox creation
Sandbox create/destroy lifecycle Implemented; live failure paths prove teardown
Original-checkout isolation Enforced by code: it is never a post-create execution fallback
SSH transport construction Implemented and unit-tested; no current positive post-hardening live proof
Same-host bwrap execution Fail-closed, not operational: both local profiles are declared blocked and refused before creation; the underlying proof found consumer nsenter denied and no in-sandbox rein runtime
rein-aharness adapter Implemented; local selection is blocked before creation, while the remote profile remains an explicitly labeled unverified proof path
rein-openweights adapter Implemented; provider credential repair was proven, but current local sandbox execution has the same unresolved owner boundary
CLI channel Implemented
State Hub evidence Implemented as compact progress evidence, not a complete session/tool audit service

An enabled profile means only that catalog policy permits selection. Typed operational readiness separately records ready, unverified, or blocked. Known-blocked profiles refuse before sandbox creation; unverified profiles may run only as labeled proof attempts, with the state preserved in evidence. There is currently no committed ready profile.

In scope

  • The versioned Glas execution contract and profile/rein catalogs.
  • Exact profile selection and refusal; no implicit governed rein or model.
  • Outer execution lifecycle and teardown coordination with sand-boxer.
  • Reachability-derived command transport and workspace selection.
  • Rein adapters that translate the stable outer contract to backend CLIs.
  • Actor attribution and organizational reference propagation without assuming workforce authority.
  • Direct-caller results and compact, value-safe execution evidence.
  • Channel interfaces that translate invocations into the same execution request; only the CLI implementation exists today.

Out of scope

  • Sandbox profiles, placement, provisioning, owner-mediated execution, and teardown implementation — sand-boxer.
  • A rein's internal agent loop, provider client, tool enforcement, and credential acquisition — the selected rein.
  • Scheduling, claiming, retries, and task sourcing — activity-core or another channel owner.
  • Roles, duties, assignments, goals, resource envelopes, and authorization — their workforce/leadership systems.
  • Model-provider authority and inference routing — providers and llm-connect.
  • Secret storage or credential brokering.
  • End-to-end validation and product code generation — wise-validator and snuggle-inventor.
  • State Hub work-record authority.

Intended but not implemented

The broader vision in INTENT.md includes long-lived/resumable sessions, gateway-owned tool catalogs and policy checks, memory and skills services, additional chat/email/MCP channels, cron surfaces, bounded subagent delegation, and richer session/tool audit streams. None is a current repository capability. The present implementation is a bounded execution router over two reins, not yet Coulomb's general-purpose agent harness service.

Active gaps

  • GLAS-WP-0005-T05 / GLAS-IN-0002: sand-boxer-owned executable bwrap reachability, rein runtime availability, explicit egress, and credential delivery are required for a positive in-sandbox rein proof.
  • GLAS-IN-0003: grandfather the pre-canon GLAS-0001 identifiers.
  • GLAS-IN-0004: align the documented ad hoc workplan convention with the identifier canon.

Getting oriented

  • Intent and gap assessment: INTENT.md, history/2026-08-23-scope-vs-intent-assessment.md
  • Contract: docs/harness-contract.md, docs/execution-profiles.md
  • Architecture: docs/adr/ADR-001-rein-harness-family.md
  • Live work: workplans/, docs/intakes/residuals.md
  • Agent workflow: AGENTS.md