create-issflow 1.9.0 → 1.9.2
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 +1 -1
- package/bin/cli.js +2 -2
- package/package.json +1 -1
- package/template/.issflow/README.md +1 -1
- package/template/.issflow/commands/change-request.md +2 -1
- package/template/.issflow/commands/design.md +12 -6
- package/template/.issflow/commands/phase.md +2 -0
- package/template/.issflow/commands/propose.md +80 -18
- package/template/.issflow/istartsoft-flow/METHODOLOGY.md +21 -12
- package/template/.issflow/skills/ui-ux-pro-max/LICENSE.upstream +21 -0
- package/template/.issflow/skills/ui-ux-pro-max/SKILL.md +70 -0
- package/template/.issflow/skills/ui-ux-pro-max/UPSTREAM.md +4 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/app-interface.csv +33 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/catalog-summary.json +78 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/colors.csv +193 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/data-provenance.json +1348 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/google-fonts.csv +1935 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/motion.csv +18 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/products.csv +193 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/avalonia.csv +57 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +60 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/javafx.csv +76 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/nextjs.csv +62 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +77 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +68 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/react.csv +67 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/shadcn.csv +69 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/svelte.csv +56 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/uno.csv +60 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/uwp.csv +56 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/winui.csv +60 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/stacks/wpf.csv +57 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/styles.csv +89 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/typography.csv +75 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/ui-reasoning.csv +193 -0
- package/template/.issflow/skills/ui-ux-pro-max/data/ux-guidelines.csv +120 -0
- package/template/.issflow/skills/ui-ux-pro-max/references/pro-rules.md +117 -0
- package/template/.issflow/skills/ui-ux-pro-max/references/quick-reference.md +256 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/__pycache__/reasoning_contract.cpython-313.pyc +0 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/core.py +993 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/design_system.py +1668 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/reasoning_contract.py +123 -0
- package/template/.issflow/skills/ui-ux-pro-max/scripts/search.py +177 -0
- package/template/.issflow/skills/ux-design/SKILL.md +3 -0
- package/template/.issflow/templates/UX-PACK-template.md +1 -0
- package/template/.issflow/templates/proposal.html +129 -38
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ The portable kit (every tool) in `<project>/.issflow/`:
|
|
|
32
32
|
|
|
33
33
|
- `agents/` — planner · researcher · implementer · test-author · debugger · e2e-runner · synthesizer
|
|
34
34
|
- `commands/` — `/overview` `/feature` `/goal` `/propose` `/phase` `/sprint` `/ui-audit` `/qa-audit` `/security-audit` `/release` `/uat` `/change-request` `/replan` `/quick` `/synthesize` `/runbook` `/store-wisdom` `/log-issue` `/log-decision` `/unstuck`
|
|
35
|
-
- `skills/` — caveman · grill-me · karpathy-guidelines · ux-design · security · code-standards
|
|
35
|
+
- `skills/` — caveman · grill-me · karpathy-guidelines · ux-design · ui-ux-pro-max · security · code-standards
|
|
36
36
|
- `hooks/` — session-start · context-guard · plan-gate (rule-13 enforcement) · pre-compact · subagent-stop · feature-gate (Stop gate for `/feature`, artifact-verified)
|
|
37
37
|
- `istartsoft-flow/METHODOLOGY.md` — the full methodology (single source of truth)
|
|
38
38
|
|
package/bin/cli.js
CHANGED
|
@@ -227,8 +227,8 @@ function agentsMd() {
|
|
|
227
227
|
'`/change-request` · `/replan` · `/synthesize` · `/runbook` · `/store-wisdom` ·',
|
|
228
228
|
'`/log-issue` · `/log-decision` · `/unstuck`', '',
|
|
229
229
|
'## Skills — `.issflow/skills/` (loaded on demand)', '',
|
|
230
|
-
'caveman · grill-me · karpathy-guidelines · ux-design ·
|
|
231
|
-
'support-triage', '',
|
|
230
|
+
'caveman · grill-me · karpathy-guidelines · ux-design · ui-ux-pro-max · security ·',
|
|
231
|
+
'code-standards · support-triage', '',
|
|
232
232
|
'## Autonomy', '',
|
|
233
233
|
'Planning (`/overview` grill + plan approval) always asks — that input is cheap.',
|
|
234
234
|
'**AUTO (default)** governs the DEV loop: follow the plan, decide + log + continue,',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-issflow",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Scaffold the iStartSoftFlow AI-coding workflow into a project. Stack-agnostic, tool-agnostic (Claude Code, Codex, Cursor, Gemini, Aider), non-destructive.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-issflow": "bin/cli.js"
|
|
@@ -14,7 +14,7 @@ This directory is the **portable workflow kit** (tool-agnostic). Every
|
|
|
14
14
|
|------|------|
|
|
15
15
|
| `agents/` | Fresh-context workers (planner, researcher, implementer, …) |
|
|
16
16
|
| `commands/` | Procedures — Default: `/overview` `/feature` `/quick`; Advanced: `/propose` `/design` `/support` … |
|
|
17
|
-
| `skills/` | On-demand cookbooks (ux-design, security, support-triage, …) |
|
|
17
|
+
| `skills/` | On-demand cookbooks (ux-design, ui-ux-pro-max, security, support-triage, …) |
|
|
18
18
|
| `hooks/` | Lifecycle enforcement scripts |
|
|
19
19
|
| `istartsoft-flow/` | METHODOLOGY.md — every hard rule lives here once |
|
|
20
20
|
| `templates/` | Proposal / UX pack / architecture / CR / FEATURE / automation |
|
|
@@ -77,7 +77,8 @@ Show me CR-<n> (impact + price delta + new total — no rate). **STOP for approv
|
|
|
77
77
|
(commercial gate — always interactive).
|
|
78
78
|
- **Approved** -> set CR status `approved`; bump PROPOSAL.md to a new version (vN+1)
|
|
79
79
|
with the delta folded in (**totals only**); re-render `docs/proposal.html` from it
|
|
80
|
-
(same
|
|
80
|
+
(same `/propose` package rows + screen appendix — do not dump every PLAN phase
|
|
81
|
+
onto the sign table; same template + language; no contingency note / rate); then dispatch `/replan` to
|
|
81
82
|
apply the phase changes to PLAN.md (done phases stay frozen). Update STATE.md.
|
|
82
83
|
NOTE: `/replan` reverts PLAN.md to `> Approval: PENDING` and re-runs the
|
|
83
84
|
PLAN-APPROVAL gate (hard rule 13) — the commercial CR sign-off is SEPARATE from
|
|
@@ -24,13 +24,19 @@ and STOP. Write nothing.
|
|
|
24
24
|
Target: `$ARGUMENTS` → `ux` | `arch` | `both` (default **both**).
|
|
25
25
|
|
|
26
26
|
## STEP 1 — UX PACK (if ux|both)
|
|
27
|
-
1. Apply `ux-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
1. Apply `ui-ux-pro-max` (visual direction): run the kit engine
|
|
28
|
+
`.issflow/skills/ui-ux-pro-max/scripts/search.py --design-system` from
|
|
29
|
+
OVERVIEW product + industry. Fold into UX-PACK tokens — do not create a
|
|
30
|
+
parallel `design-system/` SoT. If Python 3 is missing, ask me to install it
|
|
31
|
+
(do not install tools yourself).
|
|
32
|
+
2. Apply `ux-design` skill (authoring mode): wireframe baseline + cookbook direction.
|
|
33
|
+
Catalogue output must still pass the cookbook (tokens, a11y, no emoji icons).
|
|
34
|
+
3. Scaffold or update `docs/UX-PACK.md` from `.issflow/templates/UX-PACK-template.md`.
|
|
35
|
+
4. Fill flows, screen inventory, tokens/frame, a11y notes from OVERVIEW + PLAN.
|
|
36
|
+
5. SHOW me UX-PACK.md. **STOP for approval.**
|
|
37
|
+
6. On approve: stamp `> Approval: approved <date> v<n>`; set `design: approved <date>`
|
|
32
38
|
in STATE.md; HISTORY line `design v<n> approved`.
|
|
33
|
-
|
|
39
|
+
7. On change request: revise and re-show; header stays PENDING.
|
|
34
40
|
|
|
35
41
|
## STEP 2 — ARCHITECTURE (if arch|both)
|
|
36
42
|
1. Dispatch `researcher` (DESIGN) only if open unknowns remain; else use OVERVIEW.
|
|
@@ -119,6 +119,8 @@ for the slice using the declared E2E runner (it brings the test stack up/down
|
|
|
119
119
|
itself). Then run the `ux-design` cookbook + wireframe check on the new UI
|
|
120
120
|
(hard rule 9): the UI must match the wireframe frame and pass the cookbook
|
|
121
121
|
(tokens, a11y/WCAG AA, states, breakpoints). A `ux-design` BLOCK is a GATE FAIL.
|
|
122
|
+
Do not re-run `ui-ux-pro-max` `--design-system` here — the look is locked in the
|
|
123
|
+
approved UX pack.
|
|
122
124
|
Non-frontend phase -> skip §3c.
|
|
123
125
|
|
|
124
126
|
PHASE GATE (rule 5) -> go to §4/§5/§6 (see GATE below).
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Turn approved requirements + tech stack into a client proposal — scope,
|
|
2
|
+
description: Turn approved requirements + tech stack into a client proposal — scope, packages, effort + cost estimate, timeline, assumptions, screen appendix, and a sign-off gate. Run after /overview, before building.
|
|
3
3
|
argument-hint: [optional: rate / budget / constraints · "dry-run" to preview]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Caveman ULTRA mode. You are the ORCHESTRATOR.
|
|
7
7
|
|
|
8
|
-
Purpose: produce `docs/PROPOSAL.md` — WHAT we build, in what
|
|
8
|
+
Purpose: produce `docs/PROPOSAL.md` — WHAT we build, in what packages, how long, how
|
|
9
9
|
much, and on what assumptions — for the client to approve BEFORE any build starts.
|
|
10
10
|
A proposal is a commercial gate: always interactive (both AUTO and GUIDED).
|
|
11
11
|
|
|
12
12
|
DRY-RUN: if `$ARGUMENTS` contains `dry-run`/`--dry-run`, do the full analysis but
|
|
13
|
-
EXECUTE NOTHING — print the ACTION PLAN (scope, phase breakdown,
|
|
14
|
-
and STOP. No PROPOSAL.md / proposal.html is written.
|
|
13
|
+
EXECUTE NOTHING — print the ACTION PLAN (scope, phase breakdown, package collapse,
|
|
14
|
+
rough estimate) and STOP. No PROPOSAL.md / proposal.html is written.
|
|
15
|
+
(METHODOLOGY → Dry-run.)
|
|
15
16
|
|
|
16
17
|
## PRE-FLIGHT
|
|
17
18
|
Read `docs/OVERVIEW.md` (scope, stack, success criteria) and `docs/PRD.md` if
|
|
@@ -28,12 +29,15 @@ List the deliverables (features / epics) from OVERVIEW / PRD. Mark each
|
|
|
28
29
|
**in-scope** or **out-of-scope** explicitly — naming out-of-scope items now is what
|
|
29
30
|
prevents silent scope creep (and grounds change-order re-pricing later).
|
|
30
31
|
|
|
31
|
-
## STEP 2 — PHASE BREAKDOWN
|
|
32
|
+
## STEP 2 — PHASE BREAKDOWN (internal)
|
|
32
33
|
Derive the vertical-slice phases (or read `docs/PLAN.md` if it exists). Size each:
|
|
33
34
|
- complexity: **S | M | L | XL**
|
|
34
35
|
- effort: an ideal-days RANGE (e.g. 2–3d), + story points if your team uses them
|
|
35
36
|
- risk / unknowns: what could move the estimate
|
|
36
37
|
|
|
38
|
+
Keep this sizing for the **chat math**. Do **not** dump every PLAN phase onto the
|
|
39
|
+
client table — collapse into packages in STEP 5.
|
|
40
|
+
|
|
37
41
|
## STEP 3 — ESTIMATE (ask rate · never invent a kit default)
|
|
38
42
|
Estimation config is **project-private**. The public kit ships **no** default rate
|
|
39
43
|
card and **no** sample salary/rate numbers — rates are confidential.
|
|
@@ -46,22 +50,35 @@ card and **no** sample salary/rate numbers — rates are confidential.
|
|
|
46
50
|
3. Optional: store the answered rate/contingency in a **project-local** file the
|
|
47
51
|
team keeps private (e.g. `docs/ESTIMATE.local.md` gitignored, or OVERVIEW fields
|
|
48
52
|
that never get published). Never commit personal rate/salary into a public kit
|
|
49
|
-
or template.
|
|
53
|
+
or template. If you create `docs/ESTIMATE.local.md`, add it to the project's
|
|
54
|
+
`.gitignore` when it is not already listed.
|
|
50
55
|
4. Configurable fields (ask or read — no invented kit defaults for money):
|
|
51
56
|
- **unit:** ideal-days | hours | story-points | both
|
|
52
57
|
- **rate card:** blended OR per-role (senior / mid / junior…)
|
|
53
58
|
- **currency:** as declared (ask if unset; THB is common for Thai clients)
|
|
54
59
|
- **contingency:** % buffer for unknowns (ask if unset)
|
|
55
|
-
- **payment
|
|
60
|
+
- **payment split:** e.g. 30/40/30 — **ASK once; do not guess** a ratio
|
|
56
61
|
- **language:** rendered doc language (default = project language)
|
|
57
62
|
|
|
63
|
+
Ask these **once each** if unset (commercial input — do not invent kit defaults):
|
|
64
|
+
|
|
65
|
+
- **Hours columns:** does the client table show estimated hours next to billed
|
|
66
|
+
hours? If yes → columns ประเมิน / คิดเงิน / ยอด. If no / unset → ชุดงาน + ยอด
|
|
67
|
+
only. Hours are effort, not a rate — still never print the rate.
|
|
68
|
+
- **Managed hosting / database:** is platform hosting+database **in** the quoted
|
|
69
|
+
total? If **not included**, write clearly on page 1 (out of scope + exclusions)
|
|
70
|
+
that the client pays the provider directly. A one-line exclusion is enough —
|
|
71
|
+
do **not** paste vendor SKU/price tables into the kit or invent list prices.
|
|
72
|
+
- **Bank:** include a bank block **only if the human provides** account details
|
|
73
|
+
in this project. No kit default. If none given, omit the column.
|
|
74
|
+
|
|
58
75
|
Compute cost per phase, then a **Total as a RANGE (low–high)** that already folds
|
|
59
76
|
in contingency. Show the math **in chat to the human** (rate × effort + contingency).
|
|
60
77
|
**Timeline:** phases in dependency order → calendar estimate (note parallelism).
|
|
61
78
|
|
|
62
79
|
### CLIENT-DOC RULE (hard — commercial privacy)
|
|
63
80
|
Client-facing artifacts (`docs/PROPOSAL.md` client sections, `docs/proposal.html`,
|
|
64
|
-
and any PDF/print) MUST show **totals and
|
|
81
|
+
and any PDF/print) MUST show **totals and package costs only**.
|
|
65
82
|
**Never** print: hourly/day rates, rate cards, contingency %, “incl. X% buffer”,
|
|
66
83
|
salary, or the estimate math. Contingency is already inside the numbers — do not
|
|
67
84
|
label it on the client page.
|
|
@@ -71,38 +88,83 @@ List every assumption the estimate rests on (infra provided, third-party/licence
|
|
|
71
88
|
costs excluded, content/design provided, etc.). These are the baseline that
|
|
72
89
|
change-orders re-price against.
|
|
73
90
|
|
|
91
|
+
If hosting/database is not in the quote, the exclusion **must** say the client
|
|
92
|
+
pays the provider directly.
|
|
93
|
+
|
|
74
94
|
## STEP 5 — WRITE + RENDER
|
|
95
|
+
Collapse the internal PLAN phases into **3–6 client packages / sprints** that a
|
|
96
|
+
non-engineer can read. PLAN may have any number of phases; the sign page does not
|
|
97
|
+
list them all.
|
|
98
|
+
|
|
99
|
+
Payment copy = short **software delivery events** tied to those packages, e.g.
|
|
100
|
+
deposit on sign-off then work starts · when the main package is usable · when
|
|
101
|
+
production is up within the scope on this quote. **Never** construction wording
|
|
102
|
+
(% structure, house handover, site prep / equipment staging).
|
|
103
|
+
|
|
75
104
|
1. Write `docs/PROPOSAL.md` — the SOURCE OF TRUTH (versioned v1 + date). This is
|
|
76
105
|
what `CHANGES.md` re-prices against. **Client-safe** body (no rate / no
|
|
77
106
|
contingency %):
|
|
78
107
|
```
|
|
79
108
|
# Proposal — <project> (v1, <date>)
|
|
80
109
|
## Scope — in-scope: … | out-of-scope: …
|
|
81
|
-
##
|
|
110
|
+
## Packages — table: package | cost
|
|
111
|
+
— or package | estimated | billed | cost (only if hours columns requested)
|
|
82
112
|
## Total — <low>–<high> ← totals only; no “incl. X% contingency”
|
|
83
113
|
## Timeline — <estimate>, dependency order
|
|
84
114
|
## Assumptions — …
|
|
85
|
-
## Exclusions — …
|
|
86
|
-
## Payment —
|
|
115
|
+
## Exclusions — … (hosting/database: client pays provider, if that was the answer)
|
|
116
|
+
## Payment — software delivery events + the asked split (if any)
|
|
117
|
+
## Screens — docs/proposal.html pages 2–N (or “none — no UI in scope”)
|
|
118
|
+
— not pixel-binding; sign page 1 only; page count must match the HTML
|
|
87
119
|
## Sign-off — approved by: ___ date: ___ version: v1
|
|
88
120
|
```
|
|
121
|
+
Point the Screens section at the **real** HTML page range after render
|
|
122
|
+
(page 1 = sign · remaining sheets = screen appendix). Keep PROPOSAL.md and
|
|
123
|
+
`docs/proposal.html` in sync.
|
|
89
124
|
If you keep an internal rate memo, put it in a **separate private** file (not
|
|
90
125
|
the client PROPOSAL.md / HTML). PROPOSAL.md itself stays client-safe so it can
|
|
91
126
|
be shared.
|
|
92
127
|
|
|
93
|
-
2. RENDER a client-facing `docs/proposal.html` from `.issflow/templates/proposal.html
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
128
|
+
2. RENDER a client-facing `docs/proposal.html` from `.issflow/templates/proposal.html`
|
|
129
|
+
(Claude Code also mirrors this under `.claude/templates/` — same file). Copy it,
|
|
130
|
+
replace every `{{PLACEHOLDER}}`, and fill the CONTENT in the declared language
|
|
131
|
+
(the section labels are already bilingual TH / EN).
|
|
132
|
+
|
|
133
|
+
**Page 1 = the only signable A4 sheet.** Be terse (≈ 3–6 package rows, ≈ 4
|
|
134
|
+
assumptions, short scope items). If page 1 overflows A4, **trim the sign-page
|
|
135
|
+
copy first** — never spill the sign block onto page 2. The screen appendix may
|
|
136
|
+
grow extra `.sheet` pages.
|
|
137
|
+
|
|
138
|
+
Fill `{{PACKAGE_TABLE}}` with the matching header:
|
|
139
|
+
- default: ชุดงาน / Packages + Cost
|
|
140
|
+
- if hours columns requested: ประเมิน / คิดเงิน / ยอด (and EN equivalents)
|
|
141
|
+
Fill `{{BANK_COL}}` only when the human gave bank details; otherwise leave
|
|
142
|
+
empty so payment takes the full width.
|
|
143
|
+
Fill `{{COMPANY}}` / `{{COMPANY_TAGLINE}}` / `{{LOGO}}` from the ISSUING
|
|
144
|
+
company's brand declared in OVERVIEW (or ask once) — white-label, never
|
|
145
|
+
hardcode the kit's name. Leave `{{TOTAL_NOTE}}` empty or a non-rate line
|
|
100
146
|
(e.g. currency / “ราคารวมทั้งโครงการ”) — **never** a contingency % or rate.
|
|
147
|
+
Set `{{PAGE_FOOTER}}` to the real page count (e.g. sign page 1 of N).
|
|
148
|
+
|
|
149
|
+
**Screen appendix (required when UI is in scope)** — same `docs/proposal.html`,
|
|
150
|
+
not a second signable file. After page 1's page-break, emit `.sheet.screens`
|
|
151
|
+
into `{{SCREEN_SHEETS}}`:
|
|
152
|
+
- Build frames from **PLAN + OVERVIEW** modules/capabilities (empty chrome is
|
|
153
|
+
fine). Do **not** wait for UX-PACK (that gate is after sign-off).
|
|
154
|
+
- Cover **every** in-scope module and capability — not a 4–8 frame sampler.
|
|
155
|
+
- Group sheets by package; module bar on each sheet; numbered short captions
|
|
156
|
+
under frames.
|
|
157
|
+
- Label: not pixel-binding. Sign on page 1 only. **No emoji as icons.**
|
|
158
|
+
- Use the template's desk/phone/sidebar/card/table CSS. Do not invent a
|
|
159
|
+
parallel stylesheet.
|
|
160
|
+
|
|
101
161
|
Print-ready (Ctrl/Cmd-P → A4 → Save as PDF). Keep PROPOSAL.md and proposal.html
|
|
102
162
|
in sync.
|
|
103
163
|
|
|
104
164
|
## STEP 6 — SIGN-OFF GATE
|
|
105
165
|
Show me the proposal. **STOP for approval** (commercial gate — always interactive).
|
|
166
|
+
Do **not** run `/design` or `/phase` yourself.
|
|
167
|
+
|
|
106
168
|
On approval: record the approved version + date in PROPOSAL.md and STATE.md, and
|
|
107
169
|
append a HISTORY line `proposal v<n> approved (<total>)`.
|
|
108
170
|
|
|
@@ -34,10 +34,13 @@
|
|
|
34
34
|
|
|
35
35
|
Caveman ULTRA mode always on. Apply the `karpathy-guidelines` skill (engineering
|
|
36
36
|
discipline) on every coding and debugging task. Apply the `ux-design` skill (the UX
|
|
37
|
-
cookbook + wireframe baseline) on every UI-facing task.
|
|
38
|
-
|
|
39
|
-
and
|
|
40
|
-
|
|
37
|
+
cookbook + wireframe baseline) on every UI-facing task. When **authoring** a new
|
|
38
|
+
visual direction (`/design`, or no approved UX-PACK yet), apply `ui-ux-pro-max`
|
|
39
|
+
first and fold the look into the UX pack — do not re-roll styles at phase CLOSE.
|
|
40
|
+
Apply the `security` skill (the Secure SDLC cookbook) at design (threat model),
|
|
41
|
+
while coding (secure coding), and before any deploy. Apply the `code-standards`
|
|
42
|
+
skill (naming per the language's own idiom + the declared architecture) on every
|
|
43
|
+
coding task.
|
|
41
44
|
|
|
42
45
|
-----
|
|
43
46
|
|
|
@@ -109,10 +112,12 @@ from idea to closeout:
|
|
|
109
112
|
the proposal estimates *these* phases.
|
|
110
113
|
5. **Proposal & estimate (OPTIONAL — depends on the job)** — for client / quoted
|
|
111
114
|
work, `/propose` reads OVERVIEW + PLAN → `docs/PROPOSAL.md` + a rendered
|
|
112
|
-
`docs/proposal.html`: scope,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
`docs/proposal.html`: scope, **package** rows on the signable A4 page (not every
|
|
116
|
+
PLAN phase), effort + cost estimate, timeline, assumptions, and a screen
|
|
117
|
+
appendix in the **same HTML** after a page-break, with a **client sign-off gate**
|
|
118
|
+
before build. **Ask rate + contingency in chat** when missing — the kit stores
|
|
119
|
+
**no** default rate (rates are confidential). Client docs show **totals only**
|
|
120
|
+
(never rate or contingency %).
|
|
116
121
|
Internal / personal projects skip straight from plan to build (and may set
|
|
117
122
|
design/architecture gates to `n/a`).
|
|
118
123
|
6. **Design + architecture gates (rule 15 — after proposal, before build)** —
|
|
@@ -153,7 +158,7 @@ those gates, never the plan, the money, or the design/arch frame.
|
|
|
153
158
|
| House role | Kit surface |
|
|
154
159
|
|------------|-------------|
|
|
155
160
|
| BA / PM | `/overview` grill · `grill-me` · PLAN / PROPOSAL / CR gates |
|
|
156
|
-
| UX / UI | `/design` (UX pack) · `ux-design`
|
|
161
|
+
| UX / UI | `/design` (UX pack) · `ui-ux-pro-max` (look) · `ux-design` (frame + gate) · `/ui-audit` · rule 9 CLOSE |
|
|
157
162
|
| Architect | `/design` (ARCHITECTURE) · `researcher` DESIGN · `code-standards` · `/log-decision` |
|
|
158
163
|
| Developer | `implementer` · `/phase` · `/feature` · `/quick` |
|
|
159
164
|
| QA | `test-author` · `e2e-runner` · `/qa-audit` · `/uat` |
|
|
@@ -620,10 +625,12 @@ the KB. The kit works normally without a KB.
|
|
|
620
625
|
## File contract
|
|
621
626
|
|
|
622
627
|
- `docs/PRD.md` — crystallised product requirements (or your BMAD/iSSM stories).
|
|
623
|
-
- `docs/PROPOSAL.md` — scope +
|
|
624
|
-
+ sign-off. Versioned; client-safe commercial
|
|
628
|
+
- `docs/PROPOSAL.md` — scope + package rows + effort/cost totals + assumptions
|
|
629
|
+
+ screen-appendix page range + sign-off. Versioned; client-safe commercial
|
|
630
|
+
baseline (no rate / contingency %).
|
|
625
631
|
- `docs/proposal.html` — the client-facing proposal, rendered from PROPOSAL.md via
|
|
626
|
-
`.issflow/templates/proposal.html`, in the project language;
|
|
632
|
+
`.issflow/templates/proposal.html`, in the project language; page 1 is the
|
|
633
|
+
signable A4 sheet, then screen frames in the same file (print A4).
|
|
627
634
|
- `docs/UX-PACK.md` · `docs/ARCHITECTURE.md` — pre-build design/arch frames
|
|
628
635
|
(rule 15); templates under `.issflow/templates/`.
|
|
629
636
|
- `.issflow/templates/` — document templates (proposal.html, UX-PACK, ARCHITECTURE,
|
|
@@ -687,6 +694,8 @@ the KB. The kit works normally without a KB.
|
|
|
687
694
|
`scripts/regression.sh` (default mock; `--real` runs the real corpus).
|
|
688
695
|
- `.issflow/skills/ux-design/` — the UX cookbook + wireframe baseline (read on
|
|
689
696
|
demand for any UI work).
|
|
697
|
+
- `.issflow/skills/ui-ux-pro-max/` — visual direction for `/design` (vendored
|
|
698
|
+
search engine + catalogue; MIT upstream).
|
|
690
699
|
- `.issflow/skills/security/` — the Secure SDLC cookbook + threat-modeling /
|
|
691
700
|
secure-coding / pentest / standards references (read on demand for security work).
|
|
692
701
|
- `.issflow/skills/code-standards/` — naming-per-language + architecture cookbook
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Next Level Builder
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-ux-pro-max
|
|
3
|
+
description: >
|
|
4
|
+
Design intelligence for NEW visual direction — styles, palettes, type, landing
|
|
5
|
+
patterns. Use when authoring `/design` UX-PACK, setting OVERVIEW UX direction,
|
|
6
|
+
or the project has no approved UX pack yet. Triggers: "/design", "UX pack",
|
|
7
|
+
"visual direction", "design system", "palette", "typography", "landing pattern",
|
|
8
|
+
"ทิศทางดีไซน์", "โทนสี". Skip for backend, and skip re-rolling styles when an
|
|
9
|
+
approved UX-PACK already exists (follow that frame; validate with ux-design).
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ui-ux-pro-max — visual direction (authoring)
|
|
13
|
+
|
|
14
|
+
Vendored from [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill)
|
|
15
|
+
(MIT — see `LICENSE.upstream` + `UPSTREAM.md`). Engine lives **in this folder**.
|
|
16
|
+
|
|
17
|
+
`ux-design` remains the **gate** (hard rule 9 — wireframe + cookbook). This skill
|
|
18
|
+
picks the **look**. Do not let a catalogue restyle override an approved UX pack.
|
|
19
|
+
|
|
20
|
+
## When
|
|
21
|
+
|
|
22
|
+
- `/design` STEP 1 (author the UX pack) — **required** when UI is in scope.
|
|
23
|
+
- First visual direction (OVERVIEW UX / no approved `docs/UX-PACK.md`).
|
|
24
|
+
- Human explicitly asks to restyle — then re-run and wait for UX-PACK re-approve.
|
|
25
|
+
|
|
26
|
+
**Not** at `/phase` CLOSE. CLOSE = `ux-design` cookbook against the approved pack.
|
|
27
|
+
Do not run `--design-system` again per slice.
|
|
28
|
+
|
|
29
|
+
## Engine
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
python3 .issflow/skills/ui-ux-pro-max/scripts/search.py
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If this project's kit was mirrored for Claude Code, the same files exist under
|
|
36
|
+
`.claude/skills/ui-ux-pro-max/` — use whichever path is present.
|
|
37
|
+
|
|
38
|
+
Try `python3`, then `python`, then `py -3`. Stdlib only. If Python 3 is missing,
|
|
39
|
+
**ask the human** to install it (python.org / Homebrew / apt). Do not install
|
|
40
|
+
Python or npm yourself. Do not tell them to run `uipro init` — the catalogue
|
|
41
|
+
is already in the kit.
|
|
42
|
+
|
|
43
|
+
On-demand detail: `references/quick-reference.md`, `references/pro-rules.md`.
|
|
44
|
+
|
|
45
|
+
## Authoring workflow
|
|
46
|
+
|
|
47
|
+
1. Product / industry / keywords from OVERVIEW + PLAN (2–5 terms). Detect stack
|
|
48
|
+
from the project; never assume HTML+Tailwind.
|
|
49
|
+
2. Run:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
python3 .issflow/skills/ui-ux-pro-max/scripts/search.py "<product> <industry> <keywords>" --design-system -p "<project>" -f markdown
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Retry once if empty. Do not persist unverified output. Do **not** pass
|
|
56
|
+
`--persist` / do **not** write a parallel `design-system/` tree — fold into
|
|
57
|
+
`docs/UX-PACK.md` → Frame & tokens (style, palette, type, effects,
|
|
58
|
+
anti-patterns). Kit SoT stays UX-PACK.
|
|
59
|
+
3. Optional domain search only for a named gap:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
python3 .issflow/skills/ui-ux-pro-max/scripts/search.py "<query>" --domain ux|icons|chart|typography|style|color|landing
|
|
63
|
+
python3 .issflow/skills/ui-ux-pro-max/scripts/search.py "<query>" --stack <detected>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
4. Then apply `ux-design` authoring (wireframe + cookbook). Catalogue must still
|
|
67
|
+
pass: no emoji icons, tokens not raw hex in components, WCAG AA.
|
|
68
|
+
|
|
69
|
+
If UX-PACK is already **approved**, read it and stop — unless the human asked to
|
|
70
|
+
change the look.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
No,Category,Issue,Keywords,Platform,Description,Do,Don't,Code Example Good,Code Example Bad,Severity
|
|
2
|
+
1,Accessibility,Icon Button Labels,icon button accessibilityLabel,iOS/Android/React Native,Icon-only buttons must expose an accessible label,Set accessibilityLabel or label prop on icon buttons,Icon buttons without accessible names,"<Pressable accessibilityLabel=""Close""><XIcon /></Pressable>",<Pressable><XIcon /></Pressable>,Critical
|
|
3
|
+
2,Accessibility,Form Control Labels,form input label accessibilityLabel,iOS/Android/React Native,All inputs must have a visible label and an accessibility label,Pair Text label with input and set accessibilityLabel,Inputs with placeholder only,"<View><Text>Email</Text><TextInput accessibilityLabel=""Email address"" /></View>","<TextInput placeholder=""Email"" /></View>",Critical
|
|
4
|
+
3,Accessibility,Role & Traits,accessibilityRole accessibilityTraits,iOS/Android/React Native,Interactive elements must expose correct roles/traits,Use accessibilityRole/button/link/checkbox etc.,Rely on generic views with no roles,"<Pressable accessibilityRole=""button"">Submit</Pressable>",<View onTouchStart={submit}>Submit</View>,High
|
|
5
|
+
4,Accessibility,Dynamic Updates,accessibilityLiveRegion announce,iOS/Android/React Native,Async status updates should be announced to screen readers,Use accessibilityLiveRegion or announceForAccessibility,Update text silently with no announcement,"<Text accessibilityLiveRegion=""polite"">{status}</Text>",<Text>{status}</Text>,Medium
|
|
6
|
+
5,Accessibility,Decorative Icons,accessible={false} importantForAccessibility,iOS/Android/React Native,Decorative icons should be hidden from screen readers,Mark decorative icons as not accessible,Have screen reader read every icon,"<Icon accessible={false} importantForAccessibility=""no"" />",<Icon />,Medium
|
|
7
|
+
6,Touch,Touch Target Size,touch target size platform runtime arbitration iOS 44pt Android 48dp web 24 CSS px React Native hitSlop,iOS/Android/React Native,Native targets use 44pt on iOS and 48dp on Android; web WCAG 2.2 has a separate 24 by 24 CSS px minimum with exceptions,Select 44pt for iOS and 48dp for Android at runtime; evaluate web targets separately against WCAG 2.5.8 and its exceptions,"Collapse iOS 44pt, Android 48dp, and web 24 CSS px into one cross-platform number","Platform.select({ ios: 44, android: 48 }); // web: evaluate 24 CSS px + WCAG exceptions",<Pressable><Icon size={16} /></Pressable>,Critical
|
|
8
|
+
7,Touch,Touch Spacing,touch spacing gap 8px,iOS/Android/React Native,Adjacent touch targets need enough spacing,Keep at least 8dp spacing between touchables,Cluster many buttons with no gap,<View style={{ gap: 8 }}><Button ... /><Button ... /></View>,<View><Button ... /><Button ... /></View>,Medium
|
|
9
|
+
8,Touch,Gesture Conflicts,scroll swipe back gesture,iOS/Android/React Native,Custom gestures must not break system scroll/back,Reserve horizontal swipes for carousels,Full-screen custom swipe conflicting with back,HorizontalPager inside vertical ScrollView,PanResponder on full screen blocking back,High
|
|
10
|
+
9,Navigation,Back Behavior,back handler navigation stack,iOS/Android/React Native,Back navigation should be predictable and preserve state,Use navigation.goBack and keep screen state,Reset stack or exit app unexpectedly,onPress={() => navigation.goBack()},BackHandler.exitApp() on first press,Critical
|
|
11
|
+
10,Navigation,Bottom Tabs,tab bar max items,iOS/Android/React Native,Bottom tab bar should have at most 5 primary items,Use 3–5 tabs and move extras to More/Settings,Overloaded tab bar with many icons,Home/Explore/Profile/Settings,Home/Explore/Shop/Cart/Profile/Settings/More,Medium
|
|
12
|
+
11,Navigation,Modal Escape,modal dismiss close affordance,iOS/Android/React Native,Modals/sheets must have clear close actions,Provide close button and swipe-down where platform expects,Trapping users in modal with no obvious exit,"<Modal><Button title=""Close"" onPress={onClose} /></Modal>",<Modal><View>{children}</View></Modal>,High
|
|
13
|
+
12,State,Preserve Screen State,navigation preserve state,iOS/Android/React Native,Returning to a screen should restore its scroll and form state,Keep components mounted or persist state,Reset list scroll and form inputs on every visit,<Tab.Navigator screenOptions={{ unmountOnBlur: false }}>,<Tab.Screen options={{ unmountOnBlur: true }} />,Medium
|
|
14
|
+
13,Feedback,Loading Indicators,activity indicator skeleton,iOS/Android/React Native,Show visible feedback during network operations,Use ActivityIndicator or skeleton for >300ms operations,Leave button and screen frozen,"{loading ? <ActivityIndicator /> : <Button title=""Save"" />}"," ""<Button title=""""Save"""" onPress={submit} /> // no loading""",High
|
|
15
|
+
14,Feedback,Success Feedback,toast checkmark banner,iOS/Android/React Native,Confirm successful actions with brief feedback,Show toast/checkmark or banner,Complete actions silently with no confirmation,showToast('Saved successfully'),// silently update state only,Medium
|
|
16
|
+
15,Feedback,Error Feedback,inline error banner,iOS/Android/React Native,Show clear error messages near the problem,input-level error + summary banner,Only change border color with no explanation,<TextInput ... /><Text style={{color:'red'}}>{error}</Text>,<TextInput style={{borderColor:'red'}} />,High
|
|
17
|
+
16,Forms,Inline Validation,onBlur validation,iOS/Android/React Native,Validate inputs on blur or submit with clear messaging,Validate onBlur and onSubmit,Validate on every keystroke causing jank,onBlur={() => validateEmail(value)},onChangeText={v => validateEmail(v)} // every char,Medium
|
|
18
|
+
17,Forms,Keyboard Type,keyboardType returnKeyType,iOS/Android/React Native,Use appropriate keyboardType and returnKeyType,Match email/tel/number/search types,Use default keyboard for all inputs,"<TextInput keyboardType=""email-address"" />","<TextInput keyboardType=""default"" />",Medium
|
|
19
|
+
18,Forms,Auto Focus & Next,autoFocus blurOnSubmit onSubmitEditing,iOS/Android/React Native,Guide users through form fields with Next/Done flows,Use onSubmitEditing to focus next input,Force users to tap each field manually,onSubmitEditing={() => nextRef.current?.focus()},"// no onSubmitEditing, manual tap only",Low
|
|
20
|
+
19,Forms,Password Visibility,secureTextEntry toggle,iOS/Android/React Native,Allow toggling password visibility securely,Provide Show/Hide icon toggling secureTextEntry,Force users to type blind with no option,<TextInput secureTextEntry={secure} /><Icon onPress={toggle} />,<TextInput secureTextEntry /> // no toggle,Medium
|
|
21
|
+
20,Performance,Virtualize Long Lists,FlatList SectionList virtualization,iOS/Android/React Native,Use FlatList/SectionList for lists over ~50 items,Use keyExtractor and initialNumToRender appropriately,Render hundreds of items with ScrollView,<FlatList data={items} renderItem={...} />,<ScrollView>{items.map(renderItem)}</ScrollView>,High
|
|
22
|
+
21,Performance,Image Size & Cache,Image resize cache,iOS/Android/React Native,Use correctly sized and cached images,Use Image component with proper resizeMode and caching,Load full-resolution images everywhere,"<Image source={{uri}} resizeMode=""cover"" />",<Image source={require('4k.png')} /> // small avatar,Medium
|
|
23
|
+
22,Performance,Debounce High-Freq Events,debounce scroll search,iOS/Android/React Native,Debounce scroll/search callbacks to avoid jank,Wrap handlers with debounce/throttle,Run heavy logic on every event,onScroll={debouncedHandleScroll},onScroll={handleScrollHeavy},Medium
|
|
24
|
+
23,Animation,Duration & Easing,animation duration easing,iOS/Android/React Native,Micro-interactions should be 150–300ms with native-like easing,Use ease-out for enter/ease-in for exit,Use long or linear animations for core UI,"Animated.timing(..., { duration: 200, easing: Easing.out(Easing.quad) })","Animated.timing(..., { duration: 800, easing: Easing.linear })",Medium
|
|
25
|
+
24,Animation,Respect Reduced Motion,reduced motion accessibility,iOS/Android/React Native,Respect OS reduced-motion accessibility setting,Check reduceMotionEnabled and simplify animations,Ignore user motion preferences,if (reduceMotionEnabled) skipAnimation(),Always run complex parallax animations,Critical
|
|
26
|
+
25,Animation,Limited Continuous Motion,loop animation loader,iOS/Android/React Native,Reserve infinite animations for loaders and live data,Use looping only where necessary,Keep decorative elements looping forever,Animated.loop(loaderAnim) for ActivityIndicator,Animated.loop(bounceAnim) on background icons,Medium
|
|
27
|
+
26,Typography,Base Font Size,fontScale dynamic type,iOS/Android/React Native,Body text must be readable and support Dynamic Type,Use platform fontScale and at least 14–16pt base,Render critical text below 12pt,<Text style={{ fontSize: 16 }}>Body</Text>,<Text style={{ fontSize: 10 }}>Body</Text>,High
|
|
28
|
+
27,Typography,Dynamic Type Support,allowFontScaling adjustsFontSizeToFit,iOS/Android/React Native,Support system text scaling without breaking layout,Set allowFontScaling and test large text,Disable scaling on all text globally,<Text allowFontScaling>{label}</Text>,<Text allowFontScaling={false}>{label}</Text>,High
|
|
29
|
+
28,Safe Areas,Safe Area Insets,safe area insets notch gesture,iOS/Android/React Native,Content must not overlap notches/gesture bars,Wrap screens in SafeAreaView or apply insets,Place tappable content under system bars,<SafeAreaView style={{ flex: 1 }}><Screen /></SafeAreaView>,<View style={{ flex: 1 }}><Screen /></View>,High
|
|
30
|
+
29,Theming,Light/Dark Contrast,dark mode contrast tokens,iOS/Android/React Native,Ensure sufficient contrast in both light and dark themes,Use semantic tokens and test both themes,Reuse light-theme grays directly in dark mode,colors.textPrimaryDark = '#F9FAFB',colors.textPrimaryDark = '#9CA3AF' on '#111827',High
|
|
31
|
+
30,Anti-Pattern,No Gesture-Only Actions,gesture only hidden controls,iOS/Android/React Native,Don't rely solely on hidden gestures for core actions,Provide visible buttons in addition to gestures,Rely on swipe/shake only with no UI affordance,Swipe to delete + visible Delete button,Only shake device to undo with no UI,Critical
|
|
32
|
+
31,Accessibility,Dragging Alternatives,accessible drag interaction drag single pointer alternative keyboard drag alternative reorder resize move buttons React Native native runtime platform router arbitration iOS Android web,iOS/Android/React Native,React Native drag and reorder operations need a non-drag path selected for the active native runtime,Provide named Move up/down buttons or a position menu beside drag handles; route iOS and Android behavior through the runtime platform adapter,"Make drag, swipe, or a web-only pointer handler the only way to reorder native content","<Button title=""Move up"" onPress={() => moveItem(index, index - 1)} />",<DragHandle /> only,High
|
|
33
|
+
32,Forms,Authentication Reuse,password manager passkey paste redundant entry,iOS/Android/React Native,Authentication and multi-step flows should reuse prior values,Support password managers passkeys paste and prefilled confirmed values,Force users to retype credentials or the same data in one flow,"textContentType=""password"" autoComplete=""current-password""",onPaste disabled,Critical
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"verifiedAt": "2026-08-26",
|
|
4
|
+
"counts": {
|
|
5
|
+
"styles": {
|
|
6
|
+
"total": 88,
|
|
7
|
+
"searchable": 79,
|
|
8
|
+
"active": 50,
|
|
9
|
+
"supplemental": 29,
|
|
10
|
+
"deprecated": 9
|
|
11
|
+
},
|
|
12
|
+
"products": 192,
|
|
13
|
+
"palettes": 192,
|
|
14
|
+
"reasoningProfiles": 192,
|
|
15
|
+
"fontPairings": 74,
|
|
16
|
+
"googleFonts": 1934,
|
|
17
|
+
"curatedIcons": 105,
|
|
18
|
+
"upstreamPhosphorIcons": 1512,
|
|
19
|
+
"uxGuidelines": 119,
|
|
20
|
+
"motionPresets": 17,
|
|
21
|
+
"chartTypes": 25,
|
|
22
|
+
"stacks": 22,
|
|
23
|
+
"stackGuidelines": 1271
|
|
24
|
+
},
|
|
25
|
+
"snapshots": {
|
|
26
|
+
"google-fonts.csv": {
|
|
27
|
+
"sha256": "1c8c3b2ea1faf6a1012da463756def8b3889db33f2226f0343bb4daa80307d03"
|
|
28
|
+
},
|
|
29
|
+
"google-font-licenses.json": {
|
|
30
|
+
"sha256": "35688523f2955795caa1a47c53b83099e60c1708461476f9cc3a050cf3b0148a"
|
|
31
|
+
},
|
|
32
|
+
"icons.csv": {
|
|
33
|
+
"sha256": "50816c6012030178195a16ee481ebf58b47bd985d70e8ec58886cc83f6eddafc"
|
|
34
|
+
},
|
|
35
|
+
"phosphor-icons-upstream.json": {
|
|
36
|
+
"sha256": "2399325233b277b5c97a80e6a5e8941154f5d057beee4e7613db87c87d700236"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"promotionPolicy": {
|
|
40
|
+
"changedFamilySetRequiresExplicitApproval": true,
|
|
41
|
+
"relevanceGateRequired": true,
|
|
42
|
+
"unlicensedFamiliesExcluded": true
|
|
43
|
+
},
|
|
44
|
+
"pendingCandidates": [
|
|
45
|
+
{
|
|
46
|
+
"family": "Edu NSW ACT Cursive",
|
|
47
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"family": "Edu NSW ACT Hand Pre",
|
|
51
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"family": "Edu QLD Hand",
|
|
55
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"family": "Edu SA Hand",
|
|
59
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"family": "Edu VIC WA NT Hand",
|
|
63
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"family": "Edu VIC WA NT Hand Pre",
|
|
67
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"family": "Google Sans",
|
|
71
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"family": "Google Sans Flex",
|
|
75
|
+
"reason": "No exact-family METADATA.pb entry in the official google/fonts repository snapshot"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|