Traced the origin of the-custodian issues #1-5 (opened 2026-07-08, all reviewed and closed 2026-07-20): this ActivityDefinition's matched rule always produces a TaskSpec (rules/actions.py::_task_spec_for_rule), and RunActivityWorkflow unconditionally routes TaskSpecs through emit_tasks -> the deployment-wide IssueSink (ISSUE_SINK_TYPE=rest -> issue-core -> Forgejo). It is the fleet's only consumer of the task_template rule action -- confirmed via grep across activity-definitions/. Per current policy (Forgejo issue tracking is not the fleet coordination mechanism), paused rather than left to recreate the same sidetrack daily: enabled: false, status: paused, re-enable path documented in the file (needs a new activity-core report-sink authoring a kind: intake work record instead of an IssueSink task spec). Added as item 6 to CUST-WP-0060's stage-3 successor seed, including the reminder to grep the fleet for any other task_template consumer before stage 3 ships. This is the ADR-001 file-level fix; the live activity-core DB row and Temporal schedule pick it up on the next Railiance-deployed 'make sync-activity-definitions' run -- not something I have credentials or standing to trigger directly from this session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
80 lines
No EOL
3.1 KiB
Markdown
80 lines
No EOL
3.1 KiB
Markdown
---
|
||
id: "b8e4f1a2-3c6d-4e9f-a1b2-7d8e9f0a1b2c"
|
||
name: "Daily TODO.md Stale Review"
|
||
type: activity-definition
|
||
version: "1.1"
|
||
enabled: false
|
||
owner: custodian
|
||
governance: custodian
|
||
status: paused
|
||
created: "2026-07-08"
|
||
updated: "2026-07-20"
|
||
trigger:
|
||
type: cron
|
||
cron_expression: "30 8 * * *"
|
||
timezone: Europe/Berlin
|
||
misfire_policy: skip
|
||
context_sources:
|
||
- type: state-hub
|
||
query: todo_md_staleness
|
||
required: true
|
||
params:
|
||
stale_days: 6
|
||
bind_to: context.todo_staleness
|
||
report_sinks:
|
||
- type: state-hub-progress
|
||
event_type: todo_md_stale_review
|
||
author: activity-core
|
||
---
|
||
|
||
# Daily TODO.md Stale Review
|
||
|
||
> **Paused 2026-07-20.** The matched rule below always produces a
|
||
> `TaskSpec` (`rules/actions.py::_task_spec_for_rule`), which
|
||
> `RunActivityWorkflow` unconditionally routes through `emit_tasks` →
|
||
> the deployment-wide `IssueSink` (`ISSUE_SINK_TYPE`, default `rest` →
|
||
> issue-core → Forgejo). There is no per-activity sink override in the
|
||
> current schema, and this activity is the fleet's *only* consumer of
|
||
> `task_template` — it was the sole source of 5 stale-review Forgejo
|
||
> issues (`the-custodian` #1–#5, opened 2026-07-08, all reviewed and
|
||
> closed 2026-07-20). Per current policy, Forgejo issue tracking is not
|
||
> the fleet coordination mechanism (binky-control housekeeping session,
|
||
> 2026-07-20) — so this activity is disabled (`enabled: false`) rather
|
||
> than left to recreate the same sidetrack daily.
|
||
>
|
||
> **Re-enable path:** redirect the rule's output onto the work-record
|
||
> backbone (`work-record-types_v0.1.md`, `kind: intake` — "a stale TODO.md
|
||
> is exactly a finding/directive") instead of `IssueSink`. This needs
|
||
> either a new report-sink type in activity-core (file-based intake-item
|
||
> authoring in the target repo, mirroring `state-hub-progress`) or routing
|
||
> through the stage-3 promotion tooling seeded in `CUST-WP-0060`'s closure
|
||
> review (item 6, added 2026-07-20). Do not re-enable with `enabled: true`
|
||
> alone; that only restores the Forgejo-issue behavior.
|
||
>
|
||
> This file change is the ADR-001 source of truth; the live activity-core
|
||
> DB row picks it up on the next `make sync-activity-definitions` run
|
||
> (Railiance-deployed, not run from this edit).
|
||
|
||
Runs daily at 08:30 Europe/Berlin (after WSJF triage at 07:20). Scans
|
||
registered workstation repos for `TODO.md` files that have not changed in
|
||
6+ days and emits a review task per stale repo.
|
||
|
||
Policy: TODO.md is a pragmatic interruption buffer only. Stale files should
|
||
be reviewed — archive done items, delete noise, or promote durable work into
|
||
a workplan via ADR-001.
|
||
|
||
```rule
|
||
id: flag-stale-todo-md
|
||
for_each: context.todo_staleness.repos
|
||
bind_as: repo
|
||
condition: 'context.repo.age_days >= 6'
|
||
action:
|
||
task_template: 'Review stale TODO.md — {context.repo.repo_slug}'
|
||
description: >-
|
||
TODO.md unchanged for {context.repo.age_days} days (mtime {context.repo.mtime}).
|
||
Review open items: archive done work, delete noise, or promote valuable
|
||
topics to a workplan file and run statehub fix-consistency.
|
||
target_repo: context.repo.repo_slug
|
||
priority: low
|
||
labels: ["todo-md", "stale-review", "automated"]
|
||
``` |