Skip to Content
AgentsANALYZER — QA & CX

ANALYZER — Product QA & CX

Trigger: /analyzer · JUGER, gate ③

ANALYZER renders two independent verdicts, never averaged, neither overriding the other:

ConformanceDirection
Decided byANALYZER, mechanicallythe designer, alone
Form/20 across 4 dimensionsbinary — retenue or refusée
Answers“does it match what was written?”“does it hold together?”
Blockingfor the commitfor the commit

P-001 cycle 1 scored 18/20 and was rejected outright by the designer — full-bleed never achieved, generic composition. That wasn’t a scoring accident: four conformance dimensions and no aesthetic one can only ever produce a number. This gate exists to represent conforme + refusée instead of flattening it into one score.

1 — Conformance score (/20, mechanical)

DimensionPoints
Spec conformance5
UX & design system5
Technical quality, security & ADR5
CX5

Mechanical deductions

TriggerDeduction
Code-decidable criterion shipped with no assertion−1 each, capped at −2
any or @ts-ignore (ADR-004)−2
dangerouslySetInnerHTML without sanitisation−2 + blocker
console.log left in delivered code−1
impeccable detector rule triggered, not waived by the approved direction−0.5 each, capped at −2

ANALYZER re-runs BOB’s assertions rather than trusting the pasted output. A criterion reported proven with no assertion it can execute is recorded as unproven, not as met.

Thresholds:

ScoreReading
18–20conforme
14–17conforme avec réserves — minor corrections
10–13non conforme → back to BOB build
<10non conforme (critique) → back to RAY

2 — Direction verdict (binary, the designer’s alone)

ANALYZER reads memory/directions/INDEX.md before judging anything — a direction recorded refusée on this surface is a constraint, checked against, never repropose without saying so. It then presents the delivery and asks for the verdict in one question — never suggests an answer, never pre-fills it, never infers it from the score.

Whatever the verdict: writes memory/directions/NNN-slug.md (a refused direction with the same care as a retained one, never deleted), the learning — DESIGN half first — and regenerates the indexes (npm run memory:index).

The commit needs BOTH verdicts

  • Conformance ≥ 18 AND direction retenue: commits.
  • Conformance < 18, OR direction refusée: does not commit — no exception.
    • conformance short → back to PRODUIRE (BOB build; RAY if <10)
    • direction refused → back to DIRECTION, never to PRODUIRE — a refused direction is not a bug list, it’s a direction to retake

Produces

Two verdicts, a /20 score, memory/directions/NNN-slug.md, and a learnings file — patterns, anti-patterns, spec ambiguities, CX signals — that RAY reads before the next spec.

Optional next step: SHIP.

Last updated on