@fro.bot/systematic 2.6.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/ce-brainstorm/references/handoff.md +127 -0
- package/skills/ce-brainstorm/references/requirements-capture.md +243 -0
- package/skills/ce-brainstorm/references/universal-brainstorming.md +63 -0
- package/skills/ce-ideate/references/post-ideation-workflow.md +240 -0
- package/skills/ce-plan/references/deepening-workflow.md +249 -0
- package/skills/ce-plan/references/plan-handoff.md +96 -0
- package/skills/ce-plan/references/universal-planning.md +114 -0
- package/skills/ce-plan/references/visual-communication.md +31 -0
- package/skills/ce-work/references/shipping-workflow.md +129 -0
- package/skills/ce-work-beta/references/codex-delegation-workflow.md +327 -0
- package/skills/ce-work-beta/references/shipping-workflow.md +129 -0
- package/skills/document-review/references/synthesis-and-presentation.md +406 -0
- package/skills/proof/references/hitl-review.md +368 -0
package/package.json
CHANGED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Handoff
|
|
2
|
+
|
|
3
|
+
This content is loaded when Phase 4 begins — after the requirements document is written.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
#### 4.1 Present Next-Step Options
|
|
8
|
+
|
|
9
|
+
The Phase 4 menu's visible option count varies by state: no requirements doc hides the review and Proof options, unresolved `Resolve Before Planning` hides `Plan implementation` and `Build it now`, a failing direct-to-work gate hides `Build it now`. Count the visible options for the current state and choose the rendering mode accordingly:
|
|
10
|
+
|
|
11
|
+
- **4 or fewer visible:** use the platform's blocking question tool (`question` in OpenCode — call `ToolSearch` with `select:question` first if its schema isn't loaded; `request_user_input` in Codex; `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension)). This is the default.
|
|
12
|
+
- **5 or more visible:** render as a numbered list in chat. This is the narrow option-overflow fallback; trimming would hide legitimate choices (plan, review, Proof, build, refine, pause are all distinct destinations). Include a hint that free-form input is accepted ("Pick a number or describe what you want.") so the numbered list retains the blocking tool's open-endedness.
|
|
13
|
+
|
|
14
|
+
Never silently skip the question.
|
|
15
|
+
|
|
16
|
+
If `Resolve Before Planning` contains any items:
|
|
17
|
+
- Ask the blocking questions now, one at a time, by default
|
|
18
|
+
- If the user explicitly wants to proceed anyway, first convert each remaining item into an explicit decision, assumption, or `Deferred to Planning` question
|
|
19
|
+
- If the user chooses to pause instead, present the handoff as paused or blocked rather than complete
|
|
20
|
+
- Do not offer the `Plan implementation` or `Build it now` options while `Resolve Before Planning` remains non-empty
|
|
21
|
+
|
|
22
|
+
In both preambles below, the "Pick a number or describe what you want." hint applies only in numbered-list mode. When using the blocking tool, omit that line and pass the remaining stem as the question.
|
|
23
|
+
|
|
24
|
+
**Path format:** Use absolute paths for chat-output file references — relative paths are not auto-linked as clickable in most terminals.
|
|
25
|
+
|
|
26
|
+
**Preamble when no blocking questions remain:**
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Brainstorm complete.
|
|
30
|
+
|
|
31
|
+
Requirements doc: <absolute path to requirements doc> # omit line if no doc was created
|
|
32
|
+
|
|
33
|
+
What would you like to do next? (Pick a number or describe what you want.)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Preamble when blocking questions remain and user wants to pause:**
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Brainstorm paused. Planning is blocked until the remaining questions are resolved.
|
|
40
|
+
|
|
41
|
+
Requirements doc: <absolute path to requirements doc> # omit line if no doc was created
|
|
42
|
+
|
|
43
|
+
What would you like to do next? (Pick a number or describe what you want.)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Present only the options that apply. Renumber so visible options stay contiguous starting at 1.
|
|
47
|
+
|
|
48
|
+
1. **Plan implementation with `ce-plan` (Recommended)** - Move to `ce-plan` for structured implementation planning. Shown only when `Resolve Before Planning` is empty.
|
|
49
|
+
2. **Agent review of requirements doc with `ce-doc-review`** - Dispatch reviewer agents to check the doc for coherence, feasibility, scope, and other persona-specific issues; auto-apply safe fixes; route remaining findings interactively. Shown only when a requirements document exists.
|
|
50
|
+
3. **Open in Proof — review and comment to iterate with the agent** - Open the doc in Every's Proof editor, iterate with the agent via comments, or copy a link to share with others. Shown only when a requirements document exists.
|
|
51
|
+
4. **Build it now with `ce-work` (skip planning)** - Skip planning and move to `ce-work`; suited to lightweight, well-defined changes. Shown only when `Resolve Before Planning` is empty **and** scope is lightweight, success criteria are clear, scope boundaries are clear, and no meaningful technical or research questions remain (the "direct-to-work gate").
|
|
52
|
+
5. **More clarifying questions to sharpen the doc** - Keep refining scope, edge cases, constraints, and preferences through further dialogue. Always shown.
|
|
53
|
+
6. **Done for now** - Pause; the requirements doc is saved and can be resumed later. Always shown.
|
|
54
|
+
|
|
55
|
+
**Post-review nudge (subsequent rounds only):** If the user has already run `ce-doc-review` this session and residual P0/P1 findings remain unaddressed, add a one-line prose nudge adjacent to the menu (e.g., "Document review flagged 2 P1 findings you may want to address — pick \"Agent review of requirements doc\" to run another pass."). Reference the option by label, not number: the menu renumbers when `Resolve Before Planning` hides `Plan implementation` and `Build it now`, so a hardcoded option number can point users at the wrong action. Do not add a separate menu option; reuse the existing agent-review option.
|
|
56
|
+
|
|
57
|
+
#### 4.2 Handle the Selected Option
|
|
58
|
+
|
|
59
|
+
Selections may be the literal option label (when the user types the label or a close paraphrase) or the option number. Match numbers against the currently-rendered (post-trim) list. Free-form input that doesn't match an option or describe an alternative action should be treated as clarification — ask a follow-up rather than guessing.
|
|
60
|
+
|
|
61
|
+
**If user selects "Plan implementation with `ce-plan` (Recommended)":**
|
|
62
|
+
|
|
63
|
+
Immediately load the `ce-plan` skill in the current session. Pass the requirements document path when one exists; otherwise pass a concise summary of the finalized brainstorm decisions. Do not print the closing summary first.
|
|
64
|
+
|
|
65
|
+
**If user selects "Agent review of requirements doc with `ce-doc-review`":**
|
|
66
|
+
|
|
67
|
+
Load the `ce-doc-review` skill, passing the requirements document path as the argument. When ce-doc-review returns "Review complete", return to the Phase 4 options and re-render the menu (the doc may have changed, so re-evaluate `Resolve Before Planning`, direct-to-work gate, and residual findings). If residual P0/P1 findings remain unaddressed, include the post-review nudge above the menu. Do not show the closing summary yet.
|
|
68
|
+
|
|
69
|
+
**If user selects "Build it now with `ce-work` (skip planning)":**
|
|
70
|
+
|
|
71
|
+
Immediately load the `ce-work` skill in the current session using the finalized brainstorm output as context. If a compact requirements document exists, pass its path. Do not print the closing summary first.
|
|
72
|
+
|
|
73
|
+
**If user selects "More clarifying questions to sharpen the doc":** Return to Phase 1.3 (Collaborative Dialogue) and continue asking the user clarifying questions one at a time to further refine scope, edge cases, constraints, and preferences. Continue until the user is satisfied, then return to Phase 4. Do not show the closing summary yet.
|
|
74
|
+
|
|
75
|
+
**If user selects "Open in Proof — review and comment to iterate with the agent":**
|
|
76
|
+
|
|
77
|
+
Load the `ce-proof` skill in HITL-review mode with:
|
|
78
|
+
|
|
79
|
+
- **source file:** `docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md`
|
|
80
|
+
- **doc title:** `Requirements: <topic title>`
|
|
81
|
+
- **identity:** `ai:systematic` / `Systematic`
|
|
82
|
+
- **recommended next step:** `ce-plan` (shown in the ce-proof skill's final terminal output)
|
|
83
|
+
|
|
84
|
+
Follow `references/hitl-review.md` in the ce-proof skill. It uploads the doc, prompts the user for review in Proof's web UI, ingests each thread by reading it fresh and replying in-thread, applies agreed edits as tracked suggestions, and syncs the final markdown back to the source file atomically on proceed.
|
|
85
|
+
|
|
86
|
+
When the ce-proof skill returns control:
|
|
87
|
+
|
|
88
|
+
- `status: proceeded` with `localSynced: true` → the requirements doc on disk now reflects the review. Return to the Phase 4 options and re-render the menu (the doc may have changed substantially during review, so option eligibility can shift — re-evaluate `Resolve Before Planning`, direct-to-work gate, and residual ce-doc-review findings against the updated doc).
|
|
89
|
+
- `status: proceeded` with `localSynced: false` → the reviewed version lives in Proof at `docUrl` but the local copy is stale. Offer to pull the Proof doc to `localPath` using the ce-proof skill's Pull workflow. Re-render the Phase 4 menu after the pull completes (or is declined). If the pull was declined, include a one-line note above the menu that `<localPath>` is stale vs. Proof — otherwise `Plan implementation` / `Build it now` / `Agent review of requirements doc` will silently read the pre-review copy (ce-doc-review would analyze stale content, and planning or work would skip the user's Proof edits).
|
|
90
|
+
- `status: done_for_now` → the doc on disk may be stale if the user edited in Proof before leaving. Offer to pull the Proof doc to `localPath` so the local requirements file stays in sync, then return to the Phase 4 options. If the pull was declined, include the stale-local note above the menu. `done_for_now` means the user stopped the HITL loop without syncing — it does not mean they ended the whole brainstorm; they may still want to plan implementation, run an agent review, or keep refining the doc.
|
|
91
|
+
- `status: aborted` → fall back to the Phase 4 options without changes.
|
|
92
|
+
|
|
93
|
+
If the initial upload fails (network error, Proof API down), retry once after a short wait. If it still fails, tell the user the upload didn't succeed and briefly explain why, then return to the Phase 4 options — don't leave them wondering why the option did nothing.
|
|
94
|
+
|
|
95
|
+
**If user selects "Done for now":** Display the closing summary (see 4.3) and end the turn.
|
|
96
|
+
|
|
97
|
+
#### 4.3 Closing Summary
|
|
98
|
+
|
|
99
|
+
Use the closing summary only when this run of the workflow is ending or handing off, not when returning to the Phase 4 options.
|
|
100
|
+
|
|
101
|
+
When complete and ready for planning, display:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Brainstorm complete!
|
|
105
|
+
|
|
106
|
+
Requirements doc: docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md # if one was created
|
|
107
|
+
|
|
108
|
+
Key decisions:
|
|
109
|
+
- [Decision 1]
|
|
110
|
+
- [Decision 2]
|
|
111
|
+
|
|
112
|
+
Recommended next step: `ce-plan`
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
If the user pauses with `Resolve Before Planning` still populated, display:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
Brainstorm paused.
|
|
119
|
+
|
|
120
|
+
Requirements doc: docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md # if one was created
|
|
121
|
+
|
|
122
|
+
Planning is blocked by:
|
|
123
|
+
- [Blocking question 1]
|
|
124
|
+
- [Blocking question 2]
|
|
125
|
+
|
|
126
|
+
Resume with `ce-brainstorm` when ready to resolve these before planning.
|
|
127
|
+
```
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# Requirements Capture
|
|
2
|
+
|
|
3
|
+
This content is loaded when Phase 3 begins — after the collaborative dialogue (Phases 0-2) has produced durable decisions worth preserving.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This document should behave like a lightweight PRD without PRD ceremony. Include what planning needs to execute well, and skip sections that add no value for the scope.
|
|
8
|
+
|
|
9
|
+
The requirements document is for product definition and scope control. Do **not** include implementation details such as libraries, schemas, endpoints, file layouts, or code structure unless the brainstorm is inherently technical and those details are themselves the subject of the decision.
|
|
10
|
+
|
|
11
|
+
## Section matrix
|
|
12
|
+
|
|
13
|
+
| Section | Lightweight | Standard / Deep-feature | Deep-product |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| Summary | Required (1-3 line prose; skip only for truly-trivial cases — synthesis ≤ 2 bullets that echo the prompt) | Required (1-3 line prose) | Required (1-3 line prose) |
|
|
16
|
+
| Problem Frame | Required | Required | Required |
|
|
17
|
+
| Assumptions | Non-interactive only, when Inferred bets exist | Non-interactive only, when Inferred bets exist | Non-interactive only, when Inferred bets exist |
|
|
18
|
+
| Actors | Omit unless triggered | Triggered (see below) | Triggered (see below) |
|
|
19
|
+
| Key Flows | Omit unless triggered | Triggered (see below) | Expected by default |
|
|
20
|
+
| Requirements | Required | Required (with R-IDs) | Required (with R-IDs) |
|
|
21
|
+
| Acceptance Examples | Required for behavioral-conditional requirements ("When X, Y" / "If X, Y"); otherwise omit unless triggered | Required for behavioral-conditional requirements; otherwise triggered (see below) | Required for behavioral-conditional requirements; otherwise triggered (see below) |
|
|
22
|
+
| Success Criteria | Required | Required | Required |
|
|
23
|
+
| Scope Boundaries | Required (single list) | Required (single list) | Required (split into "Deferred for later" and "Outside this product's identity") |
|
|
24
|
+
| Key Decisions | Include when material | Include when material | Include when material |
|
|
25
|
+
| Dependencies / Assumptions | Include when material | Include when material | Include when material |
|
|
26
|
+
| Outstanding Questions | Include when material | Include when material | Include when material |
|
|
27
|
+
|
|
28
|
+
## Summary vs Problem Frame discipline
|
|
29
|
+
|
|
30
|
+
Both sections describe the work, but from different angles. They earn separate sections only when each holds to its own purpose:
|
|
31
|
+
|
|
32
|
+
| Section | Question it answers | Time direction | Length |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| `## Summary` | What is this doc proposing? | Forward-looking | 1-3 lines |
|
|
35
|
+
| `## Problem Frame` | Why does this proposal exist? | Backward-looking / situational | Paragraphs |
|
|
36
|
+
|
|
37
|
+
Disciplines:
|
|
38
|
+
- **Summary doesn't need problem context.** A reader scanning Summary gets the proposal at a glance without first reading why. The Problem Frame is the next stop if they need motivation.
|
|
39
|
+
- **Problem Frame doesn't restate the proposal.** It establishes the situation, the specific moment of pain, and the cost shape — then stops. The remedy lives in Summary; restating it in Problem Frame is the duplication that makes the two sections feel redundant. Even a single transition sentence to the remedy at the end of Problem Frame ("A dedicated X primitive collapses both pains into a single action...") slips the proposal in and undermines the discipline. If the last paragraph of Problem Frame names what the doc is proposing, cut it — Summary above already covers it.
|
|
40
|
+
|
|
41
|
+
In the truly-trivial Lightweight case where Summary is skipped (synthesis ≤ 2 bullets that echo the prompt — see the Section matrix above), Problem Frame may absorb the situational + remedy framing in a tighter form. In all other cases — Standard, Deep, and any Lightweight doc with more substance — both Summary and Problem Frame are present and must follow the discipline above.
|
|
42
|
+
|
|
43
|
+
## Triggered sections — when to include
|
|
44
|
+
|
|
45
|
+
**Actors** — include when multiple humans, agents, or systems are meaningfully involved, or when decisions change based on whose perspective is optimized for. Covers both end-user actors (for product work) and pipeline-agent actors (for agent-workflow work, such as changes to CE's own review or planning flows).
|
|
46
|
+
|
|
47
|
+
**Key Flows** — include when the work involves multi-step interaction or coordinates across existing flows. At Deep-product tier, include 2-4 primary flows by default; omit only when the product is not meaningfully flow-shaped (e.g., pure API, policy, or artifact output) and Actors, Requirements, Scope Boundaries, and Acceptance Examples already prevent downstream invention of user/agent paths. When omitting at product tier, note the reason in the doc.
|
|
48
|
+
|
|
49
|
+
**Acceptance Examples** — include when a requirement's behavior is hard to pin down without a concrete scenario. **Always include AEs covering behavioral-conditional requirements** — any requirement framed as "When X, Y" or "If X, Y" — regardless of tier. Conditional framing signals state-dependent behavior, which is exactly where prose alone leaves implicit ambiguity (e.g., "When `--quiet` is set, errors continue to surface" — does that include warnings? does it include binary-side errors? AE pins it down). Each example disambiguates one or more requirements via a `Covers: R-IDs` back-reference. Non-conditional requirements may be omitted unless ambiguity surfaces in review; the section is not exhaustive.
|
|
50
|
+
|
|
51
|
+
## Template
|
|
52
|
+
|
|
53
|
+
Use this template and omit sections per the matrix above. At Deep-product tier, keep the Scope Boundaries split. At other tiers, use the single Scope Boundaries list.
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
---
|
|
57
|
+
date: YYYY-MM-DD
|
|
58
|
+
topic: <kebab-case-topic>
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
# <Topic Title>
|
|
62
|
+
|
|
63
|
+
## Summary
|
|
64
|
+
|
|
65
|
+
[1-3 line prose summary — what is being proposed, in plain language. Forward-looking (what *will* be in the doc), not retrospective. Required for Standard / Deep-feature / Deep-product. Skip for Lightweight when the Requirements bullets ARE the summary.]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Problem Frame
|
|
70
|
+
|
|
71
|
+
[Who is affected, what is changing, and why it matters. Backward-looking / situational. Establishes the pain that motivates the work — does NOT restate the proposal (that lives in Summary).]
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
<!-- Include ONLY in non-interactive (headless) mode when the agent had Inferred bets that
|
|
76
|
+
were not user-confirmed in chat. Lists the un-validated agent inferences explicitly so
|
|
77
|
+
downstream review (ce-doc-review, ce-plan, human PR review) can scrutinize them as bets,
|
|
78
|
+
not as authoritative requirements. Omit entirely in interactive mode — Inferred bets get
|
|
79
|
+
user-corrected in chat and either become decisions or are revised away. -->
|
|
80
|
+
## Assumptions
|
|
81
|
+
|
|
82
|
+
*This requirements doc was authored without synchronous user confirmation. The items below are agent inferences that fill gaps in the input — un-validated bets that should be reviewed before planning proceeds.*
|
|
83
|
+
|
|
84
|
+
- [Inferred scope item the agent chose without user confirmation]
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Actors
|
|
89
|
+
|
|
90
|
+
[Include when triggered. Each actor gets a stable A-ID and a one-line role description.]
|
|
91
|
+
|
|
92
|
+
- A1. [Name or role]: [What they do in this context]
|
|
93
|
+
- A2. [Name or role]: [What they do in this context]
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Key Flows
|
|
98
|
+
|
|
99
|
+
[Include when triggered. Each flow has trigger, actors, steps, outcome, and a Covered by back-reference.]
|
|
100
|
+
|
|
101
|
+
- F1. [Flow name]
|
|
102
|
+
- **Trigger:** [What initiates the flow]
|
|
103
|
+
- **Actors:** A1, A2
|
|
104
|
+
- **Steps:** [3-7 steps, prose or short list]
|
|
105
|
+
- **Outcome:** [What is true after the flow completes]
|
|
106
|
+
- **Covered by:** R1, R2, R5
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Requirements
|
|
111
|
+
|
|
112
|
+
[Group under bold inline headers when requirements span distinct concerns. Keep R-IDs sequential across groups — numbering does not restart per group.]
|
|
113
|
+
|
|
114
|
+
**[Group header, e.g., "Brainstorming workflow"]**
|
|
115
|
+
- R1. [Concrete requirement]
|
|
116
|
+
- R2. [Concrete requirement]
|
|
117
|
+
|
|
118
|
+
**[Group header, e.g., "Output document"]**
|
|
119
|
+
- R3. [Concrete requirement]
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Acceptance Examples
|
|
124
|
+
|
|
125
|
+
[Include when triggered. Each example is a definitive scenario; the list is not exhaustive.]
|
|
126
|
+
|
|
127
|
+
- AE1. **Covers R1, R2.** Given [state], when [action], [outcome].
|
|
128
|
+
- AE2. **Covers R4.** Given [state], when [action], [outcome].
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Success Criteria
|
|
133
|
+
|
|
134
|
+
- [How we will know this solved the right problem — human outcome.]
|
|
135
|
+
- [How a downstream agent or implementer can tell the handoff was clean.]
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Scope Boundaries
|
|
140
|
+
|
|
141
|
+
[At Lightweight, Standard, and Deep-feature tiers, use a single list.]
|
|
142
|
+
|
|
143
|
+
- [Deliberate non-goal or exclusion]
|
|
144
|
+
|
|
145
|
+
[At Deep-product tier, split into two subsections:]
|
|
146
|
+
|
|
147
|
+
### Deferred for later
|
|
148
|
+
|
|
149
|
+
- [Work that will be done eventually but not in v1]
|
|
150
|
+
|
|
151
|
+
### Outside this product's identity
|
|
152
|
+
|
|
153
|
+
- [Adjacent product we could build but are rejecting — positioning decision, not a deferral]
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Key Decisions
|
|
158
|
+
|
|
159
|
+
- [Decision]: [Rationale]
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Dependencies / Assumptions
|
|
164
|
+
|
|
165
|
+
- [Material dependency or assumption]
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Outstanding Questions
|
|
170
|
+
|
|
171
|
+
### Resolve Before Planning
|
|
172
|
+
|
|
173
|
+
- [Affects R1][User decision] [Question that must be answered before planning can proceed]
|
|
174
|
+
|
|
175
|
+
### Deferred to Planning
|
|
176
|
+
|
|
177
|
+
- [Affects R2][Technical] [Question answered during planning or codebase exploration]
|
|
178
|
+
- [Affects R2][Needs research] [Question likely requiring research during planning]
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## ID and layout rules
|
|
182
|
+
|
|
183
|
+
**Stable IDs.** Standard and Deep scope always assign R-IDs to requirements. Triggered sections use their own prefixes: `A` for Actors, `F` for Key Flows, `AE` for Acceptance Examples. No other ID namespaces.
|
|
184
|
+
|
|
185
|
+
**ID format.** Use `R1.`, `A1.`, `F1.`, `AE1.` as a plain prefix at the start of the bullet — do not bold the ID. The prefix is visually distinctive on its own.
|
|
186
|
+
|
|
187
|
+
**Bold leader labels** inside Flows and Acceptance Examples (e.g., `**Trigger:**`, `**Covers R4, R8.**`) give the bullet structure without needing tables or deeper heading levels.
|
|
188
|
+
|
|
189
|
+
**Horizontal rules (`---`)** between top-level sections in Standard and Deep docs. Omit for Lightweight.
|
|
190
|
+
|
|
191
|
+
**Grouping within Requirements.** When Standard or Deep requirements span distinct concerns, group them under bold inline headers (not H3s) within the Requirements section. The trigger is distinct logical areas, not item count — even four requirements benefit from headers if they cover three different topics. Group by capability or concern (e.g., "Packaging", "Migration and compatibility", "Contributor workflow"), not by the order they were discussed. Skip grouping only when all requirements are about the same thing.
|
|
192
|
+
|
|
193
|
+
**Tables** — only for genuinely comparative info. Bullets are cheaper and more portable for content lists.
|
|
194
|
+
|
|
195
|
+
## Size heuristics
|
|
196
|
+
|
|
197
|
+
- If a capability-named group has only one requirement, ungroup it.
|
|
198
|
+
- If total requirements exceed ~15-20, stop and ask whether this is one brainstorm or several.
|
|
199
|
+
- If a requirement can be fully described in a single short bullet with no sub-items, it probably doesn't need grouping at all.
|
|
200
|
+
- For Lightweight docs with only 1-3 simple requirements, plain bullets without R-IDs are acceptable.
|
|
201
|
+
|
|
202
|
+
## Visual communication
|
|
203
|
+
|
|
204
|
+
Include a visual aid when the requirements would be significantly easier to understand with one. Read `references/visual-communication.md` for the decision criteria, format selection, and placement rules.
|
|
205
|
+
|
|
206
|
+
## When a document is warranted
|
|
207
|
+
|
|
208
|
+
- **Lightweight** — keep the document compact. Skip document creation when the user only needs brief alignment and no durable decisions need to be preserved.
|
|
209
|
+
- **Standard and Deep (feature or product)** — a requirements document is usually warranted. When the work is simple, combine sections rather than padding them. A short requirements document is better than a bloated one.
|
|
210
|
+
|
|
211
|
+
## Finalization checklist
|
|
212
|
+
|
|
213
|
+
Before finalizing:
|
|
214
|
+
|
|
215
|
+
- What would `ce-plan` still have to invent if this brainstorm ended now?
|
|
216
|
+
- Does every Standard/Deep requirement have either an observable behavior or a stated reason it is structural?
|
|
217
|
+
- Do Success Criteria cover both human outcome and downstream-agent handoff quality?
|
|
218
|
+
- If Actors are named, is each actor mentioned in the problem represented in at least one requirement, flow, or scope boundary?
|
|
219
|
+
- If Key Flows are present, does each flow identify actor, trigger, outcome, and a failure or escape path when relevant?
|
|
220
|
+
- At Deep-product tier: if Key Flows are omitted, is the reason stated in the doc, and do Actors, Requirements, Scope Boundaries, and Acceptance Examples together prevent downstream invention of user/agent paths?
|
|
221
|
+
- At Deep-product tier: does Scope Boundaries distinguish "Deferred for later" from "Outside this product's identity"?
|
|
222
|
+
- Do any requirements depend on something claimed to be out of scope?
|
|
223
|
+
- Are any unresolved items actually product decisions rather than planning questions?
|
|
224
|
+
- Did implementation details leak in when they shouldn't have?
|
|
225
|
+
- Do any requirements claim that infrastructure is absent without that claim having been verified against the codebase? If so, verify now or label as an unverified assumption.
|
|
226
|
+
- Is there a low-cost change that would make this materially more useful?
|
|
227
|
+
- Would a visual aid (flow diagram, comparison table, relationship diagram) help a reader grasp the requirements faster than prose alone?
|
|
228
|
+
|
|
229
|
+
If planning would need to invent product behavior, scope boundaries, or success criteria, the brainstorm is not complete yet.
|
|
230
|
+
|
|
231
|
+
Ensure `docs/brainstorms/` directory exists before writing.
|
|
232
|
+
|
|
233
|
+
## Outstanding questions guidance
|
|
234
|
+
|
|
235
|
+
If a document contains outstanding questions:
|
|
236
|
+
|
|
237
|
+
- Use `Resolve Before Planning` only for questions that truly block planning.
|
|
238
|
+
- If `Resolve Before Planning` is non-empty, keep working those questions during the brainstorm by default.
|
|
239
|
+
- If the user explicitly wants to proceed anyway, convert each remaining item into an explicit decision, assumption, or `Deferred to Planning` question before proceeding.
|
|
240
|
+
- Do not force resolution of technical questions during brainstorming just to remove uncertainty.
|
|
241
|
+
- Put technical questions, or questions that require validation or research, under `Deferred to Planning` when they are better answered there.
|
|
242
|
+
- Use tags like `[Needs research]` when the planner should likely investigate the question rather than answer it from repo context alone.
|
|
243
|
+
- Carry deferred questions forward explicitly rather than treating them as a failure to finish the requirements doc.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Universal Brainstorming Facilitator
|
|
2
|
+
|
|
3
|
+
This file is loaded when ce-brainstorm detects a non-software task (Phase 0). It replaces the software-specific brainstorming phases (Phases 0.2 through 4) with facilitation principles for any domain. The Core Principles and **Interaction Rules** in the parent `ce-brainstorm/SKILL.md` still apply unchanged — including one-question-per-turn and the default to the platform's blocking question tool. This file extends those rules with universal-domain facilitation guidance; it does not relax them.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Your role
|
|
8
|
+
|
|
9
|
+
Be a thinking partner, not an answer machine. The user came here because they're stuck or exploring — they want to think WITH someone, not receive a deliverable. Resist the urge to generate a complete solution immediately. A premature answer anchors the conversation and kills exploration.
|
|
10
|
+
|
|
11
|
+
**Match the tone to the stakes.** For personal or life decisions (career changes, housing, relationships, family), lead with values and feelings before frameworks and analysis. Ask what matters to them, not just what the options are. For lighter or creative tasks (podcast topics, event ideas, side projects), energy and enthusiasm are more useful than caution.
|
|
12
|
+
|
|
13
|
+
## Asking questions
|
|
14
|
+
|
|
15
|
+
"Thinking partner" framing does not mean "conversational prose." The parent skill's Interaction Rules apply in full: one question per turn, and default to the platform's blocking question tool (with its free-text fallback) even for opening and elicitation.
|
|
16
|
+
|
|
17
|
+
"What's prompting this?", "what matters most here?", and "what have you ruled out?" feel open-ended and conversational, but that's not a reason to skip the tool. The free-text option preserves flexibility while a well-crafted option set teaches the user the dimensions they might not have separated. Pick-plus-optional-note is lower activation energy than composing prose from scratch — especially for emotional or values-laden topics where prose can feel like an essay prompt.
|
|
18
|
+
|
|
19
|
+
Drop to prose only when (a) the answer is inherently narrative ("walk me through how you got here"), (b) the question is diagnostic or introspective and presented options would leak your priors and bias the answer, or (c) you cannot write 3-4 genuinely distinct, plausibly-correct options that cover the space without padding. If you'd be straining to fill the option slots, the question is open — use prose.
|
|
20
|
+
|
|
21
|
+
## How to start
|
|
22
|
+
|
|
23
|
+
**Assess scope first.** Not every brainstorm needs deep exploration:
|
|
24
|
+
- **Quick** (user has a clear goal, just needs a sounding board): Confirm understanding, offer a few targeted suggestions or reactions, done in 2-3 exchanges.
|
|
25
|
+
- **Standard** (some unknowns, needs to explore options): 4-6 exchanges, generate and compare options, help decide.
|
|
26
|
+
- **Full** (vague goal, lots of uncertainty, or high-stakes decision): Deep exploration, many exchanges, structured convergence.
|
|
27
|
+
|
|
28
|
+
**Ask what they're already thinking.** Before offering ideas, find out what the user has considered, tried, or rejected. This prevents fixation on AI-generated ideas and surfaces hidden constraints.
|
|
29
|
+
|
|
30
|
+
**When the user represents a group** (couple, family, team) — surface whose preferences are in play and where they diverge. The brainstorm shifts from "help you decide" to "help you find alignment." Ask about each person's priorities, not just the speaker's.
|
|
31
|
+
|
|
32
|
+
**Understand before generating.** Spend time on the problem before jumping to solutions. "What would success look like?" and "What have you already ruled out?" reveal more than "Here are 10 ideas."
|
|
33
|
+
|
|
34
|
+
## How to explore and generate
|
|
35
|
+
|
|
36
|
+
**Use diverse angles to avoid repetitive ideas.** When generating options, vary your approach across exchanges:
|
|
37
|
+
- Inversion: "What if you did the opposite of the obvious choice?"
|
|
38
|
+
- Constraints as creative tools: "What if budget/time/distance were no issue?" then "What if you had to do it for free?"
|
|
39
|
+
- Analogy: "How does someone in a completely different context solve a similar problem?"
|
|
40
|
+
- What the user hasn't considered: introduce lateral ideas from unexpected directions
|
|
41
|
+
|
|
42
|
+
**Separate generation from evaluation.** When exploring options, don't critique them in the same breath. Generate first, evaluate later. Make the transition explicit when it's time to narrow.
|
|
43
|
+
|
|
44
|
+
**Offer options to react to when the user is stuck.** People who can't generate from scratch can often evaluate presented options. Use multi-select questions to gather preferences efficiently. Always include a skip option for users who want to move faster.
|
|
45
|
+
|
|
46
|
+
**Keep presented options to 3-5 at any decision point.** More causes analysis paralysis.
|
|
47
|
+
|
|
48
|
+
## How to converge
|
|
49
|
+
|
|
50
|
+
When the conversation has enough material to narrow — reflect back what you've heard. Name the user's priorities as they've emerged through the conversation (what excited them, what they rejected, what they asked about). Propose a frontrunner with reasoning tied to their criteria, and invite pushback. Keep final options to 3-5 max. Don't force a final decision if the user isn't there yet — clarity on direction is a valid outcome.
|
|
51
|
+
|
|
52
|
+
## When to wrap up
|
|
53
|
+
|
|
54
|
+
**Always synthesize a summary in the chat.** Before offering any next steps, reflect back what emerged: key decisions, the direction chosen, open threads, and any assumptions made. This is the primary output of the brainstorm — the user should be able to read the summary and know what they landed on.
|
|
55
|
+
|
|
56
|
+
**Then offer next steps** using the platform's blocking question tool: `question` in OpenCode (call `ToolSearch` with `select:question` first if its schema isn't loaded), `request_user_input` in Codex, `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension). Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question.
|
|
57
|
+
|
|
58
|
+
**Question:** "Brainstorm wrapped. What would you like to do next?"
|
|
59
|
+
|
|
60
|
+
- **Create a plan** → hand off to `/ce-plan` with the decided goal and constraints
|
|
61
|
+
- **Save summary to disk** → write the summary as a markdown file in the current working directory
|
|
62
|
+
- **Open in Proof (web app) — review and comment to iterate with the agent** → load the `ce-proof` skill to open the doc in Every's Proof editor, iterate with the agent via comments, or copy a link to share with others
|
|
63
|
+
- **Done** → the conversation was the value, no artifact needed
|