Repository navigation
Parked questions say who decides (9.3.2) - #582
Merged
Merged
Conversation
Capture can now write ## Open Questions for a decision handed to someone outside the conversation, tagged *(owner: <role>)*, using refine's existing format. Refine accepts any role and graduates an answered entry into its owning section (an anchored entry flips to status=answered). Backlog mode's ask stage adds the same owner tag to its question line. The template and the repo-root SPEC.md document the section; teams.md gets one bullet. Claude-Session: https://claude.ai/code/session_01LbHwMnkD6ovBw6n8cnD8hQ
…mplate contract is stated Claude-Session: https://claude.ai/code/session_01LbHwMnkD6ovBw6n8cnD8hQ
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 66b7c3a. Configure here.
| - **`## Acceptance Criteria`** — `- **R1:** ...` prose bullets, allocated from R1 (fresh spec, no renumber concern). When `.flow/criteria.md` exists, never restate a G-ID as an R-ID; reference it in prose and write an R only for what this spec adds. | ||
| - **`## Requirement coverage`** — only when the template names it, `NO_PLAN_OPT=0`, and §2.8 resolved to `plan`: each R-ID mapped to `fn-N.M (TBD - populate via /flow-next:plan)`. Omitted on the `direct` and `refine` routes: work's single implicit task is the coverage, and a placeholder nobody fills would mislead completion review. Capture writes no tasks. | ||
| - **`## Parked unknowns`** (optional) — only genuine fog, one bullet each, naming what would resolve it. Decidable now → decide it; resolvable by scheduled work → a task for plan; inferred fill-in stays tagged, not parked. | ||
| - **`## Open Questions`** (optional; written even when the template leaves it out, as refine does; placed where the template puts it, otherwise before `## Requirement coverage`) — a decision the conversation hands to someone who isn't in it ("PM decides", "ask security"), one bullet each: `**<question>** — for <owner> to decide; leaning <X>. *(owner: <role>)*`. The role is the one the person named (product, engineering, qa), never a person's name. A decision with nobody named to make it stays in Parked unknowns; never settle a parked question from your own leaning. |
There was a problem hiding this comment.
Capture conduct misses Open Questions
Medium Severity
Capture now writes ## Open Questions for a handed-off decision even when the resolved template omits it, but agent_docs/conduct/capture.md still describes only the prior contract. A dogfood run that parks that question under ## Parked unknowns or drops it can pass the checklist.
Reviewed by Cursor Bugbot for commit 66b7c3a. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Why
A spec often stops on a decision that belongs to someone outside the conversation ("product decides"). Refine already parked those under
## Open Questionswith an owner. Capture couldn't: the template didn't name the section, and capture writes only what the template names. So a handed-off question landed in## Parked unknownswith no owner, and a product owner couldn't ask for "the open questions for product" across branches.What changes
SPEC.md:Open Questionsis listed as an optional auxiliary section, with the owner format*(owner: <role>)*. The fog rule in Parked unknowns now points a decision someone can make to Open Questions. Every sentence stating "capture adds no section the template leaves out" names the one exception, and so doesdocs/spec-template.md.## Open Questionsfor a handed-off decision, even when a custom template omits it (as refine already does). It goes where the template places the section, otherwise before Requirement coverage.status=answered, which matches how tracker-sync already imports answers. The conduct checklist follows.teams.md: one bullet that points to the new for-teams section on flow-next.dev (the docs commit follows this PR).Prompt cost and structure (G1, G4)
Verified
python3 scripts/run_tests_parallel.py: 4067 tests, 0 failures. Ruff is clean.SPEC.mdmatches the template) passes, and so does the Codex mirror check.Version
Patch 9.3.2. The bump is included and the changelog entry is under
[flow-next 9.3.2].https://claude.ai/code/session_01LbHwMnkD6ovBw6n8cnD8hQ