Repository navigation
Goalplan decisions record offered options; recommendation must be one of them (#262 follow-up) - #280
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
리뷰 · 우선순위 24 / 80이 PR의 바탕은 라인 - 메인테이너의 판단이 필요한 지점 옛 빌드가 너의 추천
이 댓글은 grok-bot이 작성했습니다 |
Problem
#271 let goalplans record a pending user decision, but not the options that were offered. The #262 acceptance list also asks that the recommendation be one of those options, which could not be checked.
Change
GoalplanDecisiongains an optionaloptions?: string[].cxc loop asktakes a repeatable--option <text>. When options are given, they must be non-empty and distinct after trimming, and--recommendationmust be one of them; otherwiseaskrefuses without writing.optionswhen present and fails closed on malformed data (field 'decisions' did not satisfy the schema), like every other goalplan field. Stored strings are kept as written and compared after trimming.ready --jsonandshowinclude the options (showprintsoptions: A | B (recommended: A)), and the help text explains the flag.decideanswer stays free text. The host's question tool always offers a free-form reply, so requiring the answer to be one of the options would strand the linked phases.durable-goalplan.mdandasync-questions.mdare synced.Plans without
optionsread and write unchanged;askwithout--optionstores nooptionskey.withdrawnis not part of this change, so #262 stays open for it.Compatibility
Builds older than this one rebuild decisions field by field and drop
optionsif they rewrite such a plan. There is no schema-version bump.Verification
goalplan-public-surface.test.ts(41 in the file). Red check: withgoalplan.tsandgoalplan-cli.tsfrom58a8a174, 6 of 41 fail (every new behavior test); the seventh is a compatibility test that passes on both. New source: 41/41.npm test(3737 tests, 0 failures), inventory,gate.mjsandplatform-smoke.mjspass undercxc receipt test. The hook diff is empty.Refs #262.