diff --git a/profiles/harness.fi-research-brief.yaml b/profiles/harness.fi-research-brief.yaml new file mode 100644 index 0000000..1e73f00 --- /dev/null +++ b/profiles/harness.fi-research-brief.yaml @@ -0,0 +1,41 @@ +id: harness.fi-research-brief +version: "1.0.0" +contract_version: "1.0" +status: enabled +operational_readiness: + status: blocked + reason: sandbox profile profile.bwrap-fi-research (sand-boxer) and tool profile green-research-commit (rein-aharness) do not exist yet; no sandboxed proof run + owner: glas-harness + evidence_ref: GLAS-WP-0016-T04 +rein: + id: rein-aharness + required_capabilities: + session_style: unattended + model_class: frontier +sandbox_profile: profile.bwrap-fi-research +tool_profile: green-research-commit +model: + provider: anthropic + model: claude-sonnet-5 + model_class: frontier + route: claude-code-cli +limits: + budget_tokens: 200000 + timeout_seconds: 1800 + max_turns: 60 + max_budget_usd: 5.0 +credential_route_refs: [] +metadata: + latency_class: standard + stream_tool_events: true + # Requested by freedom-intelligence (FI-WP-0005-T05, message c7f2df46) for + # the daily research brief. Owner declaration: + # freedom-intelligence/activity-definitions/fi-daily-research-brief.declaration.yaml. + # Sandbox egress: default deny; model route plus exactly the 17 hosts in + # freedom-intelligence/docs/sources-egress.yaml (GLAS-WP-0016-T02). + # The session writes and commits only under briefs/** and never pushes; + # publication is the deterministic publisher in docs/publish-grant-design.md. + # Model pin and max_budget_usd follow harness.agent-dev-local 1.1.1 + # (envelope hfact-glas-anthropic-2026-09). Readiness moves to unverified when + # T02/T03 land and to ready only after the T04 proof run. + # Rollback: no earlier version; disable by setting status: disabled. diff --git a/tests/test_profiles.py b/tests/test_profiles.py index 7b92033..6e9f204 100644 --- a/tests/test_profiles.py +++ b/tests/test_profiles.py @@ -67,7 +67,7 @@ def test_committed_catalog_resolves_both_constellations() -> None: contexts = catalog.validate_all() - assert len(contexts) == 5 + assert len(contexts) == 6 assert {context.rein_id for context in contexts} == { "rein-aharness", "rein-openweights", @@ -81,6 +81,7 @@ def test_committed_catalog_resolves_both_constellations() -> None: ("harness.agent-dev-local", "1.1.1", "unverified"), ("harness.agent-dev-openweights-local", "1.0.0", "blocked"), ("harness.agent-dev", "1.0.0", "unverified"), + ("harness.fi-research-brief", "1.0.0", "blocked"), } profile, descriptor = catalog.resolve( "harness.agent-dev-openweights-local@1.0.0" diff --git a/workplans/GLAS-WP-0016-fi-research-brief-profile.md b/workplans/GLAS-WP-0016-fi-research-brief-profile.md index c2196c7..8f5af40 100644 --- a/workplans/GLAS-WP-0016-fi-research-brief-profile.md +++ b/workplans/GLAS-WP-0016-fi-research-brief-profile.md @@ -4,7 +4,7 @@ type: workplan title: "Versioned Glas profile for the FI daily research brief" domain: infotech repo: glas-harness -status: ready +status: blocked flavor: implementation owner: claude topic_slug: fi-research-brief-profile @@ -27,7 +27,7 @@ Publication design: `docs/publish-grant-design.md`. ```task id: GLAS-WP-0016-T01 -status: todo +status: done priority: high state_hub_task_id: "e49776ae-a28a-527f-aece-1f08a05c044a" ``` @@ -41,11 +41,17 @@ pin. `operational_readiness.status: unverified` until T04 passes. Catalog validation (`glas-harness profiles`) and tests must pass. Depends on T02/T03 names being agreed, not on their release. +2026-10-13: added `profiles/harness.fi-research-brief.yaml` with readiness +`blocked` (runs refuse before sandbox creation) until T02/T03 land; catalog +snapshot test updated, 139 tests pass. + ## Add the sand-boxer egress sandbox profile ```task id: GLAS-WP-0016-T02 -status: todo +status: wait +blocked_on: message-from:sand-boxer +blocking_reason: "Handoff 744aa305 sent 2026-10-13; await sand-boxer profile.bwrap-fi-research." priority: high state_hub_task_id: "d79ad740-eec6-5e93-9d90-49475982a900" ``` @@ -56,12 +62,15 @@ equal to the model route plus exactly the 17 hosts in FI's `sources-egress.yaml`, per `sand-boxer/docs/bwrap-egress.md` (exact lowercase DNS names, :443, no wildcards or IP literals). Owner config `allowed_egress` must be a superset. Glas sends the handoff and records the owner's return. +Handoff sent 2026-10-13 as message 744aa305. ## Add the rein-aharness research tool profile ```task id: GLAS-WP-0016-T03 -status: todo +status: wait +blocked_on: message-from:rein-aharness +blocking_reason: "Handoff 229b603e sent 2026-10-13; await rein-aharness tool profile green-research-commit." priority: high state_hub_task_id: "cd49e97f-13f4-5563-a7cf-68f7a138bd85" ``` @@ -71,6 +80,7 @@ Owner: rein-aharness. Request a tool profile (working name proxy, git add/commit/status/log/diff limited to granted paths (`briefs/**`), no push and no arbitrary shell. Publication is not part of the tool profile; it is the deterministic publisher step in `docs/publish-grant-design.md`. +Handoff sent 2026-10-13 as message 229b603e. ## Prove one sandboxed run and mark the profile ready diff --git a/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md b/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md index dddf664..f3d0850 100644 --- a/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md +++ b/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md @@ -4,7 +4,7 @@ type: workplan title: "Governed route for assembly-checkpoint before legacy routing ends" domain: infotech repo: glas-harness -status: ready +status: blocked flavor: implementation owner: claude topic_slug: assembly-checkpoint-governed-route