You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Recurring defect class: emitted text is not verified by reparse #453
Readiness: needs-decision — owner picks a prevention home.
Class
Tests asserted emitted strings without feeding emitter output back through the parser, so emit/parse stages drifted. Asserting the emitted text alone does not catch output the frontend reads differently.
wrightkit/.githubdocs/testing-policy.md already lists "parse -> emit -> parse preserving declared semantics" as a preferred invariant and #437 added the pinning tests. Owner decides whether a systematic reparse harness over the emit surface is still needed or coverage is now sufficient.
Recorded in docs/LESSONS.md via the merged-work retrospective.
Strengthen the rule: any PR that changes emitted output must include an assertion that re-parses the emitted text and checks the result, upgrading the testing policy's "preferred" invariant to required for emit-changing PRs. Recorded in AGENTS.md.
Retrospective update — prevention appears landed: docs/testing-policy.md already lists parse→emit→parse, roundtrip regressions cover the fidelity batch via #437, and AGENTS.md gained the "Emitted output is reparsed" contract rule via #457. The lesson entry was pruned in #475; leaving the close decision to the owner.
Closing: the 'Emitted output is reparsed' rule is in AGENTS.md (#457) and roundtrip regressions landed (#437). No harness, per the owner decision; revisit only if the class recurs.
Recurrence 2026-10-19, in a contract-identifier position: Refs #499 (fixes #493) — rule-content-v1 passed the WIR call name through, emitting the global chase's catalog id for player-variable chases; the fix adds a contract test that fails when a rendered call id resolves through lookup to a different entry.
Same-day cross-repository instance in wrightkit/wright#808 (a diagnostic code built from a phrased kind; the space broke the GitHub annotation shape). Escalated as a cross-repository class in wrightkit/.github#110.
Activity
e54-bot commentedon Oct 15, 2026
Decision (owner):
AGENTS.md.e54-bot commentedon Oct 17, 2026
Retrospective update — prevention appears landed:
docs/testing-policy.mdalready lists parse→emit→parse, roundtrip regressions cover the fidelity batch via #437, andAGENTS.mdgained the "Emitted output is reparsed" contract rule via #457. The lesson entry was pruned in #475; leaving the close decision to the owner.e54-bot commentedon Oct 18, 2026
Closing: the 'Emitted output is reparsed' rule is in AGENTS.md (#457) and roundtrip regressions landed (#437). No harness, per the owner decision; revisit only if the class recurs.
e54-bot commentedon Oct 20, 2026
Recurrence 2026-10-19, in a contract-identifier position: Refs #499 (fixes #493) —
rule-content-v1passed the WIR call name through, emitting the global chase's catalog id for player-variable chases; the fix adds a contract test that fails when a rendered call id resolves throughlookupto a different entry.Same-day cross-repository instance in wrightkit/wright#808 (a diagnostic code built from a phrased kind; the space broke the GitHub annotation shape). Escalated as a cross-repository class in wrightkit/.github#110.