bps-kit 1.0.18 → 1.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 (37) hide show
  1. package/bin/cli.js +156 -28
  2. package/bin/convert_to_vscode.js +3 -0
  3. package/package.json +2 -2
  4. package/templates/VAULT_INDEX.md +5 -4
  5. package/templates/agents-template/agents/frontend-specialist.md +1 -1
  6. package/templates/agents-template/agents/site-builder.md +177 -0
  7. package/templates/agents-template/rules/GEMINI.md +5 -2
  8. package/templates/agents-template/workflows/build-site.md +122 -0
  9. package/templates/skills_extra/stitch-loop/README.md +54 -0
  10. package/templates/skills_extra/stitch-loop/SKILL.md +263 -0
  11. package/templates/skills_extra/stitch-loop/examples/SITE.md +73 -0
  12. package/templates/skills_extra/stitch-loop/examples/next-prompt.md +25 -0
  13. package/templates/skills_extra/stitch-loop/resources/baton-schema.md +61 -0
  14. package/templates/skills_extra/stitch-loop/resources/site-template.md +104 -0
  15. package/templates/skills_normal/design-md/README.md +34 -0
  16. package/templates/skills_normal/design-md/SKILL.md +172 -0
  17. package/templates/skills_normal/design-md/examples/DESIGN.md +154 -0
  18. package/templates/skills_normal/enhance-prompt/README.md +34 -0
  19. package/templates/skills_normal/enhance-prompt/SKILL.md +204 -0
  20. package/templates/skills_normal/enhance-prompt/references/KEYWORDS.md +114 -0
  21. package/templates/skills_normal/react-components/README.md +36 -0
  22. package/templates/skills_normal/react-components/SKILL.md +47 -0
  23. package/templates/skills_normal/react-components/examples/gold-standard-card.tsx +80 -0
  24. package/templates/skills_normal/react-components/package-lock.json +231 -0
  25. package/templates/skills_normal/react-components/package.json +16 -0
  26. package/templates/skills_normal/react-components/resources/architecture-checklist.md +15 -0
  27. package/templates/skills_normal/react-components/resources/component-template.tsx +37 -0
  28. package/templates/skills_normal/react-components/resources/stitch-api-reference.md +14 -0
  29. package/templates/skills_normal/react-components/resources/style-guide.json +27 -0
  30. package/templates/skills_normal/react-components/scripts/fetch-stitch.sh +30 -0
  31. package/templates/skills_normal/react-components/scripts/validate.js +70 -0
  32. package/templates/vault/remotion/README.md +105 -0
  33. package/templates/vault/remotion/examples/WalkthroughComposition.tsx +78 -0
  34. package/templates/vault/remotion/examples/screens.json +56 -0
  35. package/templates/vault/remotion/resources/composition-checklist.md +124 -0
  36. package/templates/vault/remotion/resources/screen-slide-template.tsx +123 -0
  37. package/templates/vault/remotion/scripts/download-stitch-asset.sh +38 -0
