--- 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"] ```