61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
|
|
# Decision: Origin publication of daily briefs is an explicit, typed grant
|
||
|
|
|
||
|
|
**Date:** 2026-09-22
|
||
|
|
**Status:** accepted
|
||
|
|
**Decided by:** Bernd Worsch (operator), FI owner
|
||
|
|
**Affects:** `activity-definitions/fi-daily-research-brief.md`,
|
||
|
|
`activity-definitions/fi-daily-research-brief.declaration.yaml`, FI-WP-0005
|
||
|
|
**Supersedes:** the grant wording in FI-WP-0004-T04, which granted "origin
|
||
|
|
publication as a named capability of `fi-research-brief`". That capability
|
||
|
|
lived inside one rein command. This decision moves it to the queued run's
|
||
|
|
repository grant.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Context
|
||
|
|
|
||
|
|
A brief day counts only when the brief is on `origin/main` (FI-WP-0004). The
|
||
|
|
executor therefore has to push. rein-aharness (`d0b45acb`, REINAH-WP-0003-T04)
|
||
|
|
requires that publication be a separate, owner-approved decision, not a
|
||
|
|
default of the executor. activity-core repository-grant v1 is local-only and
|
||
|
|
rejects `publish: true`.
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
|
||
|
|
1. **FI grants publication, scoped exactly:**
|
||
|
|
- remote `origin`, ref `main`
|
||
|
|
- mode **fast-forward only**: no force push, no other refs, no tags
|
||
|
|
- only commits whose changes stay within `briefs/**`
|
||
|
|
- at most one commit per run
|
||
|
|
2. **The grant rides on the run, not the executor.** It is carried as
|
||
|
|
activity-core repository-grant v2 `publication` (requested in FI-WP-0005-T04).
|
||
|
|
No rein, profile or tool may publish FI content without that grant on the
|
||
|
|
claimed `ops_run`.
|
||
|
|
3. **Failure semantics:**
|
||
|
|
- Push rejected or failed: the run fails, no `fi_daily_brief` is posted,
|
||
|
|
and the day stays due.
|
||
|
|
- Non-fast-forward (origin moved): the executor may rebase its single
|
||
|
|
brief commit onto the new origin head once, then retry. A second failure
|
||
|
|
is a failed run. It never merges and never forces.
|
||
|
|
- Success requires `origin_sha` evidence, and activity-core close
|
||
|
|
reconciliation checks it against the grant.
|
||
|
|
4. **Until grant v2 is live**, the compatibility path (`rein-aharness
|
||
|
|
fi-research-brief`, commit `11020e8`) continues under FI-WP-0004-T04 semantics.
|
||
|
|
It ends at cutover (FI-WP-0005-T08) or at the legacy expiry, whichever
|
||
|
|
comes first.
|
||
|
|
|
||
|
|
## Not granted
|
||
|
|
|
||
|
|
- Writes outside `briefs/**`. The catalog, inventory, workplans and docs stay
|
||
|
|
human- or workplan-driven.
|
||
|
|
- Publication to any other remote or mirror.
|
||
|
|
- Opening PRs or issues, or posting to other external systems.
|
||
|
|
|
||
|
|
## Consequences
|
||
|
|
|
||
|
|
- activity-core needs grant v2 and origin-SHA close evidence (FI-WP-0005-T04).
|
||
|
|
- The Glas tool profile must be able to push, but only under a grant
|
||
|
|
(FI-WP-0005-T05).
|
||
|
|
- `scripts/verify_brief_durability.py` remains the independent audit of the
|
||
|
|
result.
|