flyee 0.1.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 (302) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/bin/install.js +357 -0
  4. package/bridge/bridge.py +1780 -0
  5. package/bridge/local_tracker.py +722 -0
  6. package/core/agents/backend-specialist.md +266 -0
  7. package/core/agents/code-archaeologist.md +106 -0
  8. package/core/agents/database-architect.md +226 -0
  9. package/core/agents/debugger.md +225 -0
  10. package/core/agents/devops-engineer.md +323 -0
  11. package/core/agents/documentation-writer.md +104 -0
  12. package/core/agents/explorer-agent.md +73 -0
  13. package/core/agents/frontend-specialist.md +743 -0
  14. package/core/agents/game-developer.md +162 -0
  15. package/core/agents/mobile-developer.md +377 -0
  16. package/core/agents/orchestrator.md +416 -0
  17. package/core/agents/penetration-tester.md +188 -0
  18. package/core/agents/performance-optimizer.md +187 -0
  19. package/core/agents/product-manager.md +112 -0
  20. package/core/agents/product-owner.md +95 -0
  21. package/core/agents/project-planner.md +470 -0
  22. package/core/agents/qa-automation-engineer.md +103 -0
  23. package/core/agents/security-auditor.md +170 -0
  24. package/core/agents/seo-specialist.md +111 -0
  25. package/core/agents/stitch-designer.md +190 -0
  26. package/core/agents/tdd-reviewer.md +282 -0
  27. package/core/agents/test-engineer.md +158 -0
  28. package/core/scripts/auto_preview.py +148 -0
  29. package/core/scripts/checklist.py +243 -0
  30. package/core/scripts/cost_report.py +149 -0
  31. package/core/scripts/doc-sync-check.py +461 -0
  32. package/core/scripts/parse_user_stories.py +79 -0
  33. package/core/scripts/prepare_notion_updates.py +172 -0
  34. package/core/scripts/print_create_payload.py +18 -0
  35. package/core/scripts/session_manager.py +120 -0
  36. package/core/scripts/task_complete.py +127 -0
  37. package/core/scripts/verify_all.py +327 -0
  38. package/core/skills/analytics-strategy/SKILL.md +128 -0
  39. package/core/skills/api-patterns/SKILL.md +81 -0
  40. package/core/skills/api-patterns/api-style.md +42 -0
  41. package/core/skills/api-patterns/auth.md +24 -0
  42. package/core/skills/api-patterns/documentation.md +26 -0
  43. package/core/skills/api-patterns/graphql.md +41 -0
  44. package/core/skills/api-patterns/rate-limiting.md +31 -0
  45. package/core/skills/api-patterns/response.md +37 -0
  46. package/core/skills/api-patterns/rest.md +40 -0
  47. package/core/skills/api-patterns/scripts/api_validator.py +211 -0
  48. package/core/skills/api-patterns/security-testing.md +122 -0
  49. package/core/skills/api-patterns/trpc.md +41 -0
  50. package/core/skills/api-patterns/versioning.md +22 -0
  51. package/core/skills/app-builder/SKILL.md +75 -0
  52. package/core/skills/app-builder/agent-coordination.md +71 -0
  53. package/core/skills/app-builder/feature-building.md +53 -0
  54. package/core/skills/app-builder/project-detection.md +34 -0
  55. package/core/skills/app-builder/scaffolding.md +118 -0
  56. package/core/skills/app-builder/tech-stack.md +40 -0
  57. package/core/skills/app-builder/templates/SKILL.md +39 -0
  58. package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  59. package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  60. package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  61. package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  62. package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  63. package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  64. package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  65. package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  66. package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  67. package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  68. package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  69. package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  70. package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  71. package/core/skills/architecture/SKILL.md +55 -0
  72. package/core/skills/architecture/context-discovery.md +43 -0
  73. package/core/skills/architecture/examples.md +94 -0
  74. package/core/skills/architecture/pattern-selection.md +68 -0
  75. package/core/skills/architecture/patterns-reference.md +50 -0
  76. package/core/skills/architecture/trade-off-analysis.md +77 -0
  77. package/core/skills/atomic-design/SKILL.md +282 -0
  78. package/core/skills/atomic-design/references/classification-guide.md +132 -0
  79. package/core/skills/atomic-design/references/quality-checklist.md +60 -0
  80. package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
  81. package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
  82. package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
  83. package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
  84. package/core/skills/bash-linux/SKILL.md +199 -0
  85. package/core/skills/behavioral-modes/SKILL.md +242 -0
  86. package/core/skills/brainstorming/SKILL.md +163 -0
  87. package/core/skills/brainstorming/dynamic-questioning.md +373 -0
  88. package/core/skills/checkpointing-patterns/SKILL.md +163 -0
  89. package/core/skills/clean-code/SKILL.md +201 -0
  90. package/core/skills/code-review-checklist/SKILL.md +109 -0
  91. package/core/skills/code-truth-validation/SKILL.md +149 -0
  92. package/core/skills/component-library-discovery/SKILL.md +154 -0
  93. package/core/skills/content-strategy/SKILL.md +222 -0
  94. package/core/skills/context-budget/SKILL.md +155 -0
  95. package/core/skills/context-gathering-patterns/SKILL.md +278 -0
  96. package/core/skills/cost-tracking/SKILL.md +206 -0
  97. package/core/skills/database-design/SKILL.md +52 -0
  98. package/core/skills/database-design/database-selection.md +43 -0
  99. package/core/skills/database-design/indexing.md +39 -0
  100. package/core/skills/database-design/migrations.md +48 -0
  101. package/core/skills/database-design/optimization.md +36 -0
  102. package/core/skills/database-design/orm-selection.md +30 -0
  103. package/core/skills/database-design/schema-design.md +56 -0
  104. package/core/skills/database-design/scripts/schema_validator.py +172 -0
  105. package/core/skills/deployment-procedures/SKILL.md +295 -0
  106. package/core/skills/design-md/README.md +34 -0
  107. package/core/skills/design-md/SKILL.md +172 -0
  108. package/core/skills/design-md/examples/DESIGN.md +154 -0
  109. package/core/skills/design-system-enforcement/SKILL.md +339 -0
  110. package/core/skills/doc.md +177 -0
  111. package/core/skills/document-registry/SKILL.md +130 -0
  112. package/core/skills/documentation-publishing/SKILL.md +174 -0
  113. package/core/skills/documentation-templates/SKILL.md +194 -0
  114. package/core/skills/enhance-prompt/README.md +34 -0
  115. package/core/skills/enhance-prompt/SKILL.md +204 -0
  116. package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
  117. package/core/skills/frontend-design/SKILL.md +430 -0
  118. package/core/skills/frontend-design/animation-guide.md +331 -0
  119. package/core/skills/frontend-design/color-system.md +311 -0
  120. package/core/skills/frontend-design/decision-trees.md +418 -0
  121. package/core/skills/frontend-design/motion-graphics.md +306 -0
  122. package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  123. package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
  124. package/core/skills/frontend-design/typography-system.md +345 -0
  125. package/core/skills/frontend-design/ux-psychology.md +541 -0
  126. package/core/skills/frontend-design/visual-effects.md +383 -0
  127. package/core/skills/game-development/2d-games/SKILL.md +119 -0
  128. package/core/skills/game-development/3d-games/SKILL.md +135 -0
  129. package/core/skills/game-development/SKILL.md +167 -0
  130. package/core/skills/game-development/game-art/SKILL.md +185 -0
  131. package/core/skills/game-development/game-audio/SKILL.md +190 -0
  132. package/core/skills/game-development/game-design/SKILL.md +129 -0
  133. package/core/skills/game-development/mobile-games/SKILL.md +108 -0
  134. package/core/skills/game-development/multiplayer/SKILL.md +132 -0
  135. package/core/skills/game-development/pc-games/SKILL.md +144 -0
  136. package/core/skills/game-development/vr-ar/SKILL.md +123 -0
  137. package/core/skills/game-development/web-games/SKILL.md +150 -0
  138. package/core/skills/geo-fundamentals/SKILL.md +156 -0
  139. package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  140. package/core/skills/git-workflow/SKILL.md +263 -0
  141. package/core/skills/history-check-patterns/SKILL.md +125 -0
  142. package/core/skills/i18n-localization/SKILL.md +154 -0
  143. package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  144. package/core/skills/integration-completeness/SKILL.md +219 -0
  145. package/core/skills/intelligent-routing/SKILL.md +370 -0
  146. package/core/skills/lint-and-validate/SKILL.md +45 -0
  147. package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
  148. package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  149. package/core/skills/local-verification/SKILL.md +195 -0
  150. package/core/skills/mcp-builder/SKILL.md +176 -0
  151. package/core/skills/mobile-design/SKILL.md +394 -0
  152. package/core/skills/mobile-design/decision-trees.md +516 -0
  153. package/core/skills/mobile-design/mobile-backend.md +491 -0
  154. package/core/skills/mobile-design/mobile-color-system.md +420 -0
  155. package/core/skills/mobile-design/mobile-debugging.md +122 -0
  156. package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
  157. package/core/skills/mobile-design/mobile-navigation.md +458 -0
  158. package/core/skills/mobile-design/mobile-performance.md +767 -0
  159. package/core/skills/mobile-design/mobile-testing.md +356 -0
  160. package/core/skills/mobile-design/mobile-typography.md +433 -0
  161. package/core/skills/mobile-design/platform-android.md +666 -0
  162. package/core/skills/mobile-design/platform-ios.md +561 -0
  163. package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
  164. package/core/skills/mobile-design/touch-psychology.md +537 -0
  165. package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
  166. package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
  167. package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
  168. package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
  169. package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  170. package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
  171. package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
  172. package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
  173. package/core/skills/nextjs-react-expert/SKILL.md +267 -0
  174. package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  175. package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  176. package/core/skills/nodejs-best-practices/SKILL.md +333 -0
  177. package/core/skills/notion-task-patterns/SKILL.md +2529 -0
  178. package/core/skills/page-specifications/SKILL.md +367 -0
  179. package/core/skills/parallel-agents/SKILL.md +175 -0
  180. package/core/skills/performance-profiling/SKILL.md +143 -0
  181. package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  182. package/core/skills/plan-writing/SKILL.md +190 -0
  183. package/core/skills/powershell-windows/SKILL.md +167 -0
  184. package/core/skills/project-foundation/SKILL.md +117 -0
  185. package/core/skills/project-setup/SKILL.md +141 -0
  186. package/core/skills/project-tracking-patterns/SKILL.md +357 -0
  187. package/core/skills/project-type-discovery/SKILL.md +239 -0
  188. package/core/skills/python-patterns/SKILL.md +441 -0
  189. package/core/skills/qa-test-generation/SKILL.md +156 -0
  190. package/core/skills/react-components/README.md +36 -0
  191. package/core/skills/react-components/SKILL.md +47 -0
  192. package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
  193. package/core/skills/react-components/package-lock.json +231 -0
  194. package/core/skills/react-components/package.json +16 -0
  195. package/core/skills/react-components/resources/architecture-checklist.md +15 -0
  196. package/core/skills/react-components/resources/component-template.tsx +37 -0
  197. package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
  198. package/core/skills/react-components/resources/style-guide.json +27 -0
  199. package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
  200. package/core/skills/react-components/scripts/validate.js +68 -0
  201. package/core/skills/red-team-tactics/SKILL.md +199 -0
  202. package/core/skills/remotion/README.md +105 -0
  203. package/core/skills/remotion/SKILL.md +393 -0
  204. package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
  205. package/core/skills/remotion/examples/screens.json +56 -0
  206. package/core/skills/remotion/resources/composition-checklist.md +124 -0
  207. package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
  208. package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
  209. package/core/skills/seo-fundamentals/SKILL.md +129 -0
  210. package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  211. package/core/skills/server-management/SKILL.md +161 -0
  212. package/core/skills/session-resilience/SKILL.md +199 -0
  213. package/core/skills/shadcn-ui/README.md +248 -0
  214. package/core/skills/shadcn-ui/SKILL.md +326 -0
  215. package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  216. package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
  217. package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  218. package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
  219. package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
  220. package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
  221. package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
  222. package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  223. package/core/skills/state-machine/SKILL.md +264 -0
  224. package/core/skills/stitch-loop/README.md +54 -0
  225. package/core/skills/stitch-loop/SKILL.md +203 -0
  226. package/core/skills/stitch-loop/examples/SITE.md +73 -0
  227. package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
  228. package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
  229. package/core/skills/stitch-loop/resources/site-template.md +104 -0
  230. package/core/skills/systematic-debugging/SKILL.md +109 -0
  231. package/core/skills/tailwind-patterns/SKILL.md +284 -0
  232. package/core/skills/tdd-validation/SKILL.md +243 -0
  233. package/core/skills/tdd-workflow/SKILL.md +284 -0
  234. package/core/skills/testing-patterns/SKILL.md +196 -0
  235. package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
  236. package/core/skills/ui-ux-discovery/SKILL.md +329 -0
  237. package/core/skills/ui-validation/SKILL.md +190 -0
  238. package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
  239. package/core/skills/verification-gate/SKILL.md +205 -0
  240. package/core/skills/vulnerability-scanner/SKILL.md +276 -0
  241. package/core/skills/vulnerability-scanner/checklists.md +121 -0
  242. package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  243. package/core/skills/web-design-guidelines/SKILL.md +57 -0
  244. package/core/skills/webapp-testing/SKILL.md +187 -0
  245. package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  246. package/core/templates/ARCHITECTURE.template.md +407 -0
  247. package/core/templates/project-resources.example.json +71 -0
  248. package/core/workflows/atomic.md +182 -0
  249. package/core/workflows/brainstorm.md +134 -0
  250. package/core/workflows/check-task.md +242 -0
  251. package/core/workflows/copy-collect.md +306 -0
  252. package/core/workflows/create-agent.md +33 -0
  253. package/core/workflows/create-skill.md +39 -0
  254. package/core/workflows/create-workflow.md +33 -0
  255. package/core/workflows/create.md +92 -0
  256. package/core/workflows/debug.md +186 -0
  257. package/core/workflows/demand.md +443 -0
  258. package/core/workflows/deploy.md +260 -0
  259. package/core/workflows/discovery.md +267 -0
  260. package/core/workflows/document.md +272 -0
  261. package/core/workflows/ds-components.md +296 -0
  262. package/core/workflows/ds-init.md +58 -0
  263. package/core/workflows/ds-refactor.md +245 -0
  264. package/core/workflows/ds-references.md +197 -0
  265. package/core/workflows/ds-styleguide.md +237 -0
  266. package/core/workflows/ds-token-diff.md +103 -0
  267. package/core/workflows/ds-tokens.md +317 -0
  268. package/core/workflows/ds-validate.md +309 -0
  269. package/core/workflows/execute.md +483 -0
  270. package/core/workflows/extract-template.md +278 -0
  271. package/core/workflows/fix-failed-tests.md +160 -0
  272. package/core/workflows/init-project.md +386 -0
  273. package/core/workflows/legacy-project.md +849 -0
  274. package/core/workflows/log.md +97 -0
  275. package/core/workflows/new-project.md +610 -0
  276. package/core/workflows/new-project.md.bak +3292 -0
  277. package/core/workflows/new-task.md +404 -0
  278. package/core/workflows/orchestrate.md +237 -0
  279. package/core/workflows/page-build.md +296 -0
  280. package/core/workflows/plan.md +89 -0
  281. package/core/workflows/prd.md +255 -0
  282. package/core/workflows/preview.md +81 -0
  283. package/core/workflows/review-page.md +304 -0
  284. package/core/workflows/status.md +86 -0
  285. package/core/workflows/stitch.md +226 -0
  286. package/core/workflows/task-complete.md +473 -0
  287. package/core/workflows/task-update.md +163 -0
  288. package/core/workflows/tdd.md +344 -0
  289. package/core/workflows/test.md +251 -0
  290. package/core/workflows/ui-ux-pro-max.md +437 -0
  291. package/core/workflows/ux-mobile-optimize.md +262 -0
  292. package/core/workflows/ux-mobile-validate.md +297 -0
  293. package/engine-files/GEMINI.md +69 -0
  294. package/package.json +47 -0
  295. package/runtime-adapters/antigravity.js +26 -0
  296. package/runtime-adapters/claude.js +57 -0
  297. package/runtime-adapters/codex.js +51 -0
  298. package/runtime-adapters/copilot.js +51 -0
  299. package/runtime-adapters/cursor.js +51 -0
  300. package/runtime-adapters/gemini-cli.js +30 -0
  301. package/runtime-adapters/opencode.js +51 -0
  302. package/runtime-adapters/windsurf.js +51 -0
