@seanmars/tospec 0.7.0 → 0.8.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.
Files changed (43) hide show
  1. package/assets/dashboard/app.js +157 -0
  2. package/assets/dashboard/index.html +4 -0
  3. package/assets/dashboard/style.css +158 -0
  4. package/dist/commands/config.d.ts.map +1 -1
  5. package/dist/commands/config.js +4 -0
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/dashboard.d.ts.map +1 -1
  8. package/dist/commands/dashboard.js +4 -1
  9. package/dist/commands/dashboard.js.map +1 -1
  10. package/dist/commands/decision.d.ts +8 -0
  11. package/dist/commands/decision.d.ts.map +1 -1
  12. package/dist/commands/decision.js +1 -1
  13. package/dist/commands/decision.js.map +1 -1
  14. package/dist/core/dashboard-data.d.ts +17 -0
  15. package/dist/core/dashboard-data.d.ts.map +1 -1
  16. package/dist/core/dashboard-data.js +23 -0
  17. package/dist/core/dashboard-data.js.map +1 -1
  18. package/dist/core/init.d.ts.map +1 -1
  19. package/dist/core/init.js +1 -0
  20. package/dist/core/init.js.map +1 -1
  21. package/dist/core/profiles.d.ts +1 -1
  22. package/dist/core/profiles.d.ts.map +1 -1
  23. package/dist/core/profiles.js +1 -1
  24. package/dist/core/profiles.js.map +1 -1
  25. package/dist/core/shared/skill-generation.d.ts.map +1 -1
  26. package/dist/core/shared/skill-generation.js +3 -1
  27. package/dist/core/shared/skill-generation.js.map +1 -1
  28. package/dist/core/shared/tool-detection.d.ts +2 -2
  29. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  30. package/dist/core/shared/tool-detection.js +2 -0
  31. package/dist/core/shared/tool-detection.js.map +1 -1
  32. package/dist/core/templates/skill-templates.d.ts +1 -0
  33. package/dist/core/templates/skill-templates.d.ts.map +1 -1
  34. package/dist/core/templates/skill-templates.js +1 -0
  35. package/dist/core/templates/skill-templates.js.map +1 -1
  36. package/dist/core/templates/workflows/decision.js +2 -2
  37. package/dist/core/templates/workflows/decision.js.map +1 -1
  38. package/dist/core/templates/workflows/grill.d.ts +12 -0
  39. package/dist/core/templates/workflows/grill.d.ts.map +1 -0
  40. package/dist/core/templates/workflows/grill.js +61 -0
  41. package/dist/core/templates/workflows/grill.js.map +1 -0
  42. package/package.json +1 -1
  43. package/schemas/decision/templates/decision.md +9 -3
