FI-WP-0005 T01-T03: owner declaration, publication decision, egress hosts.
- Owner declaration for the profiled fi-daily-research-brief (proposed): inputs, single-commit briefs/** grant, fast-forward-only publication, quality rules, model requirements without env selection, completion evidence and rollback pins. - Decision: origin publication is a typed grant on the run, not an executor default. - docs/sources-egress.yaml: 17 exact host:443 entries for the sandbox, tested for sand-boxer format and drift against the prose allowlist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 51320@bnt-lap001 Assistant-Session: 9d40b4c7-8e3c-42ee-b755-d658d4640d6c
This commit is contained in:
parent
7009521fdc
commit
5c5c298643
8 changed files with 396 additions and 4 deletions
113
activity-definitions/fi-daily-research-brief.declaration.yaml
Normal file
113
activity-definitions/fi-daily-research-brief.declaration.yaml
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
# Owner declaration — fi-daily-research-brief (FI-WP-0005-T01)
|
||||
#
|
||||
# Answers rein-aharness d0b45acb / REINAH-WP-0003-T04: the owner-approved
|
||||
# replacement for the profile-absent `fi-research-brief` route. This file is
|
||||
# FI's authority over WHAT runs and under WHICH grant. It does not schedule
|
||||
# (activity-core), pick a rein/sandbox/model (glas-harness) or execute
|
||||
# (rein-aharness). Where another layer has not shipped the needed piece yet,
|
||||
# the field names the FI-WP-0005 task that tracks it.
|
||||
declaration_version: "1"
|
||||
definition_id: fi-daily-research-brief
|
||||
owner: freedom-intelligence
|
||||
approved_by: Bernd Worsch
|
||||
approved_at: "2026-09-22"
|
||||
status: proposed # -> active at FI-WP-0005-T08 cutover
|
||||
|
||||
execution:
|
||||
shape: agent # operator decision 2026-09-22 (option B)
|
||||
harness_profile_ref: harness.fi-research-brief@1.0.0 # requested, FI-WP-0005-T05; not yet in the Glas catalog
|
||||
selection: harness_profile_ref only. No label or approach_hint routing, no
|
||||
fallback to the compatibility executor once cut over.
|
||||
|
||||
inputs:
|
||||
# Read from the checked-out workspace at the run's base commit.
|
||||
brief_date:
|
||||
type: date
|
||||
tz: Europe/Berlin
|
||||
source: activity-core due item (context.item.date)
|
||||
repository_files:
|
||||
- docs/sources-allowlist.md
|
||||
- docs/daily-brief-playbook.md
|
||||
- briefs/_template.md
|
||||
- inventory/RESERVE-STATUS.md
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
- research/2026-07-24-nas-strategic-collection-plan.md
|
||||
repository_globs:
|
||||
- inventory/catalog/*.yaml # authority for sizes, licenses, collection status
|
||||
prior_briefs:
|
||||
names: last 5 by date, excluding brief_date
|
||||
full_text: most recent 1
|
||||
git_log: last 12 commits, oneline
|
||||
network:
|
||||
egress_hosts: docs/sources-egress.yaml # FI-WP-0005-T03; model route is profile-owned
|
||||
secrets: none. The run reads no FI credential. Model credentials stay with
|
||||
the profile's owner route (Glas / sand-boxer).
|
||||
|
||||
outputs:
|
||||
artifact: briefs/{yyyy}/{mm}/{date}.md
|
||||
format: briefs/_template.md, axes A–D, collection-candidate section
|
||||
exactly_one_new_file: true
|
||||
must_not_modify_existing_files: true
|
||||
|
||||
repository_grant:
|
||||
# Grant v1 fields (activity-core RepositoryGrant). v1 rejects publish=true,
|
||||
# so publication rides on grant v2 (FI-WP-0005-T04).
|
||||
version: "2" # requested; v1 shape below validated against activity-core b63131e+
|
||||
allowed_paths:
|
||||
- briefs/**
|
||||
commit_count: {min: 1, max: 1}
|
||||
publication:
|
||||
remote: origin
|
||||
ref: main
|
||||
mode: fast-forward-only
|
||||
decision: docs/decisions/2026-09-22-brief-origin-publication.md
|
||||
commit_message: "FI daily research brief {date}"
|
||||
|
||||
quality_rules:
|
||||
# Acceptance for canary comparison (FI-WP-0005-T07) and prompt contract.
|
||||
- inventory/catalog is the authority. Do not re-announce cataloged models
|
||||
as new, and never state sizes or licenses that contradict the catalog.
|
||||
- Every parameter count, size, price or benchmark claim cites a primary
|
||||
source that was fetched in this run. If it is not verifiable, say so
|
||||
instead of estimating.
|
||||
- Deltas only, measured against prior briefs and the baseline, not a resurvey.
|
||||
- Cover axes A–D, or state explicitly that an axis had no delta.
|
||||
- Rumor (social media, unsourced aggregators) is not reported as confirmed.
|
||||
- No credentials, customer data or model weights in the brief.
|
||||
|
||||
model:
|
||||
# FI states requirements; the Glas profile pins provider/model/route.
|
||||
model_class: frontier
|
||||
required_capabilities: [tool_use, web_fetch_via_https_proxy, long_context]
|
||||
limits_hint: {timeout_seconds: 1800, max_turns: 60}
|
||||
constraints:
|
||||
- No Binky-named variables (BRIEF_DAILY_MODEL, MAIL_TRIAGE_MODEL) and no
|
||||
process-environment model selection. The profile version is the only selector.
|
||||
- The playbook rule "no Claude Code / Codex on railiance01" means no
|
||||
host-installed agent. A pinned agent executable inside the Glas sandbox is
|
||||
acceptable only if the profile owner confirms it is not a host
|
||||
installation. Operator to confirm (FI-WP-0005-T05).
|
||||
|
||||
completion:
|
||||
event: fi_daily_brief
|
||||
required_detail:
|
||||
date: brief_date
|
||||
path: outputs.artifact
|
||||
pushed: true
|
||||
origin_sha: 40-hex commit on origin/main that contains the artifact
|
||||
harness_profile_ref: execution.harness_profile_ref
|
||||
due_resolution: published-artifact resolver (FI-WP-0005-T04). The day
|
||||
clears only if the artifact is on origin/main AND the event says
|
||||
pushed=true. In the interim, fi_brief_status (activity-core 289aff3), same semantics.
|
||||
on_failure: executor_run ok=false, no fi_daily_brief, day stays due.
|
||||
independent_audit: scripts/verify_brief_durability.py --require-date {date}
|
||||
|
||||
rollback:
|
||||
pins:
|
||||
- glas profile version (previous harness.fi-research-brief@x.y.z)
|
||||
- this declaration and the definition, by git revision in this repo
|
||||
procedure: pin the previous profile version or revert the definition
|
||||
revision, then sync activity-core definitions. Until the legacy expiry
|
||||
(2026-12-31) the compatibility executor rein-aharness@11020e8 remains a
|
||||
manual one-shot recovery. There is no host timer (FI-WP-0005-T06).
|
||||
evidence_required: one exercised rollback at cutover (FI-WP-0005-T08)
|
||||
|
|
@ -65,5 +65,9 @@ action:
|
|||
5. [x] Executor: `rein-aharness fi-research-brief` + `scripts/railiance-rhythm/`
|
||||
(install on railiance01; not workstation cron)
|
||||
|
||||
Migration (FI-WP-0005): the owner declaration for the profiled replacement is
|
||||
`fi-daily-research-brief.declaration.yaml` (status `proposed`). This definition
|
||||
stays on the compatibility route until the T08 cutover.
|
||||
|
||||
Layers: activity-core (when/what/where) → rein-aharness (execute) → this repo.
|
||||
See `docs/recurrence-ops.md` and `activity-core/docs/recurring-automations-playbook.md`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue