feat(qa): a SEQUANT_AC marker in the QA skill — one machine-anchored line per criterion, read first by the #1525 producer, prose parse as fallback; retires the 80% parse (PROJECT-DISCUSSION §10)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- ai-infra-agents, testing
Direzione di ricerca
Read the QA skill at .claude/skills/qa/SKILL.md, its template mirror, and src/lib/workflow/ac-status.ts with src/lib/workflow/ac-status.test.ts; the work is blocked by #1525 and the plugin freeze lift. Check the existing marker patterns and the fixture tests before changing the skill and producer. Done means the skill emits one marker per criterion, marker statuses take precedence with prose parsing as fallback, the fixture tests remain unchanged and pass, and a testbed run confirms the markers.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Epic: graph-2026-10-review-surface Tier: judgment Execution: sequant_run Blocked by: #1525 (the plugin freeze lifted 2026-11-06)
- Blocked by: #1525
PROJECT-DISCUSSION §10's first post-freeze item (docs/internal/graph-2026-10-review-surface/PROJECT-DISCUSSION.md); the class #1525's spec recorded as deliberately local ("class tracked in #N").
Problem
#1525's producer parses the QA comment's prose for per-AC status. #1524 measured that parse at 80% of ACs across the 12-fixture corpus (3 of 75 labels wrong, pinned as KNOWN_MISSES in src/lib/workflow/ac-status.test.ts), below RD-B's 90% bar, so RS-02 shipped with unknown as the common case and §10 named this marker as its replacement. The QA skill already writes three machine-anchored markers (SEQUANT_MUTATION, SEQUANT_QA_GAPS, SEQUANT_PHASE); per-AC status has none, so the only producer scrapes an output format the skill does not promise. Prior fixes on that scrape: the parseQaVerdict first-match fix (v2.18.0), parseQaSummary (#964, #1194), qa-gaps-marker.ts. Three fixes on one class is the stop rule; the marker ends the class.
Decisions
| ID | Decision | Rejected alternative |
|---|---|---|
| M-1 | One marker line per criterion, HTML-comment anchored like SEQUANT_MUTATION: `<!-- SEQUANT_AC: {"ac":"AC-N","status":"met |
not_met |
| M-2 | recordAcStatuses reads markers first; when the output carries at least one marker the prose parse is not consulted; otherwise the prose parse runs unchanged (older skill versions, other drivers) |
removing the prose parse now (breaks every pinned skill) |
| M-3 | The status enum is #1525's five; no sixth | a partial status |
Acceptance Criteria
- AC-1: The QA skill emits the marker, mirrors in sync. Evidence:
grep -c 'SEQUANT_AC:' .claude/skills/qa/SKILL.md→≥ 1andnpm run lint:skill-sync→ exit 0 - AC-2: The producer prefers markers. Evidence:
npx vitest run src/lib/workflow/ac-status.test.ts -t "marker"→≥ 2 passed, 0 failed(an output whose markers and prose rows disagree yields the marker statuses; an output with no markers yields the prose parse) - AC-2 is classified as a gate test by
isGateTestEvidence; the PR body carries itsSEQUANT_MUTATIONrecord (remove the marker branch from the producer → the disagreeing case fails; restore). - AC-3: The 12-fixture test passes unchanged. Evidence:
npx vitest run src/lib/workflow/ac-status.test.ts -t "fixture"→≥ 13 passed, 0 failed - AC-4: One testbed QA run after the skill change yields a marker per declared AC and no
unknownfor a declared AC. Evidence: that run'sacs[]from the run log, pasted in the PR body (human check)
May touch
.claude/skills/qa/SKILL.md and its templates/skills/qa/SKILL.md mirror, plugin/ copies via sync:skills, src/lib/workflow/ac-status.ts, src/lib/workflow/ac-status.test.ts, CHANGELOG.
Non-Goals
- Changing the prose parser's thresholds or
KNOWN_MISSES(#1524, #1525). - Rendering (#1526).
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 1
- Merge medio
- 11h 3m
- PR unite (30g)
- 84
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sequant-io/sequant
-
graph-2026-11-simplify
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sequant-io/sequant#1650 ·
I maintainer di solito rispondono entro 1 giorno
-
run: --phases does not suppress the UI-label test phase (determinePhasesForIssue adds it to an explicit list)Forse già presa @admarble l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sequant-io/sequant#1631 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
sequant-io/sequant#1601 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
sequant-io/sequant#1582 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
sequant-io/sequant#1381 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di sequant-io/sequant
Issue simili
-
FR: Support CJK brackets, symbols and full-width markers in footnoteHeuristics (EBPAJ support)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
readest/readest#7413 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
content triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
eliasstravik/herdr-projects#788 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Ability to edit tagsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno