railiance-cluster/workplans/RAIL-BS-WP-0008-activity-core-wp0016-triage-output-deploy.md

90 lines
2.9 KiB
Markdown
Raw Normal View History

---
id: RAIL-BS-WP-0008
type: workplan
title: "activity-core WP-0016 triage-output robustness deploy"
domain: financials
repo: railiance-cluster
status: ready
owner: railiance-cluster
topic_slug: railiance
created: "2026-07-01"
updated: "2026-07-01"
---
# activity-core WP-0016 triage-output robustness deploy
## Context
Inbox message `87952ff1` (activity-core, 2026-06-26): the scheduled daily WSJF
triage run on 2026-06-26 failed schema validation and the whole run was
discarded, resetting the WP-0006-T03 three-clean-run streak. ACTIVITY-WP-0016
hardened the instruction-executor output contract in-repo (commits
`5eb33bd..bf877b7` on activity-core main, 220 tests passed). The remaining
work is operator/cluster-owned on railiance01.
**Deploy coupling constraint:** `schemas/daily-triage-report.json` is now
strict per-item and is consumed by both the llm-connect hint and the
whole-doc validator. It MUST ship together with the new `executor.py`
(T03 per-item quarantine parser). Never deploy the schema ahead of the code.
## Deploy activity-core with coupled schema and executor
```task
id: RAIL-BS-WP-0008-T01
status: todo
priority: high
```
Rebuild/import the activity-core image from main (`bf877b7` or later) into
the railiance01 k3s runtime and reconcile the activity-core deployment so the
new executor and the strict per-item schema ship together.
## Update daily-statehub-wsjf-triage runtime-bundle Instruction
```task
id: RAIL-BS-WP-0008-T02
status: todo
priority: high
```
In the runtime projection (not the activity-core repo), update the
`daily-statehub-wsjf-triage` Instruction:
- raise `max_tokens` (currently ~1200; give clear headroom above the
~13001500-token 16-workstream list);
- prompt: bounded top-N (≤7) ranked recommendations, "if uncertain emit fewer
well-formed items rather than more";
- prompt: per-item NDJSON framing (leading summary object, then one
recommendation JSON object per line) so the T03 parser recovers items
independently.
## Pull raw llm-connect response for the 2026-06-26 run
```task
id: RAIL-BS-WP-0008-T03
status: todo
priority: medium
```
From the llm-connect pod logs / response store on railiance01, capture the
full raw response and `finish_reason` for the 2026-06-26 05:20:57Z run
(activity-core retained only a 4000-char preview; the JSON break is at char
5268). Send to activity-core to close ACTIVITY-WP-0016-T01. Logs only, no
secrets.
## Acceptance smoke
```task
id: RAIL-BS-WP-0008-T04
status: todo
priority: high
```
Trigger one daily-triage run against the reconciled runtime and confirm it
either (i) returns a clean schema-valid report, or (ii) degrades gracefully
(valid recommendations with `output_validated=true`, `partial=true`,
`quarantined_count>0`) instead of discarding the run. Confirm the State Hub
shows a matching `daily_triage` progress event. Closes ACTIVITY-WP-0016-T05
and unblocks the three-clean-run streak for ACTIVITY-WP-0010-T04 /
WP-0006-T03.