create-issflow 1.0.0 → 1.0.3
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 +56 -41
- package/bin/cli.js +259 -96
- package/package.json +28 -23
- package/template/.claude/agents/debugger.md +47 -47
- package/template/.claude/agents/e2e-runner.md +66 -56
- package/template/.claude/agents/implementer.md +75 -75
- package/template/.claude/agents/planner.md +71 -65
- package/template/.claude/agents/researcher.md +103 -103
- package/template/.claude/agents/synthesizer.md +72 -72
- package/template/.claude/agents/test-author.md +70 -70
- package/template/.claude/commands/log-decision.md +33 -33
- package/template/.claude/commands/log-issue.md +28 -28
- package/template/.claude/commands/overview.md +99 -98
- package/template/.claude/commands/phase.md +202 -191
- package/template/.claude/commands/quick.md +30 -30
- package/template/.claude/commands/replan.md +63 -63
- package/template/.claude/commands/store-wisdom.md +195 -194
- package/template/.claude/commands/synthesize.md +26 -26
- package/template/.claude/commands/unstuck.md +40 -40
- package/template/.claude/hooks/pre-compact.sh +25 -25
- package/template/.claude/hooks/session-start.sh +120 -120
- package/template/.claude/hooks/subagent-stop.sh +11 -11
- package/template/.claude/istartsoft-flow/METHODOLOGY.md +229 -214
- package/template/.claude/skills/caveman/SKILL.md +39 -39
- package/template/.claude/skills/grill-me/SKILL.md +10 -10
- package/template/.claude/skills/karpathy-guidelines/SKILL.md +34 -34
- package/template/.claude/skills/ux-design/SKILL.md +99 -0
- package/template/.claude/skills/ux-design/wireframe-template.md +95 -0
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: karpathy-guidelines
|
|
3
|
-
description: Coding and debugging discipline. Apply on every coding and debug task.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# karpathy-guidelines
|
|
7
|
-
|
|
8
|
-
Apply on every coding + debug task. Caveman ULTRA mode.
|
|
9
|
-
|
|
10
|
-
## Coding
|
|
11
|
-
- Smallest change that works. No speculative abstraction. No "while I'm here".
|
|
12
|
-
- Make it run, then make it right, then make it fast — in that order.
|
|
13
|
-
- One concern per change. If the diff does two things, split it.
|
|
14
|
-
- Read before write — understand the existing code path before editing.
|
|
15
|
-
- Name things for what they are. Delete dead code, don't comment it out.
|
|
16
|
-
- Prefer boring, obvious solutions over clever ones.
|
|
17
|
-
|
|
18
|
-
## Debugging
|
|
19
|
-
- Reproduce first.
|
|
20
|
-
- One hypothesis at a time. State it before changing anything.
|
|
21
|
-
- Change one variable, observe, conclude. No shotgun edits.
|
|
22
|
-
- Read the actual error and stack — top to bottom — before theorizing.
|
|
23
|
-
- When stuck: the bug is somewhere you're sure it isn't. Check assumptions.
|
|
24
|
-
- 3 failed attempts -> stop poking, go research.
|
|
25
|
-
|
|
26
|
-
## Honesty
|
|
27
|
-
- Don't claim it works until you ran it.
|
|
28
|
-
- "I don't know yet" is valid — say it instead of guessing.
|
|
29
|
-
- A failing test is information. Don't edit the test to hide it.
|
|
30
|
-
- Surface uncertainty to the orchestrator; don't paper over it.
|
|
31
|
-
|
|
32
|
-
## Verification
|
|
33
|
-
- Every change gets run. Lint/typecheck/smoke at minimum.
|
|
34
|
-
- The real test is written blind by test-author — your own run is just sanity.
|
|
1
|
+
---
|
|
2
|
+
name: karpathy-guidelines
|
|
3
|
+
description: Coding and debugging discipline. Apply on every coding and debug task.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# karpathy-guidelines
|
|
7
|
+
|
|
8
|
+
Apply on every coding + debug task. Caveman ULTRA mode.
|
|
9
|
+
|
|
10
|
+
## Coding
|
|
11
|
+
- Smallest change that works. No speculative abstraction. No "while I'm here".
|
|
12
|
+
- Make it run, then make it right, then make it fast — in that order.
|
|
13
|
+
- One concern per change. If the diff does two things, split it.
|
|
14
|
+
- Read before write — understand the existing code path before editing.
|
|
15
|
+
- Name things for what they are. Delete dead code, don't comment it out.
|
|
16
|
+
- Prefer boring, obvious solutions over clever ones.
|
|
17
|
+
|
|
18
|
+
## Debugging
|
|
19
|
+
- Reproduce first.
|
|
20
|
+
- One hypothesis at a time. State it before changing anything.
|
|
21
|
+
- Change one variable, observe, conclude. No shotgun edits.
|
|
22
|
+
- Read the actual error and stack — top to bottom — before theorizing.
|
|
23
|
+
- When stuck: the bug is somewhere you're sure it isn't. Check assumptions.
|
|
24
|
+
- 3 failed attempts -> stop poking, go research.
|
|
25
|
+
|
|
26
|
+
## Honesty
|
|
27
|
+
- Don't claim it works until you ran it.
|
|
28
|
+
- "I don't know yet" is valid — say it instead of guessing.
|
|
29
|
+
- A failing test is information. Don't edit the test to hide it.
|
|
30
|
+
- Surface uncertainty to the orchestrator; don't paper over it.
|
|
31
|
+
|
|
32
|
+
## Verification
|
|
33
|
+
- Every change gets run. Lint/typecheck/smoke at minimum.
|
|
34
|
+
- The real test is written blind by test-author — your own run is just sanity.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-design
|
|
3
|
+
description: >
|
|
4
|
+
The iStartSoft UX cookbook + wireframe baseline. A checklist an agent uses to
|
|
5
|
+
VALIDATE generated UI so it does not drift outside the design frame. Use on
|
|
6
|
+
every UI-facing task: building a screen/component, reviewing a UI diff, or
|
|
7
|
+
before a frontend phase closes. Triggers: "ui", "screen", "component",
|
|
8
|
+
"layout", "design", "ux", "wireframe", "responsive", "accessib", "a11y",
|
|
9
|
+
"ตรวจดีไซน์", "หน้าจอ".
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ux-design — cookbook + wireframe frame
|
|
13
|
+
|
|
14
|
+
Caveman ULTRA mode. UI conforms to the FRAME. Build or change UI -> run this
|
|
15
|
+
cookbook before you call it done. Drift outside the wireframe = defect, not
|
|
16
|
+
creative liberty (METHODOLOGY hard rule 9).
|
|
17
|
+
|
|
18
|
+
Read `wireframe-template.md` (same dir) when starting a new screen — it is the
|
|
19
|
+
canonical low-fidelity baseline every screen must map to. Read it on demand only.
|
|
20
|
+
|
|
21
|
+
-----
|
|
22
|
+
|
|
23
|
+
## When to apply
|
|
24
|
+
|
|
25
|
+
- Building a screen / page / component.
|
|
26
|
+
- Reviewing a UI diff (the "ตรวจ" pass).
|
|
27
|
+
- CLOSE gate of any frontend phase — the cookbook check MUST pass.
|
|
28
|
+
|
|
29
|
+
Order: **wireframe first** (does the layout match the baseline frame?) ->
|
|
30
|
+
**cookbook** (do the details obey the system?). Never invent layout the
|
|
31
|
+
wireframe does not have. If the design truly needs a frame the wireframe lacks,
|
|
32
|
+
STOP and update the wireframe baseline first (a design decision -> `log-decision`).
|
|
33
|
+
|
|
34
|
+
-----
|
|
35
|
+
|
|
36
|
+
## The cookbook (check every item)
|
|
37
|
+
|
|
38
|
+
### 1. Design tokens — no raw values
|
|
39
|
+
- Color / spacing / radius / type / shadow come from named tokens, never
|
|
40
|
+
hard-coded hex / px literals scattered in components.
|
|
41
|
+
- One source of truth (CSS vars / theme file). New token? add it to the source,
|
|
42
|
+
don't inline it.
|
|
43
|
+
|
|
44
|
+
### 2. Spacing scale — 8pt grid
|
|
45
|
+
- All spacing is a multiple of 4px, prefer 8 (4 · 8 · 12 · 16 · 24 · 32 · 48 · 64).
|
|
46
|
+
- No magic margins (`margin: 7px`). Off-grid spacing is a defect.
|
|
47
|
+
|
|
48
|
+
### 3. Type scale
|
|
49
|
+
- A fixed, named ramp (e.g. xs/sm/base/lg/xl/2xl). No arbitrary font-sizes.
|
|
50
|
+
- Line-height ≥ 1.4 for body. One primary font family + a fallback stack.
|
|
51
|
+
|
|
52
|
+
### 4. Accessibility — WCAG 2.1 AA (non-negotiable)
|
|
53
|
+
- Text contrast ≥ **4.5:1** (≥ 3:1 for large text ≥ 24px / 19px-bold + UI/icon).
|
|
54
|
+
- Every interactive element: keyboard-reachable, visible focus ring, ≥ 44×44px hit area.
|
|
55
|
+
- Semantic HTML (`button`/`nav`/`main`/`label`), not `div` soup. Inputs have labels.
|
|
56
|
+
- Images have `alt`; icon-only buttons have `aria-label`.
|
|
57
|
+
- Color is never the ONLY signal (add text/icon for state).
|
|
58
|
+
|
|
59
|
+
### 5. Component inventory — reuse, don't reinvent
|
|
60
|
+
- Use an existing component before creating one. New component? it earns a place
|
|
61
|
+
in the inventory + the wireframe legend.
|
|
62
|
+
- One component = one responsibility.
|
|
63
|
+
|
|
64
|
+
### 6. State matrix — every interactive element covers all states
|
|
65
|
+
- `default · hover · focus · active · disabled · loading · error · empty`.
|
|
66
|
+
- Lists/data views handle: **empty**, **loading (skeleton)**, **error**, **partial**.
|
|
67
|
+
- No dead-end empty states (always an action or explanation).
|
|
68
|
+
|
|
69
|
+
### 7. Responsive breakpoints
|
|
70
|
+
- Mobile-first. Honor the project breakpoints (XS < 640 · SM 640 · MD 768 ·
|
|
71
|
+
LG 1024 · XL 1280). Layout must not break or overflow between them.
|
|
72
|
+
- No fixed widths that overflow small screens. Touch targets hold on mobile.
|
|
73
|
+
|
|
74
|
+
### 8. Content & i18n
|
|
75
|
+
- No hard-coded user-facing strings — go through the i18n layer.
|
|
76
|
+
- Text can grow ~30% (translation) without breaking layout. Numbers/dates/currency
|
|
77
|
+
are locale-formatted.
|
|
78
|
+
|
|
79
|
+
### 9. Feedback & motion
|
|
80
|
+
- Every async action has visible feedback (spinner/skeleton/toast) within ~100ms.
|
|
81
|
+
- Destructive actions confirm. Motion is subtle, respects `prefers-reduced-motion`.
|
|
82
|
+
|
|
83
|
+
-----
|
|
84
|
+
|
|
85
|
+
## RETURN FORMAT (the "ตรวจ" verdict)
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
UX CHECK: <screen/component>
|
|
89
|
+
- wireframe match: PASS | DRIFT (<what left the frame>)
|
|
90
|
+
- tokens/spacing/type: PASS | FAIL (<which raw values>)
|
|
91
|
+
- a11y (WCAG AA): PASS | FAIL (<contrast/keyboard/semantic gap>)
|
|
92
|
+
- states covered: <list missing, or "all">
|
|
93
|
+
- responsive: PASS | FAIL (<breakpoint that breaks>)
|
|
94
|
+
- i18n: PASS | FAIL
|
|
95
|
+
- VERDICT: PASS | BLOCK (frontend phase cannot close)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Sources behind these defaults: WCAG 2.1 AA, Material Design 3 (semantic tokens),
|
|
99
|
+
Apple HIG, Shopify Polaris. See `docs/research/design-ux-cookbook-wireframe-pattern.md`.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Wireframe baseline — canonical prototype frame
|
|
2
|
+
|
|
3
|
+
The low-fidelity reference every screen maps to BEFORE pixels exist. Copy a block
|
|
4
|
+
per screen, fill the `[...]`. The agent validates generated UI against this frame
|
|
5
|
+
(METHODOLOGY hard rule 9). Anything the screen renders that this frame does not
|
|
6
|
+
describe is **drift** — fix the UI or, if the frame is genuinely missing, update
|
|
7
|
+
this file first (`log-decision`).
|
|
8
|
+
|
|
9
|
+
Keep it low fidelity on purpose: boxes + intent, not styling. Styling lives in the
|
|
10
|
+
design tokens / cookbook, not here.
|
|
11
|
+
|
|
12
|
+
-----
|
|
13
|
+
|
|
14
|
+
## Global frame (applies to all screens)
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
+--------------------------------------------------+
|
|
18
|
+
| [top bar: logo · primary nav · account ] | <- persistent
|
|
19
|
+
+--------------------------------------------------+
|
|
20
|
+
| [breadcrumb / page title ] |
|
|
21
|
+
| |
|
|
22
|
+
| [ MAIN CONTENT REGION ] |
|
|
23
|
+
| |
|
|
24
|
+
+--------------------------------------------------+
|
|
25
|
+
| [footer / status ] |
|
|
26
|
+
+--------------------------------------------------+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Breakpoints: nav collapses to a menu below MD (768px). Content single-column
|
|
30
|
+
below SM (640px).
|
|
31
|
+
- Every screen declares: its route, its primary action, its empty/loading/error
|
|
32
|
+
rendering.
|
|
33
|
+
|
|
34
|
+
-----
|
|
35
|
+
|
|
36
|
+
## Screen template (copy per screen)
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
### Screen: [name]
|
|
40
|
+
- Route: [/path]
|
|
41
|
+
- Goal (one line): [what the user accomplishes here]
|
|
42
|
+
- Primary action: [the single most important button/intent]
|
|
43
|
+
- Entry points: [how the user arrives]
|
|
44
|
+
- Exit / next: [where they go after the primary action]
|
|
45
|
+
|
|
46
|
+
Layout (regions, top -> bottom):
|
|
47
|
+
1. [region] — [content + which components from the inventory]
|
|
48
|
+
2. [region] — [...]
|
|
49
|
+
3. [region] — [...]
|
|
50
|
+
|
|
51
|
+
States:
|
|
52
|
+
- loading: [skeleton of which regions]
|
|
53
|
+
- empty: [message + the recovery action — never a dead end]
|
|
54
|
+
- error: [message + retry]
|
|
55
|
+
- success: [confirmation / what changes on screen]
|
|
56
|
+
|
|
57
|
+
Data in / out:
|
|
58
|
+
- reads: [endpoints from docs/ENDPOINTS.md]
|
|
59
|
+
- writes: [endpoints]
|
|
60
|
+
|
|
61
|
+
Responsive notes:
|
|
62
|
+
- mobile: [what stacks / hides / becomes a sheet]
|
|
63
|
+
- desktop: [what spreads out]
|
|
64
|
+
|
|
65
|
+
A11y notes:
|
|
66
|
+
- focus order: [logical tab order]
|
|
67
|
+
- landmarks: [main / nav / form labels]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
-----
|
|
71
|
+
|
|
72
|
+
## Component legend (the inventory the wireframe references)
|
|
73
|
+
|
|
74
|
+
List every reusable block a screen may place. A screen MAY ONLY use components
|
|
75
|
+
named here; a new one is added here first.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
[Button] — primary | secondary | ghost | destructive
|
|
79
|
+
[Input] — text | select | date | search (always labelled)
|
|
80
|
+
[Card] — header + body + optional actions
|
|
81
|
+
[Table/List] — has empty + loading + error states baked in
|
|
82
|
+
[Modal/Sheet] — confirm | form ; sheet on mobile
|
|
83
|
+
[Toast] — success | error | info (async feedback)
|
|
84
|
+
[Nav] — top bar (desktop) -> menu (mobile)
|
|
85
|
+
[...add project components here...]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
-----
|
|
89
|
+
|
|
90
|
+
## How to use (agent)
|
|
91
|
+
|
|
92
|
+
1. New screen -> write its block above from the PLAN acceptance spec.
|
|
93
|
+
2. Build the screen to match the block (layout + states + data + a11y).
|
|
94
|
+
3. Run the `ux-design` cookbook check. Verdict BLOCK -> fix before CLOSE.
|
|
95
|
+
4. Frame too small for a real need -> update this file + `log-decision`, then build.
|