create-issflow 1.8.1 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +5 -5
  2. package/bin/cli.js +60 -52
  3. package/package.json +1 -1
  4. package/template/.issflow/README.md +36 -0
  5. package/template/{.claude → .issflow}/commands/change-request.md +3 -2
  6. package/template/{.claude → .issflow}/commands/design.md +2 -2
  7. package/template/{.claude → .issflow}/commands/feature.md +2 -2
  8. package/template/{.claude → .issflow}/commands/propose.md +80 -18
  9. package/template/{.claude → .issflow}/commands/security-audit.md +1 -1
  10. package/template/{.claude → .issflow}/commands/store-wisdom.md +3 -3
  11. package/template/{.claude → .issflow}/commands/ui-audit.md +1 -1
  12. package/template/.issflow/flow-config.json +12 -0
  13. package/template/{.claude → .issflow}/hooks/context-guard.js +2 -2
  14. package/template/{.claude → .issflow}/hooks/lib/ctx.js +1 -1
  15. package/template/{.claude → .issflow}/hooks/plan-gate.js +1 -1
  16. package/template/{.claude → .issflow}/hooks/session-start.js +2 -2
  17. package/template/{.claude → .issflow}/istartsoft-flow/METHODOLOGY.md +40 -37
  18. package/template/{.claude → .issflow}/templates/automation/Dockerfile +1 -1
  19. package/template/{.claude → .issflow}/templates/automation/feature-docker.js +2 -2
  20. package/template/.issflow/templates/proposal.html +204 -0
  21. package/template/.claude/README.md +0 -33
  22. package/template/.claude/templates/proposal.html +0 -113
  23. /package/template/{.claude → .issflow}/agents/debugger.md +0 -0
  24. /package/template/{.claude → .issflow}/agents/e2e-runner.md +0 -0
  25. /package/template/{.claude → .issflow}/agents/implementer.md +0 -0
  26. /package/template/{.claude → .issflow}/agents/planner.md +0 -0
  27. /package/template/{.claude → .issflow}/agents/researcher.md +0 -0
  28. /package/template/{.claude → .issflow}/agents/synthesizer.md +0 -0
  29. /package/template/{.claude → .issflow}/agents/test-author.md +0 -0
  30. /package/template/{.claude → .issflow}/commands/goal.md +0 -0
  31. /package/template/{.claude → .issflow}/commands/log-decision.md +0 -0
  32. /package/template/{.claude → .issflow}/commands/log-issue.md +0 -0
  33. /package/template/{.claude → .issflow}/commands/overview.md +0 -0
  34. /package/template/{.claude → .issflow}/commands/phase.md +0 -0
  35. /package/template/{.claude → .issflow}/commands/qa-audit.md +0 -0
  36. /package/template/{.claude → .issflow}/commands/quick.md +0 -0
  37. /package/template/{.claude → .issflow}/commands/release.md +0 -0
  38. /package/template/{.claude → .issflow}/commands/replan.md +0 -0
  39. /package/template/{.claude → .issflow}/commands/runbook.md +0 -0
  40. /package/template/{.claude → .issflow}/commands/sprint.md +0 -0
  41. /package/template/{.claude → .issflow}/commands/support.md +0 -0
  42. /package/template/{.claude → .issflow}/commands/synthesize.md +0 -0
  43. /package/template/{.claude → .issflow}/commands/uat.md +0 -0
  44. /package/template/{.claude → .issflow}/commands/unstuck.md +0 -0
  45. /package/template/{.claude → .issflow}/hooks/feature-gate.js +0 -0
  46. /package/template/{.claude → .issflow}/hooks/pre-compact.js +0 -0
  47. /package/template/{.claude → .issflow}/hooks/subagent-stop.js +0 -0
  48. /package/template/{.claude → .issflow}/skills/caveman/SKILL.md +0 -0
  49. /package/template/{.claude → .issflow}/skills/code-standards/SKILL.md +0 -0
  50. /package/template/{.claude → .issflow}/skills/code-standards/references/architecture.md +0 -0
  51. /package/template/{.claude → .issflow}/skills/code-standards/references/naming.md +0 -0
  52. /package/template/{.claude → .issflow}/skills/grill-me/SKILL.md +0 -0
  53. /package/template/{.claude → .issflow}/skills/karpathy-guidelines/SKILL.md +0 -0
  54. /package/template/{.claude → .issflow}/skills/security/SKILL.md +0 -0
  55. /package/template/{.claude → .issflow}/skills/security/references/pentest-checklist.md +0 -0
  56. /package/template/{.claude → .issflow}/skills/security/references/secure-coding.md +0 -0
  57. /package/template/{.claude → .issflow}/skills/security/references/standards.md +0 -0
  58. /package/template/{.claude → .issflow}/skills/security/references/threat-modeling.md +0 -0
  59. /package/template/{.claude → .issflow}/skills/support-triage/SKILL.md +0 -0
  60. /package/template/{.claude → .issflow}/skills/ux-design/SKILL.md +0 -0
  61. /package/template/{.claude → .issflow}/skills/ux-design/references/wireframe-template.md +0 -0
  62. /package/template/{.claude → .issflow}/templates/ARCHITECTURE-template.md +0 -0
  63. /package/template/{.claude → .issflow}/templates/CR-template.md +0 -0
  64. /package/template/{.claude → .issflow}/templates/FEATURE-template.md +0 -0
  65. /package/template/{.claude → .issflow}/templates/UX-PACK-template.md +0 -0
  66. /package/template/{.claude → .issflow}/templates/automation/issflow-feature.yml +0 -0
  67. /package/template/{.claude → .issflow}/templates/automation/issflow-goal.yml +0 -0
