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
|
||||
bind_to: context.prompt_path
|
||||
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
|
||||
query: daily_triage_digest
|
||||
params:
|
||||
@@ -50,7 +50,7 @@ Current active runner:
|
||||
|
||||
- activity-core Temporal schedule from this ActivityDefinition
|
||||
- Prompt source:
|
||||
`/home/worsch/the-custodian/runtime/prompts/daily_statehub_wsgi_triage.md`
|
||||
`custodian://runtime/prompts/daily_statehub_wsgi_triage.md`
|
||||
|
||||
Railiance projection note:
|
||||
|
||||
@@ -124,7 +124,7 @@ prompt: |
|
||||
{context.daily_triage_digest}
|
||||
|
||||
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:
|
||||
{
|
||||
"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
|
||||
report_sinks:
|
||||
- type: working-memory
|
||||
path: /home/worsch/the-custodian/memory/working
|
||||
path: custodian://memory/working
|
||||
timezone: Europe/Berlin
|
||||
filename_template: "daily-triage-{date}-{run_id_short}.md"
|
||||
- type: state-hub-progress
|
||||
@@ -165,7 +165,7 @@ report_sinks:
|
||||
The run should produce:
|
||||
|
||||
- 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`
|
||||
- no direct workplan/canon edits
|
||||
- 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).
|
||||
|
||||
## 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
|
||||
|
||||
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`).
|
||||
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,
|
||||
`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
|
||||
id: CUST-WP-0054-T06
|
||||
status: todo
|
||||
status: progress
|
||||
priority: medium
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user