agentplugged 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/LICENSE-METHOD +21 -0
  2. package/README.md +240 -16
  3. package/dist/agent-commands.js +46532 -0
  4. package/dist/bin.js +13 -0
  5. package/dist/cli.js +44 -0
  6. package/dist/esm.js +920 -0
  7. package/dist/forge-follow.js +231 -0
  8. package/dist/helpers.js +18526 -0
  9. package/dist/helpers2.js +1 -0
  10. package/dist/launcher-env.js +13 -0
  11. package/dist/launcher.js +308 -0
  12. package/dist/libsodium-wrappers.js +4384 -0
  13. package/dist/libsodium-wrappers2.js +4384 -0
  14. package/dist/main.js +17732 -0
  15. package/dist/method/LICENSE +21 -0
  16. package/dist/method/agents/alex/SKILL.md +87 -0
  17. package/dist/method/agents/alex/agent.yaml +94 -0
  18. package/dist/method/agents/chloe/SKILL.md +97 -0
  19. package/dist/method/agents/chloe/agent.yaml +87 -0
  20. package/dist/method/agents/ethan/SKILL.md +55 -0
  21. package/dist/method/agents/ethan/agent.yaml +94 -0
  22. package/dist/method/agents/hugo/SKILL.md +52 -0
  23. package/dist/method/agents/hugo/agent.yaml +93 -0
  24. package/dist/method/agents/iris/SKILL.md +69 -0
  25. package/dist/method/agents/iris/agent.yaml +86 -0
  26. package/dist/method/agents/izzy/SKILL.md +137 -0
  27. package/dist/method/agents/izzy/agent.yaml +104 -0
  28. package/dist/method/agents/jade/SKILL.md +54 -0
  29. package/dist/method/agents/jade/agent.yaml +94 -0
  30. package/dist/method/agents/julien/SKILL.md +96 -0
  31. package/dist/method/agents/julien/agent.yaml +95 -0
  32. package/dist/method/agents/lina/SKILL.md +54 -0
  33. package/dist/method/agents/lina/agent.yaml +94 -0
  34. package/dist/method/agents/lou/SKILL.md +67 -0
  35. package/dist/method/agents/lou/agent.yaml +84 -0
  36. package/dist/method/agents/maya/SKILL.md +82 -0
  37. package/dist/method/agents/maya/agent.yaml +98 -0
  38. package/dist/method/agents/milo/SKILL.md +79 -0
  39. package/dist/method/agents/milo/agent.yaml +80 -0
  40. package/dist/method/agents/noah/SKILL.md +80 -0
  41. package/dist/method/agents/noah/agent.yaml +73 -0
  42. package/dist/method/agents/noah/references/conduct.md +98 -0
  43. package/dist/method/agents/noah/references/decisions.md +122 -0
  44. package/dist/method/agents/noah/references/environment.md +72 -0
  45. package/dist/method/agents/noah/references/facts.md +13 -0
  46. package/dist/method/agents/noah/references/journey.md +80 -0
  47. package/dist/method/agents/noah/references/team.md +195 -0
  48. package/dist/method/agents/omar/SKILL.md +92 -0
  49. package/dist/method/agents/omar/agent.yaml +86 -0
  50. package/dist/method/agents/quentin/SKILL.md +78 -0
  51. package/dist/method/agents/quentin/agent.yaml +82 -0
  52. package/dist/method/agents/sam/SKILL.md +54 -0
  53. package/dist/method/agents/sam/agent.yaml +94 -0
  54. package/dist/method/agents/stella/SKILL.md +80 -0
  55. package/dist/method/agents/stella/agent.yaml +89 -0
  56. package/dist/method/agents/tess/SKILL.md +64 -0
  57. package/dist/method/agents/tess/agent.yaml +94 -0
  58. package/dist/method/agents/zoe/SKILL.md +85 -0
  59. package/dist/method/agents/zoe/agent.yaml +91 -0
  60. package/dist/method/doctor.yaml +1029 -0
  61. package/dist/method/models.yaml +73 -0
  62. package/dist/method/skills/.gitkeep +0 -0
  63. package/dist/method/skills/acceptance-qa/SKILL.md +40 -0
  64. package/dist/method/skills/acceptance-qa/references/run.md +54 -0
  65. package/dist/method/skills/acceptance-qa/references/scenarios.md +32 -0
  66. package/dist/method/skills/acceptance-qa/references/verdicts.md +43 -0
  67. package/dist/method/skills/api-e2e-tests/SKILL.md +61 -0
  68. package/dist/method/skills/api-e2e-tests/references/ci.md +33 -0
  69. package/dist/method/skills/api-e2e-tests/references/frameworks.md +58 -0
  70. package/dist/method/skills/api-e2e-tests/references/generate.md +67 -0
  71. package/dist/method/skills/audit-pillars/SKILL.md +28 -0
  72. package/dist/method/skills/audit-pillars/references/accessibility.md +13 -0
  73. package/dist/method/skills/audit-pillars/references/architecture.md +13 -0
  74. package/dist/method/skills/audit-pillars/references/dependencies.md +13 -0
  75. package/dist/method/skills/audit-pillars/references/format.md +20 -0
  76. package/dist/method/skills/audit-pillars/references/interface.md +13 -0
  77. package/dist/method/skills/audit-pillars/references/method.md +33 -0
  78. package/dist/method/skills/audit-pillars/references/performance.md +17 -0
  79. package/dist/method/skills/audit-pillars/references/quality.md +11 -0
  80. package/dist/method/skills/audit-pillars/references/security.md +13 -0
  81. package/dist/method/skills/audit-pillars/references/tests.md +17 -0
  82. package/dist/method/skills/chain-stories/SKILL.md +30 -0
  83. package/dist/method/skills/chain-stories/references/attempts.md +19 -0
  84. package/dist/method/skills/chain-stories/references/stops.md +27 -0
  85. package/dist/method/skills/check-readiness/SKILL.md +34 -0
  86. package/dist/method/skills/check-readiness/references/judge.md +21 -0
  87. package/dist/method/skills/check-readiness/references/settle.md +17 -0
  88. package/dist/method/skills/check-requirements/SKILL.md +97 -0
  89. package/dist/method/skills/check-requirements/references/engine-proofs.md +43 -0
  90. package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +45 -0
  91. package/dist/method/skills/correct-course/SKILL.md +15 -0
  92. package/dist/method/skills/correct-course/references/gestures.md +20 -0
  93. package/dist/method/skills/correct-course/references/starts.md +18 -0
  94. package/dist/method/skills/correct-course/references/steps.md +14 -0
  95. package/dist/method/skills/critique-deliverable/SKILL.md +25 -0
  96. package/dist/method/skills/critique-deliverable/references/assumption-audit.md +11 -0
  97. package/dist/method/skills/critique-deliverable/references/choose.md +27 -0
  98. package/dist/method/skills/critique-deliverable/references/compare-existing.md +13 -0
  99. package/dist/method/skills/critique-deliverable/references/devils-advocate.md +13 -0
  100. package/dist/method/skills/critique-deliverable/references/divergence.md +15 -0
  101. package/dist/method/skills/critique-deliverable/references/domain-expert.md +14 -0
  102. package/dist/method/skills/critique-deliverable/references/extreme-user.md +13 -0
  103. package/dist/method/skills/critique-deliverable/references/failure-modes.md +13 -0
  104. package/dist/method/skills/critique-deliverable/references/first-principles.md +12 -0
  105. package/dist/method/skills/critique-deliverable/references/format.md +25 -0
  106. package/dist/method/skills/critique-deliverable/references/gestures.md +24 -0
  107. package/dist/method/skills/critique-deliverable/references/inversion.md +13 -0
  108. package/dist/method/skills/critique-deliverable/references/judgment.md +14 -0
  109. package/dist/method/skills/critique-deliverable/references/pre-mortem.md +12 -0
  110. package/dist/method/skills/critique-deliverable/references/reconcile.md +15 -0
  111. package/dist/method/skills/critique-deliverable/references/red-team.md +12 -0
  112. package/dist/method/skills/critique-deliverable/references/reframe.md +12 -0
  113. package/dist/method/skills/critique-deliverable/references/second-order.md +12 -0
  114. package/dist/method/skills/critique-deliverable/references/socratic.md +15 -0
  115. package/dist/method/skills/critique-deliverable/references/steelman.md +13 -0
  116. package/dist/method/skills/critique-deliverable/references/subtraction.md +12 -0
  117. package/dist/method/skills/deep-research/SKILL.md +43 -0
  118. package/dist/method/skills/deep-research/assets/page-template.md +37 -0
  119. package/dist/method/skills/deep-research/references/candidates.md +29 -0
  120. package/dist/method/skills/deep-research/references/external.md +37 -0
  121. package/dist/method/skills/deep-research/references/page-format.md +51 -0
  122. package/dist/method/skills/deep-research/references/types.md +31 -0
  123. package/dist/method/skills/develop-story/SKILL.md +211 -0
  124. package/dist/method/skills/develop-story/evals/cases.yaml +45 -0
  125. package/dist/method/skills/develop-story/references/acceptance-tests.md +73 -0
  126. package/dist/method/skills/develop-story/references/self-check.md +46 -0
  127. package/dist/method/skills/diagnose-bug/SKILL.md +73 -0
  128. package/dist/method/skills/diagnose-bug/references/hypotheses.md +45 -0
  129. package/dist/method/skills/diagnose-bug/references/probes.md +40 -0
  130. package/dist/method/skills/generate-knowledge-base/SKILL.md +251 -0
  131. package/dist/method/skills/generate-knowledge-base/assets/guide-template.md +49 -0
  132. package/dist/method/skills/generate-knowledge-base/assets/index-template.md +58 -0
  133. package/dist/method/skills/generate-knowledge-base/assets/page-template.md +61 -0
  134. package/dist/method/skills/generate-knowledge-base/assets/release-notes-template.md +38 -0
  135. package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +49 -0
  136. package/dist/method/skills/generate-knowledge-base/references/living-docs.md +81 -0
  137. package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +48 -0
  138. package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +21 -0
  139. package/dist/method/skills/ideation/SKILL.md +44 -0
  140. package/dist/method/skills/ideation/assets/session-template.md +46 -0
  141. package/dist/method/skills/ideation/references/choose.md +21 -0
  142. package/dist/method/skills/ideation/references/close.md +17 -0
  143. package/dist/method/skills/ideation/references/converge.md +24 -0
  144. package/dist/method/skills/ideation/references/gestures.md +15 -0
  145. package/dist/method/skills/ideation/references/stances.md +21 -0
  146. package/dist/method/skills/ideation/references/techniques-borrowed.md +8 -0
  147. package/dist/method/skills/ideation/references/techniques-deep.md +12 -0
  148. package/dist/method/skills/ideation/references/techniques-frames.md +12 -0
  149. package/dist/method/skills/ideation/references/techniques-futures.md +8 -0
  150. package/dist/method/skills/ideation/references/techniques-limits.md +9 -0
  151. package/dist/method/skills/ideation/references/techniques-people.md +7 -0
  152. package/dist/method/skills/ideation/references/techniques-sparks.md +10 -0
  153. package/dist/method/skills/ideation/references/techniques-together.md +11 -0
  154. package/dist/method/skills/improve-code/SKILL.md +74 -0
  155. package/dist/method/skills/improve-code/references/axes.md +45 -0
  156. package/dist/method/skills/improve-session/SKILL.md +47 -0
  157. package/dist/method/skills/order-merges/SKILL.md +71 -0
  158. package/dist/method/skills/pitch/SKILL.md +40 -0
  159. package/dist/method/skills/pitch/assets/deck-template.md +31 -0
  160. package/dist/method/skills/pitch/assets/design-template.md +45 -0
  161. package/dist/method/skills/pitch/assets/narrative-template.md +40 -0
  162. package/dist/method/skills/pitch/references/deck-types.md +17 -0
  163. package/dist/method/skills/pitch/references/deck.md +24 -0
  164. package/dist/method/skills/pitch/references/design-implementation.md +25 -0
  165. package/dist/method/skills/pitch/references/design-methods.md +45 -0
  166. package/dist/method/skills/pitch/references/design-thinking.md +28 -0
  167. package/dist/method/skills/pitch/references/story-frameworks.md +39 -0
  168. package/dist/method/skills/pitch/references/story.md +22 -0
  169. package/dist/method/skills/plan-sprint/SKILL.md +162 -0
  170. package/dist/method/skills/quick-lane/SKILL.md +143 -0
  171. package/dist/method/skills/resolve-merge-conflict/SKILL.md +83 -0
  172. package/dist/method/skills/review-story/SKILL.md +96 -0
  173. package/dist/method/skills/review-story/evals/cases.yaml +59 -0
  174. package/dist/method/skills/review-story/references/amend-story.md +16 -0
  175. package/dist/method/skills/review-story/references/export.md +20 -0
  176. package/dist/method/skills/review-story/references/format.md +33 -0
  177. package/dist/method/skills/review-story/references/free-review.md +22 -0
  178. package/dist/method/skills/review-story/references/judge.md +44 -0
  179. package/dist/method/skills/review-story/references/lens-adversarial.md +15 -0
  180. package/dist/method/skills/review-story/references/lens-edge-cases.md +24 -0
  181. package/dist/method/skills/review-story/references/lens-prose.md +11 -0
  182. package/dist/method/skills/review-story/references/lens-relevance.md +13 -0
  183. package/dist/method/skills/review-story/references/lens-security.md +10 -0
  184. package/dist/method/skills/review-story/references/lens-structure.md +16 -0
  185. package/dist/method/skills/review-story/references/lens-verification-gaps.md +13 -0
  186. package/dist/method/skills/review-story/references/pass-assertions.md +17 -0
  187. package/dist/method/skills/review-story/references/pass-removals.md +13 -0
  188. package/dist/method/skills/review-tests/SKILL.md +32 -0
  189. package/dist/method/skills/review-tests/references/check.md +25 -0
  190. package/dist/method/skills/review-tests/references/grid.md +27 -0
  191. package/dist/method/skills/round-table/SKILL.md +31 -0
  192. package/dist/method/skills/round-table/evals/cases.yaml +27 -0
  193. package/dist/method/skills/round-table/references/cast.md +14 -0
  194. package/dist/method/skills/round-table/references/gestures.md +24 -0
  195. package/dist/method/skills/round-table/references/guests.md +17 -0
  196. package/dist/method/skills/round-table/references/independence.md +21 -0
  197. package/dist/method/skills/round-table/references/rooms.md +29 -0
  198. package/dist/method/skills/round-table/references/three-views.md +17 -0
  199. package/dist/method/skills/round-table/references/turns.md +19 -0
  200. package/dist/method/skills/run-retrospective/SKILL.md +201 -0
  201. package/dist/method/skills/security-review-architecture/SKILL.md +129 -0
  202. package/dist/method/skills/security-review-architecture/assets/architecture-review-template.md +47 -0
  203. package/dist/method/skills/security-review-architecture/references/spec-review.md +48 -0
  204. package/dist/method/skills/setup-ci/SKILL.md +121 -0
  205. package/dist/method/skills/setup-ci/assets/github-actions.yml +52 -0
  206. package/dist/method/skills/setup-ci/assets/gitlab-ci.yml +34 -0
  207. package/dist/method/skills/split-into-stories/SKILL.md +205 -0
  208. package/dist/method/skills/split-into-stories/assets/epic.md.tmpl +31 -0
  209. package/dist/method/skills/split-into-stories/assets/story.md.tmpl +36 -0
  210. package/dist/method/skills/strategy/SKILL.md +44 -0
  211. package/dist/method/skills/strategy/assets/innovation-template.md +60 -0
  212. package/dist/method/skills/strategy/assets/problem-template.md +54 -0
  213. package/dist/method/skills/strategy/references/costs.md +28 -0
  214. package/dist/method/skills/strategy/references/gestures.md +24 -0
  215. package/dist/method/skills/strategy/references/innovate-frameworks.md +48 -0
  216. package/dist/method/skills/strategy/references/innovate.md +40 -0
  217. package/dist/method/skills/strategy/references/solve-methods.md +45 -0
  218. package/dist/method/skills/strategy/references/solve.md +35 -0
  219. package/dist/method/skills/test-idea/SKILL.md +29 -0
  220. package/dist/method/skills/test-idea/assets/forge-template.md +27 -0
  221. package/dist/method/skills/test-idea/assets/prfaq-template.md +33 -0
  222. package/dist/method/skills/test-idea/references/bets.md +14 -0
  223. package/dist/method/skills/test-idea/references/concept.md +24 -0
  224. package/dist/method/skills/test-idea/references/faq.md +34 -0
  225. package/dist/method/skills/test-idea/references/forge.md +36 -0
  226. package/dist/method/skills/test-idea/references/personas.md +23 -0
  227. package/dist/method/skills/test-idea/references/prfaq.md +33 -0
  228. package/dist/method/skills/test-idea/references/verdict.md +26 -0
  229. package/dist/method/skills/workshop/SKILL.md +40 -0
  230. package/dist/method/skills/workshop/references/analyze.md +36 -0
  231. package/dist/method/skills/workshop/references/create.md +45 -0
  232. package/dist/method/skills/workshop/references/customize.md +45 -0
  233. package/dist/method/skills/workshop/references/evaluate.md +44 -0
  234. package/dist/method/skills/workshop/references/rules.md +35 -0
  235. package/dist/method/skills/write-architecture/SKILL.md +233 -0
  236. package/dist/method/skills/write-architecture/assets/architecture-template.md +110 -0
  237. package/dist/method/skills/write-architecture/references/guard.md +40 -0
  238. package/dist/method/skills/write-architecture/references/self-check.md +47 -0
  239. package/dist/method/skills/write-brand/SKILL.md +36 -0
  240. package/dist/method/skills/write-brand/assets/brand-template.md +59 -0
  241. package/dist/method/skills/write-brand/assets/identity-page.html +141 -0
  242. package/dist/method/skills/write-brand/assets/identity-template.md +132 -0
  243. package/dist/method/skills/write-brand/references/identity.md +38 -0
  244. package/dist/method/skills/write-brand/references/platform.md +29 -0
  245. package/dist/method/skills/write-brand/references/rules.md +43 -0
  246. package/dist/method/skills/write-brief/SKILL.md +171 -0
  247. package/dist/method/skills/write-brief/assets/brief-template.md +87 -0
  248. package/dist/method/skills/write-brief/assets/research-note-template.md +43 -0
  249. package/dist/method/skills/write-brief/references/brief-checklist.md +37 -0
  250. package/dist/method/skills/write-content/SKILL.md +233 -0
  251. package/dist/method/skills/write-content/assets/campaign-template.md +94 -0
  252. package/dist/method/skills/write-content/assets/content-template.md +76 -0
  253. package/dist/method/skills/write-content/references/content-checklist.md +67 -0
  254. package/dist/method/skills/write-positioning/SKILL.md +218 -0
  255. package/dist/method/skills/write-positioning/assets/page-template.md +85 -0
  256. package/dist/method/skills/write-positioning/assets/positioning-template.md +79 -0
  257. package/dist/method/skills/write-positioning/references/positioning-checklist.md +44 -0
  258. package/dist/method/skills/write-positioning/references/seo-checklist.md +62 -0
  259. package/dist/method/skills/write-prd/SKILL.md +204 -0
  260. package/dist/method/skills/write-prd/assets/prd-template.md +121 -0
  261. package/dist/method/skills/write-prd/evals/cases.yaml +46 -0
  262. package/dist/method/skills/write-prd/references/prd-checklist.md +68 -0
  263. package/dist/method/skills/write-sales/SKILL.md +236 -0
  264. package/dist/method/skills/write-sales/assets/offer-template.md +93 -0
  265. package/dist/method/skills/write-sales/assets/sequence-template.md +110 -0
  266. package/dist/method/skills/write-sales/references/before-you-send.md +54 -0
  267. package/dist/method/skills/write-sales/references/sales-checklist.md +71 -0
  268. package/dist/method/skills/write-spec/SKILL.md +25 -0
  269. package/dist/method/skills/write-spec/assets/spec-template.md +59 -0
  270. package/dist/method/skills/write-spec/references/spec-guide.md +47 -0
  271. package/dist/method/skills/write-ux-spec/SKILL.md +191 -0
  272. package/dist/method/skills/write-ux-spec/assets/mockup-page.html +36 -0
  273. package/dist/method/skills/write-ux-spec/assets/ux-template.md +206 -0
  274. package/dist/method/skills/write-ux-spec/references/accessibility-check.md +74 -0
  275. package/dist/method/skills/write-ux-spec/references/mockups.md +71 -0
  276. package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +83 -0
  277. package/dist/method/skills/write-ux-spec/references/ux-checklist.md +74 -0
  278. package/dist/product-root.js +21527 -0
  279. package/dist/rolldown-runtime.js +38 -0
  280. package/dist/webauthn-verify.js +1 -0
  281. package/dist/webauthn-verify2.js +107 -0
  282. package/dist/webauthn.js +9798 -0
  283. package/package.json +56 -14
  284. package/bin.mjs +0 -228