@@ -1,113 +0,0 @@
1
- <!doctype html>
2
- <!--
3
- Client-facing proposal — ONE A4 PAGE (rendered by /propose from docs/PROPOSAL.md).
4
- HOW TO USE (agent): copy to docs/proposal.html, replace every {{PLACEHOLDER}}, and
5
- keep it to a SINGLE A4 page — be terse (≈3–6 phases, ≈4 assumptions). Localise the
6
- CONTENT to the project language; the section labels are bilingual (TH / EN) already.
7
- WHITE-LABEL: fill {{COMPANY}} / {{LOGO}} with the ISSUING company's brand (not the
8
- kit's). {{LOGO}} optional: an <img src="…">, an SVG, or delete to keep the monogram.
9
- Print: Ctrl/Cmd-P → A4 → "Save as PDF" (fits one page).
10
- -->
11
- <html lang="{{LANG}}">
12
- <head>
13
- <meta charset="utf-8" />
14
- <title>{{TITLE}} — Proposal {{VERSION}}</title>
15
- <style>
16
- @page { size: A4; margin: 0 }
17
- :root{
18
- --ink:#162033; --muted:#5d6a7d; --line:#dbe3ee; --soft:#f6f8fb;
19
- --violet:#635bff; --green:#15803d;
20
- --sans:"Inter","Noto Sans Thai",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
21
- --mono:ui-monospace,Menlo,Consolas,monospace;
22
- }
23
- *{box-sizing:border-box}
24
- body{margin:0;background:#e9edf3;color:var(--ink);font-family:var(--sans);font-size:10.5px;line-height:1.45}
25
- .sheet{width:210mm;min-height:297mm;margin:10mm auto;background:#fff;padding:15mm 16mm;display:flex;flex-direction:column;gap:11px}
26
- .lbl{color:var(--muted);font-size:8.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0 0 3px}
27
- .lbl em{font-style:normal;opacity:.6;font-weight:600}
28
- h1{font-size:21px;margin:0;letter-spacing:-.3px;line-height:1.1}
29
- .muted{color:var(--muted)} ul{margin:0;padding-left:15px} li{margin:1.5px 0}
30
- hr{border:none;border-top:1px solid var(--line);margin:0}
31
-
32
- /* header */
33
- .head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:11px}
34
- .co{display:flex;align-items:center;gap:10px}
35
- .logo{width:42px;height:42px;border-radius:9px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto;overflow:hidden}
36
- .logo img{width:100%;height:100%;object-fit:contain}
37
- .co .name{font-weight:800;font-size:15px;line-height:1.15}
38
- .co .tag{color:var(--muted);font-size:9px}
39
- .head .meta{text-align:right;font-size:9px;color:var(--muted)}
40
- .head .meta .big{font:800 12px/1.2 var(--sans);letter-spacing:.12em;color:var(--violet)}
41
- .pill{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font:800 8px/1 var(--mono);color:var(--muted);margin-top:4px}
42
-
43
- .cols{display:flex;gap:18px} .cols>div{flex:1;min-width:0}
44
- table{width:100%;border-collapse:collapse;font-size:10px}
45
- th,td{text-align:left;padding:5px 7px;border-bottom:1px solid var(--line)}
46
- th{background:var(--soft);font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
47
- td.n,th.n{text-align:right;font-family:var(--mono)}
48
- tfoot td{font-weight:800;border-top:1.5px solid var(--ink);border-bottom:none}
49
- .total{display:flex;align-items:baseline;justify-content:space-between;background:var(--soft);border-radius:9px;padding:9px 13px}
50
- .total .amt{font-size:19px;font-weight:800} .total .amt small{font-size:9px;color:var(--muted);font-weight:600}
51
-
52
- .sign{display:flex;gap:34px;margin-top:auto;padding-top:14px}
53
- .sign>div{flex:1} .line{border-bottom:1px solid var(--ink);height:30px} .sign .lbl{margin-top:5px}
54
- footer{border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:8.5px;display:flex;justify-content:space-between}
55
- @media print{ body{background:#fff} .sheet{margin:0;min-height:auto;box-shadow:none} }
56
- </style>
57
- </head>
58
- <body>
59
- <div class="sheet">
60
-
61
- <div class="head">
62
- <div class="co">
63
- <span class="logo">{{LOGO}}</span>
64
- <span><span class="name">{{COMPANY}}</span><br><span class="tag">{{COMPANY_TAGLINE}}</span></span>
65
- </div>
66
- <div class="meta">
67
- <div class="big">PROPOSAL</div>
68
- {{VERSION}} · {{DATE}}<br><span class="pill">{{STATUS}}</span>
69
- </div>
70
- </div>
71
-
72
- <div>
73
- <p class="lbl">ใบเสนอราคา <em>Prepared for</em></p>
74
- <h1>{{TITLE}}</h1>
75
- <p class="muted" style="margin:3px 0 0">{{CLIENT}} — {{SUMMARY}}</p>
76
- </div>
77
-
78
- <div class="cols">
79
- <div><p class="lbl">ขอบเขตงาน <em>In scope</em></p><ul>{{SCOPE_IN_ITEMS}}</ul></div>
80
- <div><p class="lbl">นอกขอบเขต <em>Out of scope</em></p><ul>{{SCOPE_OUT_ITEMS}}</ul></div>
81
- </div>
82
-
83
- <div>
84
- <p class="lbl">เฟส &amp; ค่าใช้จ่าย <em>Phases &amp; cost</em></p>
85
- <table>
86
- <thead><tr><th>เฟส <em style="font-style:normal;opacity:.5">Phase</em></th><th>Complexity</th><th class="n">Effort</th><th class="n">Cost</th></tr></thead>
87
- <tbody>{{PHASE_ROWS}}<!-- <tr><td>1. Auth</td><td>M</td><td class="n">2–3d</td><td class="n">฿16k–24k</td></tr> --></tbody>
88
- <tfoot><tr><td colspan="2">รวม <em style="font-style:normal;opacity:.5">Total</em></td><td class="n">{{TOTAL_EFFORT}}</td><td class="n">{{TOTAL_COST}}</td></tr></tfoot>
89
- </table>
90
- </div>
91
-
92
- <div class="total">
93
- <span><span class="lbl" style="margin:0">ราคารวม <em>Total</em></span><br><span class="muted" style="font-size:9px">{{TIMELINE}}</span></span>
94
- <!-- CLIENT-SAFE: totals only. Never put rate, rate card, or contingency % in {{TOTAL_NOTE}}. Leave empty or a non-rate label (e.g. currency). -->
95
- <span class="amt">{{TOTAL_COST}} <small>{{TOTAL_NOTE}}</small></span>
96
- </div>
97
-
98
- <div class="cols">
99
- <div><p class="lbl">สมมุติฐาน <em>Assumptions</em></p><ul>{{ASSUMPTION_ITEMS}}</ul></div>
100
- <div><p class="lbl">ข้อยกเว้น <em>Exclusions</em></p><ul>{{EXCLUSION_ITEMS}}</ul></div>
101
- </div>
102
-
103
- <div><p class="lbl">เงื่อนไขการชำระเงิน <em>Payment</em></p><p class="muted" style="margin:0">{{PAYMENT_ITEMS}}</p></div>
104
-
105
- <div class="sign">
106
- <div><div class="line"></div><p class="lbl">ลงนามลูกค้า <em>Client sign-off</em></p></div>
107
- <div><div class="line"></div><p class="lbl">วันที่ <em>Date</em></p></div>
108
- </div>
109
-
110
- <footer><span>{{COMPANY}} · {{FOOTER}}</span><span>{{VERSION}}</span></footer>
111
- </div>
112
- </body>
113
- </html>
File without changes
File without changes