feat: schedule Phase 5 checks; start T06 path decoupling
Add phase5 daily/closeout ActivityDefinitions, document schedules in Phase 5 evidence, and migrate daily triage sinks to custodian:// runtime URIs.
This commit is contained in:
@@ -17,7 +17,7 @@ context_sources:
|
|||||||
- type: static
|
- type: static
|
||||||
bind_to: context.prompt_path
|
bind_to: context.prompt_path
|
||||||
config:
|
config:
|
||||||
value: /home/worsch/the-custodian/runtime/prompts/daily_statehub_wsgi_triage.md
|
value: custodian://runtime/prompts/daily_statehub_wsgi_triage.md
|
||||||
- type: state-hub
|
- type: state-hub
|
||||||
query: daily_triage_digest
|
query: daily_triage_digest
|
||||||
params:
|
params:
|
||||||
@@ -50,7 +50,7 @@ Current active runner:
|
|||||||
|
|
||||||
- activity-core Temporal schedule from this ActivityDefinition
|
- activity-core Temporal schedule from this ActivityDefinition
|
||||||
- Prompt source:
|
- Prompt source:
|
||||||
`/home/worsch/the-custodian/runtime/prompts/daily_statehub_wsgi_triage.md`
|
`custodian://runtime/prompts/daily_statehub_wsgi_triage.md`
|
||||||
|
|
||||||
Railiance projection note:
|
Railiance projection note:
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ prompt: |
|
|||||||
{context.daily_triage_digest}
|
{context.daily_triage_digest}
|
||||||
|
|
||||||
Return only JSON matching
|
Return only JSON matching
|
||||||
`/home/worsch/the-custodian/schemas/daily-triage-report.json`. Do not wrap
|
`activity-core://schemas/daily-triage-report.json`. Do not wrap
|
||||||
the JSON in Markdown fences or add prose before or after it:
|
the JSON in Markdown fences or add prose before or after it:
|
||||||
{
|
{
|
||||||
"summary": "short operator-facing summary",
|
"summary": "short operator-facing summary",
|
||||||
@@ -146,11 +146,11 @@ prompt: |
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
output_schema: /home/worsch/the-custodian/schemas/daily-triage-report.json
|
output_schema: activity-core://schemas/daily-triage-report.json
|
||||||
review_required: false
|
review_required: false
|
||||||
report_sinks:
|
report_sinks:
|
||||||
- type: working-memory
|
- type: working-memory
|
||||||
path: /home/worsch/the-custodian/memory/working
|
path: custodian://memory/working
|
||||||
timezone: Europe/Berlin
|
timezone: Europe/Berlin
|
||||||
filename_template: "daily-triage-{date}-{run_id_short}.md"
|
filename_template: "daily-triage-{date}-{run_id_short}.md"
|
||||||
- type: state-hub-progress
|
- type: state-hub-progress
|
||||||
@@ -165,7 +165,7 @@ report_sinks:
|
|||||||
The run should produce:
|
The run should produce:
|
||||||
|
|
||||||
- a dated working-memory note under
|
- a dated working-memory note under
|
||||||
`/home/worsch/the-custodian/memory/working/`
|
`custodian://memory/working/`
|
||||||
- a State Hub progress event with `event_type: daily_triage`
|
- a State Hub progress event with `event_type: daily_triage`
|
||||||
- no direct workplan/canon edits
|
- no direct workplan/canon edits
|
||||||
- no task status changes unless a later human request explicitly asks for an
|
- no task status changes unless a later human request explicitly asks for an
|
||||||
|
|||||||
55
activity-definitions/phase5-stabilization-closeout.md
Normal file
55
activity-definitions/phase5-stabilization-closeout.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
id: "e7d2b5a8-4c1f-4e9a-b6d3-8f2a1c4e6b09"
|
||||||
|
name: "Phase 5 Stabilization Closeout Check"
|
||||||
|
type: activity-definition
|
||||||
|
version: "1.0"
|
||||||
|
enabled: true
|
||||||
|
owner: custodian
|
||||||
|
governance: custodian
|
||||||
|
status: active
|
||||||
|
created: "2026-07-06"
|
||||||
|
trigger:
|
||||||
|
type: scheduled
|
||||||
|
at: "2026-07-09T17:35:00+00:00"
|
||||||
|
timezone: UTC
|
||||||
|
context_sources:
|
||||||
|
- type: state-hub
|
||||||
|
query: phase5_stabilization_check
|
||||||
|
required: true
|
||||||
|
params:
|
||||||
|
source: activity-core
|
||||||
|
closeout: true
|
||||||
|
window_start: "2026-07-06T17:35:00+00:00"
|
||||||
|
window_end: "2026-07-09T17:35:00+00:00"
|
||||||
|
baseline:
|
||||||
|
workstreams: 640
|
||||||
|
tasks: 4002
|
||||||
|
topics: 14
|
||||||
|
sweep_limit: 6
|
||||||
|
triage_max_age_hours: 36
|
||||||
|
evidence_sinks:
|
||||||
|
- type: state-hub-progress
|
||||||
|
event_type: phase5_stabilization_closeout
|
||||||
|
author: activity-core
|
||||||
|
workstream_id: 8a828444-dd49-4d7b-a2d1-9952b5bc929d
|
||||||
|
task_id: e91db8d0-973d-4a31-b3c2-ca37fd002ec7
|
||||||
|
bind_to: context.phase5_stabilization_check
|
||||||
|
---
|
||||||
|
|
||||||
|
# ActivityDefinition: Phase 5 Stabilization Closeout Check
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
One-shot closeout gate at the end of the `CUST-WP-0054-T05` stabilization
|
||||||
|
window. Fails visibly when hub-visible gates are not green. When gates pass,
|
||||||
|
records `operator_signoff_needed: true` for coulombcore teardown approval.
|
||||||
|
|
||||||
|
## Trigger
|
||||||
|
|
||||||
|
Scheduled once at **2026-07-09T17:35:00Z** (72h after window open).
|
||||||
|
|
||||||
|
## Output Contract
|
||||||
|
|
||||||
|
- one State Hub progress event with `event_type: phase5_stabilization_closeout`
|
||||||
|
- fails the ActivityRun when any gate is red at closeout time
|
||||||
|
- no LLM call and no direct workplan edits
|
||||||
58
activity-definitions/phase5-stabilization-daily.md
Normal file
58
activity-definitions/phase5-stabilization-daily.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
id: "f3a8c2e1-9b4d-4a6f-8e2d-1c5b7a9e3f04"
|
||||||
|
name: "Phase 5 Stabilization Daily Check"
|
||||||
|
type: activity-definition
|
||||||
|
version: "1.0"
|
||||||
|
enabled: true
|
||||||
|
owner: custodian
|
||||||
|
governance: custodian
|
||||||
|
status: active
|
||||||
|
created: "2026-07-06"
|
||||||
|
trigger:
|
||||||
|
type: cron
|
||||||
|
cron_expression: "0 9 * * *"
|
||||||
|
timezone: Europe/Berlin
|
||||||
|
misfire_policy: skip
|
||||||
|
context_sources:
|
||||||
|
- type: state-hub
|
||||||
|
query: phase5_stabilization_check
|
||||||
|
required: true
|
||||||
|
params:
|
||||||
|
source: activity-core
|
||||||
|
closeout: false
|
||||||
|
window_start: "2026-07-06T17:35:00+00:00"
|
||||||
|
window_end: "2026-07-09T17:35:00+00:00"
|
||||||
|
baseline:
|
||||||
|
workstreams: 640
|
||||||
|
tasks: 4002
|
||||||
|
topics: 14
|
||||||
|
sweep_limit: 6
|
||||||
|
triage_max_age_hours: 36
|
||||||
|
evidence_sinks:
|
||||||
|
- type: state-hub-progress
|
||||||
|
event_type: phase5_stabilization_check
|
||||||
|
author: activity-core
|
||||||
|
workstream_id: 8a828444-dd49-4d7b-a2d1-9952b5bc929d
|
||||||
|
task_id: e91db8d0-973d-4a31-b3c2-ca37fd002ec7
|
||||||
|
bind_to: context.phase5_stabilization_check
|
||||||
|
---
|
||||||
|
|
||||||
|
# ActivityDefinition: Phase 5 Stabilization Daily Check
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Scheduled hub-visible health gate for `CUST-WP-0054-T05` during the 72h
|
||||||
|
stabilization window (2026-07-06 → 2026-07-09). Complements the manual
|
||||||
|
`tools/phase5-stabilization-check.sh` script with fleet-side evidence in State
|
||||||
|
Hub progress.
|
||||||
|
|
||||||
|
## Trigger
|
||||||
|
|
||||||
|
Daily at 09:00 Europe/Berlin while the stabilization window is open. Runs
|
||||||
|
outside the window are recorded as `skipped` with `reason=outside_stabilization_window`.
|
||||||
|
|
||||||
|
## Output Contract
|
||||||
|
|
||||||
|
- one State Hub progress event with `event_type: phase5_stabilization_check`
|
||||||
|
- compact pass/fail detail for health, totals, sweeps, and daily triage freshness
|
||||||
|
- no LLM call and no direct workplan edits
|
||||||
@@ -50,6 +50,17 @@ Kickoff sweep (`source=phase5-kickoff`): **exit_code=0**, 10 repos processed, 0
|
|||||||
|
|
||||||
Window closes **2026-07-09 ~17:35 UTC** (~65h remaining at check time).
|
Window closes **2026-07-09 ~17:35 UTC** (~65h remaining at check time).
|
||||||
|
|
||||||
|
## Scheduled checks (activity-core)
|
||||||
|
|
||||||
|
| Definition | Schedule | Event type |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `phase5-stabilization-daily` (`f3a8c2e1…`) | `0 9 * * *` Europe/Berlin | `phase5_stabilization_check` |
|
||||||
|
| `phase5-stabilization-closeout` (`e7d2b5a8…`) | once `2026-07-09T17:35Z` | `phase5_stabilization_closeout` |
|
||||||
|
|
||||||
|
Hub-visible gates: health, totals (640/4002/14), last 6 sweeps, daily triage
|
||||||
|
freshness ≤36h. Closeout fails visibly when any gate is red; passes record
|
||||||
|
`operator_signoff_needed` for coulombcore teardown approval.
|
||||||
|
|
||||||
## Monitoring
|
## Monitoring
|
||||||
|
|
||||||
Run daily (or after incidents):
|
Run daily (or after incidents):
|
||||||
|
|||||||
@@ -236,13 +236,15 @@ kickoff baseline green — `docs/state-hub-railiance01-cutover-phase5-2026-07-06
|
|||||||
Post-cutover daily triage verified (manual 2026-07-06T17:50Z, event `a99e644e`).
|
Post-cutover daily triage verified (manual 2026-07-06T17:50Z, event `a99e644e`).
|
||||||
Forgejo CI image promoted (`main-375961c`, Helm rev 7). Day-1 check (2026-07-06T22:35Z):
|
Forgejo CI image promoted (`main-375961c`, Helm rev 7). Day-1 check (2026-07-06T22:35Z):
|
||||||
640/4002/14, pod 0 restarts, 6/6 sweeps exit_code=0 proc=11 missing=0,
|
640/4002/14, pod 0 restarts, 6/6 sweeps exit_code=0 proc=11 missing=0,
|
||||||
`state-hub-primary` LIVE. Remaining: 72h window + operator coulombcore teardown sign-off.
|
`state-hub-primary` LIVE. Phase 5 checks scheduled in activity-core:
|
||||||
|
`phase5-stabilization-daily` (09:00 Europe/Berlin) and one-shot closeout
|
||||||
|
`2026-07-09T17:35Z`. Remaining: 72h window + operator coulombcore teardown sign-off.
|
||||||
|
|
||||||
## Task: Working-memory and sink path decoupling
|
## Task: Working-memory and sink path decoupling
|
||||||
|
|
||||||
```task
|
```task
|
||||||
id: CUST-WP-0054-T06
|
id: CUST-WP-0054-T06
|
||||||
status: todo
|
status: progress
|
||||||
priority: medium
|
priority: medium
|
||||||
state_hub_task_id: "f2c5dd4b-9af4-4e8c-8619-6814e7d1666e"
|
state_hub_task_id: "f2c5dd4b-9af4-4e8c-8619-6814e7d1666e"
|
||||||
```
|
```
|
||||||
@@ -252,6 +254,13 @@ working-memory sink and any prompt/context paths become repo-relative or
|
|||||||
PVC-native with a defined sync-to-repo step (commit via the sweep). Done when
|
PVC-native with a defined sync-to-repo step (commit via the sweep). Done when
|
||||||
no ActivityDefinition or sink references a workstation-specific absolute path.
|
no ActivityDefinition or sink references a workstation-specific absolute path.
|
||||||
|
|
||||||
|
**Started (2026-07-06):** `custodian://` and `activity-core://` runtime path
|
||||||
|
URIs in activity-core (`runtime_paths.py`); daily triage definition + Railiance
|
||||||
|
projection decoupled from `/home/worsch/...`; working-memory mount moved to
|
||||||
|
`/var/custodian/memory/working`; prompt projected via `actcore-custodian-runtime`
|
||||||
|
ConfigMap. Remaining: sweep sync-to-repo for working-memory notes, audit remaining
|
||||||
|
ActivityDefinitions/sinks.
|
||||||
|
|
||||||
## Task: Dev-environment beachhead (files-first)
|
## Task: Dev-environment beachhead (files-first)
|
||||||
|
|
||||||
```task
|
```task
|
||||||
|
|||||||
Reference in New Issue
Block a user