Skip to content

Commit d952da6

Browse files
authored
Merge pull request #680 from digipulse-engineering/contrib/sync-1787259346
sync: update 3 file(s) in core/
2 parents 09c2dfc + 5b94aa0 commit d952da6

3 files changed

Lines changed: 33 additions & 1 deletion

File tree

.gaai/core/agents/sub-agents/qa.daemon-prompt.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,28 @@ form or write down your `plan_conformance` conclusion.
127127
identifies the current replacement/migration AND continued use materially impairs
128128
security, reliability, interoperability or supported maintenance — even if not yet
129129
formally deprecated.
130+
131+
> **Inventory `blocking` is state-of-the-art-only — never use it to record a scope/plan
132+
> problem.** This inventory classification exists solely to answer "does this surface, on
133+
> its own technical merits, breach the currentness/materiality floor" — and `blocking` here
134+
> is the ONLY thing that obligates a matching `evidence[]` entry (step 2) with a named
135+
> primary authority. A `plan_conformance` defect — an undisclosed diff, an out-of-scope
136+
> change, code the PLAN said was untouched, anything that contradicts the Story/PLAN/Epic —
137+
> is a completely different kind of problem: there is no "official standard" to cite for "the
138+
> plan said X and the diff shows Y." Record it as a `findings[]` entry with
139+
> `classification: blocking` and `root_cause: plan | implementation` (below) — that alone
140+
> fails `plan_conformance`, and it needs **no** `evidence[]` entry. Leave the surface's own
141+
> `changed_surface_inventory` classification at whatever its currentness merits actually are
142+
> (usually `non_blocking`) unless it *also* independently breaches the materiality floor.
143+
> Marking a surface `blocking` in the inventory for a pure scope/plan reason forces an
144+
> authority-evidence obligation you cannot satisfy, and the validator will reject the whole
145+
> handoff as `QA_HANDOFF_INVALID: blocking finding '<id>' ... has no supporting evidence`
146+
> a real observed failure mode: a genuine scope-violation finding, correctly identified,
147+
> repeatedly rejected on handoff because its surface was inventory-classified `blocking`
148+
> with no authority to back it. The correct shape: a `findings[]` entry with
149+
> `classification: blocking`/`root_cause: plan` naming the surface, that surface's
150+
> `changed_surface_inventory` entry left `non_blocking`, and no evidence entry for that
151+
> finding at all.
130152
2. **Gather primary-authority evidence for every non-N/A surface.** Primary authority is
131153
closed to: an official standard/regulator publication, official vendor/runtime/framework
132154
documentation or advisory, official maintainer release/security notes, or a product-owned

.gaai/core/skills/delivery/qa-review/SKILL.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,13 @@ Activate after implementation is complete. This is a **hard quality gate**.
5151
- Only files within Story scope were modified
5252
- No feature creep introduced
5353
- No unrelated refactors included
54-
- Unexpected changes → FAIL
54+
- Unexpected changes → FAIL, recorded as a `findings[]` entry (`classification: blocking`,
55+
`root_cause: plan | implementation`) that fails `plan_conformance` on its own. This is a
56+
different mechanism from the `changed_surface_inventory` `blocking` classification used in
57+
Step 7 — do NOT mark the affected surface `blocking` in the inventory or attach an
58+
`evidence[]` entry for a pure scope/plan violation; there is no primary authority to cite for
59+
it, and doing so produces an unsatisfiable handoff rejection (see `qa.daemon-prompt.md`
60+
Two-Axis Review step 1 for the worked example).
5561

5662
### 3. Rule Enforcement
5763
- Confirm compliance with each applicable rule
@@ -99,6 +105,9 @@ TS|Error|warning" /tmp/tsc-output.txt | tail -100`.
99105

100106
Independent of Steps 1-6, evaluate and record `state_of_the_art_conformance` — do this
101107
BEFORE finalizing `plan_conformance`, to avoid anchoring on "tests passed" (DEC-200 D1).
108+
This step's `changed_surface_inventory` `blocking` classification (and its `evidence[]`
109+
obligation) is scoped to currentness/materiality only — a Step 2 scope violation never
110+
belongs here, see Step 2's note above.
102111

103112
- **Materiality floor.** A functionally correct implementation that passes every business
104113
test is still `FAIL` on this axis when any changed surface is `blocking`: a named primary

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
## [Unreleased]
1111

1212
### Changed
13+
- fix: blocking classification is SOTA-only, not for plan-conformance findings
1314
- fix: settle what the blocked state may do, from the transitions actually made
1415
- fix: the evaluator could edit the record clearing it
1516
- fix: repoint repository identity after transfer to digipulse-engineering

0 commit comments

Comments
 (0)