@@ -0,0 +1,47 @@
1
+ # The spec: parts, scope and growth
2
+
3
+ ## Writing it
4
+
5
+ Copy the template to `.agentplugged/docs/spec.md`; keep the header keys and the part markers;
6
+ remove the guidance comments, the "Generated by agentplugged" line and every `<…>` placeholder.
7
+ Each `EF-n` is testable, each `ENF-n` has a threshold, each `AD-n` states Binds, Prevents and Rule,
8
+ every `EF-n` is in a story line. A choice between real options goes to a `decision` checkpoint,
9
+ never settled in the creator's place. The header holds the scope and no status, cost or progress.
10
+
11
+ ## The four parts
12
+
13
+ Each part opens with its marker (`part: brief`, `requirements`, `decisions` or `stories`, as an
14
+ HTML comment on its own line, before the heading) and stays short: a spec that needs more than
15
+ about 15 functional requirements or 8 stories is no longer a short spec.
16
+
17
+ - **Brief:** the product, its users, the problem, what is out of scope. The creator's words.
18
+ - **Requirements:** `EF-n` (one testable sentence), `ENF-n` (a threshold and how it is measured).
19
+ When the scope names personal data, a payment or accounts, write the security requirements it
20
+ calls for as `ENF-n` (who may read what, where secrets live, what is logged): the register of
21
+ requirements and the security reviews read them there.
22
+ - **Decisions:** `AD-n`, only what binds every story, each with its three fields (Binds,
23
+ Prevents, Rule).
24
+ - **Stories:** one line each, `1-1 : title (EF-1, ENF-2)`; the epic is the first number.
25
+
26
+ ## The scope in the header
27
+
28
+ `size` (small, medium, large), `users` (a number, the first year), `sensitive` (a list among
29
+ `personal_data`, `payment`, `accounts`; `[]` when none), `integrations` (external services),
30
+ `platforms`. They are the creator's answers, never your estimate. A product with something in
31
+ `sensitive` takes the short path only if the creator asked for it: `asked: short` in the header,
32
+ and `docs check` refuses it otherwise (`SPEC_SCOPE`). Never lower a risk to keep the short path.
33
+
34
+ ## Growing
35
+
36
+ `state.next` says `spec_path: grow` (with `spec_path_why`) when the scope or the size of the spec
37
+ calls for the full path. Noah offers it in one line; the creator decides. When they accept, the
38
+ full path is on again (`step_resume` of `full_path`) and `npx agentplugged docs grow` writes the
39
+ brief, the PRD and the architecture from the spec's parts, word for word, identifiers kept, and
40
+ removes the spec. Nothing is retyped; the new documents are validated like any others.
41
+
42
+ ## The readiness gate
43
+
44
+ The spec passes the gate too, in its light form (`track: short`): the engine checks it is validated
45
+ and unchanged, its identifiers known and each requirement carried by a story; Izzy reads the spec and
46
+ the stories for contradictions and gaps, six findings at most (skill `check-readiness`). Noah
47
+ proposes it from `state.next` `readiness`, before the stories are cut or built.
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: write-ux-spec
3
+ description: Stella's workflow for the planning phase. Write, update or review the UX specification in .agentplugged/docs/ux.md from the PRD.
4
+ metadata:
5
+ agent: stella
6
+ phase: planning
7
+ ---
8
+ ## Overview
9
+
10
+ This skill is how Stella, the UX designer, turns the PRD into the UX specification: how the
11
+ product looks, and how it behaves on every screen and in every state. A developer agent builds a
12
+ screen from it without inventing anything, so each choice is written down, named, and tied to
13
+ the journeys and requirements it serves.
14
+
15
+ The taste is the creator's. Stella draws it out, shows options side by side, and writes down what
16
+ the creator chooses. She never adds a requirement: when a screen needs something the PRD does
17
+ not say, it becomes a question.
18
+
19
+ Files of this skill:
20
+
21
+ - `assets/ux-template.md` — the starting structure of the specification, with a valid header.
22
+ - `references/ux-checklist.md` — the checks to run before showing the specification.
23
+ - `references/accessibility-check.md` — the accessibility floor and how to record the check.
24
+ - `references/tokens-and-sketches.md` — tokens, a UI system's delta, `UX-n` elements, sketches.
25
+ - `references/mockups.md`, `assets/mockup-page.html` — the pages: rules, drawing, coverage.
26
+
27
+ ## Before you start
28
+
29
+ - You act as Stella for the whole run: `agent: stella` in every MCP call. If `state.get` shows that
30
+ Stella is not an active agent of the product, say so and go to the last step (Report) with
31
+ `partial`: the creator decides who works.
32
+ - Speak the creator's language, and write the specification in it, headings included. Keep the
33
+ header keys, the identifiers and the token names exactly as written.
34
+ - One question at a time. Wait for the answer, then say back what you understood in a sentence
35
+ before moving on.
36
+ - The specification defines no requirement identifier. It mentions the PRD's `PU-n` and `EF-n`
37
+ inside a line, never at the start of a line, a list item, a heading or a first table cell
38
+ (that would define them a second time).
39
+
40
+ ## Decisions
41
+
42
+ An ambiguity whose readings lead to different experiences, or a choice of direction that weighs
43
+ on the whole product, is never settled in the creator's place.
44
+
45
+ - **Open:** `checkpoint.open` with `type: decision`, a risk, a title, a summary, two to four
46
+ options (each with an `id`, a `label` and its `consequence`) and your `recommendation`; no
47
+ story and no blocks.
48
+ - **Mark:** write `[open: G-…]` at the end of the sentence concerned, never at the start of a
49
+ line and never before an identifier, and go on with the rest while it is open.
50
+ - **Apply:** once `state.get` shows the checkpoint resolved, read its `resolution` in full (`state.get { checkpoint: "<id>" }`) and apply it as "Applying a resolution" says (reference `skill-rules`).
51
+
52
+ Then remove the `[open: G-…]` mark.
53
+
54
+ ## Steps
55
+
56
+ 1. **Start.** Call `agent.status` with `working` and the task. Read `state.get` and look at
57
+ `phase.current`.
58
+ - `framing`: the brief is not approved yet. Say so and go to the last step (Report) with
59
+ `partial`.
60
+ - `planning`: go on.
61
+ - A later phase: the specification was approved with the end of planning. Change it only if
62
+ the creator asks explicitly; then report the change as a conflict in `story.result`.
63
+ 2. **Read what exists.** `.agentplugged/docs/prd.md` must exist: it may still be a draft, it
64
+ does not need an approval. Without it, go to the last step (Report) with `partial` after
65
+ telling the creator: Maya writes the PRD first; when Maya is not active in `state.get`, the
66
+ creator either enables her (`npx agentplugged agent enable maya`, then `sync`) or puts their
67
+ own PRD in `.agentplugged/docs/prd.md`. Read also `.agentplugged/docs/brief.md` (audience
68
+ and tone) and the existing `.agentplugged/docs/ux.md`. Settle the intent with the creator:
69
+ - **create** — no specification yet;
70
+ - **update** — something changed: start from the change;
71
+ - **review** — a critique only. Run the checks of `references/ux-checklist.md`, the
72
+ accessibility check of `references/accessibility-check.md` and
73
+ `npx agentplugged docs check` on the existing specification, report each finding with its
74
+ section and severity, offer to fold them into an update, then go straight to the last step
75
+ (Report) with `partial`. In review, never copy the template, never rewrite the
76
+ specification and never open the end of the phase.
77
+ 3. **Discovery.** Ask the creator to pour out their ideas and to share any visual material:
78
+ screenshots, a logo or brand guide, sketches, mock-ups. Look at it before asking anything it
79
+ answers; ask "anything else?" once. Then, one open question at a time:
80
+ - the feeling the product should give, the products they admire and those they dislike, and
81
+ why;
82
+ - the platforms and form factors (phone, desktop, web, watch…), and the input modes (touch,
83
+ keyboard, voice);
84
+ - a component library or design system they want: record it as a preference for Alex, who
85
+ decides the stack;
86
+ - the concerns of this experience: accessibility needs, languages, dark mode, offline use,
87
+ motion, notifications, information density.
88
+ 4. **Working mode.** Offer the creator the choice:
89
+ - **guided** — visual identity first, then behaviour, section by section;
90
+ - **quick** — the remaining gaps in one or two questions, then a full draft with every guess
91
+ marked `[assumption]`.
92
+ 5. **Visual direction.** Propose two or three directions, each with its mood, palette, type and
93
+ what it costs, and show them side by side on one page (`references/mockups.md`). The creator
94
+ chooses; when they want time, or the choice weighs on the whole product, open a `decision`
95
+ checkpoint with the directions as options, as the "Decisions" section says.
96
+ 6. **Visual identity.** Write the chosen direction as the `tokens` block of the header and reuse
97
+ the tokens by name (`{color.primary}`): colours as hexadecimal values for light and dark modes,
98
+ typography, spacing, shapes, elevation, then the components (anatomy, tokens used, look of
99
+ each state). Note the contrast ratio of each text and background pair as you go. On a UI
100
+ system the product keeps, declare `ui_system` and write only the difference
101
+ (`references/tokens-and-sketches.md`).
102
+ 7. **Information architecture.** List the screens, what each holds and the navigation between
103
+ them. Each journey of the PRD must land on screens, and each screen must serve a journey.
104
+ When one of them fails, ask; never invent the missing piece. Then settle the two to four key
105
+ screens, where the layout carries the behaviour.
106
+ 8. **Behaviour.**
107
+ - One key flow per journey (`PU-n`): what the user sees, does and gets back at each step, the
108
+ moment of value, the failure path, the states met, their microcopy, the `EF-n` it covers.
109
+ - Then the behaviour of each component, the states of every screen (empty, loading, error,
110
+ success, offline, permission denied — those that apply), the interactions (gestures,
111
+ shortcuts, feedback, undo), the microcopy and voice, and the responsive rules.
112
+ - A sketch for each screen, and the table of elements a story must carry (components,
113
+ states, accessibility fixes) as `UX-n` (`references/tokens-and-sketches.md`).
114
+ 9. **Gaps and ambiguities.** A screen that needs something the PRD does not say becomes a
115
+ question for the creator, listed under "Open questions" and in `story.result` for Maya's
116
+ document: you never write a requirement. An ambiguity whose readings lead to different
117
+ experiences becomes a `decision` checkpoint, as the "Decisions" section says.
118
+ 10. **Accessibility check.** Walk through `references/accessibility-check.md` for every screen
119
+ and component of the specification. Record each check in the "Accessibility check" section
120
+ as passed, a finding (with its severity and the fix) or not applicable. Fix the
121
+ specification where you can; a finding you cannot fix stays visible and goes to the creator,
122
+ and a fix to build is an element `UX-n`.
123
+ 11. **Draft and self-check.** Copy `assets/ux-template.md` (in this skill's folder) to
124
+ `.agentplugged/docs/ux.md`, or start from the existing specification. Remove the
125
+ "Generated by agentplugged" comment line the copy carries (`docs check` refuses it), the
126
+ guidance comments once a section is written, every `<…>` placeholder and every sample value
127
+ of the template (marked "sample"). Draw the key screens' pages and confirm with the creator
128
+ which screens stay tables and sketches only (`references/mockups.md`). Set `links` to `prd`
129
+ and to every `PU-n` and `EF-n` the specification covers (active ones only). Walk through
130
+ `references/ux-checklist.md` and fix what fails. Then run `npx agentplugged docs check` and
131
+ fix every problem until there is none.
132
+ Then reconcile the inputs: a sub-agent runs the method `reconcile`
133
+ (`critique-deliverable/references/reconcile.md`) on the brief and the creator's notes and
134
+ references and reports what did not land (a tone, a feeling) with `review.critique` under
135
+ your own id (`lenses: ["reconcile"]`, 5 findings at most); ask once for one gesture per
136
+ finding, their words kept as said, then run `docs check` again.
137
+ 12. **Review with the creator.** Show the specification, point out the `[assumption]` marks, the
138
+ accessibility findings and the open questions, and revise it with the creator's remarks
139
+ until they have none left. Do not ask them to approve it here: their approval is asked
140
+ once, after the validation point is open (step 14).
141
+ 13. **Decision gate.** In `state.get`, every `decision` checkpoint opened during this phase, by
142
+ any agent (yours and Maya's), must be resolved and its answer applied in the documents. If
143
+ one is still open, open nothing: tell the creator which checkpoints wait for them, and go to
144
+ the last step (Report) with `partial`.
145
+ 14. **Commit the specification and validate it, with one point.** `git branch --show-current`
146
+ must name a branch; when it prints nothing (a detached HEAD), ask the creator to check out a
147
+ branch and open nothing. Commit the specification on it (`git add` of its path, then
148
+ `git commit`), signed with the name and the email the creator gave (constitution, "Talking
149
+ with the creator", step 5). The specification is the last document of the planning: while
150
+ `phase.current` is `planning`, its validation and the end of the phase are one point, the
151
+ `phase_end`, and you open it yourself, whether Maya is active or not (the engine lets Maya
152
+ and Stella both close the planning; handing it to Maya would make the creator validate the
153
+ specification, then the end of the phase). Run `npx agentplugged next --json` and read
154
+ `state.get`:
155
+ - the end of planning is already open (`step` is `phase_review`): tell the creator its id;
156
+ - a `document` point of the phase is still open (`DOCUMENT_REVIEW_OPEN`, for example the
157
+ PRD's): tell the creator to answer it first, then open the end;
158
+ - the last end was refused (`step` is `changes_requested`, `agent` is `stella` or `maya`,
159
+ `checkpoint` is that end): read its `checkpoint.resolution.note` (`state.get { checkpoint: "<id>" }`), address it (back to
160
+ step 11), commit, then open a new end with `supersedes` set to that checkpoint's id;
161
+ - any other case in planning: open the end (below), whatever else `state.next` says;
162
+ - the planning is closed (a later update): commit the specification and open a `document`
163
+ checkpoint instead (`type: document`, a low risk, no story and no blocks, the
164
+ specification in `documents`), then ask once; a point the creator refused comes back to you
165
+ through `state.next` (`changes_requested`): read the note, correct, commit, reopen with
166
+ `supersedes`.
167
+
168
+ To open the end of planning: commit the PRD too when it is not committed (`git add` of its
169
+ path, then `git commit`; committing Maya's document as it is does not edit it). Then call
170
+ `checkpoint.open` with `type: phase_end`, `phase: planning`, a low risk, a title and a
171
+ summary, no story and no blocks, and in `documents` the PRD and the specification: for each,
172
+ its `path`, the `branch` and its `blob_sha` (`git rev-parse HEAD:<path>`). Open it first,
173
+ then ask the creator whether the specification suits them and the planning can end, once:
174
+ present it in the chat and record the creator's answer with `chat.answer`, quoting
175
+ their words (constitution, "Checkpoints in the chat"). The PRD is only cited when the creator validated it earlier with
176
+ a `document` point and it is unchanged (the `blob_sha` of its approved point equals
177
+ `git rev-parse HEAD:<path>`, and the file is committed): say so, and never ask for it again.
178
+ 15. **Report.** Call `story.result`: `complete` when the specification is ready, `partial` when
179
+ decisions, findings or questions are still open or you stopped early; a summary naming the
180
+ checkpoints you opened; your assumptions, the open questions and the conflicts (empty lists
181
+ when there are none). Then `agent.status` with `idle`.
182
+
183
+ ## Rules
184
+
185
+ - Follow "Rules for skills and agents" (reference `skill-rules`): checkpoint before the question, ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
186
+ - The specification carries no status, no cost and no progress: the state of the product comes
187
+ from the journal. Its header holds `id`, `kind`, `owner` and `links` only.
188
+ - Write only `.agentplugged/docs/ux.md` and the pages of `.agentplugged/docs/ux-mockups/`. Never edit the PRD, the brief or any other agent's
189
+ document, the method's files or a generated file.
190
+ - Never choose the front-end stack nor write code, and never call another agent: hand back
191
+ to Noah, who proposes what comes next; the creator decides (without Noah, the creator picks the next agent).
@@ -0,0 +1,36 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'">
7
+ <title>Screen name</title>
8
+ <style>
9
+ /* What this page shows of ux.md: the sketch, the components, the states. ux.md wins over the page. */
10
+ :root {
11
+ --color-background: #ffffff;
12
+ --color-text: #1a1a1a;
13
+ --color-primary: #0f62fe;
14
+ --space-2: 8px;
15
+ --space-4: 16px;
16
+ --radius-md: 8px;
17
+ }
18
+ @media (prefers-color-scheme: dark) {
19
+ :root {
20
+ --color-background: #111111;
21
+ --color-text: #f2f2f2;
22
+ }
23
+ }
24
+ body { margin: 0; background: var(--color-background); color: var(--color-text); font: 16px/1.5 system-ui, sans-serif; }
25
+ .frame { max-width: 390px; margin: var(--space-4) auto; border: 1px solid currentColor; border-radius: var(--radius-md); padding: var(--space-4); }
26
+ button { background: var(--color-primary); color: var(--color-background); border: 0; border-radius: var(--radius-md); padding: var(--space-2) var(--space-4); font: inherit; }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <main class="frame" aria-label="Screen name">
31
+ <h1>Screen name</h1>
32
+ <p>Real content of the product goes here.</p>
33
+ <button type="button">Action</button>
34
+ </main>
35
+ </body>
36
+ </html>
@@ -0,0 +1,206 @@
1
+ ---
2
+ id: ux
3
+ kind: ux
4
+ owner: stella
5
+ links:
6
+ - prd
7
+ - PU-1
8
+ - EF-1
9
+ # The design tokens, defined once, here. Groups: color, type, space, radius, shadow. A colour is a
10
+ # hexadecimal value (or light/dark). Every value marked (sample) is replaced by the creator's choice.
11
+ # On top of a UI system the product keeps, add `ui_system: <its name>` and write only the difference.
12
+ tokens:
13
+ color:
14
+ background: { light: "#FFFFFF", dark: "#111111" } # (sample)
15
+ text: { light: "#1A1A1A", dark: "#F2F2F2" } # (sample)
16
+ primary: { light: "#0F62FE", dark: "#78A9FF" } # (sample)
17
+ type:
18
+ body: { family: "system-ui", size: 16px, weight: 400, line: 1.5 } # (sample)
19
+ title: { family: "system-ui", size: 24px, weight: 600, line: 1.25 } # (sample)
20
+ space:
21
+ "1": 4px # (sample)
22
+ "2": 8px # (sample)
23
+ radius:
24
+ md: 8px # (sample)
25
+ shadow:
26
+ "1": "0 1px 3px rgba(0, 0, 0, 0.2)" # (sample)
27
+ ---
28
+ <!-- UX specification template (skill write-ux-spec). Copy it to .agentplugged/docs/ux.md, write it
29
+ in the creator's language, and remove these guidance comments as each section is written, along with
30
+ the "Generated by agentplugged" line, every <…> placeholder and every value marked (sample): they show
31
+ the expected form only. `links` names the PRD and every journey and requirement the specification
32
+ covers (PU-1 and EF-1 are placeholders). Never add a status, a cost or a progress to the header.
33
+
34
+ This document defines no requirement identifier: it mentions those of the PRD inside a line, never at
35
+ the start of a line, a list item, a heading or a first table cell. A token is defined in the header and
36
+ written `{color.primary}` everywhere else. Its own elements are `UX-n`, defined in one table. -->
37
+
38
+ # UX specification: <product name>
39
+
40
+ ## Foundation
41
+
42
+ <!-- Platforms and form factors, input modes, the component library or UI system the creator keeps
43
+ (a preference for the architect, not a decision), and the products that inspire or repel the creator. -->
44
+
45
+ - Platforms: <phone, desktop, web…>
46
+ - Input modes: <touch, keyboard, voice…>
47
+ - Preferred component library: <none, or its name>
48
+ - Inspiration: <product> — <what to take from it>
49
+ - To avoid: <product or pattern> — <why>
50
+
51
+ # Part 1 — Visual identity
52
+
53
+ ## Brand and style
54
+
55
+ <!-- The feeling the product gives, the direction the creator chose, and what it rules out. Link the
56
+ directions page if one was drawn: [directions](ux-mockups/directions.html). The specification wins
57
+ over every page. -->
58
+
59
+ ## Colours
60
+
61
+ <!-- The role of each colour token, where it is used and never used. Values live in the header. -->
62
+
63
+ ## Typography
64
+
65
+ <!-- The type roles and the rules that use them. Values live in the header. -->
66
+
67
+ ## Spacing and layout
68
+
69
+ <!-- How the spacing scale is used, the grid, margins, breakpoints. -->
70
+
71
+ ## Shapes and elevation
72
+
73
+ <!-- Where radii and shadows apply. -->
74
+
75
+ ## Components
76
+
77
+ <!-- Each component: its anatomy, the tokens it uses, the look of each state. The Element column names
78
+ the UX-n of the table "Elements to build". -->
79
+
80
+ | Component | Element | Anatomy | Tokens | States |
81
+ | --- | --- | --- | --- | --- |
82
+ | <button> | UX-1 | <label, icon> | `{color.primary}`, `{radius.md}` | <how each state looks> |
83
+
84
+ ## Do and don't
85
+
86
+ - Do: <visual rule>
87
+ - Don't: <visual rule>
88
+
89
+ # Part 2 — Behaviour
90
+
91
+ ## Information architecture
92
+
93
+ <!-- Every screen, what it holds, the journeys it serves, how it is reached. Each journey lands on
94
+ screens; each screen serves a journey. Under the table, a small text map of the navigation in a code
95
+ block (Home → List → Detail) when it helps. -->
96
+
97
+ | Screen | Purpose | Journeys | Reached from |
98
+ | --- | --- | --- | --- |
99
+ | <screen> | <what it is for> | PU-1 | <screen or entry point> |
100
+
101
+ ## Key screens
102
+
103
+ <!-- Two to four screens where the layout carries the behaviour. One row each, with its page in the
104
+ second column. If the creator chooses to build a screen from the tables alone, write `none` there.
105
+ Keep the titles "Key screens" and "Screen sketches" as they are (or "Écrans clés", "Croquis des écrans"):
106
+ the checks find the sections by them. -->
107
+
108
+ | Screen | Mock-up page | Why it is key |
109
+ | --- | --- | --- |
110
+ | <screen> | [<screen>](ux-mockups/screen-sample.html) (sample) | <what the layout decides> |
111
+
112
+ ## Screen sketches
113
+
114
+ <!-- One block per screen of the architecture (the key ones first), titled with the screen's name:
115
+ a drawing in a code block, each region marked [1], [2]…, then the list of what each region holds, in
116
+ the same numbers, from 1. Stories of the screen take these regions as acceptance criteria. -->
117
+
118
+ ### <screen>
119
+
120
+ ```
121
+ +----------------------+
122
+ | [1] <region> |
123
+ | [2] <region> |
124
+ +----------------------+
125
+ ```
126
+
127
+ 1. <region>: <what it holds, its states>
128
+ 2. <region>: <what it holds, its states>
129
+
130
+ ## Key flows
131
+
132
+ <!-- One flow per journey of the PRD. -->
133
+
134
+ ### <flow name>
135
+
136
+ Covers: PU-1, EF-1.
137
+
138
+ 1. <what the user sees> — <what they do> — <what the product answers>
139
+ 2. <next step>
140
+
141
+ - Moment of value: <when the user gets what they came for>
142
+ - Failure path: <what can go wrong, what the user sees, how they recover>
143
+ - States met: <empty, loading, error…>
144
+ - Microcopy: <the exact texts of the steps>
145
+
146
+ ## Component behaviour
147
+
148
+ <!-- How each component reacts: input, validation, feedback, focus, undo. -->
149
+
150
+ ## States
151
+
152
+ <!-- For each screen, the states that apply and what the user sees: empty, loading, error, success,
153
+ offline, permission denied. -->
154
+
155
+ ## Interactions
156
+
157
+ <!-- Gestures, keyboard shortcuts, feedback, confirmations, undo, transitions. -->
158
+
159
+ ## Microcopy and voice
160
+
161
+ <!-- The tone of the product's words, the terms used (those of the PRD's glossary), and the texts of
162
+ buttons, errors and empty states. -->
163
+
164
+ ## Responsive and platforms
165
+
166
+ <!-- How layouts adapt to each breakpoint and platform. -->
167
+
168
+ ## Accessibility floor
169
+
170
+ <!-- The level the product commits to, and the rules every screen follows (see the check). -->
171
+
172
+ ## Accessibility check
173
+
174
+ <!-- One row per check of the accessibility reference: passed, finding or not applicable. A finding
175
+ carries its severity (blocking, major, minor) and its fix; a fix to build is an element below. -->
176
+
177
+ | Check | Screens or components | Result | Severity | Fix |
178
+ | --- | --- | --- | --- | --- |
179
+ | Text contrast | <all> | <passed, finding, n/a> | <severity> | <fix> |
180
+
181
+ ## Elements to build
182
+
183
+ <!-- What the stories must carry, one row each, numbered UX-1, UX-2… and never renumbered: the
184
+ components, the states and the accessibility fixes. A story names it in its Context. An element that
185
+ is no longer wanted stays, with (retired) at the start of its description. -->
186
+
187
+ | Id | Kind | Description | Where |
188
+ | --- | --- | --- | --- |
189
+ | UX-1 | component | <button> | <screens> |
190
+ | UX-2 | state | <empty list> | <screen> |
191
+
192
+ ## Traceability
193
+
194
+ <!-- Which flow or screen covers which journey and requirement of the PRD. The first cell is always
195
+ the flow or the screen. -->
196
+
197
+ | Flow or screen | Journeys | Requirements |
198
+ | --- | --- | --- |
199
+ | <flow name> | PU-1 | EF-1 |
200
+
201
+ ## Open questions
202
+
203
+ <!-- Needs the PRD does not cover (for the creator and Maya), choices waiting for a decision
204
+ ([open: G-…] in the text), and every [assumption] mark. -->
205
+
206
+ - <question>
@@ -0,0 +1,74 @@
1
+ # Accessibility check
2
+
3
+ The floor every screen of the specification meets, based on the level AA of the Web Content
4
+ Accessibility Guidelines 2.2. A product may commit to more (in the PRD's non-functional
5
+ requirements); never to less. Check each item against every screen and component, and record the
6
+ result in the specification's "Accessibility check" section: passed, a finding (severity and
7
+ fix), or not applicable.
8
+
9
+ Severity: **blocking** — some users cannot complete a journey; **major** — they complete it with
10
+ real difficulty; **minor** — an annoyance or an inconsistency.
11
+
12
+ ## Perceive
13
+
14
+ - **Text contrast.** At least 4.5:1 between text and its background; 3:1 for large text (24px
15
+ regular, or 18.66px — 14pt — bold). Check every pair of colour tokens used together, in light
16
+ and dark modes.
17
+ - **Non-text contrast.** At least 3:1 for icons that carry meaning, field borders, focus
18
+ indicators and the parts of a control needed to see it.
19
+ - **Colour never alone.** An error, a status or a selection is also shown by text, an icon or a
20
+ shape.
21
+ - **Text size and zoom.** Body text of 16px or more; the layout still works with text enlarged
22
+ to 200% and at a width of 320px without horizontal scrolling.
23
+ - **Text spacing.** Nothing is cut off or overlaps when the user sets line height to 1.5, space
24
+ after paragraphs to 2 times the font size, letter spacing to 0.12 and word spacing to 0.16
25
+ times the font size.
26
+ - **Content on hover or focus.** A tooltip or popover that appears on hover or focus can be
27
+ dismissed without moving the pointer or focus, stays while the pointer is over it, and stays
28
+ until dismissed or no longer relevant.
29
+ - **Orientation.** Every screen works in portrait and landscape, unless one orientation is
30
+ essential.
31
+ - **Structure.** Each page has a title that says what it is; headings name the sections in
32
+ order; lists and tables are marked as such.
33
+ - **Images and icons.** Each one that carries meaning has a text alternative; decorative ones are
34
+ hidden from screen readers.
35
+ - **Media.** Video has captions; audio has a transcript.
36
+
37
+ ## Operate
38
+
39
+ - **Keyboard.** Every action can be done with a keyboard alone, with no trap.
40
+ - **Bypass blocks.** A way to skip repeated content (a "skip to content" link, landmarks or
41
+ headings) on every page that repeats navigation.
42
+ - **Focus order and visibility.** The focus moves in reading order and is always visible, never
43
+ hidden behind a sticky element.
44
+ - **Target size.** Touch and click targets of at least 24 by 24px, 44 by 44px for the main
45
+ actions on touch screens.
46
+ - **Gestures.** Every path or multi-finger gesture and every drag has a single-tap alternative.
47
+ - **Motion.** Animations respect the "reduce motion" setting; nothing flashes more than three
48
+ times per second.
49
+ - **Timing.** No time limit, or a way to extend or turn it off; moving content can be paused.
50
+
51
+ ## Understand
52
+
53
+ - **Labels and instructions.** Every field has a visible label; required fields and formats are
54
+ stated before input.
55
+ - **Errors.** An error says what went wrong and how to fix it, next to the field, and the input
56
+ is kept.
57
+ - **Redundant entry.** Information the user already gave in the same process is filled in for
58
+ them or offered to pick, not asked again (unless re-entering it is essential, as for a
59
+ password confirmation or security).
60
+ - **Accessible authentication.** Signing in never requires a cognitive test (remembering,
61
+ transcribing or solving something) without an alternative: password managers and pasting are
62
+ allowed, and a passkey, a link by e-mail or another method is offered.
63
+ - **Consistency.** The same component looks and behaves the same everywhere; navigation stays in
64
+ the same place.
65
+ - **Language.** The language of each page is declared; plain words, no unexplained jargon.
66
+ - **Undo and confirmation.** An action that deletes, pays or sends can be undone or asks for a
67
+ confirmation first.
68
+
69
+ ## Robust
70
+
71
+ - **Names, roles and states.** Each control exposes its name, role and state (selected,
72
+ expanded, disabled) to assistive technology.
73
+ - **Status messages.** A change announced on screen (saved, error, new item) is also announced to
74
+ screen readers without moving the focus.
@@ -0,0 +1,71 @@
1
+ # Mock-up pages
2
+
3
+ Read this when you draw the directions or the key screens. A page shows what the tables say;
4
+ the specification always wins over a page, and `ux.md` says so once, in "Brand and style".
5
+
6
+ ## The rules of a page (checked by `docs check`)
7
+
8
+ - A file of `.agentplugged/docs/ux-mockups/`, flat, lowercase letters, digits and hyphens:
9
+ `directions.html`, `screen-home.html`. Eight pages at most, 30 000 bytes each. Nothing else
10
+ lives in the folder: another kind of file, or a link, is refused.
11
+ - Start from `assets/mockup-page.html` (in this skill's folder). Its head carries a policy meta
12
+ that makes a browser load nothing; it comes before any tag of the body, after the charset and
13
+ viewport metas at most.
14
+ - Self-contained: one inline `<style>`, no script, no image, no font, no `<link>`, no form, no
15
+ address, no character reference (`&#…;`) in a style. A link is `#anchor` only. Icons are a
16
+ few inline `<svg>` shapes, whose values are numbers, paths and colours.
17
+ - Plain tags: text, lists, tables, buttons, inputs, `div`/`section`, `svg`. Anything else is
18
+ refused with its name.
19
+ - Every word comes from the conversation or the specification, never lorem. Text that comes
20
+ from outside (a pasted brief, a product the creator admires) goes in as plain text with
21
+ `<`, `>`, `&` written `&lt;`, `&gt;`, `&amp;`: never as markup.
22
+ - Colours, type and spacing are the tokens of the header, copied once as CSS custom properties
23
+ in `:root` (`--color-primary`), light and dark when the product has both.
24
+
25
+ ## Directions (step "Visual direction")
26
+
27
+ One page, `directions.html`, two or three directions side by side, each applied to the same
28
+ main screen. A direction is a whole look and feel, not a recoloured copy: two that differ only
29
+ by hue are one direction. They differ by density, weight of type, motion and tone. Each shows
30
+ its name and a line on its mood, its palette as chips with hex values, its type, the screen in
31
+ one awkward state (empty, error…), and dark beside light when the product has both. When only
32
+ the colours are undecided, the page may instead hold up to four palettes on one screen. Say in
33
+ the chat what the creator is looking at; do not paste the page. The creator chooses; the page
34
+ stays and is linked from "Brand and style".
35
+
36
+ ## Key screens (step "Key screens")
37
+
38
+ Choose two to four screens whose layout decides how the product behaves: where the user starts,
39
+ the busiest step of the longest flow, a layer that asks for a decision. One page each,
40
+ `screen-<slug>.html`, at 1:1: one resting state plus, if it matters, one other (focus, error,
41
+ empty) in the same file. Draw from the tokens, the sketch and the microcopy. A component the
42
+ specification does not name is a question for the creator before it is drawn.
43
+
44
+ Let a sub-agent in a clean context draw each page: it answers with the path and a one-line
45
+ caption, and the HTML never enters your context. Do not read a page back to check it:
46
+ `docs check` does, and the creator opens it in a browser. A story that builds the screen cites
47
+ its page in its Context; the developer opens it for visual detail only.
48
+
49
+ ## Coverage, asked once
50
+
51
+ When the pages are drawn, list the screens of the architecture: drawn, or "tables and sketch
52
+ only". Ask: "these will be built from the tables and sketches alone; does any need a visual
53
+ reference?" Draw what the creator names. A screen they choose to leave has `none` in the
54
+ "Mock-up page" cell of its row; `docs check` then only warns.
55
+
56
+ ## Navigation and flows stay in text
57
+
58
+ The architecture table and a small text map under it (`Home → List → Detail`), the numbered
59
+ steps of each flow and the sketches say what a diagram would. Do not make diagram files: the
60
+ folder holds pages, and an agent can neither read nor check a drawing.
61
+
62
+ ## A change after
63
+
64
+ A change of a token or of a sketch makes the pages that show it stale. Redraw the key ones or
65
+ say which are old; never let a page contradict the specification without saying so.
66
+
67
+ ## A design tool of the creator's
68
+
69
+ If the creator draws elsewhere, assemble one prompt from the tokens, the sketches, the flows
70
+ and the microcopy; they run it and bring back what it gave. Look at it, take its decisions into
71
+ the tokens and sketches, and keep nothing but those in the specification.