From dfc1bb1a43b9c533a7e0b4d913a174fe71de489e Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Mon, 18 May 2026 23:37:32 -0400 Subject: [PATCH] chore(changeset): update pr field + docs-exempt for #3713 (#3184) Co-Authored-By: Claude Opus 4.7 (1M context) --- .changeset/3184-phase-uat-passed.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.changeset/3184-phase-uat-passed.md b/.changeset/3184-phase-uat-passed.md index 2b9fc70c1..33ee1863f 100644 --- a/.changeset/3184-phase-uat-passed.md +++ b/.changeset/3184-phase-uat-passed.md @@ -1,5 +1,6 @@ --- type: Added -pr: TBD +pr: 3713 --- **`phase.uat-passed` query and `isPhaseUatPassed` SDK export** — adds canonical read-only query `phase.uat-passed` (alias `phase uat-passed`) and programmatic export `isPhaseUatPassed(projectDir, phase, workstream?)` returning typed `{ passed, reasons, reasonsHuman, items }`. Predicate consumes `*-HUMAN-UAT.md` files; hardens against markdown injection (YAML frontmatter, fenced code blocks, HTML comments, blockquote-prefixed lines); surfaces operator-mistake signals as typed `REASON_CODE` frozen enum values (`CASE_MISMATCH`, `ORPHAN_ITEM_MISSING_RESULT`, `BRACKETED_PLACEHOLDER`, `NO_ITEMS_EXTRACTED`). Typed `PhaseUatPassedError extends GSDError` for invalid arguments. Refs #3184. +