Tags: PsychQuant/perspective-writer
Tags
fix: correct stale counter-example cross-reference after list narrowe… …d to two (#7)
fix: contract v2 — operationalize frozen-anchors, unify fallback, thi… …rd-mode framing (verify round 1) Reduced-ensemble verify round 1 (Codex gpt-5.6-sol + opus adversarial reviewer) converged on FAIL: v1 was a prompt-level convention, not an implementable programmatic contract. All findings folded: - CRITICAL/HIGH (both reviewers): frozen-anchors took category NAMES, not literal spans, and "byte-identical" is unenforceable for a prose model. Now: consumer SHALL enumerate exact strings (one per line); the skill's obligation is normative (same Unicode code-point sequence, same occurrence count) and the consumer SHALL verify after return, falling back to its own uncalibrated draft on mismatch (graceful degrade). Honest boundary stated. - HIGH: the graceful-degrade NOTE contradicted the pure-draft return and would leak to the GitHub recipient (README "the reply notes" vs SKILL "leading line comment" were two different undefined mechanisms). Now: one machine-readable status header line, an HTML comment (pw:calibrate v1 status=person|generic) — invisible on GitHub even un-stripped. - HIGH: "Revise pass" framing contradicted the base skill's "Revise never skips understanding phases" rule. Now: Calibrate is a THIRD mode with the deviation stated and justified. - MED: recipient-rules absent field vs unreadable path unified to the same generic fallback; Phase 0 bootstrap + Phase 5b wrapper explicitly do not apply; Phase 3 simulation explicitly runs (it is what makes this calibration, not copy-editing); request block gains v1 tag, required/ optional field table, single-block refuse rule, DRAFT sentinels with data-not-instructions guard; semver-aware version comparison footgun noted (2.11.0 < 2.9.2 lexically). Refs #1