@brunosps00/dev-workflow 1.5.0 → 1.7.0
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/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -2
- package/lib/constants.js +6 -4
- package/lib/install-deps.js +22 -1
- package/lib/install-open-design.js +89 -0
- package/package.json +4 -2
- package/scaffold/en/commands/dw-adr.md +49 -11
- package/scaffold/en/commands/dw-analyze-project.md +5 -0
- package/scaffold/en/commands/dw-brainstorm.md +103 -32
- package/scaffold/en/commands/dw-claude-run.md +8 -5
- package/scaffold/en/commands/dw-help.md +3 -1
- package/scaffold/en/commands/dw-open-design.md +324 -0
- package/scaffold/en/commands/dw-plan.md +34 -5
- package/scaffold/en/templates/adr-template.md +8 -4
- package/scaffold/en/templates/idea-onepager.md +44 -2
- package/scaffold/pt-br/commands/dw-adr.md +49 -11
- package/scaffold/pt-br/commands/dw-analyze-project.md +5 -0
- package/scaffold/pt-br/commands/dw-brainstorm.md +105 -32
- package/scaffold/pt-br/commands/dw-claude-run.md +8 -5
- package/scaffold/pt-br/commands/dw-help.md +3 -1
- package/scaffold/pt-br/commands/dw-open-design.md +323 -0
- package/scaffold/pt-br/commands/dw-plan.md +34 -5
- package/scaffold/pt-br/templates/adr-template.md +8 -4
- package/scaffold/pt-br/templates/idea-onepager.md +44 -2
- package/scaffold/scripts/open-design/capture-current.mjs +170 -0
- package/scaffold/scripts/open-design/gate-prototype.mjs +223 -0
- package/scaffold/skill-registry.json +25 -1
- package/scaffold/skills/dw-cli-run/SKILL.md +10 -8
- package/scaffold/skills/dw-domain-modeling/SKILL.md +84 -0
- package/scaffold/skills/dw-domain-modeling/references/adr-policy.md +48 -0
- package/scaffold/skills/dw-domain-modeling/references/glossary-format.md +66 -0
- package/scaffold/skills/dw-grilling/SKILL.md +98 -0
- package/scaffold/skills/dw-grilling/references/decision-tree.md +56 -0
- package/scaffold/skills/dw-grilling/references/interview-loop.md +52 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Interview loop — the per-turn contract
|
|
2
|
+
|
|
3
|
+
The unit of a grill is **one turn = one unresolved decision**. This file specifies the exact shape of a turn and
|
|
4
|
+
the fact-vs-decision discipline that keeps the interview honest.
|
|
5
|
+
|
|
6
|
+
## Question template
|
|
7
|
+
|
|
8
|
+
Every question is presented in this order. Skipping any part means the question is not ready to ask.
|
|
9
|
+
|
|
10
|
+
1. **Evidence (when available).** The facts you discovered from the repo/rules/intel/docs that bound this
|
|
11
|
+
decision, each with its source: `` src/orders/state.ts:42 defines OrderStatus = pending | paid | shipped ``.
|
|
12
|
+
If there is no evidence yet, discover it first — do not open with an unbounded question.
|
|
13
|
+
2. **The decision.** State the single choice on the table in one sentence.
|
|
14
|
+
3. **Recommended answer.** Your pick. Not "it depends" — commit to a default and let the user overrule it.
|
|
15
|
+
4. **Rationale.** One line on why the recommendation wins in *this* project's context.
|
|
16
|
+
5. **Alternative + trade-off.** At least one real alternative and what it costs — so the user is choosing, not
|
|
17
|
+
rubber-stamping. A recommendation with no stated alternative hides the trade-off.
|
|
18
|
+
|
|
19
|
+
Then **stop and wait.** Do not ask the next decision, do not preview the rest of the tree, do not answer your own
|
|
20
|
+
question. Integrate the reply, then move to the next node.
|
|
21
|
+
|
|
22
|
+
## Fact vs decision
|
|
23
|
+
|
|
24
|
+
The single most important discrimination in a grill:
|
|
25
|
+
|
|
26
|
+
- **Fact** — has one correct answer discoverable from the codebase, rules, intel, migrations, config, or
|
|
27
|
+
authoritative docs. *Look it up. Never ask.* Asking a fact wastes the user's turn and signals you did not read.
|
|
28
|
+
Example: "does the API already return `order_id` or `orderId`?" → grep, don't ask.
|
|
29
|
+
- **Decision** — has no single correct answer; it is a choice among viable options with a trade-off. *This is
|
|
30
|
+
what you ask*, one at a time, always with a recommendation. Example: "should a partially-refunded order be a
|
|
31
|
+
distinct state or a flag on `refunded`?"
|
|
32
|
+
|
|
33
|
+
When a "fact" turns out to be contested (the code says one thing, the user says another), that contradiction
|
|
34
|
+
itself becomes a decision — surface it: *"You said the API returns `OrderId`, but `src/api/orders.ts:42` returns
|
|
35
|
+
`{ order_id, status }`. Which is canonical?"*
|
|
36
|
+
|
|
37
|
+
## Recommendation discipline
|
|
38
|
+
|
|
39
|
+
- Recommend from evidence, not taste. Tie the pick to a rule, a code pattern, a constraint, or a prior decision.
|
|
40
|
+
- Make the recommendation falsifiable: state the one condition that would flip it.
|
|
41
|
+
- If you genuinely cannot recommend (truly balanced, user-values-dependent), say so explicitly and present the
|
|
42
|
+
two options with their trade-offs — but this should be rare. Defaulting to "no recommendation" is the failure
|
|
43
|
+
mode this protocol exists to prevent.
|
|
44
|
+
|
|
45
|
+
## Anti-patterns
|
|
46
|
+
|
|
47
|
+
- **Batching.** Five questions in one message. The reviewer skims and half go unanswered.
|
|
48
|
+
- **Interrogating facts.** Asking what the repo already states — reads as not having done the homework.
|
|
49
|
+
- **Empty questions.** "What should we do about caching?" with no recommendation and no alternative.
|
|
50
|
+
- **Leading past the answer.** Recommending, then implementing the recommendation before the user replies.
|
|
51
|
+
- **Vague acceptance.** Taking "sure, sounds good" to a bundle of decisions as alignment. One decision, one
|
|
52
|
+
explicit answer.
|