@@ -0,0 +1,122 @@
1
+ ---
2
+ description: Build cinematic landing pages with preset design systems, GSAP animations, and optional Stitch integration
3
+ ---
4
+
5
+ # build-site
6
+
7
+ End-to-end workflow for building a cinematic, pixel-perfect landing page from scratch.
8
+
9
+ ## When to Use
10
+
11
+ - User asks to "build a site", "create a landing page", "make a one-pager"
12
+ - User wants a cinematic/premium web presence with animations
13
+ - User wants to use Stitch MCP to generate or extend pages
14
+
15
+ ## Prerequisites
16
+
17
+ - Node.js installed
18
+ - Agent: `site-builder` (loaded automatically)
19
+
20
+ ## Workflow Steps
21
+
22
+ ### Phase 1 — Discovery (Socratic Gate)
23
+
24
+ > **DO NOT SKIP.** Ask all 4 questions before writing any code.
25
+
26
+ Activate the `site-builder` agent and present the 4 mandatory questions:
27
+
28
+ 1. **Brand name + purpose** (one sentence)
29
+ 2. **Aesthetic preset** (A: Organic Tech, B: Midnight Luxe, C: Brutalist Signal, D: Vapor Clinic)
30
+ 3. **3 value propositions** (short phrases)
31
+ 4. **Primary CTA** (what visitors should do)
32
+
33
+ Wait for user responses. Do not assume answers.
34
+
35
+ ### Phase 2 — Design Token Mapping
36
+
37
+ From the user's answers:
38
+
39
+ 1. Load the selected preset's full design tokens from `site-builder` agent:
40
+ - Palette (primary, accent, background, dark)
41
+ - Typography (heading, drama, data fonts)
42
+ - Image mood (Unsplash keywords)
43
+ - Hero phrase pattern
44
+
45
+ 2. Generate all copy:
46
+ - Hero headline (following preset's phrase pattern)
47
+ - Feature card titles + descriptions (from 3 value props)
48
+ - Philosophy contrast statements (from brand purpose)
49
+ - Protocol steps (from brand methodology)
50
+ - Pricing tier names (aligned to brand)
51
+
52
+ ### Phase 3 — Scaffold & Build
53
+
54
+ ```bash
55
+ npm create vite@latest {brand-slug} -- --template react
56
+ cd {brand-slug}
57
+ npm install gsap @gsap/react lucide-react
58
+ ```
59
+
60
+ Create all files following `site-builder` agent's Component Architecture:
61
+
62
+ | Component | File | Priority |
63
+ |-----------|------|----------|
64
+ | Navbar | `App.jsx` or `components/Navbar.jsx` | P0 |
65
+ | Hero | `App.jsx` or `components/Hero.jsx` | P0 |
66
+ | Features (3 interactive cards) | `components/Features.jsx` | P0 |
67
+ | Philosophy | `components/Philosophy.jsx` | P1 |
68
+ | Protocol (sticky stack) | `components/Protocol.jsx` | P1 |
69
+ | Pricing | `components/Pricing.jsx` | P2 |
70
+ | Footer | `components/Footer.jsx` | P2 |
71
+ | Noise overlay + utilities | `index.css` | P0 |
72
+
73
+ **Rules:**
74
+ - Load Google Fonts via `<link>` in `index.html`
75
+ - Use real Unsplash URLs (match `imageMood`)
76
+ - Every animation uses `gsap.context()` with cleanup
77
+ - Mobile-first responsive design
78
+
79
+ ### Phase 4 — Quality Assurance
80
+
81
+ Before declaring done, verify:
82
+
83
+ | Check | How |
84
+ |-------|-----|
85
+ | All animations work | Open dev server, scroll through all sections |
86
+ | All images load | No broken Unsplash URLs |
87
+ | Mobile responsive | Check at 375px, 768px, 1440px |
88
+ | No console errors | DevTools clean |
89
+ | CTA visible | Above fold on desktop, prominent on mobile |
90
+ | Noise overlay active | Subtle grain visible on backgrounds |
91
+
92
+ Use `verification-before-completion` skill.
93
+
94
+ ### Phase 5 — Stitch Extension (Optional)
95
+
96
+ If the user wants to add more pages or extract the design system:
97
+
98
+ 1. **Extract design system:** Run `design-md` skill to create `DESIGN.md` from the built site
99
+ 2. **Generate new pages:** Use `enhance-prompt` to polish the prompt, then generate via Stitch MCP
100
+ 3. **Convert to React:** Use `react-components` skill to convert Stitch HTML into modular components
101
+ 4. **Autonomous loop:** (Extra profile only) Use `stitch-loop` for multi-page autonomous generation
102
+
103
+ ## Integration Notes
104
+
105
+ - This workflow auto-routes to the `site-builder` agent
106
+ - Skills `scroll-experience` and `tailwind-patterns` are auto-loaded via the agent's frontmatter
107
+ - The `frontend-specialist` agent can handle component-level work within the built site
108
+ - For design system extraction, the `design-md` skill works independently of Stitch MCP
109
+
110
+ ## Examples
111
+
112
+ **Simple:**
113
+ > "Cria uma landing page cinematográfica para minha startup"
114
+ → Triggers build-site workflow → Socratic Gate with 4 questions → Full build
115
+
116
+ **With Stitch:**
117
+ > "Usa o Stitch pra gerar a página About baseada no design do meu site"
118
+ → Uses `design-md` to extract tokens → `enhance-prompt` to polish → Stitch MCP to generate
119
+
120
+ **Autonomous multi-page:**
121
+ > "Constrói 5 páginas pro meu site usando Stitch em loop"
122
+ → Uses `stitch-loop` skill (Extra profile) for autonomous baton-passing generation
@@ -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 skills add 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,263 @@
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 (`.stitch/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 `.stitch/DESIGN.md` file (generate one using the `design-md` skill if needed)
30
+ - A `.stitch/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 `.stitch/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 .stitch/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 `.stitch/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 `.stitch/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
+ | `.stitch/SITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap |
74
+ | `.stitch/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/metadata.json` exists, use the `projectId` from it
88
+ - Otherwise, call `[prefix]:create_project`, then call `[prefix]:get_project` to retrieve full project details, and save them to `.stitch/metadata.json` (see schema below)
89
+ - After generating each screen, call `[prefix]:get_project` again and update the `screens` map in `.stitch/metadata.json` with each screen's full metadata (id, sourceScreen, dimensions, canvas position)
90
+ 3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with:
91
+ - `projectId`: The project ID
92
+ - `prompt`: The full prompt from the baton (including design system block)
93
+ - `deviceType`: `DESKTOP` (or as specified)
94
+ 4. **Retrieve assets**: Before downloading, check if `.stitch/designs/{page}.html` and `.stitch/designs/{page}.png` already exist:
95
+ - **If files exist**: Ask the user whether to refresh the designs from the Stitch project or reuse the existing local files. Only re-download if the user confirms.
96
+ - **If files do not exist**: Proceed with download:
97
+ - `htmlCode.downloadUrl` — Download and save as `.stitch/designs/{page}.html`
98
+ - `screenshot.downloadUrl` — Append `=w{width}` to the URL before downloading, where `{width}` is the `width` value from the screen metadata (Google CDN serves low-res thumbnails by default). Save as `.stitch/designs/{page}.png`
99
+
100
+ ### Step 4: Integrate into Site
101
+
102
+ 1. Move generated HTML from `.stitch/designs/{page}.html` to `site/public/{page}.html`
103
+ 2. Fix any asset paths to be relative to the public folder
104
+ 3. Update navigation:
105
+ - Find existing placeholder links (e.g., `href="#"`) and wire them to the new page
106
+ - Add the new page to the global navigation if appropriate
107
+ 4. Ensure consistent headers/footers across all pages
108
+
109
+ ### Step 4.5: Visual Verification (Optional)
110
+
111
+ If the **Chrome DevTools MCP Server** is available, verify the generated page:
112
+
113
+ 1. **Check availability**: Run `list_tools` to see if `chrome*` tools are present
114
+ 2. **Start dev server**: Use Bash to start a local server (e.g., `npx serve site/public`)
115
+ 3. **Navigate to page**: Call `[chrome_prefix]:navigate` to open `http://localhost:3000/{page}.html`
116
+ 4. **Capture screenshot**: Call `[chrome_prefix]:screenshot` to capture the rendered page
117
+ 5. **Visual comparison**: Compare against the Stitch screenshot (`.stitch/designs/{page}.png`) for fidelity
118
+ 6. **Stop server**: Terminate the dev server process
119
+
120
+ > **Note:** This step is optional. If Chrome DevTools MCP is not installed, skip to Step 5.
121
+
122
+ ### Step 5: Update Site Documentation
123
+
124
+ Modify `.stitch/SITE.md`:
125
+ - Add the new page to Section 4 (Sitemap) with `[x]`
126
+ - Remove any idea you consumed from Section 6 (Creative Freedom)
127
+ - Update Section 5 (Roadmap) if you completed a backlog item
128
+
129
+ ### Step 6: Prepare the Next Baton (Critical)
130
+
131
+ **You MUST update `.stitch/next-prompt.md` before completing.** This keeps the loop alive.
132
+
133
+ 1. **Decide the next page**:
134
+ - Check `.stitch/SITE.md` Section 5 (Roadmap) for pending items
135
+ - If empty, pick from Section 6 (Creative Freedom)
136
+ - Or invent something new that fits the site vision
137
+ 2. **Write the baton** with proper YAML frontmatter:
138
+
139
+ ```markdown
140
+ ---
141
+ page: achievements
142
+ ---
143
+ A competitive achievements page showing developer badges and milestones.
144
+
145
+ **DESIGN SYSTEM (REQUIRED):**
146
+ [Copy the entire design system block from .stitch/DESIGN.md]
147
+
148
+ **Page Structure:**
149
+ 1. Header with title and navigation
150
+ 2. Badge grid showing unlocked/locked states
151
+ 3. Progress bars for milestone tracking
152
+ ```
153
+
154
+ ## File Structure Reference
155
+
156
+ ```
157
+ project/
158
+ ├── .stitch/
159
+ │ ├── metadata.json # Stitch project & screen IDs (persist this!)
160
+ │ ├── DESIGN.md # Visual design system (from design-md skill)
161
+ │ ├── SITE.md # Site vision, sitemap, roadmap
162
+ │ ├── next-prompt.md # The baton — current task
163
+ │ └── designs/ # Staging area for Stitch output
164
+ │ ├── {page}.html
165
+ │ └── {page}.png
166
+ └── site/public/ # Production pages
167
+ ├── index.html
168
+ └── {page}.html
169
+ ```
170
+
171
+ ### `.stitch/metadata.json` Schema
172
+
173
+ This file persists all Stitch identifiers so future iterations can reference them for edits or variants. Populate it by calling `[prefix]:get_project` after creating a project or generating screens.
174
+
175
+ ```json
176
+ {
177
+ "name": "projects/6139132077804554844",
178
+ "projectId": "6139132077804554844",
179
+ "title": "My App",
180
+ "visibility": "PRIVATE",
181
+ "createTime": "2026-03-04T23:11:25.514932Z",
182
+ "updateTime": "2026-03-04T23:34:40.400007Z",
183
+ "projectType": "PROJECT_DESIGN",
184
+ "origin": "STITCH",
185
+ "deviceType": "MOBILE",
186
+ "designTheme": {
187
+ "colorMode": "DARK",
188
+ "font": "INTER",
189
+ "roundness": "ROUND_EIGHT",
190
+ "customColor": "#40baf7",
191
+ "saturation": 3
192
+ },
193
+ "screens": {
194
+ "index": {
195
+ "id": "d7237c7d78f44befa4f60afb17c818c1",
196
+ "sourceScreen": "projects/6139132077804554844/screens/d7237c7d78f44befa4f60afb17c818c1",
197
+ "x": 0,
198
+ "y": 0,
199
+ "width": 390,
200
+ "height": 1249
201
+ },
202
+ "about": {
203
+ "id": "bf6a3fe5c75348e58cf21fc7a9ddeafb",
204
+ "sourceScreen": "projects/6139132077804554844/screens/bf6a3fe5c75348e58cf21fc7a9ddeafb",
205
+ "x": 549,
206
+ "y": 0,
207
+ "width": 390,
208
+ "height": 1159
209
+ }
210
+ },
211
+ "metadata": {
212
+ "userRole": "OWNER"
213
+ }
214
+ }
215
+ ```
216
+
217
+ | Field | Description |
218
+ |-------|-------------|
219
+ | `name` | Full resource name (`projects/{id}`) |
220
+ | `projectId` | Stitch project ID (from `create_project` or `get_project`) |
221
+ | `title` | Human-readable project title |
222
+ | `designTheme` | Design system tokens: color mode, font, roundness, custom color, saturation |
223
+ | `deviceType` | Target device: `MOBILE`, `DESKTOP`, `TABLET` |
224
+ | `screens` | Map of page name → screen object. Each screen includes `id`, `sourceScreen` (resource path for MCP calls), canvas position (`x`, `y`), and dimensions (`width`, `height`) |
225
+ | `metadata.userRole` | User's role on the project (`OWNER`, `EDITOR`, `VIEWER`) |
226
+
227
+ ## Orchestration Options
228
+
229
+ The loop can be driven by different orchestration layers:
230
+
231
+ | Method | How it works |
232
+ |--------|--------------|
233
+ | **CI/CD** | GitHub Actions triggers on `.stitch/next-prompt.md` changes |
234
+ | **Human-in-loop** | Developer reviews each iteration before continuing |
235
+ | **Agent chains** | One agent dispatches to another (e.g., Jules API) |
236
+ | **Manual** | Developer runs the agent repeatedly with the same repo |
237
+
238
+ The skill is orchestration-agnostic — focus on the pattern, not the trigger mechanism.
239
+
240
+ ## Design System Integration
241
+
242
+ This skill works best with the `design-md` skill:
243
+
244
+ 1. **First time setup**: Generate `.stitch/DESIGN.md` using the `design-md` skill from an existing Stitch screen
245
+ 2. **Every iteration**: Copy Section 6 ("Design System Notes for Stitch Generation") into your baton prompt
246
+ 3. **Consistency**: All generated pages will share the same visual language
247
+
248
+ ## Common Pitfalls
249
+
250
+ - ❌ Forgetting to update `.stitch/next-prompt.md` (breaks the loop)
251
+ - ❌ Recreating a page that already exists in the sitemap
252
+ - ❌ Not including the design system block from `.stitch/DESIGN.md` in the prompt
253
+ - ❌ Leaving placeholder links (`href="#"`) instead of wiring real navigation
254
+ - ❌ Forgetting to persist `.stitch/metadata.json` after creating a new project
255
+
256
+ ## Troubleshooting
257
+
258
+ | Issue | Solution |
259
+ |-------|----------|
260
+ | Stitch generation fails | Check that the prompt includes the design system block |
261
+ | Inconsistent styles | Ensure `.stitch/DESIGN.md` is up-to-date and copied correctly |
262
+ | Loop stalls | Verify `.stitch/next-prompt.md` was updated with valid frontmatter |
263
+ | 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