What
ak currently self-heals a defect in agentic-qe's own shipped default qe-court/config.json: defense: cognitum-low and jury: cognitum-high resolve to the same vendor per vendorOf(), violating the config's own writerIsNeverJuror invariant. A brand-new project running qe-court for the first time gets an invalid adversarial-review panel with zero user action.
Filed upstream: proffesor-for-testing/agentic-qe#576 (open).
Landed here as a temporary workaround: PR #69 (fix(qe-court): temporary self-heal for writerIsNeverJuror collision, commit bd9bc91).
Where the temporary code lives
src/lib/qeCourt.mjs — healJuryVendorCollision() (pure fix computation) and UPSTREAM_JURY_VENDOR_ISSUE constant
src/lib/heal.mjs — healQeCourtPanel() (reads config, applies the fix, backup-first write)
src/commands/status.mjs — the qe-court row, warns with a fix message when the panel is invalid
src/commands/sync.mjs — applies heal.healQeCourtPanel() when status flags it
tests/kit/qeCourt.test.mjs and tests/kit/heal-qe-court.test.mjs — full coverage of the heal path
Every one of these is explicitly commented TEMPORARY (remove once fixed upstream) with a citation back to agentic-qe#576.
Exit criteria (close this issue when all true)
🤖 Generated with Claude Code
What
akcurrently self-heals a defect in agentic-qe's own shipped defaultqe-court/config.json:defense: cognitum-lowandjury: cognitum-highresolve to the same vendor pervendorOf(), violating the config's ownwriterIsNeverJurorinvariant. A brand-new project running qe-court for the first time gets an invalid adversarial-review panel with zero user action.Filed upstream: proffesor-for-testing/agentic-qe#576 (open).
Landed here as a temporary workaround: PR #69 (
fix(qe-court): temporary self-heal for writerIsNeverJuror collision, commitbd9bc91).Where the temporary code lives
src/lib/qeCourt.mjs—healJuryVendorCollision()(pure fix computation) andUPSTREAM_JURY_VENDOR_ISSUEconstantsrc/lib/heal.mjs—healQeCourtPanel()(reads config, applies the fix, backup-first write)src/commands/status.mjs— theqe-courtrow, warns with afixmessage when the panel is invalidsrc/commands/sync.mjs— appliesheal.healQeCourtPanel()whenstatusflags ittests/kit/qeCourt.test.mjsandtests/kit/heal-qe-court.test.mjs— full coverage of the heal pathEvery one of these is explicitly commented
TEMPORARY (remove once fixed upstream)with a citation back to agentic-qe#576.Exit criteria (close this issue when all true)
config.jsonpasses its ownvalidatePanel())healJuryVendorCollision()andUPSTREAM_JURY_VENDOR_ISSUEremoved fromsrc/lib/qeCourt.mjshealQeCourtPanel()removed fromsrc/lib/heal.mjssrc/commands/status.mjsandsrc/commands/sync.mjs(or kept as read-only awareness only, matching the pre-existingak x provider statuspattern, if there's still value in surfacing panel validity generally)tests/kit/heal-qe-court.test.mjsremoved;tests/kit/qeCourt.test.mjs's heal-specific tests removed, its read-only tests (vendorOf,panelFromRouting,validatePanel,readQeCourtConfig) kept.claude/skills/qe-court/config.jsongenerated from the corrected upstream template passesak statuswith no heal offered🤖 Generated with Claude Code