forgecommandline 0.8.0__py3-none-any.whl
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.
- forgecli/__init__.py +2 -0
- forgecli/ads.py +322 -0
- forgecli/agent.py +1093 -0
- forgecli/art.py +574 -0
- forgecli/attach.py +246 -0
- forgecli/brief.py +215 -0
- forgecli/browsercheck.py +99 -0
- forgecli/checkpoints.py +81 -0
- forgecli/city.py +833 -0
- forgecli/cli.py +1668 -0
- forgecli/config.py +194 -0
- forgecli/courier.py +177 -0
- forgecli/courier_data.py +164 -0
- forgecli/courier_hd.py +431 -0
- forgecli/courier_hd_data.bin +0 -0
- forgecli/courier_hd_data.py +19 -0
- forgecli/ghlogin.py +76 -0
- forgecli/github.py +54 -0
- forgecli/guards.py +403 -0
- forgecli/hooks.py +50 -0
- forgecli/httpapi.py +434 -0
- forgecli/images.py +110 -0
- forgecli/keys.py +152 -0
- forgecli/keyvault.py +320 -0
- forgecli/mcp.py +674 -0
- forgecli/memory.py +42 -0
- forgecli/openapi.py +331 -0
- forgecli/parallel.py +308 -0
- forgecli/prices.py +72 -0
- forgecli/procs.py +144 -0
- forgecli/providers.py +758 -0
- forgecli/quality.py +192 -0
- forgecli/repomap.py +78 -0
- forgecli/roster.py +227 -0
- forgecli/safety.py +93 -0
- forgecli/sandbox.py +83 -0
- forgecli/sessions.py +97 -0
- forgecli/skills.py +446 -0
- forgecli/tools.py +1184 -0
- forgecli/ui.py +860 -0
- forgecli/worktrees.py +79 -0
- forgecommandline-0.8.0.data/data/skills/commit/SKILL.md +14 -0
- forgecommandline-0.8.0.data/data/skills/debug/SKILL.md +17 -0
- forgecommandline-0.8.0.data/data/skills/explain/SKILL.md +14 -0
- forgecommandline-0.8.0.data/data/skills/init/SKILL.md +19 -0
- forgecommandline-0.8.0.data/data/skills/library/LICENSES/agent-skills-MIT.txt +21 -0
- forgecommandline-0.8.0.data/data/skills/library/LICENSES/wondelai-MIT.txt +23 -0
- forgecommandline-0.8.0.data/data/skills/library/README.md +9 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/accessibility-checklist.md +160 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/definition-of-done.md +67 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/observability-checklist.md +92 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/orchestration-patterns.md +370 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/performance-checklist.md +238 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/security-checklist.md +248 -0
- forgecommandline-0.8.0.data/data/skills/library/_references/testing-patterns.md +235 -0
- forgecommandline-0.8.0.data/data/skills/library/api-and-interface-design/SKILL.md +367 -0
- forgecommandline-0.8.0.data/data/skills/library/architecture-optimization/SKILL.md +279 -0
- forgecommandline-0.8.0.data/data/skills/library/architecture-optimization/references/artifact-templates.md +157 -0
- forgecommandline-0.8.0.data/data/skills/library/architecture-optimization/references/methods.md +87 -0
- forgecommandline-0.8.0.data/data/skills/library/awwwards-tier-web-application/SKILL.md +877 -0
- forgecommandline-0.8.0.data/data/skills/library/browser-testing-with-devtools/SKILL.md +317 -0
- forgecommandline-0.8.0.data/data/skills/library/ci-cd-and-automation/SKILL.md +390 -0
- forgecommandline-0.8.0.data/data/skills/library/code-review-and-quality/SKILL.md +398 -0
- forgecommandline-0.8.0.data/data/skills/library/code-simplification/SKILL.md +331 -0
- forgecommandline-0.8.0.data/data/skills/library/constraint-driven-development/SKILL.md +311 -0
- forgecommandline-0.8.0.data/data/skills/library/constraint-driven-development/references/floor-guard.md +182 -0
- forgecommandline-0.8.0.data/data/skills/library/context-engineering/SKILL.md +353 -0
- forgecommandline-0.8.0.data/data/skills/library/debugging-and-error-recovery/SKILL.md +300 -0
- forgecommandline-0.8.0.data/data/skills/library/deprecation-and-migration/SKILL.md +247 -0
- forgecommandline-0.8.0.data/data/skills/library/documentation-and-adrs/SKILL.md +297 -0
- forgecommandline-0.8.0.data/data/skills/library/doubt-driven-development/SKILL.md +243 -0
- forgecommandline-0.8.0.data/data/skills/library/frontend-ui-engineering/SKILL.md +340 -0
- forgecommandline-0.8.0.data/data/skills/library/git-workflow-and-versioning/SKILL.md +355 -0
- forgecommandline-0.8.0.data/data/skills/library/idea-refine/SKILL.md +193 -0
- forgecommandline-0.8.0.data/data/skills/library/idea-refine/examples.md +238 -0
- forgecommandline-0.8.0.data/data/skills/library/idea-refine/frameworks.md +99 -0
- forgecommandline-0.8.0.data/data/skills/library/idea-refine/refinement-criteria.md +113 -0
- forgecommandline-0.8.0.data/data/skills/library/idea-refine/scripts/idea-refine.sh +15 -0
- forgecommandline-0.8.0.data/data/skills/library/improve-code-quality/SKILL.md +275 -0
- forgecommandline-0.8.0.data/data/skills/library/improve-code-quality/references/artifact-templates.md +101 -0
- forgecommandline-0.8.0.data/data/skills/library/incremental-implementation/SKILL.md +249 -0
- forgecommandline-0.8.0.data/data/skills/library/interview-me/SKILL.md +235 -0
- forgecommandline-0.8.0.data/data/skills/library/observability-and-instrumentation/SKILL.md +238 -0
- forgecommandline-0.8.0.data/data/skills/library/performance-optimization/SKILL.md +267 -0
- forgecommandline-0.8.0.data/data/skills/library/performance-optimization/references/optimization-patterns.md +250 -0
- forgecommandline-0.8.0.data/data/skills/library/planning-and-task-breakdown/SKILL.md +257 -0
- forgecommandline-0.8.0.data/data/skills/library/remove-technical-debt/SKILL.md +203 -0
- forgecommandline-0.8.0.data/data/skills/library/remove-technical-debt/references/artifact-templates.md +79 -0
- forgecommandline-0.8.0.data/data/skills/library/security-and-hardening/SKILL.md +216 -0
- forgecommandline-0.8.0.data/data/skills/library/security-and-hardening/references/hardening-patterns.md +324 -0
- forgecommandline-0.8.0.data/data/skills/library/shipping-and-launch/SKILL.md +336 -0
- forgecommandline-0.8.0.data/data/skills/library/source-driven-development/SKILL.md +216 -0
- forgecommandline-0.8.0.data/data/skills/library/spec-driven-development/SKILL.md +259 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/SKILL.md +207 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/building-blocks.md +272 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/common-designs.md +257 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/database-scaling.md +295 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/estimation-numbers.md +250 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/four-step-process.md +286 -0
- forgecommandline-0.8.0.data/data/skills/library/system-design/references/reliability-operations.md +373 -0
- forgecommandline-0.8.0.data/data/skills/library/test-driven-development/SKILL.md +398 -0
- forgecommandline-0.8.0.data/data/skills/library/using-agent-skills/SKILL.md +192 -0
- forgecommandline-0.8.0.data/data/skills/review/SKILL.md +16 -0
- forgecommandline-0.8.0.data/data/skills/run/SKILL.md +17 -0
- forgecommandline-0.8.0.data/data/skills/security-review/SKILL.md +20 -0
- forgecommandline-0.8.0.data/data/skills/simplify/SKILL.md +18 -0
- forgecommandline-0.8.0.data/data/skills/test/SKILL.md +16 -0
- forgecommandline-0.8.0.data/data/skills/web-build/SKILL.md +25 -0
- forgecommandline-0.8.0.dist-info/METADATA +357 -0
- forgecommandline-0.8.0.dist-info/RECORD +113 -0
- forgecommandline-0.8.0.dist-info/WHEEL +5 -0
- forgecommandline-0.8.0.dist-info/entry_points.txt +2 -0
- forgecommandline-0.8.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,877 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Builds production-minded, full-featured web applications
|
|
3
|
+
with high-end, concept-led visual design. Use when creating or
|
|
4
|
+
upgrading SaaS products, dashboards, admin systems, marketplaces,
|
|
5
|
+
collaboration platforms, portals, data tools, interactive learning
|
|
6
|
+
products, or any browser-based software where users must complete real
|
|
7
|
+
workflows. Combines product discovery, application architecture,
|
|
8
|
+
frontend craft, backend integration, security, accessibility, testing,
|
|
9
|
+
and premium visual direction. Do not treat an application as a
|
|
10
|
+
marketing website or stop at attractive static screens.
|
|
11
|
+
name: awwwards-tier-web-application
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Awwwards-Tier Web Application Engineering
|
|
15
|
+
|
|
16
|
+
A product-building skill for applications that feel exceptionally
|
|
17
|
+
designed and work reliably. It preserves the visual ambition of high-end
|
|
18
|
+
creative websites while changing the unit of design from a page to a
|
|
19
|
+
complete product: user goals, workflows, data, permissions, states, and
|
|
20
|
+
dependable behavior.
|
|
21
|
+
|
|
22
|
+
## 0. North star
|
|
23
|
+
|
|
24
|
+
**Build software people can use, not screens people can admire.**
|
|
25
|
+
|
|
26
|
+
Every implementation must satisfy two independent standards:
|
|
27
|
+
|
|
28
|
+
1. **Product integrity:** the core workflows function end-to-end; data,
|
|
29
|
+
permissions, errors, and edge cases are handled honestly.
|
|
30
|
+
2. **Design integrity:** the interface has a clear concept, a
|
|
31
|
+
distinctive visual system, excellent hierarchy, considered motion,
|
|
32
|
+
and production-level finish.
|
|
33
|
+
|
|
34
|
+
A beautiful interface with dead buttons fails. A functional interface
|
|
35
|
+
that looks like a generic admin template also fails. Aim for both, in
|
|
36
|
+
that order: establish correctness and product coherence, then refine the
|
|
37
|
+
visual expression without compromising usability.
|
|
38
|
+
|
|
39
|
+
## 1. Execution protocol
|
|
40
|
+
|
|
41
|
+
Follow these phases in order. For an existing project, inspect before
|
|
42
|
+
changing anything.
|
|
43
|
+
|
|
44
|
+
### Phase 1 --- Understand the product
|
|
45
|
+
|
|
46
|
+
Establish: - **Audience:** who uses the product, their experience level,
|
|
47
|
+
devices, and context. - **Jobs to be done:** what each user comes to
|
|
48
|
+
accomplish. - **Roles and permissions:** what each role can view,
|
|
49
|
+
create, edit, delete, approve, export, or administer. - **Primary
|
|
50
|
+
workflows:** the start, meaningful steps, success state, and
|
|
51
|
+
failure/recovery path for each important task. - **Domain objects:** the
|
|
52
|
+
real entities the product manages and how they relate. -
|
|
53
|
+
**Constraints:** existing stack, codebase conventions, integrations,
|
|
54
|
+
performance, compliance, budget, and deployment environment.
|
|
55
|
+
|
|
56
|
+
Do not invent a large product from a vague brief. Make reasonable,
|
|
57
|
+
reversible assumptions; state only the assumptions that materially
|
|
58
|
+
affect implementation. Ask a focused question only when a missing
|
|
59
|
+
decision blocks a safe or coherent build.
|
|
60
|
+
|
|
61
|
+
### Phase 2 --- Product concept gate
|
|
62
|
+
|
|
63
|
+
Before designing components, define: - **Product promise:** one sentence
|
|
64
|
+
describing the useful outcome. - **Primary user journey:** the most
|
|
65
|
+
important task the application must make easy. - **Signature
|
|
66
|
+
interaction:** one distinctive interaction that improves understanding
|
|
67
|
+
or use; two maximum. - **Visual idea:** a clear metaphor, material,
|
|
68
|
+
spatial system, or editorial principle that suits the product. -
|
|
69
|
+
**Design archetype:** choose one primary direction from Section 4. -
|
|
70
|
+
**Quality bar:** define what must work before the app can be called
|
|
71
|
+
complete.
|
|
72
|
+
|
|
73
|
+
The visual concept must support the product, not compete with it. An
|
|
74
|
+
event operations dashboard should prioritize speed and legibility; a
|
|
75
|
+
creative collaboration product can support richer expression. Do not
|
|
76
|
+
force cinematic motion, 3D, or dramatic loaders onto utilitarian
|
|
77
|
+
workflows.
|
|
78
|
+
|
|
79
|
+
### Phase 3 --- Audit the codebase
|
|
80
|
+
|
|
81
|
+
For existing repositories: 1. Inspect project structure, package
|
|
82
|
+
scripts, framework versions, routing, styling, data access,
|
|
83
|
+
authentication, and tests. 2. Read the relevant files before editing
|
|
84
|
+
them. 3. Identify working behavior that must be preserved. 4. Check for
|
|
85
|
+
existing components, tokens, utilities, and established conventions
|
|
86
|
+
before adding replacements. 5. Run the current app or tests when
|
|
87
|
+
practical to establish a baseline. 6. Record actual blockers and
|
|
88
|
+
distinguish them from assumptions.
|
|
89
|
+
|
|
90
|
+
Do not replace a functioning architecture merely to match a preferred
|
|
91
|
+
stack. Avoid broad rewrites when a targeted change is safer.
|
|
92
|
+
|
|
93
|
+
### Phase 4 --- Plan the system
|
|
94
|
+
|
|
95
|
+
Create a concise implementation plan covering: - Routes and
|
|
96
|
+
navigation. - Screens and reusable components. - Data entities and
|
|
97
|
+
relationships. - Authentication and authorization. - Server actions/API
|
|
98
|
+
endpoints and validation. - Loading, empty, success, error, offline, and
|
|
99
|
+
permission-denied states. - Integrations and environment variables. -
|
|
100
|
+
Tests for the core workflows.
|
|
101
|
+
|
|
102
|
+
For substantial products, define a small domain model and a workflow map
|
|
103
|
+
before building the interface. Keep planning proportional to project
|
|
104
|
+
size; do not bury a small app in paperwork.
|
|
105
|
+
|
|
106
|
+
### Phase 5 --- Build a vertical slice
|
|
107
|
+
|
|
108
|
+
Implement one complete, representative user journey from UI to
|
|
109
|
+
persistence before duplicating patterns across the application. For
|
|
110
|
+
example: sign in → create a record → validate → save → show confirmation
|
|
111
|
+
→ retrieve the saved record.
|
|
112
|
+
|
|
113
|
+
This proves the architecture early and exposes missing data or
|
|
114
|
+
permission decisions before they spread through the project.
|
|
115
|
+
|
|
116
|
+
### Phase 6 --- Expand by workflow
|
|
117
|
+
|
|
118
|
+
Build related capabilities in coherent increments. Each increment must
|
|
119
|
+
include: - Interface and interaction. - Real business logic. -
|
|
120
|
+
Server-side validation where appropriate. - Persistence or a clearly
|
|
121
|
+
declared temporary/mock boundary. - Access control. - User feedback and
|
|
122
|
+
recoverable errors. - Tests for the behavior introduced.
|
|
123
|
+
|
|
124
|
+
Do not mark a feature complete because its page exists.
|
|
125
|
+
|
|
126
|
+
### Phase 7 --- Design refinement
|
|
127
|
+
|
|
128
|
+
Once the main workflows are sound, apply the design system, typography,
|
|
129
|
+
spatial rhythm, interaction details, and purposeful motion in Sections
|
|
130
|
+
4--8. Refine the real interface and realistic data rather than a
|
|
131
|
+
disconnected showcase mockup.
|
|
132
|
+
|
|
133
|
+
### Phase 8 --- Verify and deliver
|
|
134
|
+
|
|
135
|
+
Run the app, lint/type-check/test commands available in the repository,
|
|
136
|
+
and test important flows in a browser when browser tooling is available.
|
|
137
|
+
Fix failures rather than hiding them. Report what was implemented, what
|
|
138
|
+
was tested, and any remaining limitations accurately.
|
|
139
|
+
|
|
140
|
+
------------------------------------------------------------------------
|
|
141
|
+
|
|
142
|
+
## 2. Product architecture and workflow integrity
|
|
143
|
+
|
|
144
|
+
### 2.1 Think in workflows, not isolated pages
|
|
145
|
+
|
|
146
|
+
For every major feature, answer:
|
|
147
|
+
|
|
148
|
+
1. What triggers the workflow?
|
|
149
|
+
2. What information does the user need?
|
|
150
|
+
3. What can they do next?
|
|
151
|
+
4. What validation applies?
|
|
152
|
+
5. What changes in the system?
|
|
153
|
+
6. What confirms success?
|
|
154
|
+
7. What happens if the request fails, is repeated, or the user lacks
|
|
155
|
+
permission?
|
|
156
|
+
|
|
157
|
+
Represent meaningful states explicitly. Avoid interfaces that only look
|
|
158
|
+
complete in their initial state.
|
|
159
|
+
|
|
160
|
+
### 2.2 Data and persistence
|
|
161
|
+
|
|
162
|
+
- Model real entities and relationships rather than storing unrelated
|
|
163
|
+
fields in oversized objects.
|
|
164
|
+
- Use the existing database and ORM conventions unless there is a
|
|
165
|
+
strong reason to change.
|
|
166
|
+
- Validate data at trust boundaries, especially on the server.
|
|
167
|
+
- Handle duplicate submissions and race conditions where they matter.
|
|
168
|
+
- Use transactions for multi-step writes that must succeed or fail
|
|
169
|
+
together.
|
|
170
|
+
- Include timestamps, ownership, status, and audit history when the
|
|
171
|
+
domain requires them.
|
|
172
|
+
- Add pagination or sensible limits to potentially large collections.
|
|
173
|
+
- Use migrations or repeatable schema setup; do not rely on
|
|
174
|
+
undocumented manual database edits.
|
|
175
|
+
- Never imply that data is saved when it exists only in component
|
|
176
|
+
state or local mock data.
|
|
177
|
+
- If a backend or external service is unavailable, isolate the mock
|
|
178
|
+
behind a clear adapter and label it as a development limitation.
|
|
179
|
+
|
|
180
|
+
### 2.3 Authentication and authorization
|
|
181
|
+
|
|
182
|
+
- Authentication answers **who is signed in**; authorization answers
|
|
183
|
+
**what that person may do**.
|
|
184
|
+
- Enforce permissions on the server or trusted data layer, not only by
|
|
185
|
+
hiding buttons in the UI.
|
|
186
|
+
- Protect private routes and resources, verify ownership, and scope
|
|
187
|
+
queries by the authenticated user or organization.
|
|
188
|
+
- Use established authentication libraries and secure session
|
|
189
|
+
practices appropriate to the stack.
|
|
190
|
+
- Never store passwords in plaintext, hardcode secrets, or expose
|
|
191
|
+
server credentials in client bundles.
|
|
192
|
+
- Include meaningful unauthorized, expired-session, and forbidden
|
|
193
|
+
states.
|
|
194
|
+
- For multi-tenant apps, test that one organization cannot access
|
|
195
|
+
another organization's data.
|
|
196
|
+
|
|
197
|
+
### 2.4 API and integration quality
|
|
198
|
+
|
|
199
|
+
- Use clear request/response contracts and consistent error formats.
|
|
200
|
+
- Validate inputs and normalize data at boundaries.
|
|
201
|
+
- Keep secrets server-side and use environment variables with
|
|
202
|
+
documented examples.
|
|
203
|
+
- Handle timeouts, rate limits, retries, and provider failures where
|
|
204
|
+
relevant.
|
|
205
|
+
- Avoid duplicate side effects on retries; use idempotency for
|
|
206
|
+
sensitive operations such as payments or order creation.
|
|
207
|
+
- Keep integrations behind small service modules so they can be tested
|
|
208
|
+
and replaced.
|
|
209
|
+
- Do not fabricate successful responses from payments, emails,
|
|
210
|
+
uploads, or external APIs.
|
|
211
|
+
|
|
212
|
+
### 2.5 Maintainable code
|
|
213
|
+
|
|
214
|
+
- Use components for meaningful reusable behavior, not for every
|
|
215
|
+
trivial line.
|
|
216
|
+
- Separate UI, domain rules, data access, and integration logic at a
|
|
217
|
+
scale appropriate to the project.
|
|
218
|
+
- Give variables, components, routes, and database fields
|
|
219
|
+
domain-specific names.
|
|
220
|
+
- Keep state as close as practical to where it is used; avoid
|
|
221
|
+
unnecessary global state.
|
|
222
|
+
- Avoid giant components, duplicated validation, hidden side effects,
|
|
223
|
+
and speculative abstractions.
|
|
224
|
+
- Follow the repository's conventions and framework version; verify
|
|
225
|
+
APIs rather than guessing.
|
|
226
|
+
- Keep dependencies purposeful and compatible. Do not install a
|
|
227
|
+
library for a behavior that a small native implementation can safely
|
|
228
|
+
handle.
|
|
229
|
+
|
|
230
|
+
------------------------------------------------------------------------
|
|
231
|
+
|
|
232
|
+
## 3. Application interface states
|
|
233
|
+
|
|
234
|
+
Every meaningful interactive feature must consider the states that real
|
|
235
|
+
users encounter.
|
|
236
|
+
|
|
237
|
+
### Required state checklist
|
|
238
|
+
|
|
239
|
+
- **Initial:** clear default view and useful next action.
|
|
240
|
+
- **Loading:** indicate progress without shifting the whole layout
|
|
241
|
+
unnecessarily.
|
|
242
|
+
- **Empty:** explain why nothing appears and how to create or discover
|
|
243
|
+
content.
|
|
244
|
+
- **Success:** confirm the result in context.
|
|
245
|
+
- **Validation:** show the issue next to the relevant field and
|
|
246
|
+
explain how to correct it.
|
|
247
|
+
- **Failure:** use plain language, preserve user input where possible,
|
|
248
|
+
and offer a safe recovery path.
|
|
249
|
+
- **Disabled:** explain why an action is unavailable when the reason
|
|
250
|
+
is not obvious.
|
|
251
|
+
- **Permission denied:** do not reveal protected information; explain
|
|
252
|
+
access limits appropriately.
|
|
253
|
+
- **Long-running:** show progress or status and avoid duplicate
|
|
254
|
+
submissions.
|
|
255
|
+
- **Partial:** communicate what succeeded and what did not when a
|
|
256
|
+
multi-part operation partially completes.
|
|
257
|
+
- **Destructive:** clarify consequences and request confirmation when
|
|
258
|
+
the action is consequential.
|
|
259
|
+
- **Offline or stale:** when relevant, communicate connection or data
|
|
260
|
+
freshness and protect unsaved work.
|
|
261
|
+
|
|
262
|
+
Use skeletons when the eventual layout is known and loading lasts long
|
|
263
|
+
enough to benefit. Use spinners for localized actions. Avoid decorative
|
|
264
|
+
loading screens that delay access to a working application.
|
|
265
|
+
|
|
266
|
+
### Forms
|
|
267
|
+
|
|
268
|
+
- Use labels that remain visible; placeholders are examples, not
|
|
269
|
+
labels.
|
|
270
|
+
- Mark required fields and explain constraints before or at the point
|
|
271
|
+
of entry.
|
|
272
|
+
- Validate on the server even when client-side validation improves
|
|
273
|
+
feedback.
|
|
274
|
+
- Preserve values after recoverable errors.
|
|
275
|
+
- Prevent accidental double submits and communicate pending state.
|
|
276
|
+
- Use correct input types, autocomplete attributes, and
|
|
277
|
+
mobile-friendly controls.
|
|
278
|
+
- For complex forms, group fields by task and provide a clear
|
|
279
|
+
progression.
|
|
280
|
+
- Show actionable error messages rather than raw stack traces or vague
|
|
281
|
+
"Something went wrong" messages.
|
|
282
|
+
- Confirm destructive or irreversible actions; do not add confirmation
|
|
283
|
+
dialogs to every harmless action.
|
|
284
|
+
|
|
285
|
+
### Tables and data-heavy interfaces
|
|
286
|
+
|
|
287
|
+
- Optimize for scanning, comparison, and task completion.
|
|
288
|
+
- Use clear column labels, sensible alignment, stable row actions, and
|
|
289
|
+
meaningful empty states.
|
|
290
|
+
- Provide search, filtering, sorting, and pagination when the amount
|
|
291
|
+
of data warrants them.
|
|
292
|
+
- Keep selected filters and pagination consistent with the visible
|
|
293
|
+
result set.
|
|
294
|
+
- Support keyboard access and small screens; use responsive layouts or
|
|
295
|
+
intentional horizontal scrolling rather than shrinking text until it
|
|
296
|
+
becomes unreadable.
|
|
297
|
+
- Use bulk actions only when selection behavior and consequences are
|
|
298
|
+
clear.
|
|
299
|
+
- Distinguish statuses with text as well as color.
|
|
300
|
+
- Never invent analytics, counts, ratings, or activity to make a
|
|
301
|
+
dashboard feel populated.
|
|
302
|
+
|
|
303
|
+
### Navigation and information architecture
|
|
304
|
+
|
|
305
|
+
- Organize navigation around user tasks and domain concepts.
|
|
306
|
+
- Make the current location and active section obvious.
|
|
307
|
+
- Use consistent naming for the same destination across menus,
|
|
308
|
+
buttons, breadcrumbs, and page headings.
|
|
309
|
+
- Support deep links and browser back/forward behavior.
|
|
310
|
+
- Preserve context when opening details, editing records, or returning
|
|
311
|
+
from a workflow.
|
|
312
|
+
- Keep global navigation distinct from page-level actions.
|
|
313
|
+
- For role-specific navigation, show relevant destinations without
|
|
314
|
+
treating hidden navigation as security.
|
|
315
|
+
|
|
316
|
+
------------------------------------------------------------------------
|
|
317
|
+
|
|
318
|
+
## 4. High-end visual direction for software
|
|
319
|
+
|
|
320
|
+
Choose one primary archetype based on the product. The goal is a
|
|
321
|
+
distinctive, coherent interface, not the same dark glass dashboard for
|
|
322
|
+
every project.
|
|
323
|
+
|
|
324
|
+
-----------------------------------------------------------------------
|
|
325
|
+
Archetype Best suited to Visual language
|
|
326
|
+
----------------------- ----------------------- -----------------------
|
|
327
|
+
**Quiet Precision** Operations tools, Restrained palette,
|
|
328
|
+
finance, analytics, excellent typography,
|
|
329
|
+
admin systems dense but calm layouts,
|
|
330
|
+
fine separators,
|
|
331
|
+
precise alignment
|
|
332
|
+
|
|
333
|
+
**Editorial Workspace** Learning products, Strong typographic
|
|
334
|
+
knowledge tools, hierarchy, generous
|
|
335
|
+
research, publishing reading width,
|
|
336
|
+
annotated metadata,
|
|
337
|
+
purposeful page rhythm
|
|
338
|
+
|
|
339
|
+
**Warm Utility** Community, education, Approachable color,
|
|
340
|
+
wellness, collaboration human copy, clear
|
|
341
|
+
affordances, softer
|
|
342
|
+
surfaces without
|
|
343
|
+
childish styling
|
|
344
|
+
|
|
345
|
+
**Technical Console** Developer tools, Monospaced metadata,
|
|
346
|
+
infrastructure, dark or neutral
|
|
347
|
+
security, observability surfaces, clear status
|
|
348
|
+
signals, data-rich
|
|
349
|
+
layouts
|
|
350
|
+
|
|
351
|
+
**Creative Studio** Design tools, Expressive type,
|
|
352
|
+
portfolios inside apps, flexible canvases,
|
|
353
|
+
media production visual previews,
|
|
354
|
+
restrained motion,
|
|
355
|
+
strong content
|
|
356
|
+
presentation
|
|
357
|
+
|
|
358
|
+
**Spatial Product** Mapping, property, 3D Spatial navigation,
|
|
359
|
+
editors, visual canvas-based
|
|
360
|
+
exploration interaction, clear DOM
|
|
361
|
+
controls, progressive
|
|
362
|
+
disclosure
|
|
363
|
+
-----------------------------------------------------------------------
|
|
364
|
+
|
|
365
|
+
One primary archetype is the foundation. A second may provide a limited
|
|
366
|
+
accent. Do not mix unrelated visual languages without a reason rooted in
|
|
367
|
+
the product.
|
|
368
|
+
|
|
369
|
+
### 4.1 Concept before components
|
|
370
|
+
|
|
371
|
+
Define: - One-sentence visual concept. - One signature interaction at
|
|
372
|
+
most, unless the product genuinely benefits from two. - One reusable
|
|
373
|
+
visual motif, applied consistently across selected controls,
|
|
374
|
+
transitions, and feedback. - One hierarchy rule that makes important
|
|
375
|
+
information immediately apparent.
|
|
376
|
+
|
|
377
|
+
The product's content and task flow remain the main event. Effects are
|
|
378
|
+
there to clarify, reward, or orient the user.
|
|
379
|
+
|
|
380
|
+
### 4.2 Design tokens
|
|
381
|
+
|
|
382
|
+
Establish reusable tokens before styling many screens:
|
|
383
|
+
|
|
384
|
+
- Semantic colors: background, surface, elevated surface, text, muted
|
|
385
|
+
text, border, primary, accent, success, warning, danger, focus.
|
|
386
|
+
- Light and dark themes if both are required.
|
|
387
|
+
- Type families, sizes, weights, line heights, and tracking.
|
|
388
|
+
- Spacing scale and layout widths.
|
|
389
|
+
- Radii, border treatment, elevation, and overlays.
|
|
390
|
+
- Motion durations and easing curves.
|
|
391
|
+
- Layering and z-index conventions.
|
|
392
|
+
- Focus-ring and interactive-state styles.
|
|
393
|
+
|
|
394
|
+
Use semantic tokens instead of scattered one-off values. Color must
|
|
395
|
+
carry meaning consistently. Maintain sufficient contrast and never
|
|
396
|
+
communicate state through color alone.
|
|
397
|
+
|
|
398
|
+
### 4.3 Typography and hierarchy
|
|
399
|
+
|
|
400
|
+
- Choose typefaces that fit the product's personality and remain
|
|
401
|
+
legible at working sizes.
|
|
402
|
+
- Use expressive display typography selectively; dense operational
|
|
403
|
+
interfaces need efficient scanning more than oversized headlines.
|
|
404
|
+
- Establish a clear hierarchy for page title, section title, field
|
|
405
|
+
label, body text, helper text, and metadata.
|
|
406
|
+
- Use tabular numerals for changing metrics when useful.
|
|
407
|
+
- Keep line lengths comfortable for reading and avoid low-contrast
|
|
408
|
+
tiny labels.
|
|
409
|
+
- Load fonts efficiently, provide fallbacks, and avoid layout shifts.
|
|
410
|
+
|
|
411
|
+
Do not automatically use Inter, gradients, glass, rounded cards, or
|
|
412
|
+
oversized headings. These are choices, not a design system.
|
|
413
|
+
|
|
414
|
+
### 4.4 Surface, spacing, and composition
|
|
415
|
+
|
|
416
|
+
- Use whitespace to separate priorities, not merely to make the page
|
|
417
|
+
sparse.
|
|
418
|
+
- Align elements to a consistent grid and baseline.
|
|
419
|
+
- Create hierarchy with spacing, type, and surface contrast before
|
|
420
|
+
adding borders and shadows.
|
|
421
|
+
- Reserve strong accent colors for important actions and meaningful
|
|
422
|
+
states.
|
|
423
|
+
- Use hairline borders, restrained elevation, and surface variation
|
|
424
|
+
only where they help grouping.
|
|
425
|
+
- Let the density match the job: an analytics console may be dense; an
|
|
426
|
+
onboarding flow should be calm.
|
|
427
|
+
- Use realistic domain content and believable record lengths to test
|
|
428
|
+
the layout.
|
|
429
|
+
- Design responsive behavior intentionally, not as a final shrinking
|
|
430
|
+
pass.
|
|
431
|
+
|
|
432
|
+
### 4.5 Ban the generic AI-default look
|
|
433
|
+
|
|
434
|
+
Avoid: - The same sidebar + topbar + four gradient metric cards for
|
|
435
|
+
every product. - A landing-page hero pasted inside an authenticated
|
|
436
|
+
dashboard. - Glassmorphism, glow, blur, gradients, and oversized rounded
|
|
437
|
+
cards without a product-specific reason. - Decorative charts that
|
|
438
|
+
communicate no real information. - Fake user names, random percentages,
|
|
439
|
+
fabricated activity, and lorem ipsum in final interfaces. - Emoji in
|
|
440
|
+
place of purposeful interface icons. - Tiny low-contrast text, ambiguous
|
|
441
|
+
icon-only controls, and unlabeled form fields. - Motion on every
|
|
442
|
+
element, parallax throughout the app, and gratuitous 3D. - A different
|
|
443
|
+
radius, shadow, spacing, or button style on every screen. - An imitation
|
|
444
|
+
of a known product that copies its identity rather than learning from
|
|
445
|
+
its interaction principles.
|
|
446
|
+
|
|
447
|
+
The interface should feel authored because its decisions are coherent,
|
|
448
|
+
not because every element has an effect.
|
|
449
|
+
|
|
450
|
+
------------------------------------------------------------------------
|
|
451
|
+
|
|
452
|
+
## 5. Interaction and motion
|
|
453
|
+
|
|
454
|
+
Motion is part of usability. It should explain cause and effect,
|
|
455
|
+
preserve context, and provide feedback.
|
|
456
|
+
|
|
457
|
+
### 5.1 Motion budget
|
|
458
|
+
|
|
459
|
+
Use motion for: - State transitions and feedback. - Opening or closing
|
|
460
|
+
menus, dialogs, drawers, and command palettes. - Showing relationships
|
|
461
|
+
between list items and detail views. - Meaningful progress and
|
|
462
|
+
completion. - A single signature interaction where it improves the
|
|
463
|
+
product experience.
|
|
464
|
+
|
|
465
|
+
Keep routine actions fast. Avoid slowing repeated tasks for spectacle.
|
|
466
|
+
Do not force a cinematic loader between ordinary app routes.
|
|
467
|
+
|
|
468
|
+
### 5.2 Timing tokens
|
|
469
|
+
|
|
470
|
+
Example starting point; tune to the product:
|
|
471
|
+
|
|
472
|
+
``` css
|
|
473
|
+
:root {
|
|
474
|
+
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
475
|
+
--ease-in-out-expo: cubic-bezier(0.87, 0, 0.13, 1);
|
|
476
|
+
--ease-ui: cubic-bezier(0.32, 0.72, 0, 1);
|
|
477
|
+
--duration-micro: 120ms;
|
|
478
|
+
--duration-ui: 200ms;
|
|
479
|
+
--duration-panel: 280ms;
|
|
480
|
+
--duration-scene: 500ms;
|
|
481
|
+
}
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
Use consistent easing tokens instead of arbitrary timings. Most feedback
|
|
485
|
+
should be subtle and brief. Longer transitions belong to meaningful
|
|
486
|
+
context changes, not every hover.
|
|
487
|
+
|
|
488
|
+
### 5.3 Input and motion rules
|
|
489
|
+
|
|
490
|
+
- Every interactive element needs hover, focus-visible, pressed,
|
|
491
|
+
disabled, and pending states where applicable.
|
|
492
|
+
- Never make essential information available only on hover.
|
|
493
|
+
- Support keyboard, touch, and coarse-pointer devices.
|
|
494
|
+
- Respect `prefers-reduced-motion`; reduce or remove nonessential
|
|
495
|
+
movement.
|
|
496
|
+
- Avoid animating layout-heavy properties when transform and opacity
|
|
497
|
+
will work.
|
|
498
|
+
- Avoid scroll hijacking in task-oriented software.
|
|
499
|
+
- Use a single source of truth for state; do not let animation state
|
|
500
|
+
drift from application state.
|
|
501
|
+
- Avoid optimistic UI for sensitive operations unless rollback and
|
|
502
|
+
error recovery are designed.
|
|
503
|
+
- Keep focus predictable when dialogs, menus, and route transitions
|
|
504
|
+
open or close.
|
|
505
|
+
- Use transitions to clarify state, not conceal latency or errors.
|
|
506
|
+
|
|
507
|
+
### 5.4 High-end interaction details
|
|
508
|
+
|
|
509
|
+
Small, consistent details often make software feel premium: - A button
|
|
510
|
+
responds immediately and shows a clear pending state. - A row selection,
|
|
511
|
+
saved filter, or active tab is unmistakable. - A command palette
|
|
512
|
+
supports keyboard navigation and sensible empty results. - A drawer
|
|
513
|
+
retains context and closes predictably. - A successful save confirms the
|
|
514
|
+
change without interrupting the next task. - An undo action is offered
|
|
515
|
+
when it is safer than a confirmation dialog. - Motion uses the same
|
|
516
|
+
visual grammar across related components. - Empty states explain the
|
|
517
|
+
next useful action in the user's language.
|
|
518
|
+
|
|
519
|
+
Do not add custom cursors, sounds, or magnetic buttons to ordinary
|
|
520
|
+
business software unless they serve a clear purpose.
|
|
521
|
+
|
|
522
|
+
------------------------------------------------------------------------
|
|
523
|
+
|
|
524
|
+
## 6. Accessibility and responsive behavior
|
|
525
|
+
|
|
526
|
+
Accessibility is part of correctness, not a finishing touch.
|
|
527
|
+
|
|
528
|
+
- Use semantic HTML and native controls when possible.
|
|
529
|
+
- Make every workflow operable by keyboard.
|
|
530
|
+
- Provide visible focus indicators and logical focus order.
|
|
531
|
+
- Associate form labels, descriptions, and errors programmatically.
|
|
532
|
+
- Give meaningful accessible names to icon-only buttons.
|
|
533
|
+
- Use appropriate headings, landmarks, and dialog semantics.
|
|
534
|
+
- Announce asynchronous success and error feedback when needed.
|
|
535
|
+
- Ensure color contrast and non-color status indicators.
|
|
536
|
+
- Avoid focus traps except inside modal contexts, and restore focus
|
|
537
|
+
when a dialog closes.
|
|
538
|
+
- Respect reduced motion and avoid flashing content.
|
|
539
|
+
- Ensure touch targets are comfortably usable.
|
|
540
|
+
- Test at narrow widths and zoomed text sizes.
|
|
541
|
+
- Provide alternatives for canvas/WebGL interactions; essential
|
|
542
|
+
actions and content must remain accessible in the DOM.
|
|
543
|
+
- Do not assume that an accessibility overlay makes an inaccessible
|
|
544
|
+
implementation compliant.
|
|
545
|
+
|
|
546
|
+
Responsive behavior must reflect the actual task. Tables can become
|
|
547
|
+
stacked records, compact views, or controlled horizontal scroll. Complex
|
|
548
|
+
navigation should become an accessible menu or drawer. Preserve
|
|
549
|
+
important actions rather than simply hiding them.
|
|
550
|
+
|
|
551
|
+
------------------------------------------------------------------------
|
|
552
|
+
|
|
553
|
+
## 7. Technical implementation tiers
|
|
554
|
+
|
|
555
|
+
Choose the simplest architecture that satisfies real product
|
|
556
|
+
requirements. Use the existing stack when it is sound.
|
|
557
|
+
|
|
558
|
+
### Tier 1 --- Interactive frontend prototype
|
|
559
|
+
|
|
560
|
+
Suitable for concept validation or a small local tool: - Componentized
|
|
561
|
+
UI. - Real local interaction and validation. - Clearly labeled sample
|
|
562
|
+
data. - A defined boundary between prototype state and persistence.
|
|
563
|
+
|
|
564
|
+
Do not describe this as production-ready if it has no real
|
|
565
|
+
authentication, persistence, server validation, or deployment hardening.
|
|
566
|
+
|
|
567
|
+
### Tier 2 --- Full-stack application
|
|
568
|
+
|
|
569
|
+
For most real products: - Frontend routes and reusable components. -
|
|
570
|
+
Backend endpoints, server actions, or equivalent application services. -
|
|
571
|
+
Persistent database with migrations. - Authentication and
|
|
572
|
+
server-enforced authorization. - Input validation and consistent error
|
|
573
|
+
handling. - Environment configuration. - Automated tests for domain
|
|
574
|
+
rules and critical workflows. - Logging appropriate to the deployment
|
|
575
|
+
environment.
|
|
576
|
+
|
|
577
|
+
### Tier 3 --- Complex or real-time product
|
|
578
|
+
|
|
579
|
+
Use only when requirements justify it: - Queues and background jobs. -
|
|
580
|
+
Realtime subscriptions or WebSockets. - File processing and object
|
|
581
|
+
storage. - Search indexing. - Audit logs and advanced permissions. -
|
|
582
|
+
Payment integrations and webhook verification. - Observability, rate
|
|
583
|
+
limiting, and operational controls. - Specialized rendering such as
|
|
584
|
+
WebGL for a genuinely spatial or visual product.
|
|
585
|
+
|
|
586
|
+
Do not introduce microservices, complex state machines, a queue, or
|
|
587
|
+
WebGL because they sound advanced. Prefer a modular monolith until real
|
|
588
|
+
requirements justify more complexity.
|
|
589
|
+
|
|
590
|
+
### Framework-specific discipline
|
|
591
|
+
|
|
592
|
+
For Next.js: - Confirm the installed Next.js version before using
|
|
593
|
+
APIs. - Respect the App Router or Pages Router already in use. - Keep
|
|
594
|
+
server-only code and secrets out of client components. - Use client
|
|
595
|
+
components only where browser interaction or client state requires
|
|
596
|
+
them. - Validate mutations on the server and revalidate or update
|
|
597
|
+
affected data deliberately. - Handle loading and error boundaries where
|
|
598
|
+
appropriate. - Do not mix incompatible routing patterns or guess at
|
|
599
|
+
library APIs.
|
|
600
|
+
|
|
601
|
+
For any stack: - Inspect `package.json`, lockfiles, scripts, and
|
|
602
|
+
existing architecture before adding dependencies. - Use the project's
|
|
603
|
+
package manager consistently. - Do not silently change frameworks or
|
|
604
|
+
major versions. - Keep configuration reproducible and document required
|
|
605
|
+
environment variables.
|
|
606
|
+
|
|
607
|
+
------------------------------------------------------------------------
|
|
608
|
+
|
|
609
|
+
## 8. Security, privacy, and reliability
|
|
610
|
+
|
|
611
|
+
Use secure defaults and tailor safeguards to the data and risk level.
|
|
612
|
+
|
|
613
|
+
- Validate and authorize every sensitive server-side operation.
|
|
614
|
+
- Use parameterized database queries or safe ORM APIs.
|
|
615
|
+
- Protect against injection, cross-site scripting, cross-site request
|
|
616
|
+
forgery where applicable, insecure direct object references, and
|
|
617
|
+
unsafe file uploads.
|
|
618
|
+
- Enforce file type, size, ownership, and storage rules on the server.
|
|
619
|
+
- Rate-limit sensitive or abuse-prone endpoints where appropriate.
|
|
620
|
+
- Verify payment and integration webhooks using the provider's
|
|
621
|
+
signature mechanism.
|
|
622
|
+
- Never trust client-supplied prices, roles, ownership, or permission
|
|
623
|
+
claims.
|
|
624
|
+
- Do not expose stack traces, secrets, tokens, or personal data in
|
|
625
|
+
errors and logs.
|
|
626
|
+
- Minimize collection and retention of personal data.
|
|
627
|
+
- Avoid logging sensitive payloads.
|
|
628
|
+
- Use safe redirect handling and secure cookie settings.
|
|
629
|
+
- Keep dependencies updated within the project's compatibility
|
|
630
|
+
constraints.
|
|
631
|
+
- Add destructive-action protections and audit trails where the domain
|
|
632
|
+
warrants them.
|
|
633
|
+
- Treat privacy and security as product requirements, not optional
|
|
634
|
+
polish.
|
|
635
|
+
|
|
636
|
+
Do not claim a security audit has passed without performing one.
|
|
637
|
+
Identify unverified assumptions and residual risks honestly.
|
|
638
|
+
|
|
639
|
+
------------------------------------------------------------------------
|
|
640
|
+
|
|
641
|
+
## 9. Performance and perceived quality
|
|
642
|
+
|
|
643
|
+
A premium interface must remain responsive on realistic devices and
|
|
644
|
+
networks.
|
|
645
|
+
|
|
646
|
+
- Set performance budgets appropriate to the product and audience.
|
|
647
|
+
- Load only the code and data needed for the current view.
|
|
648
|
+
- Paginate or virtualize large collections when justified.
|
|
649
|
+
- Use optimized images and responsive image sizes.
|
|
650
|
+
- Lazy-load noncritical media and defer optional visual effects.
|
|
651
|
+
- Avoid unnecessary client-side JavaScript and excessive state
|
|
652
|
+
updates.
|
|
653
|
+
- Prevent layout shifts from fonts, images, and asynchronous content.
|
|
654
|
+
- Avoid repeated network requests caused by component lifecycle
|
|
655
|
+
mistakes.
|
|
656
|
+
- Cache only when invalidation and user-specific data boundaries are
|
|
657
|
+
understood.
|
|
658
|
+
- Profile actual bottlenecks before optimizing.
|
|
659
|
+
- Provide useful feedback during slow operations instead of freezing
|
|
660
|
+
the interface.
|
|
661
|
+
- Keep motion smooth, but prioritize correctness and responsiveness
|
|
662
|
+
over elaborate animation.
|
|
663
|
+
|
|
664
|
+
### 3D, canvas, and immersive features
|
|
665
|
+
|
|
666
|
+
Use them only when they are central to the product concept. - Keep
|
|
667
|
+
navigation, forms, text, and critical controls in semantic DOM. -
|
|
668
|
+
Provide static or lightweight alternatives for unsupported devices. -
|
|
669
|
+
Respect reduced motion and data-saving preferences where practical. -
|
|
670
|
+
Pause nonessential rendering when hidden or off-screen. - Compress
|
|
671
|
+
assets, warm up expensive rendering only when justified, and measure
|
|
672
|
+
startup cost. - Set mobile quality limits early. - Do not let a canvas
|
|
673
|
+
obscure keyboard focus or intercept unrelated input.
|
|
674
|
+
|
|
675
|
+
------------------------------------------------------------------------
|
|
676
|
+
|
|
677
|
+
## 10. Testing and verification
|
|
678
|
+
|
|
679
|
+
A product is not complete until its core behaviors have been checked.
|
|
680
|
+
|
|
681
|
+
### 10.1 Test layers
|
|
682
|
+
|
|
683
|
+
- **Static checks:** lint, type-check, formatting checks where
|
|
684
|
+
configured.
|
|
685
|
+
- **Unit tests:** domain rules, validation, transformations,
|
|
686
|
+
permission helpers.
|
|
687
|
+
- **Integration tests:** database operations, service boundaries, API
|
|
688
|
+
contracts.
|
|
689
|
+
- **End-to-end tests:** primary user journeys in a browser.
|
|
690
|
+
- **Manual exploratory checks:** responsive layouts, keyboard use,
|
|
691
|
+
error states, visual consistency, and realistic data volume.
|
|
692
|
+
|
|
693
|
+
Do not add a test framework blindly. Inspect existing tooling and use
|
|
694
|
+
the smallest suitable setup.
|
|
695
|
+
|
|
696
|
+
### 10.2 Critical workflow test
|
|
697
|
+
|
|
698
|
+
For each core journey, verify: 1. The user can reach the feature. 2. The
|
|
699
|
+
correct inputs and choices are available. 3. Invalid input is rejected
|
|
700
|
+
with useful feedback. 4. Valid input produces the intended server-side
|
|
701
|
+
change. 5. The resulting data persists after refresh or navigation. 6.
|
|
702
|
+
The user sees the correct success or updated state. 7. Unauthorized
|
|
703
|
+
users cannot perform the operation or retrieve protected data. 8.
|
|
704
|
+
Failure does not silently lose work or falsely report success. 9.
|
|
705
|
+
Repeated submission does not create harmful duplicates. 10. The layout
|
|
706
|
+
remains usable on mobile and by keyboard.
|
|
707
|
+
|
|
708
|
+
### 10.3 Browser verification
|
|
709
|
+
|
|
710
|
+
When browser automation is available: - Start the app using the
|
|
711
|
+
documented command. - Inspect the real rendered page, not only the
|
|
712
|
+
source code. - Exercise real interactions and capture console/network
|
|
713
|
+
failures. - Test success, empty, loading, validation, and error
|
|
714
|
+
states. - Verify responsive behavior at representative widths. - Check
|
|
715
|
+
focus behavior in dialogs and menus. - Fix discovered issues and rerun
|
|
716
|
+
affected tests.
|
|
717
|
+
|
|
718
|
+
If browser tooling is unavailable, run all available checks and state
|
|
719
|
+
that visual end-to-end verification was not performed. Never claim tests
|
|
720
|
+
were run when they were not.
|
|
721
|
+
|
|
722
|
+
### 10.4 Definition of done
|
|
723
|
+
|
|
724
|
+
A feature is done only when: - The workflow is connected end-to-end. -
|
|
725
|
+
Data and permission rules are correct. - Important states and errors are
|
|
726
|
+
handled. - The UI matches the established design system. - Accessibility
|
|
727
|
+
and responsive behavior have been considered. - Relevant checks pass, or
|
|
728
|
+
remaining failures are explicitly documented.
|
|
729
|
+
|
|
730
|
+
------------------------------------------------------------------------
|
|
731
|
+
|
|
732
|
+
## 11. Content and product psychology
|
|
733
|
+
|
|
734
|
+
Use behavioral principles to reduce confusion and help people make
|
|
735
|
+
informed decisions, not to manipulate them.
|
|
736
|
+
|
|
737
|
+
- Make the next useful action clear.
|
|
738
|
+
- Reduce unnecessary choices and repeated data entry.
|
|
739
|
+
- Keep terminology consistent with the user's mental model.
|
|
740
|
+
- Use progressive disclosure for advanced controls.
|
|
741
|
+
- Preserve context and user input across recoverable errors.
|
|
742
|
+
- Make progress and consequences visible.
|
|
743
|
+
- Prefer clear defaults while keeping meaningful choices reversible.
|
|
744
|
+
- Use confirmation for high-impact decisions, not routine actions.
|
|
745
|
+
- Avoid dark patterns, false urgency, hidden fees, misleading status,
|
|
746
|
+
or coercive notification prompts.
|
|
747
|
+
- Use realistic copy. Every message should help the user understand
|
|
748
|
+
what happened or what to do next.
|
|
749
|
+
|
|
750
|
+
For educational, community, or decision-support products, distinguish
|
|
751
|
+
evidence from opinion and uncertainty. Do not present persuasive writing
|
|
752
|
+
or confident visual design as a substitute for factual reliability.
|
|
753
|
+
|
|
754
|
+
------------------------------------------------------------------------
|
|
755
|
+
|
|
756
|
+
## 12. Output and collaboration contract
|
|
757
|
+
|
|
758
|
+
When implementing a project, keep communication concise and useful.
|
|
759
|
+
|
|
760
|
+
Before work, provide a short plan when the task is substantial. Do not
|
|
761
|
+
narrate every internal step.
|
|
762
|
+
|
|
763
|
+
During implementation: - Make coherent, reviewable changes. - Preserve
|
|
764
|
+
existing behavior unless a change is requested or necessary. - Flag
|
|
765
|
+
blockers that genuinely need user input. - Do not replace real
|
|
766
|
+
functionality with placeholders to make progress appear faster. - Do not
|
|
767
|
+
silently omit requested requirements. - Do not invent credentials, API
|
|
768
|
+
responses, test results, or deployment success.
|
|
769
|
+
|
|
770
|
+
At delivery, summarize: 1. What was built or changed. 2. Which core
|
|
771
|
+
workflows now function. 3. The checks actually run and their results. 4.
|
|
772
|
+
Any setup steps or environment variables required. 5. Known limitations
|
|
773
|
+
or work that remains.
|
|
774
|
+
|
|
775
|
+
Do not claim "production-ready" merely because the app compiles. Use
|
|
776
|
+
precise descriptions such as "prototype," "locally tested," "end-to-end
|
|
777
|
+
tested for the listed flows," or "deployed," according to evidence.
|
|
778
|
+
|
|
779
|
+
------------------------------------------------------------------------
|
|
780
|
+
|
|
781
|
+
## 13. Pre-output checklist
|
|
782
|
+
|
|
783
|
+
### Product
|
|
784
|
+
|
|
785
|
+
- [ ] Audience, roles, and primary jobs are understood.
|
|
786
|
+
- [ ] Core workflows have clear success and failure paths.
|
|
787
|
+
- [ ] The data model and persistence boundary are explicit.
|
|
788
|
+
- [ ] Permissions are enforced beyond the UI.
|
|
789
|
+
- [ ] No essential feature is represented by a dead button or fake
|
|
790
|
+
success.
|
|
791
|
+
|
|
792
|
+
### Interface
|
|
793
|
+
|
|
794
|
+
- [ ] One coherent product concept and visual direction are present.
|
|
795
|
+
- [ ] Typography, color, spacing, surfaces, and states use shared
|
|
796
|
+
tokens.
|
|
797
|
+
- [ ] The interface is tailored to its actual workflow, not a generic
|
|
798
|
+
dashboard template.
|
|
799
|
+
- [ ] Loading, empty, validation, success, and error states are
|
|
800
|
+
designed.
|
|
801
|
+
- [ ] Copy and sample data are specific, realistic, and honest.
|
|
802
|
+
- [ ] Mobile layouts and keyboard use have been considered.
|
|
803
|
+
|
|
804
|
+
### Craft
|
|
805
|
+
|
|
806
|
+
- [ ] Motion has a clear purpose and respects reduced-motion settings.
|
|
807
|
+
- [ ] Signature interactions do not obstruct everyday work.
|
|
808
|
+
- [ ] Performance and asset cost are reasonable for target devices.
|
|
809
|
+
- [ ] Canvas or 3D experiences have accessible fallbacks where needed.
|
|
810
|
+
- [ ] Focus, contrast, labels, and touch targets are checked.
|
|
811
|
+
|
|
812
|
+
### Engineering
|
|
813
|
+
|
|
814
|
+
- [ ] Existing code and framework version were inspected.
|
|
815
|
+
- [ ] Server-side validation and authorization are implemented where
|
|
816
|
+
needed.
|
|
817
|
+
- [ ] Secrets and sensitive data are protected.
|
|
818
|
+
- [ ] Relevant lint, type-check, tests, and browser checks were
|
|
819
|
+
actually run.
|
|
820
|
+
- [ ] Remaining failures and limitations are disclosed accurately.
|
|
821
|
+
|
|
822
|
+
**Final standard:** the application should feel deliberately designed,
|
|
823
|
+
behave consistently, protect its data, and help users complete real
|
|
824
|
+
work. Visual polish is mandatory; functional integrity is
|
|
825
|
+
non-negotiable.
|
|
826
|
+
|
|
827
|
+
------------------------------------------------------------------------
|
|
828
|
+
|
|
829
|
+
## 14. Working with the agent-skills engineering plugin
|
|
830
|
+
|
|
831
|
+
This skill owns **what** to build and **how it should look and feel**.
|
|
832
|
+
The `agent-skills` plugin (addyosmani/agent-skills, installed globally)
|
|
833
|
+
owns **how the engineering is done**. Use them together, phase by phase:
|
|
834
|
+
|
|
835
|
+
Phase (this skill) Pair with agent-skills
|
|
836
|
+
----------------------------- -----------------------------------------------
|
|
837
|
+
1 Understand the product `interview-me` only if the brief is truly vague
|
|
838
|
+
2 Product concept gate `idea-refine`, then `spec-driven-development`
|
|
839
|
+
(write the spec: concept + workflows + quality bar)
|
|
840
|
+
Quality bar `constraint-driven-development` (definition of
|
|
841
|
+
done, performance and accessibility budgets)
|
|
842
|
+
3 Audit the codebase `context-engineering`, `doubt-driven-development`
|
|
843
|
+
for unfamiliar or high-stakes code
|
|
844
|
+
4 Plan the system `planning-and-task-breakdown`,
|
|
845
|
+
`api-and-interface-design`, `documentation-and-adrs`
|
|
846
|
+
(record stack and boundary decisions as ADRs)
|
|
847
|
+
5 Vertical slice `incremental-implementation` +
|
|
848
|
+
`test-driven-development`
|
|
849
|
+
6 Expand by workflow same pair, one workflow per increment;
|
|
850
|
+
`source-driven-development` for framework APIs
|
|
851
|
+
7 Design refinement `frontend-ui-engineering` (tokens, states,
|
|
852
|
+
accessibility) under Sections 4-6 of this skill
|
|
853
|
+
8 Verify and deliver `browser-testing-with-devtools` when a browser
|
|
854
|
+
is available, `code-review-and-quality`,
|
|
855
|
+
`security-and-hardening`, `performance-optimization`,
|
|
856
|
+
`code-simplification`, then `shipping-and-launch`
|
|
857
|
+
Anything breaks `debugging-and-error-recovery`
|
|
858
|
+
Logging, metrics `observability-and-instrumentation`
|
|
859
|
+
Commits `git-workflow-and-versioning` (only when asked)
|
|
860
|
+
|
|
861
|
+
Rules when both are active:
|
|
862
|
+
|
|
863
|
+
- agent-skills' operating behaviours (surface assumptions, push back,
|
|
864
|
+
simplicity, scope discipline, verify-don't-assume) apply throughout.
|
|
865
|
+
- When the two disagree, product integrity and security win over
|
|
866
|
+
visual ambition; the simpler engineering option wins over the more
|
|
867
|
+
impressive one unless the product concept needs it.
|
|
868
|
+
- The spec written under `spec-driven-development` must contain this
|
|
869
|
+
skill's Phase 2 outputs (promise, journey, signature interaction,
|
|
870
|
+
visual idea, archetype, quality bar).
|
|
871
|
+
- "Done" means both this skill's Section 10.4 and agent-skills'
|
|
872
|
+
Definition of Done: tests pass, behaviour verified at runtime, docs
|
|
873
|
+
updated, limitations reported honestly.
|
|
874
|
+
- The slash commands map to phases: `/agent-skills:spec` (Phase 2),
|
|
875
|
+
`/agent-skills:plan` (4), `/agent-skills:build` (5-6),
|
|
876
|
+
`/agent-skills:test` (5-8), `/agent-skills:review` and
|
|
877
|
+
`/agent-skills:ship` (8).
|