@@ -0,0 +1,61 @@
1
+ const GRILL_BODY = `**IMPORTANT: Grill is read-only pressure-testing, not building.** You may read files, search code, and run \`tospec\` read-only commands, but you must NEVER write code, edit sources, or create artifact files during a grill. Grill persists nothing — it hands off to nothing. Its only output is a shared, confirmed understanding delivered back in the conversation.
2
+
3
+ This is a relentless interrogation of whatever the user put on the table — a plan, a decision, an idea, a design. Stress-test it until every assumption is named and every open question is either answered or explicitly parked. Work the four quadrants below, batching questions that stand on their own and following dependent threads one question at a time.
4
+
5
+ **The four quadrants**
6
+
7
+ Sweep all four — the last two are where the real risk hides:
8
+
9
+ 1. **Known Knowns — what we think we know.** Restate the claims the artifact rests on, then *verify* them. If it's checkable in the codebase, check it — never assume a "known" is true just because it was asserted. A false Known Known is the most dangerous kind.
10
+ 2. **Known Unknowns — the open questions already on the table.** Enumerate them and put them to the user, each with your suggested answer and reasoning so they can just confirm.
11
+ 3. **Unknown Knowns — the unspoken assumptions.** Surface the premises nobody said out loud and *name them* — the implicit "of course X" that the whole thing quietly depends on. Drag each into the light and confirm it holds.
12
+ 4. **Unknown Unknowns — the blind spots.** Probe adjacent territory and reach for analogies that failed elsewhere, to unearth the questions the user didn't know to ask. Ask "what would have to be true for this to blow up?" and chase the answers.
13
+
14
+ **Interview mechanics**
15
+
16
+ - **Batch independent questions; sequence dependent ones.** Ask unrelated questions together in a single turn (use \`AskUserQuestion\` — up to 4 at once). A question whose answer depends on another still-open question isn't independent — hold it for a later turn once the question it hangs off is settled.
17
+ - **Every question carries a suggested answer** and the reasoning behind it, so the user can confirm instead of writing an essay.
18
+ - **Look up what's checkable.** Factual questions ("does X already exist", "what does Y currently do") are yours to answer from the codebase — never ask the user something you can verify yourself.
19
+ - **Probe every answer for its hidden premise.** After each answer, ask what it implies that hasn't been said yet. Don't stop at the first plausible answer; keep pulling the thread until it stops giving new information.
20
+
21
+ **Converge**
22
+
23
+ You're done only when you can fully restate the shared understanding — the claims that held up, the assumptions now made explicit, the questions answered, and anything left deliberately open — and the user confirms it's right. Running out of questions is not convergence. If the user corrects your restatement, there's still a hidden branch; keep grilling.
24
+
25
+ **Guardrails**
26
+ - **Don't implement** — never write application code, edit sources, or create artifact files during a grill
27
+ - **Don't act before consensus** — take no action until the user has confirmed the restated understanding
28
+ - **Don't ask what you can look up** — codebase facts are yours to find, not the user's to recite
29
+ - **Don't stop at the first plausible answer** — dig for the implied premise behind it
30
+ - **Don't force closure** — if the user wants to keep grilling after you've restated where things stand, keep going
31
+
32
+ Grill is on-demand deep-dive for *any* artifact — not the pre-change requirement convergence that \`tospec-explore\` owns, and it lands no files of its own.`;
33
+ export function getGrillSkillTemplate() {
34
+ return {
35
+ name: 'tospec-grill',
36
+ description: "Pressure-test any artifact — a plan, a decision, an idea, a design — through a relentless four-quadrant Known/Unknown interrogation. Trigger whenever the user says 'grill', 'grill me', 'grilling', or 'grilling me', or otherwise wants to dig deeper, surface unspoken assumptions, and hunt blind spots before committing.",
37
+ instructions: `Grill any artifact the user hands you — a plan, decision, idea, or design — through the four-quadrant Known/Unknown frame until every assumption is named and the understanding is shared and confirmed.
38
+
39
+ **Input**: The user's request is whatever they want stress-tested — a plan file, a recorded decision, a raw idea, or a change name to interrogate in context of. May be empty, in which case ask what to grill.
40
+
41
+ ${GRILL_BODY}`,
42
+ license: 'MIT',
43
+ compatibility: 'Requires tospec CLI.',
44
+ metadata: { author: 'tospec', version: '1.0' },
45
+ allowedTools: ['Bash(tospec:*)', 'Read', 'Grep', 'Glob', 'AskUserQuestion'],
46
+ };
47
+ }
48
+ export function getTospecGrillCommandTemplate() {
49
+ return {
50
+ name: 'TOSPEC: Grill',
51
+ description: 'Pressure-test any artifact through a relentless four-quadrant Known/Unknown interrogation',
52
+ category: 'Workflow',
53
+ tags: ['workflow', 'grill'],
54
+ content: `Grill any artifact the user hands you — a plan, decision, idea, or design — through the four-quadrant Known/Unknown frame until every assumption is named and the understanding is shared and confirmed.
55
+
56
+ **Input**: The argument after \`tospec-grill\` is whatever the user wants stress-tested — a plan file, a recorded decision, a raw idea, or a change name to interrogate in context of. May be empty, in which case ask what to grill.
57
+
58
+ ${GRILL_BODY}`,
59
+ };
60
+ }
61
+ //# sourceMappingURL=grill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grill.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/grill.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JA+B0I,CAAC;AAE9J,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gUAAgU;QAC7U,YAAY,EAAE;;;;EAIhB,UAAU,EAAE;QACV,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9C,YAAY,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2FAA2F;QACxG,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;QAC3B,OAAO,EAAE;;;;EAIX,UAAU,EAAE;KACX,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seanmars/tospec",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Spec-driven development CLI for structured requirements and issue workflows",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -23,6 +23,12 @@
23
23
  <!-- 分階段的後續實作項目 -->
24
24
 
25
25
  ## 決策過程
26
- <!-- 選配: 關鍵問答紀錄 (問了什麼、使用者怎麼回), 摘要即可, 不貼逐字稿; 無互動討論可省略 -->
27
- - Q: [問題]
28
- A: [回答]
26
+ <!-- 選配: 關鍵問答紀錄; 每組以 **Q:** 開頭, 下一段為回答; 摘要即可, 不貼逐字稿; 無互動討論可省略 -->
27
+
28
+ **Q:** [問題]
29
+
30
+ [回答]
31
+
32
+ **Q:** [問題]
33
+
34
+ [回答]