Register bounded operation repo_manager_freshness (single attempt, 300 s, code-fixed 'rmgr freshness run --limit N --max-seconds S [--dry-run]') and add the disabled cron definition (40 */2 * * * UTC, limit 6, max_seconds 240). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 692292@bnt-lap001 Assistant-Session: 89c7d8e8-e1b3-47eb-9411-a0ab227fca2f
63 lines
2 KiB
Markdown
63 lines
2 KiB
Markdown
---
|
|
id: repo-manager-bounded-freshness
|
|
name: Repo Manager Bounded Freshness
|
|
type: activity-definition
|
|
version: "0.1"
|
|
enabled: false
|
|
owner: repo-manager
|
|
governance: custodian
|
|
status: proposed
|
|
trigger:
|
|
type: cron
|
|
cron_expression: "40 */2 * * *"
|
|
timezone: UTC
|
|
misfire_policy: skip
|
|
context_sources:
|
|
- type: repo-manager
|
|
query: freshness_run
|
|
operation: repo_manager_freshness
|
|
required: true
|
|
params:
|
|
limit: 6
|
|
max_seconds: 240
|
|
apply: true
|
|
bind_to: context.freshness
|
|
---
|
|
|
|
# Repo Manager Bounded Freshness
|
|
|
|
Draft from RMGR-WP-0020-T03, tracked in ACTIVITY-WP-0044. **Not activated.**
|
|
`enabled: false` prevents any Temporal schedule; the founder flips it only after
|
|
the RMGR-WP-0020-T04 activation steps and T05 proof.
|
|
|
|
Each fire runs one bounded operation `repo_manager_freshness`
|
|
(ACT-ADR-007 registry), which invokes the Repo Manager CLI with a code-fixed argv:
|
|
|
|
```text
|
|
rmgr freshness run --limit 6 --max-seconds 240
|
|
```
|
|
|
|
(`--dry-run` is appended when `apply: false`.) Repo Manager owns repository
|
|
selection, Forge HEAD resolution, reconciliation from immutable Forge commits
|
|
and the durable `repo-manager.freshness-receipt.v1` receipts. Activity Core
|
|
persists only a counted projection (receipt count per outcome, exit code).
|
|
|
|
- Every 2 h at :40 UTC; 141 repositories / 6 per fire x 12 fires/day is about a
|
|
two-day rotation. Target SLA once enabled: every admissible repository has a
|
|
receipt younger than 48 h.
|
|
- Single Temporal attempt, timeout 300 s (240 s CLI budget + grace); misfires
|
|
are skipped, never replayed.
|
|
- No workstation checkout reads (ADR-002), no legacy `--all --remote` sweep, no
|
|
`for_each` task spawning; the rule below never emits tasks.
|
|
|
|
Rollback: set `enabled: false` (or `status: paused`).
|
|
|
|
```rule
|
|
id: repo-manager-bounded-freshness-no-tasks
|
|
condition: "False"
|
|
action:
|
|
task_template: Repo Manager freshness (operation-only; never rule-emitted)
|
|
description: The bounded operation does the work; this rule never emits tasks.
|
|
priority: low
|
|
labels: ["automated", "freshness"]
|
|
```
|