@geekyants/think-before 0.3.0 → 0.4.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/README.md CHANGED
@@ -38,15 +38,15 @@ think-before # the installed command is just `think-be
38
38
 
39
39
  | Mode | What it's for |
40
40
  | --- | --- |
41
- | `quick` *(default)* | The "I'm about to touch the big app" moment. ~16 sharp questions about blast radius, data, contracts, your safety net, and timing. |
42
- | `full` | A team-level pre-development discovery sweep: problem, users, scope, risks, plus role sections for designers, engineers, and developers. |
41
+ | `quick` *(default)* | The "I'm about to touch the big app" moment. Blast radius, data, contracts, your safety net, and timing. |
42
+ | `full` | A team-level pre-development discovery sweep: problem, users, scope, risks, plus the questions specific to your role. |
43
43
 
44
- In `full` mode you can focus on one role (shared sections are always included):
44
+ Both modes ask **at most 10 questions** — the ones most relevant to *you*. Every question is tagged with the roles it applies to and a priority; pick a role and you get your fundamentals plus your own specialty, never a wall of questions meant for someone else:
45
45
 
46
46
  ```bash
47
- think-before full --role designer
48
- think-before full --role engineer
49
- think-before full --role developer
47
+ think-before --role designer # quick check, design-focused
48
+ think-before full --role engineer # discovery, architecture-focused
49
+ think-before full --role developer # discovery, implementation-focused
50
50
  ```
51
51
 
52
52
  ## Smart, stack-aware questions
@@ -72,7 +72,7 @@ Skip the scan anytime with `--no-detect`.
72
72
 
73
73
  ## Your role & saved config
74
74
 
75
- The first time you run it in a project, it asks **what your role is** (designer / engineer / developer) and tailors the stack questions to you. Your answer — plus the detected stack — is remembered per project in:
75
+ The first time you run it in a project, it asks **what your role is** (designer / engineer / developer) and tailors the whole question set to you. Your answer — plus the detected stack — is remembered per project in:
76
76
 
77
77
  ```
78
78
  ~/.config/think-before/config.json # honors $XDG_CONFIG_HOME
@@ -93,7 +93,7 @@ By default, in an interactive terminal `think-before` takes over the screen like
93
93
  ║ think-before · quick ║
94
94
  ╠══════════════════════════════════════════════════╣
95
95
  ║ ║
96
- ║ Question 5 / 15 · Blast radius ║
96
+ ║ Question 5 / 10 · Blast radius ║
97
97
  ║ ║
98
98
  ║ Could this change behavior in flows you are NOT ║
99
99
  ║ going to manually test? ║
@@ -104,7 +104,7 @@ By default, in an interactive terminal `think-before` takes over the screen like
104
104
  ║ ‹ Yes › ‹ No › ‹ Skip › ║
105
105
  ║ ║
106
106
  ╚══════════════════════════════════════════════════╝
107
- y yes n no s skip ? why q quit [███░░░░░░░] 5/15
107
+ y yes n no s skip ? why q quit [█████░░░░░] 5/10
108
108
  ```
109
109
 
110
110
  It uses the terminal's alternate screen buffer (like `vim` or `less`), so when you're done — or quit with `q`/`Ctrl-C` — your terminal is restored exactly as it was, and the summary + report prompt print into your normal scrollback.
@@ -151,14 +151,15 @@ The report is plain Markdown — drop it into a PR description, a ticket, or you
151
151
 
152
152
  ```ts
153
153
  import {
154
- quick, full, filterSections, runSession, buildMarkdown,
154
+ quick, full, filterSections, selectSections, runSession, buildMarkdown,
155
155
  detectProject, stackSection,
156
156
  } from "@geekyants/think-before";
157
157
 
158
158
  const detection = detectProject(process.cwd()); // { kind: "fullstack", frameworks: [...] }
159
159
  const extra = stackSection(detection, "engineer");
160
160
 
161
- const sections = [...filterSections(full, "engineer"), ...(extra ? [extra] : [])];
161
+ const all = [...filterSections(full, "engineer"), ...(extra ? [extra] : [])];
162
+ const sections = selectSections(all, "engineer"); // role-tailored, capped at 10
162
163
  const result = await runSession(full, sections);
163
164
  const markdown = buildMarkdown(full, result, new Date());
164
165
  ```
@@ -172,7 +173,7 @@ npm run build # compile to dist/
172
173
  npm start # run the built CLI
