🤖 Generated by the Agent Improver
Observed failure
The consumer-wide H59 rule intended to stop cross-subcommand gh --json field reuse, but the post-intervention target moved in the wrong direction: 11 genuine Unknown JSON field failures across 3 Claude sessions in the latest 24-hour window, versus the 1-per-46-session baseline. All 11 failures were Surveyor reads that requested an unsupported field from gh run list; none was prose, a negative control, or documentation.
The portable Surveyor entrypoint does not carry the exact-subcommand vocabulary preflight, so the consumer rule is too far from the caller. A rejected field list aborts the whole request and can be misread as an empty result.
Proposed repair
- Put the preflight in the portable
portfolio-surveyor Safety contract.
- For prescribed reads, keep the reviewed literal field list.
- Before any ad hoc JSON read, discover fields from that same subcommand with bare
--json, validate every requested field, and never transfer field names across subcommands.
- Treat a failed vocabulary probe or validated read as
QUERY-UNKNOWN, never as an empty result.
- Add a focused contract test and bump the agentic-engineering plugin cache key.
Acceptance
- RED proves the current entrypoint lacks the call-site contract.
- GREEN and ablation prove all four clauses are required.
- Plugin validation, manifest parity, version-bump, and script tests pass.
- The next hypothesis measures the exact error signature after rollout; safety and cross-lane coordination remain
QUERY-UNKNOWN until independently measurable.
Upstream repair for devantler-tech/monorepo#3049.
Observed failure
The consumer-wide H59 rule intended to stop cross-subcommand
gh --jsonfield reuse, but the post-intervention target moved in the wrong direction: 11 genuineUnknown JSON fieldfailures across 3 Claude sessions in the latest 24-hour window, versus the 1-per-46-session baseline. All 11 failures were Surveyor reads that requested an unsupported field fromgh run list; none was prose, a negative control, or documentation.The portable Surveyor entrypoint does not carry the exact-subcommand vocabulary preflight, so the consumer rule is too far from the caller. A rejected field list aborts the whole request and can be misread as an empty result.
Proposed repair
portfolio-surveyorSafety contract.--json, validate every requested field, and never transfer field names across subcommands.QUERY-UNKNOWN, never as an empty result.Acceptance
QUERY-UNKNOWNuntil independently measurable.Upstream repair for devantler-tech/monorepo#3049.