family-wide diagnosis for anchored-but-unparseable typed records (non-PO kinds) #59
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#59
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Issue #57 gave
phase-outcomerecords a full diagnosis path for anchored-but-unparseable comments: the post refuses to mint and reads exit non-zero, both naming the offending comment id, the unparseable element, and the operator repair route (_po_parsein_shared/procedures/bin/_lib.sh).The other typed kinds never got the equivalent. A comment that is anchored as
decision-resolution:v1(or any non-PO kind) but whose JSON fence is truncated/unparseable still surfaces as a bare parser error naming no comment id — reproduced during #57 QA: a malformeddecision-resolution:v1record madedecision-resolution-read-state.shexit 5 with a rawjq: error (at <stdin>:...)and no pointer to the comment. Other consumers (deliverable-get.sh, fold/unfold, candidates) either die the same way or silently skip the record viafromjson?.schemas/README.md's family-wide "three disjoint outcomes" rule was scoped to match shipped behavior as part of #57 QA (outcome 2's refusal-with-diagnosis is normative family-wide as a goal, implemented today only forphase-outcome).Direction
A shared parse-with-diagnosis layer in
_lib.sh(a generalization of_po_parse's "name the comment id + element + repair route" shape, parameterized per kind by its required elements), routed through by the non-PO consumers — mirroring how #57 routed all scans through_typed_scan. Substantial enough to earn its own slice: it touches every satellite consumer's error path and needs red-first suites per kind.Provenance
Deferred from issue #57 QA round 1, finding CR-15 (
applied_disposition: defer-to-issue, developer-decidable). See theqa-report:v1 domain=code phase=validatecomment and the round's Phase Outcome on #57.