173
174
  ```
174
175
 
175
- Want to add or tweak questions? They live in [`src/checklists.ts`](src/checklists.ts) — each question declares which answer (`yes`/`no`) is the risky one, plus an optional `why`. PRs welcome.
176
+ Want to add or tweak questions? They live in [`src/checklists.ts`](src/checklists.ts) — each question declares which answer (`yes`/`no`) is the risky one, an optional `why`, the `roles` it applies to, and a `priority` (higher = asked first when the 10-question cap kicks in). PRs welcome.
176
177
 
177
178
  ## License
178
179
 
@@ -1,19 +1,36 @@
1
1
  import type { Checklist } from "./types.js";
2
+ /**
3
+ * Roles & priority
4
+ * ----------------
5
+ * Every question carries the `roles` it's relevant to (omit = everyone) and a
6
+ * `priority` (higher = asked first). Sections are now purely thematic grouping
7
+ * (`roles: ["shared"]`); the real tailoring happens per-question. A session
8
+ * keeps only the questions matching the user's role and, when more than the cap
9
+ * (see `MAX_QUESTIONS`) are eligible, the highest-priority ones. The aim: every
10
+ * role gets ~5 shared fundamentals + ~5 of their own specialty, never a wall of
11
+ * questions that don't apply to them.
12
+ *
13
+ * Priority bands (rough guide):
14
+ * 90-95 the question you should never skip (problem, scope, blast radius)
15
+ * 80-89 high-severity / role-defining
16
+ * 70-79 important safety nets
17
+ * 50-69 good to consider
18
+ * <50 situational
19
+ */
2
20
  /**
3
21
  * QUICK — the blast-radius check.
4
22
  *
5
- * For the "I'm about to make a small change to a big app" moment. Fast,
6
- * sharp, and focused on the side-effects people overlook. Most questions
7
- * are phrased so that the *risky* answer surfaces something to double-check
8
- * before you touch the code.
23
+ * For the "I'm about to make a small change to a big app" moment. Fast, sharp,
24
+ * and focused on the side-effects people overlook.
9
25
  */
10
26
  export declare const quick: Checklist;
11
27
  /**
12
28
  * FULL — the pre-development discovery checklist.
13
29
  *
14
- * The team-level questions to ask *before* starting any workflow, reframed
15
- * as yes/no so you can sweep them quickly. A "no" here usually means a gap
16
- * worth closing, not a blocker log it as an open question.
30
+ * The questions to ask *before* starting any work, reframed as yes/no. A "no"
31
+ * usually means a gap worth closing, not a blocker log it as an open question.
32
+ * Tailored per role: shared fundamentals plus the discovery questions that role
33
+ * most needs to answer.
17
34
  */
18
35
  export declare const full: Checklist;
19
36
  /** All built-in checklists, keyed by id. */
@@ -1 +1 @@
1
- {"version":3,"file":"checklists.d.ts","sourceRoot":"","sources":["../src/checklists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,SA0InB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,SAiJlB,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGhD,CAAC"}
1
+ {"version":3,"file":"checklists.d.ts","sourceRoot":"","sources":["../src/checklists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,SA2MnB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,SAiJlB,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGhD,CAAC"}
@@ -1,10 +1,26 @@
1
+ /**
2
+ * Roles & priority
3
+ * ----------------
4
+ * Every question carries the `roles` it's relevant to (omit = everyone) and a
5
+ * `priority` (higher = asked first). Sections are now purely thematic grouping
6
+ * (`roles: ["shared"]`); the real tailoring happens per-question. A session
7
+ * keeps only the questions matching the user's role and, when more than the cap
8
+ * (see `MAX_QUESTIONS`) are eligible, the highest-priority ones. The aim: every
9
+ * role gets ~5 shared fundamentals + ~5 of their own specialty, never a wall of
10
+ * questions that don't apply to them.
11
+ *
12
+ * Priority bands (rough guide):
13
+ * 90-95 the question you should never skip (problem, scope, blast radius)
14
+ * 80-89 high-severity / role-defining
15
+ * 70-79 important safety nets
16
+ * 50-69 good to consider
17
+ * <50 situational
18
+ */
1
19
  /**
2
20
  * QUICK — the blast-radius check.
3
21
  *
4
- * For the "I'm about to make a small change to a big app" moment. Fast,
5
- * sharp, and focused on the side-effects people overlook. Most questions
6
- * are phrased so that the *risky* answer surfaces something to double-check
7
- * before you touch the code.
22
+ * For the "I'm about to make a small change to a big app" moment. Fast, sharp,
23
+ * and focused on the side-effects people overlook.
8
24
  */
9
25
  export const quick = {
10
26
  id: "quick",
@@ -16,18 +32,20 @@ export const quick = {
16
32
  title: "Understand the change",
17
33
  roles: ["shared"],
18
34
  questions: [
19
- {
20
- id: "understand-current",
21
- text: "Do you understand what this code does today — not just the line you're editing?",
22
- risky: "no",
23
- why: "Editing code you don't fully understand is the #1 source of surprise side-effects.",
24
- },
25
35
  {
26
36
  id: "one-sentence",
27
37
  text: "Can you describe the change and its intended effect in one sentence?",
28
38
  risky: "no",
39
+ priority: 92,
29
40
  why: "If you can't state it simply, the scope isn't clear yet — and unclear scope hides risk.",
30
41
  },
42
+ {
43
+ id: "understand-current",
44
+ text: "Do you understand what this code/area does today — not just the line you're editing?",
45
+ risky: "no",
46
+ priority: 90,
47
+ why: "Editing something you don't fully understand is the #1 source of surprise side-effects.",
48
+ },
31
49
  ],
32
50
  },
33
51
  {
@@ -39,22 +57,67 @@ export const quick = {
39
57
  id: "shared-code",
40
58
  text: "Is this in shared/global code (a util, base component, hook, config, middleware) used in many places?",
41
59
  risky: "yes",
60
+ roles: ["engineer", "developer"],
61
+ priority: 88,
42
62
  why: "Shared code multiplies the blast radius — one edit ripples everywhere it's imported.",
43
63
  },
44
64
  {
45
65
  id: "found-callers",
46
66
  text: "Have you searched for every caller / usage of what you're changing?",
47
67
  risky: "no",
68
+ roles: ["engineer", "developer"],
69
+ priority: 82,
48
70
  why: "Unknown callers are unknown breakage. Grep for usages before you edit, not after.",
49
71
  },
50
72
  {
51
73
  id: "untested-flows",
52
74
  text: "Could this change behavior in flows you are NOT going to manually test?",
53
75
  risky: "yes",
76
+ roles: ["engineer", "developer"],
77
+ priority: 76,
54
78
  why: "The side-effects you don't test for are exactly the ones that reach production.",
55
79
  },
56
80
  ],
57
81
  },
82
+ {
83
+ id: "design-impact",
84
+ title: "Design impact",
85
+ roles: ["shared"],
86
+ questions: [
87
+ {
88
+ id: "ds-shared-ui",
89
+ text: "Is this a change to a shared component, pattern, or design token reused across many screens?",
90
+ risky: "yes",
91
+ roles: ["designer"],
92
+ priority: 86,
93
+ why: "One tweak to a shared UI primitive shows up everywhere it's used.",
94
+ },
95
+ {
96
+ id: "ds-states",
97
+ text: "Have you covered the states this touches — empty, loading, error, long text, large lists?",
98
+ risky: "no",
99
+ roles: ["designer"],
100
+ priority: 82,
101
+ why: "The states you didn't draw are the ones that ship broken.",
102
+ },
103
+ {
104
+ id: "ds-a11y",
105
+ text: "Will contrast, focus order, keyboard use, and screen-reader output still work after this?",
106
+ risky: "no",
107
+ roles: ["designer"],
108
+ priority: 78,
109
+ why: "Accessibility regressions are invisible until someone who relies on them hits them.",
110
+ },
111
+ {
112
+ id: "ds-consistency",
113
+ text: "Does this stay consistent with the existing design system, rather than quietly forking it?",
114
+ risky: "no",
115
+ roles: ["designer"],
116
+ priority: 74,
117
+ why: "A one-off divergence becomes the pattern everyone copies next.",
118
+ },
119
+ ],
120
+ },
58
121
  {
59
122
  id: "data-contracts",
60
123
  title: "Data & contracts",
@@ -64,18 +127,24 @@ export const quick = {
64
127
  id: "data-touch",
65
128
  text: "Does it touch persisted data — schema, migrations, stored formats, or cached values?",
66
129
  risky: "yes",
130
+ roles: ["engineer", "developer"],
131
+ priority: 86,
67
132
  why: "Data changes are the hardest to roll back; old data outlives your deploy.",
68
133
  },
69
134
  {
70
135
  id: "public-contract",
71
136
  text: "Does it change a public API, response shape, event, or contract others depend on?",
72
137
  risky: "yes",
138
+ roles: ["engineer", "developer"],
139
+ priority: 84,
73
140
  why: "Consumers you can't see — other teams, mobile apps, integrations — may break silently.",
74
141
  },
75
142
  {
76
143
  id: "backward-compat",
77
144
  text: "Have you accounted for backward compatibility and in-flight / old-shaped data?",
78
145
  risky: "no",
146
+ roles: ["engineer", "developer"],
147
+ priority: 72,
79
148
  why: "Queues, caches, and old clients may still hold the previous shape after you deploy.",
80
149
  },
81
150
  ],
@@ -89,18 +158,24 @@ export const quick = {
89
158
  id: "tests-cover",
90
159
  text: "Do existing automated tests cover this path, and do they still pass?",
91
160
  risky: "no",
161
+ roles: ["engineer", "developer"],
162
+ priority: 80,
92
163
  why: "No test means no safety net. Add or run one before the change, not after the incident.",
93
164
  },
94
165
  {
95
166
  id: "rollback",
96
167
  text: "Is there a fast way to undo this (revert, feature flag, kill switch)?",
97
168
  risky: "no",
169
+ roles: ["engineer", "developer"],
170
+ priority: 78,
98
171
  why: "If you can't roll back quickly, the cost of being wrong is much higher.",
99
172
  },
100
173
  {
101
174
  id: "observability",
102
175
  text: "If this breaks in production, will you find out (logs, metrics, alerts)?",
103
176
  risky: "no",
177
+ roles: ["engineer", "developer"],
178
+ priority: 76,
104
179
  why: "Silent failures are the worst kind — you learn about them from angry users.",
105
180
  },
106
181
  ],
@@ -114,12 +189,16 @@ export const quick = {
114
189
  id: "security",
115
190
  text: "Does it touch auth, permissions, security, or anything handling PII / secrets?",
116
191
  risky: "yes",
192
+ roles: ["engineer", "developer"],
193
+ priority: 84,
117
194
  why: "These failures are high-severity and often invisible until they're exploited.",
118
195
  },
119
196
  {
120
197
  id: "performance",
121
198
  text: "Could it affect performance at scale (N+1, large lists, hot path, extra network calls)?",
122
199
  risky: "yes",
200
+ roles: ["engineer", "developer"],
201
+ priority: 74,
123
202
  why: "What's fine with 10 rows can melt down at 10 million. Side-effects scale too.",
124
203
  },
125
204
  ],
@@ -129,18 +208,20 @@ export const quick = {
129
208
  title: "Timing & gut check",
130
209
  roles: ["shared"],
131
210
  questions: [
132
- {
133
- id: "timing",
134
- text: "Are you shipping at a risky time (Friday, right before a release, peak traffic, on-call gap)?",
135
- risky: "yes",
136
- why: "Bad timing turns a small bug into a long incident with nobody around to fix it.",
137
- },
138
211
  {
139
212
  id: "gut",
140
213
  text: "Be honest — do you actually understand the side-effects of this change?",
141
214
  risky: "no",
215
+ priority: 60,
142
216
  why: "Your gut is data. If it says 'not sure', pause and dig before you commit.",
143
217
  },
218
+ {
219
+ id: "timing",
220
+ text: "Are you shipping at a risky time (Friday, right before a release, peak traffic, on-call gap)?",
221
+ risky: "yes",
222
+ priority: 55,
223
+ why: "Bad timing turns a small bug into a long incident with nobody around to fix it.",
224
+ },
144
225
  ],
145
226
  },
146
227
  ],
@@ -148,9 +229,10 @@ export const quick = {
148
229
  /**
149
230
  * FULL — the pre-development discovery checklist.
150
231
  *
151
- * The team-level questions to ask *before* starting any workflow, reframed
152
- * as yes/no so you can sweep them quickly. A "no" here usually means a gap
153
- * worth closing, not a blocker log it as an open question.
232
+ * The questions to ask *before* starting any work, reframed as yes/no. A "no"
233
+ * usually means a gap worth closing, not a blocker log it as an open question.
234
+ * Tailored per role: shared fundamentals plus the discovery questions that role
235
+ * most needs to answer.
154
236
  */
155
237
  export const full = {
156
238
  id: "full",
@@ -162,12 +244,12 @@ export const full = {
162
244
  title: "1. Problem & Goals",
163
245
  roles: ["shared"],
164
246
  questions: [
165
- { id: "problem-statement", text: "Can you state the problem you're solving in one sentence?", risky: "no" },
166
- { id: "why-now", text: "Do you know why now and what happens if you don't build it?", risky: "no" },
167
- { id: "success-metric", text: "Is success defined with a metric, a target, and a timeframe?", risky: "no" },
168
- { id: "change-type", text: "Are you clear whether this is a new capability, an improvement, or a fix?", risky: "no", why: "It changes the risk profile and how much process it needs." },
169
- { id: "decision-maker", text: "Is the final decision-maker on scope identified?", risky: "no" },
170
- { id: "attempted-before", text: "Do you know whether this was attempted before, and what happened?", risky: "no" },
247
+ { id: "problem-statement", text: "Can you state the problem you're solving in one sentence?", risky: "no", priority: 95 },
248
+ { id: "success-metric", text: "Is success defined with a metric, a target, and a timeframe?", risky: "no", priority: 90 },
249
+ { id: "why-now", text: "Do you know why now and what happens if you don't build it?", risky: "no", priority: 66 },
250
+ { id: "decision-maker", text: "Is the final decision-maker on scope identified?", risky: "no", priority: 64 },
251
+ { id: "change-type", text: "Are you clear whether this is a new capability, an improvement, or a fix?", risky: "no", priority: 50, why: "It changes the risk profile and how much process it needs." },
252
+ { id: "attempted-before", text: "Do you know whether this was attempted before, and what happened?", risky: "no", priority: 40 },
171
253
  ],
172
254
  },
173
255
  {
@@ -175,12 +257,12 @@ export const full = {
175
257
  title: "2. Users & Stakeholders",
176
258
  roles: ["shared"],
177
259
  questions: [
178
- { id: "primary-users", text: "Do you know who the primary (and secondary) users are?", risky: "no" },
179
- { id: "job-to-be-done", text: "Is the user's job-to-be-done clearly understood?", risky: "no" },
180
- { id: "current-workflow", text: "Do you understand the current workflow without this feature?", risky: "no" },
181
- { id: "signoff-stages", text: "Are the stakeholders who must review or sign off identified, with stages?", risky: "no" },
182
- { id: "internal-users", text: "Have you considered internal users (support, ops, admins) and their needs?", risky: "no" },
183
- { id: "discovery", text: "Is there a plan for how users will find out this exists?", risky: "no" },
260
+ { id: "primary-users", text: "Do you know who the primary (and secondary) users are?", risky: "no", priority: 68 },
261
+ { id: "job-to-be-done", text: "Is the user's job-to-be-done clearly understood?", risky: "no", priority: 62 },
262
+ { id: "current-workflow", text: "Do you understand the current workflow without this feature?", risky: "no", priority: 55 },
263
+ { id: "signoff-stages", text: "Are the stakeholders who must review or sign off identified, with stages?", risky: "no", priority: 48 },
264
+ { id: "internal-users", text: "Have you considered internal users (support, ops, admins) and their needs?", risky: "no", priority: 45 },
265
+ { id: "discovery", text: "Is there a plan for how users will find out this exists?", risky: "no", priority: 42 },
184
266
  ],
185
267
  },
186
268
  {
@@ -188,12 +270,12 @@ export const full = {
188
270
  title: "3. Scope & Requirements",
189
271
  roles: ["shared"],
190
272
  questions: [
191
- { id: "in-scope", text: "Is what's IN scope for this iteration written down?", risky: "no" },
192
- { id: "out-of-scope", text: "Is what's OUT of scope written down?", risky: "no", why: "Explicit non-goals are what actually prevent scope creep." },
193
- { id: "mvp-cut", text: "Is the MVP cut the minimum that delivers value — defined?", risky: "no" },
194
- { id: "acceptance-criteria", text: "Are the acceptance criteria for 'done' defined?", risky: "no" },
195
- { id: "requirements-stability", text: "Do you know whether requirements are fixed or expected to evolve?", risky: "no" },
196
- { id: "unvalidated-assumptions", text: "Have you listed the assumptions you're making but haven't validated?", risky: "no" },
273
+ { id: "out-of-scope", text: "Is what's OUT of scope written down?", risky: "no", priority: 84, why: "Explicit non-goals are what actually prevent scope creep." },
274
+ { id: "mvp-cut", text: "Is the MVP cut the minimum that delivers value — defined?", risky: "no", priority: 78 },
275
+ { id: "acceptance-criteria", text: "Are the acceptance criteria for 'done' defined?", risky: "no", priority: 76 },
276
+ { id: "unvalidated-assumptions", text: "Have you listed the assumptions you're making but haven't validated?", risky: "no", priority: 72 },
277
+ { id: "in-scope", text: "Is what's IN scope for this iteration written down?", risky: "no", priority: 70 },
278
+ { id: "requirements-stability", text: "Do you know whether requirements are fixed or expected to evolve?", risky: "no", priority: 50 },
197
279
  ],
198
280
  },
199
281
  {
@@ -201,12 +283,12 @@ export const full = {
201
283
  title: "4. Constraints & Logistics",
202
284
  roles: ["shared"],
203
285
  questions: [
204
- { id: "deadline", text: "Is the deadline known, and whether it's hard or soft (and why)?", risky: "no" },
205
- { id: "capacity", text: "Is the available budget / capacity (people, hours) known?", risky: "no" },
206
- { id: "ownership", text: "Is long-term ownership after launch assigned?", risky: "no" },
207
- { id: "dependencies", text: "Are dependencies on other teams, vendors, or releases mapped?", risky: "no" },
208
- { id: "legal-deadlines", text: "Are any legal / contractual / regulatory deadlines identified?", risky: "no" },
209
- { id: "fallback-plan", text: "Is there a rollback / fallback plan if it goes wrong?", risky: "no" },
286
+ { id: "fallback-plan", text: "Is there a rollback / fallback plan if it goes wrong?", risky: "no", priority: 70 },
287
+ { id: "dependencies", text: "Are dependencies on other teams, vendors, or releases mapped?", risky: "no", priority: 64 },
288
+ { id: "deadline", text: "Is the deadline known, and whether it's hard or soft (and why)?", risky: "no", priority: 60 },
289
+ { id: "capacity", text: "Is the available budget / capacity (people, hours) known?", risky: "no", priority: 52 },
290
+ { id: "ownership", text: "Is long-term ownership after launch assigned?", risky: "no", priority: 50 },
291
+ { id: "legal-deadlines", text: "Are any legal / contractual / regulatory deadlines identified?", risky: "no", priority: 46 },
210
292
  ],
211
293
  },
212
294
  {
@@ -214,62 +296,62 @@ export const full = {
214
296
  title: "5. Risks & Unknowns",
215
297
  roles: ["shared"],
216
298
  questions: [
217
- { id: "biggest-risk", text: "Do you know the single biggest risk to this project?", risky: "no" },
218
- { id: "riskiest-assumption", text: "Have you identified the riskiest assumption — and can you test it cheaply first?", risky: "no" },
219
- { id: "known-unknowns", text: "Are the known unknowns to research before committing listed?", risky: "no" },
220
- { id: "three-x", text: "Do you know what could make this take 3x longer than estimated?", risky: "no" },
221
- { id: "spof", text: "Have you checked for single points of failure (one person, one system, one vendor)?", risky: "no" },
299
+ { id: "biggest-risk", text: "Do you know the single biggest risk to this project?", risky: "no", priority: 82 },
300
+ { id: "riskiest-assumption", text: "Have you identified the riskiest assumption — and can you test it cheaply first?", risky: "no", priority: 79 },
301
+ { id: "known-unknowns", text: "Are the known unknowns to research before committing listed?", risky: "no", priority: 58 },
302
+ { id: "three-x", text: "Do you know what could make this take 3x longer than estimated?", risky: "no", priority: 56 },
303
+ { id: "spof", text: "Have you checked for single points of failure (one person, one system, one vendor)?", risky: "no", priority: 54 },
222
304
  ],
223
305
  },
224
306
  {
225
307
  id: "designers",
226
308
  title: "6. For Designers",
227
- roles: ["designer"],
309
+ roles: ["shared"],
228
310
  questions: [
229
- { id: "real-research", text: "Do you have real user research (not guesses) for who you're designing for?", risky: "no" },
230
- { id: "existing-patterns", text: "Have you identified the existing patterns, components, or design-system rules that apply?", risky: "no" },
231
- { id: "key-flows", text: "Are the key user flows mapped, including error and empty states?", risky: "no" },
232
- { id: "a11y", text: "Do you know the accessibility standards to meet (e.g. WCAG AA: contrast, keyboard, screen readers, touch targets)?", risky: "no" },
233
- { id: "viewports", text: "Are the supported devices, breakpoints, and viewports defined?", risky: "no" },
234
- { id: "copy", text: "Is it clear what copy is needed, who writes it, and any localization?", risky: "no" },
235
- { id: "design-edge-cases", text: "Have you considered edge cases: long text, missing data, slow connections, large lists?", risky: "no" },
236
- { id: "validation", text: "Is there a plan to validate the design (usability test, prototype, A/B)?", risky: "no" },
237
- { id: "handoff", text: "Is the engineering handoff defined (tokens, specs, states, motion)?", risky: "no" },
238
- { id: "brand-legal", text: "Have you checked brand, legal, or compliance constraints on the UI?", risky: "no" },
311
+ { id: "real-research", text: "Do you have real user research (not guesses) for who you're designing for?", risky: "no", roles: ["designer"], priority: 89 },
312
+ { id: "key-flows", text: "Are the key user flows mapped, including error and empty states?", risky: "no", roles: ["designer"], priority: 87 },
313
+ { id: "a11y", text: "Do you know the accessibility standards to meet (WCAG AA: contrast, keyboard, screen readers, touch targets)?", risky: "no", roles: ["designer"], priority: 85 },
314
+ { id: "existing-patterns", text: "Have you identified the existing patterns, components, or design-system rules that apply?", risky: "no", roles: ["designer"], priority: 83 },
315
+ { id: "handoff", text: "Is the engineering handoff defined (tokens, specs, states, motion)?", risky: "no", roles: ["designer"], priority: 81 },
316
+ { id: "design-edge-cases", text: "Have you considered edge cases: long text, missing data, slow connections, large lists?", risky: "no", roles: ["designer"], priority: 79 },
317
+ { id: "viewports", text: "Are the supported devices, breakpoints, and viewports defined?", risky: "no", roles: ["designer"], priority: 75 },
318
+ { id: "validation", text: "Is there a plan to validate the design (usability test, prototype, A/B)?", risky: "no", roles: ["designer"], priority: 73 },
319
+ { id: "copy", text: "Is it clear what copy is needed, who writes it, and any localization?", risky: "no", roles: ["designer"], priority: 69 },
320
+ { id: "brand-legal", text: "Have you checked brand, legal, or compliance constraints on the UI?", risky: "no", roles: ["designer"], priority: 65 },
239
321
  ],
240
322
  },
241
323
  {
242
324
  id: "engineers",
243
325
  title: "7. For Engineers / Architects",
244
- roles: ["engineer"],
326
+ roles: ["shared"],
245
327
  questions: [
246
- { id: "nfrs", text: "Are the non-functional requirements (performance, scale, latency, uptime) defined?", risky: "no" },
247
- { id: "load", text: "Do you know the expected load at launch and at projected growth?", risky: "no" },
248
- { id: "data-ownership", text: "Is it clear what data you read/write, where it lives, and who owns it?", risky: "no" },
249
- { id: "external-apis", text: "Are external APIs/services, their rate limits, and SLAs identified?", risky: "no" },
250
- { id: "fits-architecture", text: "Do you know whether this fits the current architecture or needs a new pattern?", risky: "no" },
251
- { id: "security-reqs", text: "Are the security requirements (authn/authz, encryption, secrets, PII) defined?", risky: "no" },
252
- { id: "compliance", text: "Are the applicable privacy/compliance rules known (GDPR, CCPA, HIPAA, SOC 2, residency)?", risky: "no" },
253
- { id: "failure-handling", text: "Is there a plan for failures, retries, idempotency, and degraded states?", risky: "no" },
254
- { id: "observability-plan", text: "Is the observability plan (logging, metrics, tracing, alerts) defined?", risky: "no" },
255
- { id: "deploy-plan", text: "Is the deployment approach clear (CI/CD, feature flags, migrations, zero-downtime)?", risky: "no" },
328
+ { id: "nfrs", text: "Are the non-functional requirements (performance, scale, latency, uptime) defined?", risky: "no", roles: ["engineer"], priority: 89 },
329
+ { id: "fits-architecture", text: "Do you know whether this fits the current architecture or needs a new pattern?", risky: "no", roles: ["engineer"], priority: 87 },
330
+ { id: "security-reqs", text: "Are the security requirements (authn/authz, encryption, secrets, PII) defined?", risky: "no", roles: ["engineer", "developer"], priority: 85 },
331
+ { id: "data-ownership", text: "Is it clear what data you read/write, where it lives, and who owns it?", risky: "no", roles: ["engineer"], priority: 83 },
332
+ { id: "failure-handling", text: "Is there a plan for failures, retries, idempotency, and degraded states?", risky: "no", roles: ["engineer"], priority: 81 },
333
+ { id: "deploy-plan", text: "Is the deployment approach clear (CI/CD, feature flags, migrations, zero-downtime)?", risky: "no", roles: ["engineer"], priority: 77 },
334
+ { id: "observability-plan", text: "Is the observability plan (logging, metrics, tracing, alerts) defined?", risky: "no", roles: ["engineer"], priority: 75 },
335
+ { id: "external-apis", text: "Are external APIs/services, their rate limits, and SLAs identified?", risky: "no", roles: ["engineer"], priority: 73 },
336
+ { id: "load", text: "Do you know the expected load at launch and at projected growth?", risky: "no", roles: ["engineer"], priority: 70 },
337
+ { id: "compliance", text: "Are the applicable privacy/compliance rules known (GDPR, CCPA, HIPAA, SOC 2, residency)?", risky: "no", roles: ["engineer"], priority: 68 },
256
338
  ],
257
339
  },
258
340
  {
259
341
  id: "developers",
260
342
  title: "8. For Developers (Implementation)",
261
- roles: ["developer"],
343
+ roles: ["shared"],
262
344
  questions: [
263
- { id: "first-test", text: "Do you understand the acceptance criteria well enough to write the first test?", risky: "no" },
264
- { id: "small-pieces", text: "Can you break this into small, independently shippable pieces?", risky: "no" },
265
- { id: "code-location", text: "Do you know where the code lives and what conventions/standards apply?", risky: "no" },
266
- { id: "reuse", text: "Have you checked what already exists that you can reuse instead of rewriting?", risky: "no" },
267
- { id: "testing-strategy", text: "Is the testing strategy (unit, integration, e2e) and coverage target clear?", risky: "no" },
268
- { id: "run-locally", text: "Can you run this locally is the dev environment / test data ready?", risky: "no" },
269
- { id: "edge-inputs", text: "Do you know the edge cases and invalid inputs you must handle?", risky: "no" },
270
- { id: "migration", text: "Have you considered backward-compatibility and migration concerns?", risky: "no" },
271
- { id: "review-bar", text: "Is it clear how this will be reviewed and what 'ready to merge' means?", risky: "no" },
272
- { id: "docs", text: "Do you know what documentation you need to write (README, API docs, runbook)?", risky: "no" },
345
+ { id: "first-test", text: "Do you understand the acceptance criteria well enough to write the first test?", risky: "no", roles: ["developer"], priority: 89 },
346
+ { id: "code-location", text: "Do you know where the code lives and what conventions/standards apply?", risky: "no", roles: ["developer"], priority: 87 },
347
+ { id: "reuse", text: "Have you checked what already exists that you can reuse instead of rewriting?", risky: "no", roles: ["developer"], priority: 85 },
348
+ { id: "small-pieces", text: "Can you break this into small, independently shippable pieces?", risky: "no", roles: ["developer"], priority: 83 },
349
+ { id: "testing-strategy", text: "Is the testing strategy (unit, integration, e2e) and coverage target clear?", risky: "no", roles: ["developer"], priority: 81 },
350
+ { id: "edge-inputs", text: "Do you know the edge cases and invalid inputs you must handle?", risky: "no", roles: ["developer"], priority: 77 },
351
+ { id: "run-locally", text: "Can you run this locally is the dev environment / test data ready?", risky: "no", roles: ["developer"], priority: 75 },
352
+ { id: "migration", text: "Have you considered backward-compatibility and migration concerns?", risky: "no", roles: ["developer", "engineer"], priority: 73 },
353
+ { id: "review-bar", text: "Is it clear how this will be reviewed and what 'ready to merge' means?", risky: "no", roles: ["developer"], priority: 70 },
354
+ { id: "docs", text: "Do you know what documentation you need to write (README, API docs, runbook)?", risky: "no", roles: ["developer"], priority: 66 },
273
355
  ],
274
356
  },
275
357
  {
@@ -277,12 +359,12 @@ export const full = {
277
359
  title: "9. Quality & Launch Readiness",
278
360
  roles: ["shared"],
279
361
  questions: [
280
- { id: "release-checklist", text: "Is the release checklist what must be true before shipping — defined?", risky: "no" },
281
- { id: "prod-like-test", text: "Is there a plan to test in a production-like environment?", risky: "no" },
282
- { id: "monitoring-oncall", text: "Is the monitoring plan and the on-call owner after launch defined?", risky: "no" },
283
- { id: "fast-rollback", text: "Is there a fast rollback if something breaks?", risky: "no" },
284
- { id: "comms-plan", text: "Is the launch communication plan (internal + users) ready?", risky: "no" },
285
- { id: "goal-review", text: "Is there a plan and date to review whether this actually hit its goals?", risky: "no" },
362
+ { id: "fast-rollback", text: "Is there a fast rollback if something breaks?", risky: "no", priority: 72 },
363
+ { id: "monitoring-oncall", text: "Is the monitoring plan and the on-call owner after launch defined?", risky: "no", priority: 56 },
364
+ { id: "release-checklist", text: "Is the release checklist what must be true before shipping — defined?", risky: "no", priority: 58 },
365
+ { id: "prod-like-test", text: "Is there a plan to test in a production-like environment?", risky: "no", priority: 52 },
366
+ { id: "goal-review", text: "Is there a plan and date to review whether this actually hit its goals?", risky: "no", priority: 50 },
367
+ { id: "comms-plan", text: "Is the launch communication plan (internal + users) ready?", risky: "no", priority: 44 },
286
368
  ],
287
369
  },
288
370
  {
@@ -290,10 +372,10 @@ export const full = {
290
372
  title: "10. Final Gut Check",
291
373
  roles: ["shared"],
292
374
  questions: [
293
- { id: "half-value", text: "If you shipped only half of this, do you know which half delivers the most value?", risky: "no" },
294
- { id: "alignment", text: "Is everyone aligned on scope, owner, and definition of done?", risky: "no" },
295
- { id: "regret", text: "Do you know the one thing you're most likely to regret skipping?", risky: "no" },
296
- { id: "real-problem", text: "Are you solving the real problem, not just the requested solution?", risky: "no" },
375
+ { id: "real-problem", text: "Are you solving the real problem, not just the requested solution?", risky: "no", priority: 80 },
376
+ { id: "alignment", text: "Is everyone aligned on scope, owner, and definition of done?", risky: "no", priority: 64 },
377
+ { id: "half-value", text: "If you shipped only half of this, do you know which half delivers the most value?", risky: "no", priority: 60 },
378
+ { id: "regret", text: "Do you know the one thing you're most likely to regret skipping?", risky: "no", priority: 48 },
297
379
  ],
298
380
  },
299
381
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"checklists.js","sourceRoot":"","sources":["../src/checklists.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAc;IAC9B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,4BAA4B;IACnC,KAAK,EAAE,sFAAsF;IAC7F,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,oBAAoB;oBACxB,IAAI,EAAE,iFAAiF;oBACvF,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,oFAAoF;iBAC1F;gBACD;oBACE,EAAE,EAAE,cAAc;oBAClB,IAAI,EAAE,sEAAsE;oBAC5E,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,yFAAyF;iBAC/F;aACF;SACF;QACD;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,uGAAuG;oBAC7G,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,sFAAsF;iBAC5F;gBACD;oBACE,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,qEAAqE;oBAC3E,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,mFAAmF;iBACzF;gBACD;oBACE,EAAE,EAAE,gBAAgB;oBACpB,IAAI,EAAE,yEAAyE;oBAC/E,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,iFAAiF;iBACvF;aACF;SACF;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,kBAAkB;YACzB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,sFAAsF;oBAC5F,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,2EAA2E;iBACjF;gBACD;oBACE,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,mFAAmF;oBACzF,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,wFAAwF;iBAC9F;gBACD;oBACE,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,gFAAgF;oBACtF,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,qFAAqF;iBAC3F;aACF;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,sEAAsE;oBAC5E,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,wFAAwF;iBAC9F;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,uEAAuE;oBAC7E,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,yEAAyE;iBAC/E;gBACD;oBACE,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,0EAA0E;oBAChF,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,6EAA6E;iBACnF;aACF;SACF;QACD;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,oBAAoB;YAC3B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,gFAAgF;oBACtF,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,+EAA+E;iBACrF;gBACD;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,yFAAyF;oBAC/F,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,+EAA+E;iBACrF;aACF;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,oBAAoB;YAC3B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,+FAA+F;oBACrG,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,iFAAiF;iBACvF;gBACD;oBACE,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,yEAAyE;oBAC/E,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,2EAA2E;iBACjF;aACF;SACF;KACF;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAc;IAC7B,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,kCAAkC;IACzC,KAAK,EAAE,oGAAoG;IAC3G,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,oBAAoB;YAC3B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,2DAA2D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3G,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,+DAA+D,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrG,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3G,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,2EAA2E,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,4DAA4D,EAAE;gBACxL,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC/F,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,mEAAmE,EAAE,KAAK,EAAE,IAAI,EAAE;aACnH;SACF;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,wDAAwD,EAAE,KAAK,EAAE,IAAI,EAAE;gBACpG,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC/F,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC7G,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,2EAA2E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxH,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,4EAA4E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzH,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,0DAA0D,EAAE,KAAK,EAAE,IAAI,EAAE;aACnG;SACF;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,qDAAqD,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5F,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,2DAA2D,EAAE;gBACnJ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,6DAA6D,EAAE,KAAK,EAAE,IAAI,EAAE;gBACnG,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,iDAAiD,EAAE,KAAK,EAAE,IAAI,EAAE;gBACnG,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,mEAAmE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxH,EAAE,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,sEAAsE,EAAE,KAAK,EAAE,IAAI,EAAE;aAC7H;SACF;QACD;YACE,EAAE,EAAE,uBAAuB;YAC3B,KAAK,EAAE,4BAA4B;YACnC,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,iEAAiE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxG,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,2DAA2D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAClG,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,+CAA+C,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvF,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,+DAA+D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC1G,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gEAAgE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC9G,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,uDAAuD,EAAE,KAAK,EAAE,IAAI,EAAE;aACpG;SACF;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,sDAAsD,EAAE,KAAK,EAAE,IAAI,EAAE;gBACjG,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,kFAAkF,EAAE,KAAK,EAAE,IAAI,EAAE;gBACpI,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3G,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,iEAAiE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qFAAqF,EAAE,KAAK,EAAE,IAAI,EAAE;aACzH;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,kBAAkB;YACzB,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,4EAA4E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxH,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,2FAA2F,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3I,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,kEAAkE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC1G,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oHAAoH,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvJ,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gEAAgE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uEAAuE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC1G,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,yFAAyF,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,0EAA0E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACnH,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,qEAAqE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3G,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,qEAAqE,EAAE,KAAK,EAAE,IAAI,EAAE;aAChH;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,+BAA+B;YACtC,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oFAAoF,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvH,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kEAAkE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrG,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrH,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,qEAAqE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACjH,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,gFAAgF,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,gFAAgF,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5H,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,0FAA0F,EAAE,KAAK,EAAE,IAAI,EAAE;gBACnI,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,0EAA0E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzH,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzH,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,qFAAqF,EAAE,KAAK,EAAE,IAAI,EAAE;aAChI;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,oCAAoC;YAC3C,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gFAAgF,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzH,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,gEAAgE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3G,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACpH,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,+EAA+E,EAAE,KAAK,EAAE,IAAI,EAAE;gBACnH,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,6EAA6E,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5H,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,sEAAsE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChH,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,gEAAgE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC1G,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,oEAAoE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5G,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACjH,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,+EAA+E,EAAE,KAAK,EAAE,IAAI,EAAE;aACnH;SACF;QACD;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,+BAA+B;YACtC,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,yEAAyE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzH,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,2DAA2D,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxG,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,oEAAoE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACpH,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,+CAA+C,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3F,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,4DAA4D,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrG,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,yEAAyE,EAAE,KAAK,EAAE,IAAI,EAAE;aACpH;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,mFAAmF,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5H,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,IAAI,EAAE;gBACtG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,kEAAkE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvG,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,oEAAoE,EAAE,KAAK,EAAE,IAAI,EAAE;aAChH;SACF;KACF;CACF,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,KAAK;IACL,IAAI;CACL,CAAC"}
1
+ {"version":3,"file":"checklists.js","sourceRoot":"","sources":["../src/checklists.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "node:fs";
3
3
  import { checklists } from "./checklists.js";
4
- import { filterSections, runSession } from "./session.js";
4
+ import { filterByRole, filterSections, runSession, selectSections } from "./session.js";
5
5
  import { buildMarkdown, defaultReportName, printList, printSummary, saveReport } from "./report.js";
6
6
  import { askChoice, askYesNo, closeInput } from "./prompt.js";
7
7
  import { kindLabel, safeDetect } from "./detect.js";
@@ -220,21 +220,26 @@ async function main() {
220
220
  let role = opts.role;
221
221
  if (!role && !opts.resetRole)
222
222
  role = saved?.role ?? cfg.defaultRole;
223
- const buildSections = (r) => {
223
+ // The role-relevant questions for this checklist + detected stack, before any
224
+ // cap is applied. Used as-is by --list (the full reference for a role).
225
+ const roleSections = (r) => {
224
226
  let sections = filterSections(checklist, r);
225
227
  if (detection) {
226
228
  const extra = stackSection(detection, r);
227
229
  if (extra)
228
230
  sections = [...sections, extra];
229
231
  }
230
- return sections;
232
+ return filterByRole(sections, r);
231
233
  };
232
- // --list never prompts and never goes full-screen.
234
+ // What a session actually asks: the role-relevant questions, capped at the
235
+ // highest-priority MAX_QUESTIONS.
236
+ const buildSections = (r) => selectSections(roleSections(r), r);
237
+ // --list never prompts and never goes full-screen; show the full role set.
233
238
  if (opts.list) {
234
239
  persist(cfg, cwd, role, detection);
235
240
  if (detection)
236
241
  printDetection(detection, role);
237
- printList(checklist, buildSections(role));
242
+ printList(checklist, roleSections(role));
238
243
  return;
239
244
  }
240
245
  const useTui = opts.tui === true || (opts.tui === undefined && tuiAvailable());
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from "./types.js";
2
2
  export { quick, full, checklists } from "./checklists.js";
3
- export { filterSections, runSession } from "./session.js";
3
+ export { filterSections, filterByRole, selectSections, runSession, MAX_QUESTIONS } from "./session.js";
4
4
  export { askYesNo, askChoice, closeInput } from "./prompt.js";
5
5
  export { buildMarkdown, defaultReportName, printSummary, printList, saveReport } from "./report.js";
6
6
  export { detectProject, safeDetect, kindLabel } from "./detect.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // import { quick, full, runSession, detectProject, stackSection } from "@geekyants/think-before";
4
4
  export * from "./types.js";
5
5
  export { quick, full, checklists } from "./checklists.js";
6
- export { filterSections, runSession } from "./session.js";
6
+ export { filterSections, filterByRole, selectSections, runSession, MAX_QUESTIONS } from "./session.js";
7
7
  export { askYesNo, askChoice, closeInput } from "./prompt.js";
8
8
  export { buildMarkdown, defaultReportName, printSummary, printList, saveReport } from "./report.js";
9
9
  export { detectProject, safeDetect, kindLabel } from "./detect.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,oGAAoG;AAEpG,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,oGAAoG;AAEpG,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
package/dist/session.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  import type { Checklist, Role, Section, SessionResult } from "./types.js";
2
+ /** The most questions a single session will ask, however many are eligible. */
3
+ export declare const MAX_QUESTIONS = 10;
2
4
  /** Pick the sections relevant to a role. With no role, every section is shown. */
3
5
  export declare function filterSections(checklist: Checklist, role?: Role): Section[];
6
+ /** Keep only the questions in each section that match the role; drop empty sections. */
7
+ export declare function filterByRole(sections: Section[], role?: Role): Section[];
8
+ /**
9
+ * Tailor sections to a role and cap the total at `limit` questions, keeping the
10
+ * highest-priority ones across all sections (ties break toward original order).
11
+ * Section grouping and order are preserved; empty sections are dropped.
12
+ */
13
+ export declare function selectSections(sections: Section[], role?: Role, limit?: number): Section[];
4
14
  /** Run a checklist interactively over the given sections, collecting answers. */
5
15
  export declare function runSession(checklist: Checklist, sections: Section[]): Promise<SessionResult>;
6
16
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,SAAS,EAAkB,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvG,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,CAG3E;AAaD,iFAAiF;AACjF,wBAAsB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAiClG"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,SAAS,EAA4B,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjH,+EAA+E;AAC/E,eAAO,MAAM,aAAa,KAAK,CAAC;AAKhC,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,CAG3E;AASD,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,SAAgB,GAAG,OAAO,EAAE,CAqBjG;AAaD,iFAAiF;AACjF,wBAAsB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAiClG"}
package/dist/session.js CHANGED
@@ -1,11 +1,58 @@
1
1
  import { askYesNo } from "./prompt.js";
2
2
  import { bold, cyan, dim, gray, green, red, yellow } from "./colors.js";
3
+ /** The most questions a single session will ask, however many are eligible. */
4
+ export const MAX_QUESTIONS = 10;
5
+ /** Default priority for a question that doesn't declare one. */
6
+ const DEFAULT_PRIORITY = 50;
3
7
  /** Pick the sections relevant to a role. With no role, every section is shown. */
4
8
  export function filterSections(checklist, role) {
5
9
  if (!role)
6
10
  return checklist.sections;
7
11
  return checklist.sections.filter((s) => s.roles.includes("shared") || s.roles.includes(role));
8
12
  }
13
+ /** Whether a question applies to a given role. No roles (or no role) = applies. */
14
+ function questionMatchesRole(q, role) {
15
+ if (!q.roles || q.roles.length === 0)
16
+ return true;
17
+ if (!role)
18
+ return true;
19
+ return q.roles.includes(role);
20
+ }
21
+ /** Keep only the questions in each section that match the role; drop empty sections. */
22
+ export function filterByRole(sections, role) {
23
+ const out = [];
24
+ for (const section of sections) {
25
+ const questions = section.questions.filter((q) => questionMatchesRole(q, role));
26
+ if (questions.length)
27
+ out.push({ ...section, questions });
28
+ }
29
+ return out;
30
+ }
31
+ /**
32
+ * Tailor sections to a role and cap the total at `limit` questions, keeping the
33
+ * highest-priority ones across all sections (ties break toward original order).
34
+ * Section grouping and order are preserved; empty sections are dropped.
35
+ */
36
+ export function selectSections(sections, role, limit = MAX_QUESTIONS) {
37
+ const scoped = filterByRole(sections, role);
38
+ const all = [];
39
+ for (const section of scoped)
40
+ all.push(...section.questions);
41
+ if (all.length <= limit)
42
+ return scoped;
43
+ const keep = new Set(all
44
+ .map((q, order) => ({ q, order }))
45
+ .sort((a, b) => (b.q.priority ?? DEFAULT_PRIORITY) - (a.q.priority ?? DEFAULT_PRIORITY) || a.order - b.order)
46
+ .slice(0, limit)
47
+ .map((e) => e.q));
48
+ const out = [];
49
+ for (const section of scoped) {
50
+ const questions = section.questions.filter((q) => keep.has(q));
51
+ if (questions.length)
52
+ out.push({ ...section, questions });
53
+ }
54
+ return out;
55
+ }
9
56
  function keyHint() {
10
57
  return (dim("Answer fast — ") +
11
58
  cyan("y") + dim(" yes · ") +
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/stack.js CHANGED
@@ -5,94 +5,94 @@ const isFrontend = (d) => d.kind === "frontend" || d.kind === "fullstack";
5
5
  const isBackend = (d) => d.kind === "backend" || d.kind === "fullstack";
6
6
  const hasDb = (d) => isBackend(d) && d.hasDatabase;
7
7
  const isFullstack = (d) => d.kind === "fullstack";
8
- function q(id, text, risky, why) {
9
- return { id, text, risky, why };
8
+ function q(id, text, risky, why, priority) {
9
+ return { id, text, risky, why, priority };
10
10
  }
11
11
  const CANDIDATES = [
12
12
  // --- Frontend ---
13
13
  {
14
14
  when: isFrontend,
15
15
  roles: ALL_ROLES,
16
- q: q("fe-breakpoints", "Have you checked this across the breakpoints, devices, and viewports the app supports?", "no", "Layout side-effects love to hide on the screen sizes you didn't open."),
16
+ q: q("fe-breakpoints", "Have you checked this across the breakpoints, devices, and viewports the app supports?", "no", "Layout side-effects love to hide on the screen sizes you didn't open.", 76),
17
17
  },
18
18
  {
19
19
  when: isFrontend,
20
20
  roles: ALL_ROLES,
21
- q: q("fe-a11y", "Will keyboard navigation, focus order, and screen-reader output still work after this?", "no", "Accessibility regressions are invisible until someone who relies on them hits them."),
21
+ q: q("fe-a11y", "Will keyboard navigation, focus order, and screen-reader output still work after this?", "no", "Accessibility regressions are invisible until someone who relies on them hits them.", 78),
22
22
  },
23
23
  {
24
24
  when: isFrontend,
25
25
  roles: ALL_ROLES,
26
- q: q("fe-shared-ui", "Is this a shared component, style, or design token reused across many screens?", "yes", "One tweak to a shared UI primitive re-renders everywhere it's used."),
26
+ q: q("fe-shared-ui", "Is this a shared component, style, or design token reused across many screens?", "yes", "One tweak to a shared UI primitive re-renders everywhere it's used.", 84),
27
27
  },
28
28
  {
29
29
  when: isFrontend,
30
30
  roles: TECH_ROLES,
31
- q: q("fe-state", "Could this change shared client state, context, or a global store other views read?", "yes", "Global state is a hidden contract between unrelated screens."),
31
+ q: q("fe-state", "Could this change shared client state, context, or a global store other views read?", "yes", "Global state is a hidden contract between unrelated screens.", 80),
32
32
  },
33
33
  {
34
34
  when: isFrontend,
35
35
  roles: TECH_ROLES,
36
- q: q("fe-bundle", "Could this noticeably grow the bundle or block the main thread (heavy dep, sync work)?", "yes", "A small import can drag a large dependency — and the user's first paint — with it."),
36
+ q: q("fe-bundle", "Could this noticeably grow the bundle or block the main thread (heavy dep, sync work)?", "yes", "A small import can drag a large dependency — and the user's first paint — with it.", 72),
37
37
  },
38
38
  {
39
39
  when: isFrontend,
40
40
  roles: TECH_ROLES,
41
- q: q("fe-cache", "Could cached assets, a service worker, or localStorage from the old version conflict with this?", "yes", "Returning users run a mix of old and new code until caches clear."),
41
+ q: q("fe-cache", "Could cached assets, a service worker, or localStorage from the old version conflict with this?", "yes", "Returning users run a mix of old and new code until caches clear.", 70),
42
42
  },
43
43
  // --- Backend ---
44
44
  {
45
45
  when: isBackend,
46
46
  roles: TECH_ROLES,
47
- q: q("be-api-contract", "Does this change a request/response shape, field, or status code a client depends on?", "yes", "Clients you can't see — web, mobile, integrations — break the moment the contract shifts."),
47
+ q: q("be-api-contract", "Does this change a request/response shape, field, or status code a client depends on?", "yes", "Clients you can't see — web, mobile, integrations — break the moment the contract shifts.", 86),
48
48
  },
49
49
  {
50
50
  when: isBackend,
51
51
  roles: TECH_ROLES,
52
- q: q("be-authz", "Does this touch authentication, authorization, or tenant/data isolation?", "yes", "Authz mistakes are high-severity and rarely caught by happy-path testing."),
52
+ q: q("be-authz", "Does this touch authentication, authorization, or tenant/data isolation?", "yes", "Authz mistakes are high-severity and rarely caught by happy-path testing.", 85),
53
53
  },
54
54
  {
55
55
  when: isBackend,
56
56
  roles: TECH_ROLES,
57
- q: q("be-idempotent", "Are retries and duplicate requests safe (idempotent), with failures handled cleanly?", "no", "Networks retry. Non-idempotent handlers double-charge, double-send, double-write."),
57
+ q: q("be-idempotent", "Are retries and duplicate requests safe (idempotent), with failures handled cleanly?", "no", "Networks retry. Non-idempotent handlers double-charge, double-send, double-write.", 79),
58
58
  },
59
59
  {
60
60
  when: isBackend,
61
61
  roles: TECH_ROLES,
62
- q: q("be-external", "Does this add a call to an external service with rate limits, latency, or per-call cost?", "yes", "Their outage, throttle, or bill becomes your outage, throttle, or bill."),
62
+ q: q("be-external", "Does this add a call to an external service with rate limits, latency, or per-call cost?", "yes", "Their outage, throttle, or bill becomes your outage, throttle, or bill.", 74),
63
63
  },
64
64
  // --- Database (backend + a data layer detected) ---
65
65
  {
66
66
  when: hasDb,
67
67
  roles: TECH_ROLES,
68
- q: q("db-migration", "Is the schema/migration reversible and backward-compatible with the running code?", "no", "Deploys aren't atomic — old code runs against the new schema for a window."),
68
+ q: q("db-migration", "Is the schema/migration reversible and backward-compatible with the running code?", "no", "Deploys aren't atomic — old code runs against the new schema for a window.", 84),
69
69
  },
70
70
  {
71
71
  when: hasDb,
72
72
  roles: TECH_ROLES,
73
- q: q("db-transaction", "Do multi-step writes run in a transaction so a partial failure can't corrupt data?", "no", "A crash between two writes is the bug you only find in production."),
73
+ q: q("db-transaction", "Do multi-step writes run in a transaction so a partial failure can't corrupt data?", "no", "A crash between two writes is the bug you only find in production.", 81),
74
74
  },
75
75
  {
76
76
  when: hasDb,
77
77
  roles: TECH_ROLES,
78
- q: q("db-nplus1", "Could this introduce an N+1 query or an unindexed scan on a hot path?", "yes", "Fine on your seed data; a table scan at production scale."),
78
+ q: q("db-nplus1", "Could this introduce an N+1 query or an unindexed scan on a hot path?", "yes", "Fine on your seed data; a table scan at production scale.", 77),
79
79
  },
80
80
  // --- Full-stack boundary ---
81
81
  {
82
82
  when: isFullstack,
83
83
  roles: TECH_ROLES,
84
- q: q("fs-deploy-order", "If both API and client change, can they deploy independently without breaking each other?", "no", "Front end and back end rarely deploy in the same instant — plan for the gap."),
84
+ q: q("fs-deploy-order", "If both API and client change, can they deploy independently without breaking each other?", "no", "Front end and back end rarely deploy in the same instant — plan for the gap.", 80),
85
85
  },
86
86
  // --- Detection-driven ---
87
87
  {
88
88
  when: (d) => !d.hasTests,
89
89
  roles: TECH_ROLES,
90
- q: q("no-tests", "No test setup was detected here — will you add a test or a written manual check for this change?", "no", "Untested changes to an unfamiliar codebase are how 'small' becomes 'incident'."),
90
+ q: q("no-tests", "No test setup was detected here — will you add a test or a written manual check for this change?", "no", "Untested changes to an unfamiliar codebase are how 'small' becomes 'incident'.", 82),
91
91
  },
92
92
  {
93
93
  when: (d) => d.hasDocker,
94
94
  roles: TECH_ROLES,
95
- q: q("docker-parity", "Will this still work in the container / deploy environment, not just your local machine?", "no", "Env vars, file paths, and timezones differ between your laptop and the container."),
95
+ q: q("docker-parity", "Will this still work in the container / deploy environment, not just your local machine?", "no", "Env vars, file paths, and timezones differ between your laptop and the container.", 71),
96
96
  },
97
97
  ];
98
98
  /**
package/dist/stack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,MAAM,SAAS,GAAW,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAChE,MAAM,UAAU,GAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,UAAU,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACrF,MAAM,SAAS,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACnF,MAAM,KAAK,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAC9D,MAAM,WAAW,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AAE7D,SAAS,CAAC,CAAC,EAAU,EAAE,IAAY,EAAE,KAAkB,EAAE,GAAW;IAClE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,GAAgB;IAC9B,mBAAmB;IACnB;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,wFAAwF,EAAE,IAAI,EACnH,uEAAuE,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,wFAAwF,EAAE,IAAI,EAC5G,qFAAqF,CAAC;KACzF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,gFAAgF,EAAE,KAAK,EAC1G,qEAAqE,CAAC;KACzE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,qFAAqF,EAAE,KAAK,EAC3G,8DAA8D,CAAC;KAClE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,wFAAwF,EAAE,KAAK,EAC/G,oFAAoF,CAAC;KACxF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,iGAAiG,EAAE,KAAK,EACvH,mEAAmE,CAAC;KACvE;IAED,kBAAkB;IAClB;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,uFAAuF,EAAE,KAAK,EACpH,2FAA2F,CAAC;KAC/F;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,0EAA0E,EAAE,KAAK,EAChG,2EAA2E,CAAC;KAC/E;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,sFAAsF,EAAE,IAAI,EAChH,mFAAmF,CAAC;KACvF;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,0FAA0F,EAAE,KAAK,EACnH,yEAAyE,CAAC;KAC7E;IAED,qDAAqD;IACrD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,mFAAmF,EAAE,IAAI,EAC5G,4EAA4E,CAAC;KAChF;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,oFAAoF,EAAE,IAAI,EAC/G,oEAAoE,CAAC;KACxE;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,uEAAuE,EAAE,KAAK,EAC9F,2DAA2D,CAAC;KAC/D;IAED,8BAA8B;IAC9B;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,2FAA2F,EAAE,IAAI,EACvH,8EAA8E,CAAC;KAClF;IAED,2BAA2B;IAC3B;QACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;QACxB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,kGAAkG,EAAE,IAAI,EACvH,gFAAgF,CAAC;KACpF;IACD;QACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;QACxB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,0FAA0F,EAAE,IAAI,EACpH,mFAAmF,CAAC;KACvF;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,IAAW;IAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO;QACL,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,oBAAoB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;QAC3D,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,SAAS;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,MAAM,SAAS,GAAW,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAChE,MAAM,UAAU,GAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,UAAU,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACrF,MAAM,SAAS,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACnF,MAAM,KAAK,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAC9D,MAAM,WAAW,GAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AAE7D,SAAS,CAAC,CAAC,EAAU,EAAE,IAAY,EAAE,KAAkB,EAAE,GAAW,EAAE,QAAgB;IACpF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,GAAgB;IAC9B,mBAAmB;IACnB;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,wFAAwF,EAAE,IAAI,EACnH,uEAAuE,EAAE,EAAE,CAAC;KAC/E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,wFAAwF,EAAE,IAAI,EAC5G,qFAAqF,EAAE,EAAE,CAAC;KAC7F;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,gFAAgF,EAAE,KAAK,EAC1G,qEAAqE,EAAE,EAAE,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,qFAAqF,EAAE,KAAK,EAC3G,8DAA8D,EAAE,EAAE,CAAC;KACtE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,wFAAwF,EAAE,KAAK,EAC/G,oFAAoF,EAAE,EAAE,CAAC;KAC5F;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,iGAAiG,EAAE,KAAK,EACvH,mEAAmE,EAAE,EAAE,CAAC;KAC3E;IAED,kBAAkB;IAClB;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,uFAAuF,EAAE,KAAK,EACpH,2FAA2F,EAAE,EAAE,CAAC;KACnG;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,0EAA0E,EAAE,KAAK,EAChG,2EAA2E,EAAE,EAAE,CAAC;KACnF;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,sFAAsF,EAAE,IAAI,EAChH,mFAAmF,EAAE,EAAE,CAAC;KAC3F;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,0FAA0F,EAAE,KAAK,EACnH,yEAAyE,EAAE,EAAE,CAAC;KACjF;IAED,qDAAqD;IACrD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,mFAAmF,EAAE,IAAI,EAC5G,4EAA4E,EAAE,EAAE,CAAC;KACpF;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,oFAAoF,EAAE,IAAI,EAC/G,oEAAoE,EAAE,EAAE,CAAC;KAC5E;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,uEAAuE,EAAE,KAAK,EAC9F,2DAA2D,EAAE,EAAE,CAAC;KACnE;IAED,8BAA8B;IAC9B;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,2FAA2F,EAAE,IAAI,EACvH,8EAA8E,EAAE,EAAE,CAAC;KACtF;IAED,2BAA2B;IAC3B;QACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;QACxB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,kGAAkG,EAAE,IAAI,EACvH,gFAAgF,EAAE,EAAE,CAAC;KACxF;IACD;QACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;QACxB,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,0FAA0F,EAAE,IAAI,EACpH,mFAAmF,EAAE,EAAE,CAAC;KAC3F;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,IAAW;IAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO;QACL,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,oBAAoB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;QAC3D,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,SAAS;KACV,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -10,6 +10,16 @@ export interface Question {
10
10
  risky: RiskyAnswer;
11
11
  /** Why this matters — shown on `?` during a session and next to flags in the report. */
12
12
  why?: string;
13
+ /**
14
+ * Roles this question is relevant to. Omit (or leave empty) for questions
15
+ * that apply to everyone. Used to tailor the question set to the user's role.
16
+ */
17
+ roles?: Role[];
18
+ /**
19
+ * Relative importance, higher = asked first. When more questions are eligible
20
+ * than the per-session cap, the highest-priority ones win. Defaults to 50.
21
+ */
22
+ priority?: number;
13
23
  }
14
24
  /** Roles a section applies to. `shared` sections are always shown. */
15
25
  export type Role = "shared" | "designer" | "engineer" | "developer";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AAEvC,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,sEAAsE;AACtE,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpE,2CAA2C;AAC3C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE3E,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AAEvC,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpE,2CAA2C;AAC3C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE3E,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekyants/think-before",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "A fast yes/no reflection CLI to surface the side-effects of a change before you make it. Scans your project (frontend/backend/full-stack) and asks stack-relevant questions. Think before you touch the big app.",
5
5
  "type": "module",
6
6
  "bin": {