@@ -0,0 +1,264 @@
1
+ ---
2
+ name: state-machine
3
+ description: Local project state management with .flyee/ directory. Derived state dashboard, work hierarchy (Sprint→Phase→Task), decisions register. Absorbed from GSD-2 state.ts patterns.
4
+ ---
5
+
6
+ # State Machine
7
+
8
+ > **Absorbed from:** GSD-2 `state.ts`, `GSD-WORKFLOW.md`, `STATE.md`
9
+ > **Purpose:** Give the agent a "memory" — know where it is, what was done, what's next.
10
+
11
+ ---
12
+
13
+ ## 🎯 PURPOSE
14
+
15
+ Without a state machine, every new session starts from zero. The agent has to re-discover:
16
+ - What sprint is active?
17
+ - Which tasks are done?
18
+ - What was the last decision?
19
+
20
+ The `.flyee/` directory solves this with **derived state** — a single file that answers "where am I?"
21
+
22
+ ---
23
+
24
+ ## 📁 .flyee/ DIRECTORY
25
+
26
+ Created automatically when the agent starts work. **Partially gitignored.**
27
+
28
+ ```
29
+ .flyee/ ← Project state root
30
+ ├── STATE.md ← 🔴 DERIVED (gitignored) — "where am I?"
31
+ ├── DECISIONS.md ← ✅ VERSIONED — append-only decision log
32
+ ├── session-lock.json ← 🔴 GITIGNORED — crash recovery lock
33
+ ├── cost-log.jsonl ← 🔴 GITIGNORED — LLM cost tracking
34
+ └── sprints/ ← ✅ VERSIONED — work hierarchy
35
+ └── S{NN}/ ← Sprint (≈ GSD-2 Milestone)
36
+ ├── CONTEXT.md ← Sprint context & constraints
37
+ ├── ROADMAP.md ← Phases with checkboxes + boundary maps
38
+ ├── SUMMARY.md ← Written when sprint completes
39
+ └── phases/ ← Phase (≈ GSD-2 Slice)
40
+ └── P{NN}/
41
+ ├── PLAN.md ← Tasks with must-haves
42
+ ├── SUMMARY.md ← Written when phase completes
43
+ ├── continue.md ← Resume point (ephemeral, gitignored)
44
+ └── tasks/
45
+ ├── T{NN}-PLAN.md ← Task plan + Truths/Artifacts/Key Links
46
+ └── T{NN}-SUMMARY.md ← Written when task completes
47
+ ```
48
+
49
+ ### .gitignore entries for .flyee/
50
+
51
+ ```gitignore
52
+ # Flyee state (ephemeral)
53
+ .flyee/STATE.md
54
+ .flyee/session-lock.json
55
+ .flyee/cost-log.jsonl
56
+ .flyee/**/continue.md
57
+ ```
58
+
59
+ ---
60
+
61
+ ## 📊 STATE.md — Derived Dashboard
62
+
63
+ **Generated, never edited manually.** Updated after every task/phase completion.
64
+
65
+ ```markdown
66
+ # Project State
67
+
68
+ > Auto-generated by @flyee state-machine. Do NOT edit manually.
69
+ > Last updated: 2026-03-31T17:00:00Z
70
+
71
+ ## Active Work
72
+
73
+ | Field | Value |
74
+ |-------|-------|
75
+ | **Sprint** | S09 — Blog & CMS |
76
+ | **Phase** | P02 — Frontend Components (2/4 tasks done) |
77
+ | **Task** | T03 — BlogCard component |
78
+ | **Status** | executing |
79
+
80
+ ## Progress
81
+
82
+ ### S09 — Blog & CMS
83
+ - [x] P01 — Backend API (3/3 tasks) ✅
84
+ - [ ] P02 — Frontend Components (2/4 tasks)
85
+ - [x] T01 — BlogList page structure
86
+ - [x] T02 — Markdown parser
87
+ - [ ] **T03 — BlogCard component** ← ACTIVE
88
+ - [ ] T04 — Pagination
89
+ - [ ] P03 — CMS Admin (0/3 tasks)
90
+ - [ ] P04 — SEO & Meta (0/2 tasks)
91
+
92
+ ## Previous Sprints
93
+ - S01–S08: ✅ Complete
94
+ - S09: 🟡 In Progress (Phase 2/4)
95
+ - S10–S18: ⏳ Pending
96
+
97
+ ## Next Action
98
+ Implement BlogCard component per T03-PLAN.md must-haves.
99
+ ```
100
+
101
+ ### Derivation Rules
102
+
103
+ 1. **Sprint = active** if: has CONTEXT.md but no SUMMARY.md, and all dependency sprints are complete
104
+ 2. **Phase = active** if: first incomplete phase in ROADMAP.md with dependencies satisfied
105
+ 3. **Task = active** if: first incomplete task in active phase PLAN.md
106
+ 4. **Status** values: `pre-planning`, `planning`, `executing`, `verifying`, `summarizing`, `blocked`, `complete`
107
+
108
+ ---
109
+
110
+ ## 📖 DECISIONS.md — Append-Only Register
111
+
112
+ **Versioned. Never delete entries. Only append.**
113
+
114
+ ```markdown
115
+ # Decisions Register
116
+
117
+ > Append-only log of technical decisions made during project execution.
118
+ > Each entry is immutable once written.
119
+
120
+ ---
121
+
122
+ ## D001 — Use RSC for blog posts (2026-03-31)
123
+
124
+ **Context:** Blog posts need fast initial load and SEO.
125
+ **Decision:** Use React Server Components for blog rendering.
126
+ **Rationale:** SSR performance, SEO friendliness, reduces client bundle.
127
+ **Sprint:** S09 | **Phase:** P02 | **Task:** T01
128
+
129
+ ---
130
+
131
+ ## D002 — md-ast for Markdown parsing (2026-03-31)
132
+
133
+ **Context:** Need to parse markdown with frontmatter for blog posts.
134
+ **Decision:** Use md-ast (already in project) instead of adding remark.
135
+ **Rationale:** Zero new dependencies. Already used for docs.
136
+ **Sprint:** S09 | **Phase:** P02 | **Task:** T02
137
+ ```
138
+
139
+ ### When to write a decision
140
+
141
+ - Choosing between 2+ viable options
142
+ - Rejecting a common approach for a specific reason
143
+ - Making a trade-off (performance vs simplicity, etc.)
144
+ - Any decision that future-you would wonder "why did we do this?"
145
+
146
+ ---
147
+
148
+ ## 🔄 STATE DERIVATION PROTOCOL
149
+
150
+ When the agent starts a session:
151
+
152
+ ```
153
+ 1. IF .flyee/STATE.md exists:
154
+ → Read it. Know "where am I?"
155
+ → Check continue.md in active phase → if exists, RESUME from there
156
+
157
+ 2. IF .flyee/STATE.md does NOT exist:
158
+ → Read .flyee/sprints/ directory
159
+ → Derive state from ROADMAP/PLAN files
160
+ → Generate STATE.md
161
+
162
+ 3. IF .flyee/ does NOT exist:
163
+ → This is a new project or first @flyee session
164
+ → Create .flyee/ with minimal STATE.md
165
+ → ASK user about current project state
166
+ ```
167
+
168
+ ### State Update Triggers
169
+
170
+ | Event | Action |
171
+ |-------|--------|
172
+ | Task completed | Mark checkbox in PLAN.md, re-derive STATE.md |
173
+ | Phase completed | Write phase SUMMARY.md, mark in ROADMAP.md, re-derive |
174
+ | Sprint completed | Write sprint SUMMARY.md, re-derive |
175
+ | Decision made | Append to DECISIONS.md |
176
+ | Session start | Read STATE.md + check continue.md |
177
+ | Session end | Write continue.md if mid-task |
178
+
179
+ ---
180
+
181
+ ## 📋 ROADMAP.md FORMAT
182
+
183
+ ```markdown
184
+ # S09 — Blog & CMS
185
+
186
+ ## Phases
187
+
188
+ ### P01 — Backend API
189
+ - [x] T01 — Post CRUD endpoints
190
+ - [x] T02 — Markdown storage
191
+ - [x] T03 — Category system
192
+ **Status:** ✅ Complete
193
+
194
+ ### P02 — Frontend Components
195
+ depends: P01
196
+ - [x] T01 — BlogList page structure
197
+ - [x] T02 — Markdown parser
198
+ - [ ] T03 — BlogCard component
199
+ - [ ] T04 — Pagination
200
+ **Status:** 🟡 In Progress
201
+
202
+ ### P03 — CMS Admin
203
+ depends: P01
204
+ - [ ] T01 — Post editor
205
+ - [ ] T02 — Media upload
206
+ - [ ] T03 — Draft/publish flow
207
+ **Status:** ⏳ Pending
208
+
209
+ ## Boundary Map
210
+
211
+ ### P01 → P02
212
+ **Produces:**
213
+ - `types/post.ts` → Post, Author interfaces
214
+ - `api/posts/route.ts` → GET /api/posts, POST /api/posts
215
+
216
+ **Consumes:** nothing (leaf)
217
+
218
+ ### P01 → P03
219
+ **Produces:**
220
+ - `api/posts/route.ts` → PUT, DELETE handlers
221
+ - `types/post.ts` → Post interface
222
+
223
+ **Consumes:** nothing (leaf)
224
+
225
+ ### P02, P03 → P04
226
+ **Produces:**
227
+ - `components/BlogCard.tsx` → BlogCard component
228
+ - `pages/admin/posts/` → CMS pages
229
+
230
+ **Consumes from P01:**
231
+ - `api/posts/route.ts` → all handlers
232
+ ```
233
+
234
+ ---
235
+
236
+ ## 🏗️ CREATING A NEW SPRINT
237
+
238
+ When `/new-task` or `/new-project` creates a sprint:
239
+
240
+ ```
241
+ 1. Create .flyee/sprints/S{NN}/
242
+ 2. Write CONTEXT.md (decisions, constraints, goals)
243
+ 3. Write ROADMAP.md (phases, tasks, boundary map)
244
+ 4. Update STATE.md
245
+ 5. IF connected to Flyee SaaS: sync via bridge.py
246
+ ```
247
+
248
+ ---
249
+
250
+ ## ⚡ QUICK REFERENCE
251
+
252
+ ```bash
253
+ # Check current state
254
+ cat .flyee/STATE.md
255
+
256
+ # Check decisions
257
+ cat .flyee/DECISIONS.md
258
+
259
+ # Check sprint roadmap
260
+ cat .flyee/sprints/S09/ROADMAP.md
261
+
262
+ # Check active task plan
263
+ cat .flyee/sprints/S09/phases/P02/tasks/T03-PLAN.md
264
+ ```
@@ -0,0 +1,54 @@
1
+ # Stitch Build Loop Skill
2
+
3
+ Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npx add-skill google-labs-code/stitch-skills --skill stitch-loop --global
9
+ ```
10
+
11
+ ## What It Does
12
+
13
+ Enables continuous, autonomous website development through a "baton" system:
14
+
15
+ 1. Agent reads task from `next-prompt.md`
16
+ 2. Generates page via Stitch MCP tools
17
+ 3. Integrates into site structure
18
+ 4. Writes next task to continue the loop
19
+
20
+ ## Prerequisites
21
+
22
+ - Stitch MCP Server access
23
+ - A `DESIGN.md` file (generate with the `design-md` skill)
24
+ - A `SITE.md` file for project context
25
+
26
+ ## Example Prompt
27
+
28
+ ```text
29
+ Read my next-prompt.md and generate the page using Stitch, then prepare the next iteration.
30
+ ```
31
+
32
+ ## Skill Structure
33
+
34
+ ```
35
+ stitch-loop/
36
+ ├── SKILL.md — Core pattern instructions
37
+ ├── README.md — This file
38
+ ├── resources/
39
+ │ ├── baton-schema.md — Baton file format spec
40
+ │ └── site-template.md — SITE.md/DESIGN.md templates
41
+ └── examples/
42
+ ├── next-prompt.md — Example baton
43
+ └── SITE.md — Example site constitution
44
+ ```
45
+
46
+ ## Works With
47
+
48
+ - **`design-md` skill**: Generate `DESIGN.md` from existing Stitch screens
49
+ - **CI/CD**: GitHub Actions can trigger new iterations on push
50
+ - **Agent chains**: Dispatch to other agents (Jules, etc.)
51
+
52
+ ## Learn More
53
+
54
+ See [SKILL.md](./SKILL.md) for complete instructions.
@@ -0,0 +1,203 @@
1
+ ---
2
+ name: stitch-loop
3
+ description: Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern
4
+ allowed-tools:
5
+ - "stitch*:*"
6
+ - "chrome*:*"
7
+ - "Read"
8
+ - "Write"
9
+ - "Bash"
10
+ ---
11
+
12
+ # Stitch Build Loop
13
+
14
+ You are an **autonomous frontend builder** participating in an iterative site-building loop. Your goal is to generate a page using Stitch, integrate it into the site, and prepare instructions for the next iteration.
15
+
16
+ ## Overview
17
+
18
+ The Build Loop pattern enables continuous, autonomous website development through a "baton" system. Each iteration:
19
+ 1. Reads the current task from a baton file (`next-prompt.md`)
20
+ 2. Generates a page using Stitch MCP tools
21
+ 3. Integrates the page into the site structure
22
+ 4. Writes the next task to the baton file for the next iteration
23
+
24
+ ## Prerequisites
25
+
26
+ **Required:**
27
+ - Access to the Stitch MCP Server
28
+ - A Stitch project (existing or will be created)
29
+ - A `DESIGN.md` file (generate one using the `design-md` skill if needed)
30
+ - A `SITE.md` file documenting the site vision and roadmap
31
+
32
+ **Optional:**
33
+ - Chrome DevTools MCP Server — enables visual verification of generated pages
34
+
35
+ ## The Baton System
36
+
37
+ The `next-prompt.md` file acts as a relay baton between iterations:
38
+
39
+ ```markdown
40
+ ---
41
+ page: about
42
+ ---
43
+ A page describing how jules.top tracking works.
44
+
45
+ **DESIGN SYSTEM (REQUIRED):**
46
+ [Copy from DESIGN.md Section 6]
47
+
48
+ **Page Structure:**
49
+ 1. Header with navigation
50
+ 2. Explanation of tracking methodology
51
+ 3. Footer with links
52
+ ```
53
+
54
+ **Critical rules:**
55
+ - The `page` field in YAML frontmatter determines the output filename
56
+ - The prompt content must include the design system block from `DESIGN.md`
57
+ - You MUST update this file before completing your work to continue the loop
58
+
59
+ ## Execution Protocol
60
+
61
+ ### Step 1: Read the Baton
62
+
63
+ Parse `next-prompt.md` to extract:
64
+ - **Page name** from the `page` frontmatter field
65
+ - **Prompt content** from the markdown body
66
+
67
+ ### Step 2: Consult Context Files
68
+
69
+ Before generating, read these files:
70
+
71
+ | File | Purpose |
72
+ |------|---------|
73
+ | `SITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap |
74
+ | `DESIGN.md` | Required visual style for Stitch prompts |
75
+
76
+ **Important checks:**
77
+ - Section 4 (Sitemap) — Do NOT recreate pages that already exist
78
+ - Section 5 (Roadmap) — Pick tasks from here if backlog exists
79
+ - Section 6 (Creative Freedom) — Ideas for new pages if roadmap is empty
80
+
81
+ ### Step 3: Generate with Stitch
82
+
83
+ Use the Stitch MCP tools to generate the page:
84
+
85
+ 1. **Discover namespace**: Run `list_tools` to find the Stitch MCP prefix
86
+ 2. **Get or create project**:
87
+ - If `stitch.json` exists, use the `projectId` from it
88
+ - Otherwise, call `[prefix]:create_project` and save the ID to `stitch.json`
89
+ 3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with:
90
+ - `projectId`: The project ID
91
+ - `prompt`: The full prompt from the baton (including design system block)
92
+ - `deviceType`: `DESKTOP` (or as specified)
93
+ 4. **Retrieve assets**: Call `[prefix]:get_screen` to get:
94
+ - `htmlCode.downloadUrl` — Download and save as `queue/{page}.html`
95
+ - `screenshot.downloadUrl` — Download and save as `queue/{page}.png`
96
+
97
+ ### Step 4: Integrate into Site
98
+
99
+ 1. Move generated HTML from `queue/{page}.html` to `site/public/{page}.html`
100
+ 2. Fix any asset paths to be relative to the public folder
101
+ 3. Update navigation:
102
+ - Find existing placeholder links (e.g., `href="#"`) and wire them to the new page
103
+ - Add the new page to the global navigation if appropriate
104
+ 4. Ensure consistent headers/footers across all pages
105
+
106
+ ### Step 4.5: Visual Verification (Optional)
107
+
108
+ If the **Chrome DevTools MCP Server** is available, verify the generated page:
109
+
110
+ 1. **Check availability**: Run `list_tools` to see if `chrome*` tools are present
111
+ 2. **Start dev server**: Use Bash to start a local server (e.g., `npx serve site/public`)
112
+ 3. **Navigate to page**: Call `[chrome_prefix]:navigate` to open `http://localhost:3000/{page}.html`
113
+ 4. **Capture screenshot**: Call `[chrome_prefix]:screenshot` to capture the rendered page
114
+ 5. **Visual comparison**: Compare against the Stitch screenshot (`queue/{page}.png`) for fidelity
115
+ 6. **Stop server**: Terminate the dev server process
116
+
117
+ > **Note:** This step is optional. If Chrome DevTools MCP is not installed, skip to Step 5.
118
+
119
+ ### Step 5: Update Site Documentation
120
+
121
+ Modify `SITE.md`:
122
+ - Add the new page to Section 4 (Sitemap) with `[x]`
123
+ - Remove any idea you consumed from Section 6 (Creative Freedom)
124
+ - Update Section 5 (Roadmap) if you completed a backlog item
125
+
126
+ ### Step 6: Prepare the Next Baton (Critical)
127
+
128
+ **You MUST update `next-prompt.md` before completing.** This keeps the loop alive.
129
+
130
+ 1. **Decide the next page**:
131
+ - Check `SITE.md` Section 5 (Roadmap) for pending items
132
+ - If empty, pick from Section 6 (Creative Freedom)
133
+ - Or invent something new that fits the site vision
134
+ 2. **Write the baton** with proper YAML frontmatter:
135
+
136
+ ```markdown
137
+ ---
138
+ page: achievements
139
+ ---
140
+ A competitive achievements page showing developer badges and milestones.
141
+
142
+ **DESIGN SYSTEM (REQUIRED):**
143
+ [Copy the entire design system block from DESIGN.md]
144
+
145
+ **Page Structure:**
146
+ 1. Header with title and navigation
147
+ 2. Badge grid showing unlocked/locked states
148
+ 3. Progress bars for milestone tracking
149
+ ```
150
+
151
+ ## File Structure Reference
152
+
153
+ ```
154
+ project/
155
+ ├── next-prompt.md # The baton — current task
156
+ ├── stitch.json # Stitch project ID (persist this!)
157
+ ├── DESIGN.md # Visual design system (from design-md skill)
158
+ ├── SITE.md # Site vision, sitemap, roadmap
159
+ ├── queue/ # Staging area for Stitch output
160
+ │ ├── {page}.html
161
+ │ └── {page}.png
162
+ └── site/public/ # Production pages
163
+ ├── index.html
164
+ └── {page}.html
165
+ ```
166
+
167
+ ## Orchestration Options
168
+
169
+ The loop can be driven by different orchestration layers:
170
+
171
+ | Method | How it works |
172
+ |--------|--------------|
173
+ | **CI/CD** | GitHub Actions triggers on `next-prompt.md` changes |
174
+ | **Human-in-loop** | Developer reviews each iteration before continuing |
175
+ | **Agent chains** | One agent dispatches to another (e.g., Jules API) |
176
+ | **Manual** | Developer runs the agent repeatedly with the same repo |
177
+
178
+ The skill is orchestration-agnostic — focus on the pattern, not the trigger mechanism.
179
+
180
+ ## Design System Integration
181
+
182
+ This skill works best with the `design-md` skill:
183
+
184
+ 1. **First time setup**: Generate `DESIGN.md` using the `design-md` skill from an existing Stitch screen
185
+ 2. **Every iteration**: Copy Section 6 ("Design System Notes for Stitch Generation") into your baton prompt
186
+ 3. **Consistency**: All generated pages will share the same visual language
187
+
188
+ ## Common Pitfalls
189
+
190
+ - ❌ Forgetting to update `next-prompt.md` (breaks the loop)
191
+ - ❌ Recreating a page that already exists in the sitemap
192
+ - ❌ Not including the design system block in the prompt
193
+ - ❌ Leaving placeholder links (`href="#"`) instead of wiring real navigation
194
+ - ❌ Forgetting to persist `stitch.json` after creating a new project
195
+
196
+ ## Troubleshooting
197
+
198
+ | Issue | Solution |
199
+ |-------|----------|
200
+ | Stitch generation fails | Check that the prompt includes the design system block |
201
+ | Inconsistent styles | Ensure DESIGN.md is up-to-date and copied correctly |
202
+ | Loop stalls | Verify `next-prompt.md` was updated with valid frontmatter |
203
+ | Navigation broken | Check all internal links use correct relative paths |
@@ -0,0 +1,73 @@
1
+ ---
2
+ stitch-project-id: 13534454087919359824
3
+ ---
4
+ # Project Vision & Constitution
5
+
6
+ > **AGENT INSTRUCTION:** Read this file before every iteration. It serves as the project's "Long-Term Memory." If `next-prompt.md` is empty, pick the highest priority item from Section 5 OR invent a new page that fits the project vision.
7
+
8
+ ## 1. Core Identity
9
+ * **Project Name:** Oakwood Furniture Co.
10
+ * **Stitch Project ID:** `13534454087919359824`
11
+ * **Mission:** A premium online furniture showroom showcasing handcrafted, sustainable wood furniture.
12
+ * **Target Audience:** Design-conscious homeowners, interior designers, eco-minded buyers.
13
+ * **Voice:** Warm, refined, artisanal, and trustworthy.
14
+
15
+ ## 2. Visual Language (Stitch Prompt Strategy)
16
+ *Strictly adhere to these descriptive rules when prompting Stitch. Do NOT use code.*
17
+
18
+ * **The "Vibe" (Adjectives):**
19
+ * *Primary:* **Warm** (Inviting, cozy, natural materials).
20
+ * *Secondary:* **Minimal** (Clean layouts, breathing room, gallery-like).
21
+ * *Tertiary:* **Artisanal** (Handcrafted feel, attention to detail).
22
+
23
+ * **Color Philosophy (Semantic):**
24
+ * **Backgrounds:** Warm barely-there cream (#FCFAFA). Soft, inviting canvas.
25
+ * **Accents:** Deep muted teal-navy (#294056) for CTAs and highlights.
26
+ * **Text:** Charcoal near-black (#2C2C2C) for headlines, soft gray (#6B6B6B) for body.
27
+
28
+ ## 3. Architecture & File Structure
29
+ * **Root:** `site/public/`
30
+ * **Asset Flow:** Stitch generates to `queue/` -> Validate -> Move to `site/public/`.
31
+ * **Navigation Strategy:**
32
+ * **Global Header:** Logo, Shop, Collections, About, Contact.
33
+ * **Global Footer:** Sustainability, Craftsmanship, Shipping Info, Social Links.
34
+
35
+ ## 4. Live Sitemap (Current State)
36
+ *The Agent MUST update this section when a new page is successfully merged.*
37
+
38
+ * [x] `index.html` - Homepage with hero and featured collections.
39
+ * [x] `collections.html` - Overview of furniture categories.
40
+ * [x] `about.html` - Our story and craftsmanship philosophy.
41
+ * [ ] `contact.html` - Contact form and showroom locations.
42
+
43
+ ## 5. The Roadmap (Backlog)
44
+ *If `next-prompt.md` is empty or completed, pick the next task from here.*
45
+
46
+ ### High Priority
47
+ - [ ] **Product Detail Page:** Template for individual furniture items.
48
+ - [ ] **Contact Page:** Contact form with showroom map.
49
+
50
+ ### Medium Priority
51
+ - [ ] **Sustainability Page:** Our commitment to eco-friendly practices.
52
+ - [ ] **Care Guide:** How to maintain wood furniture.
53
+
54
+ ## 6. Creative Freedom Guidelines
55
+ *When the backlog is empty, follow these guidelines to innovate.*
56
+
57
+ 1. **Stay On-Brand:** New pages must fit the "Warm + Minimal + Artisanal" vibe.
58
+ 2. **Enhance the Core:** Support the furniture shopping experience.
59
+ 3. **Naming Convention:** Use lowercase, descriptive filenames.
60
+
61
+ ### Ideas to Explore
62
+ *Pick one, build it, then REMOVE it from this list.*
63
+
64
+ - [ ] `materials.html` - Showcase of wood types and finishes
65
+ - [ ] `custom.html` - Custom furniture ordering process
66
+ - [ ] `gallery.html` - Customer homes featuring our furniture
67
+ - [ ] `blog.html` - Design tips and furniture care articles
68
+
69
+ ## 7. Rules of Engagement
70
+ 1. Do not recreate pages in Section 4.
71
+ 2. Always update `next-prompt.md` before completing.
72
+ 3. Consume ideas from Section 6 when you use them.
73
+ 4. Keep the loop moving.
@@ -0,0 +1,25 @@
1
+ ---
2
+ page: contact
3
+ ---
4
+ A warm, inviting contact page for Oakwood Furniture Co.
5
+
6
+ **DESIGN SYSTEM (REQUIRED):**
7
+ - Platform: Web, Desktop-first
8
+ - Theme: Light, minimal, photography-first
9
+ - Background: Warm barely-there cream (#FCFAFA)
10
+ - Surface: Crisp very light gray (#F5F5F5) for cards
11
+ - Primary Accent: Deep muted teal-navy (#294056) for buttons and links
12
+ - Text Primary: Charcoal near-black (#2C2C2C) for headlines
13
+ - Text Secondary: Soft warm gray (#6B6B6B) for body copy
14
+ - Font: Modern sans-serif (Manrope or similar), clean and approachable
15
+ - Buttons: Subtly rounded corners (8px), comfortable padding
16
+ - Cards: Gently rounded corners (12px), whisper-soft shadows on hover
17
+ - Layout: Centered content, max-width container, generous whitespace
18
+ - No harsh shadows, no aggressive colors - serene and trustworthy
19
+
20
+ **Page Structure:**
21
+ 1. **Header:** Navigation with logo, Shop, Collections, About, Contact (active)
22
+ 2. **Hero Section:** Warm headline "Get in Touch" with a brief welcome message
23
+ 3. **Contact Form:** Name, email, message fields with the teal-navy submit button
24
+ 4. **Showroom Info:** Address, hours, and an embedded map or beautiful showroom photo
25
+ 5. **Footer:** Sustainability, Craftsmanship, Shipping links, and social icons
@@ -0,0 +1,61 @@
1
+ # Baton File Schema
2
+
3
+ The baton file (`next-prompt.md`) is the communication mechanism between loop iterations. It tells the next agent what to build.
4
+
5
+ ## Format
6
+
7
+ ```yaml
8
+ ---
9
+ page: <filename-without-extension>
10
+ ---
11
+ <prompt-content>
12
+ ```
13
+
14
+ ## Fields
15
+
16
+ ### Frontmatter (YAML)
17
+
18
+ | Field | Type | Required | Description |
19
+ |-------|------|----------|-------------|
20
+ | `page` | string | Yes | Output filename (without `.html` extension) |
21
+
22
+ ### Body (Markdown)
23
+
24
+ The body contains the full Stitch prompt, which must include:
25
+
26
+ 1. **One-line description** with vibe/atmosphere keywords
27
+ 2. **Design System block** (required) — copied from `DESIGN.md` Section 6
28
+ 3. **Page Structure** — numbered list of sections/components
29
+
30
+ ## Example
31
+
32
+ ```markdown
33
+ ---
34
+ page: achievements
35
+ ---
36
+ A competitive, gamified achievements page with terminal aesthetics.
37
+
38
+ **DESIGN SYSTEM (REQUIRED):**
39
+ - Platform: Web, Desktop-first
40
+ - Theme: Dark, minimal, data-focused
41
+ - Background: Deep charcoal/near-black (#0f1419)
42
+ - Primary Accent: Teal/Cyan (#2dd4bf)
43
+ - Text Primary: White (#ffffff)
44
+ - Font: Clean sans-serif (Inter, SF Pro, or system default)
45
+ - Layout: Centered content, max-width container
46
+
47
+ **Page Structure:**
48
+ 1. Header with title "Achievements" and navigation
49
+ 2. Badge grid showing locked/unlocked states with icons
50
+ 3. Progress section with milestone bars
51
+ 4. Footer with links to other pages
52
+ ```
53
+
54
+ ## Validation Rules
55
+
56
+ Before completing an iteration, validate your baton:
57
+
58
+ - [ ] `page` frontmatter field exists and is a valid filename
59
+ - [ ] Prompt includes the design system block
60
+ - [ ] Prompt describes a page NOT already in `SITE.md` sitemap
61
+ - [ ] Prompt includes specific page structure details