diff --git a/.brv/context-tree/architecture/remote_control/extracted_facts.md b/.brv/context-tree/architecture/remote_control/extracted_facts.md
new file mode 100644
index 0000000..f8d5623
--- /dev/null
+++ b/.brv/context-tree/architecture/remote_control/extracted_facts.md
@@ -0,0 +1,29 @@
+---
+title: extracted_facts
+summary: Extracted factual statements from provided context (full list with concise overview)
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:12:54.989Z'
+updatedAt: '2026-05-27T18:12:54.989Z'
+consolidated_at: '2026-05-27T23:37:51.479Z'
+consolidated_from: [{date: '2026-05-27T23:37:51.479Z', path: architecture/remote_control/extracted_facts.abstract.md, reason: 'All three files document the same extracted facts about project loader behavior, design guidelines, and command taxonomy. The markdown file contains the full fact list, while the abstract and overview provide summaries. Merging preserves the complete facts and adds the concise summaries as a front‑matter summary section.'}, {date: '2026-05-27T23:37:51.479Z', path: architecture/remote_control/extracted_facts.overview.md, reason: 'All three files document the same extracted facts about project loader behavior, design guidelines, and command taxonomy. The markdown file contains the full fact list, while the abstract and overview provide summaries. Merging preserves the complete facts and adds the concise summaries as a front‑matter summary section.'}]
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Extract factual statements
+
+## Narrative
+### Structure
+Facts extracted from context
+
+### Highlights
+{{abstract_summary}}
+
+{{overview_summary}}
+
+## Facts
+{{full_facts_list}}
diff --git a/.brv/context-tree/architecture/result_content/lossless_markdown_handling.md b/.brv/context-tree/architecture/result_content/lossless_markdown_handling.md
index 4609915..bcceaa5 100644
--- a/.brv/context-tree/architecture/result_content/lossless_markdown_handling.md
+++ b/.brv/context-tree/architecture/result_content/lossless_markdown_handling.md
@@ -1,11 +1,13 @@
---
title: Lossless Markdown Handling
-summary: Result content renders full markdown losslessly; UI preview collapses with ctrl+o
+summary: Result content renders full markdown losslessly; UI preview collapses with ctrl+O (full details below)
tags: []
related: []
keywords: []
createdAt: '2026-05-27T13:46:25.141Z'
updatedAt: '2026-05-27T13:46:25.141Z'
+consolidated_at: '2026-05-27T23:37:51.482Z'
+consolidated_from: [{date: '2026-05-27T23:37:51.482Z', path: architecture/result_content/lossless_markdown_handling.abstract.md, reason: 'These files cover the same topic – lossless markdown handling – with the markdown file providing the full description, the abstract giving a one‑sentence summary, and the overview offering a bullet‑point overview. Merging creates a single authoritative file that includes the detailed content plus the concise abstract and overview sections.'}, {date: '2026-05-27T23:37:51.483Z', path: architecture/result_content/lossless_markdown_handling.overview.md, reason: 'These files cover the same topic – lossless markdown handling – with the markdown file providing the full description, the abstract giving a one‑sentence summary, and the overview offering a bullet‑point overview. Merging creates a single authoritative file that includes the detailed content plus the concise abstract and overview sections.'}]
---
## Reason
Curate extracted facts from RLM extraction
@@ -21,13 +23,16 @@ Render result content without truncation, UI handles preview
## Narrative
### Structure
-Result content module retains full markdown; Pi UI shows collapsed preview with ctrl+o to expand
+Result content module retains full markdown; Pi UI shows collapsed preview with ctrl+O to expand
### Dependencies
-Pi UI component, result-content renderer
+Pi UI component, result‑content renderer
### Highlights
Lossless markdown preserved, UI preview hint added
+{{abstract_summary}}
+{{overview_summary}}
+
### Examples
Collapsed view shows "..." and hint, expanded shows full markdown
diff --git a/.brv/context-tree/architecture/unified-remote-control-architecture-enforced-by-server-owned-state.md b/.brv/context-tree/architecture/unified-remote-control-architecture-enforced-by-server-owned-state.md
new file mode 100644
index 0000000..f9de00e
--- /dev/null
+++ b/.brv/context-tree/architecture/unified-remote-control-architecture-enforced-by-server-owned-state.md
@@ -0,0 +1,23 @@
+---
+confidence: 0.94
+sources: [architecture/_index.md, facts/_index.md, facts/_index.md]
+synthesized_at: '2026-05-27T23:38:23.762Z'
+type: synthesis
+title: Unified Remote‑Control Architecture Enforced by Server‑Owned State
+summary: Remote‑control design centralizes state on the server and standardizes command interfaces across CLI, API, and UX layers.
+tags: [remote-control, server-state, cli, api]
+related: []
+keywords: [remote, control, server, state, cli, api, sanitization, boundary, commands, ux]
+createdAt: '2026-05-27T23:38:23.762Z'
+updatedAt: '2026-05-27T23:38:23.762Z'
+---
+
+# Unified Remote‑Control Architecture Enforced by Server‑Owned State
+
+Both the architecture and facts domains document a server‑owned, secret‑free remote boundary with structured control commands, reinforcing a consistent remote‑control model across implementation, review, and runtime conventions.
+
+## Evidence
+
+- **architecture**: Core architecture describes a server‑owned, secret‑free remote boundary with structured control commands.
+- **facts**: Review outcomes (e.g., task_7_review_outcome) verify sanitization and server‑owned field boundaries for remote control.
+- **facts**: Remote‑control review/outcome entries emphasize server‑side validation and redaction of client‑supplied fields.
diff --git a/.brv/context-tree/clipboard_fallback/clipboard_fallback/clipboard_fallback.md b/.brv/context-tree/clipboard_fallback/clipboard_fallback/clipboard_fallback.md
new file mode 100644
index 0000000..f2dc15d
--- /dev/null
+++ b/.brv/context-tree/clipboard_fallback/clipboard_fallback/clipboard_fallback.md
@@ -0,0 +1,30 @@
+---
+title: clipboard fallback
+summary: Facts about clipboard fallback
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.550Z'
+updatedAt: '2026-05-28T11:17:08.550Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under clipboard fallback
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **clipboard fallback**: Clipboard fallback selects/focuses snippets implemented at index.astro:480-514.
diff --git a/.brv/context-tree/codebase/caplets/caplets_module.md b/.brv/context-tree/codebase/caplets/caplets_module.md
new file mode 100644
index 0000000..ae16042
--- /dev/null
+++ b/.brv/context-tree/codebase/caplets/caplets_module.md
@@ -0,0 +1,39 @@
+---
+title: Caplets Module
+summary: Extracted facts and narrative for Caplets module
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:44:17.974Z'
+updatedAt: '2026-05-28T10:46:57.621Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document Caplets module knowledge
+
+**Timestamp:** 2026-05-28T10:46:57.618Z
+
+## Narrative
+### Structure
+Extracted factual statements and organized by subject.
+
+### Dependencies
+Relies on Node.js, Astro, and various plugins.
+
+### Highlights
+copy button visibility, page-load animations, responsive specificity, typecheck, build, format check, lint, impeccable check, risks, working tree
+
+## Facts
+- **copy button visibility**: Copy buttons are hidden by default and only shown via `.js-enabled .copy-button`.
+- **page-load animations**: Header, hero copy, and title page-load animations plus related keyframes and blur motion were removed.
+- **responsive specificity**: Tablet/mobile overrides were fixed with matching `.js-enabled .agent-setup-panels` and `.js-enabled .agent-setup-panel` selectors.
+- **typecheck**: `pnpm --filter @caplets/landing typecheck` passed with 0 errors.
+- **build**: `pnpm --filter @caplets/landing build` passed, building 1 page.
+- **format check**: `pnpm format:check` passed.
+- **lint**: `pnpm lint` passed.
+- **impeccable check**: `npx impeccable --json apps/landing/src/pages/index.astro` passed, output `[]`.
+- **risks**: There are no open risks or questions for the requested blockers.
+- **working tree**: Existing unrelated working-tree changes remain untouched.
diff --git a/.brv/context-tree/codebase/caplets/pr_preview_deploy_fix.md b/.brv/context-tree/codebase/caplets/pr_preview_deploy_fix.md
new file mode 100644
index 0000000..88654e1
--- /dev/null
+++ b/.brv/context-tree/codebase/caplets/pr_preview_deploy_fix.md
@@ -0,0 +1,66 @@
+---
+title: pr_preview_deploy_fix
+summary: Documented Alchemy fetch compatibility fix and CI workflow updates for PR preview deploy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:44:45.781Z'
+updatedAt: '2026-05-28T11:44:45.781Z'
+---
+## Reason
+Curate fix details for PR preview deploy failure
+
+## Raw Concept
+**Task:**
+Document PR preview deploy fix and related changes
+
+**Changes:**
+- Fixed InvalidArgumentError in Alchemy fetch compatibility
+- Added scripts/alchemy-fetch-compat.mjs and test
+- Updated package.json to run Alchemy with import shim
+- Enhanced .github/workflows/pr-preview-deploy.yml
+- Adjusted alchemy.run.ts for GitHub Actions metadata
+
+**Files:**
+- scripts/alchemy-fetch-compat.mjs
+- scripts/alchemy-fetch-compat.test.mjs
+- package.json
+- .github/workflows/pr-preview-deploy.yml
+- alchemy.run.ts
+
+**Flow:**
+detect error -> implement compatibility shim -> update workflow -> verify tests
+
+**Timestamp:** 2026-05-28T11:44:45.779Z
+
+**Author:** AI Assistant
+
+## Narrative
+### Structure
+Added compatibility shim scripts and updated CI workflow to fix fetch dispatcher issue.
+
+### Dependencies
+Depends on undici@8.3.0 behavior in GitHub Actions.
+
+### Highlights
+All lint, typecheck, tests, schema, benchmark, and build passed after fix.
+
+### Examples
+Error: InvalidArgumentError: invalid onRequestStart method
+
+## Facts
+- **CI**: InvalidArgumentError: invalid onRequestStart method
+- **Alchemy integration**: Alchemy passes a userland undici dispatcher into Node 24’s native fetch, and in GitHub Actions it resolves undici@8.3.0, which breaks the dispatcher interface
+- **scripts/alchemy-fetch-compat.mjs**: scripts/alchemy-fetch-compat.mjs strips the incompatible dispatcher before native fetch
+- **scripts/alchemy-fetch-compat.test.mjs**: scripts/alchemy-fetch-compat.test.mjs adds a regression test
+- **package.json**: package.json runs Alchemy via node --import ./scripts/alchemy-fetch-compat.mjs
+- **.github/workflows/pr-preview-deploy.yml**: .github/workflows/pr-preview-deploy.yml adds a PR-specific stage, GitHub token/metadata, issue comment permission, and clearer step name
+- **alchemy.run.ts**: alchemy.run.ts removes placeholder your-username/your-repo, uses GitHub Actions repo metadata, and fixes comment markdown
+- **format check**: pnpm format:check passes
+- **lint**: pnpm lint passes
+- **typecheck**: pnpm typecheck passes
+- **test suite**: pnpm test runs 622 Vitest tests plus a shim regression test, all passed
+- **schema check**: pnpm schema:check passes
+- **benchmark check**: pnpm benchmark:check passes
+- **build**: pnpm build passes
+- **Cloudflare API parsing**: Cloudflare API JSON parsing works with the shim under Node 26
diff --git a/.brv/context-tree/copy_button_min_height/copy_button_min_height/copy_button_min_height.md b/.brv/context-tree/copy_button_min_height/copy_button_min_height/copy_button_min_height.md
new file mode 100644
index 0000000..c6b0ca1
--- /dev/null
+++ b/.brv/context-tree/copy_button_min_height/copy_button_min_height/copy_button_min_height.md
@@ -0,0 +1,30 @@
+---
+title: .copy-button min-height
+summary: Facts about .copy-button min-height
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.521Z'
+updatedAt: '2026-05-28T11:17:08.521Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under .copy-button min-height
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **.copy-button min-height**: apps/landing/src/styles/global.css:889-899 sets .copy-button to min-height: 32px, below the requested 44px target.
diff --git a/.brv/context-tree/design/caplets/caplets_findings.md b/.brv/context-tree/design/caplets/caplets_findings.md
new file mode 100644
index 0000000..c4163d2
--- /dev/null
+++ b/.brv/context-tree/design/caplets/caplets_findings.md
@@ -0,0 +1,36 @@
+---
+title: Caplets Findings
+summary: Extracted factual statements from caplets context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:44:33.912Z'
+updatedAt: '2026-05-28T13:44:33.912Z'
+---
+## Reason
+Curate extracted findings from caplets source
+
+## Raw Concept
+**Task:**
+Document caplets findings
+
+**Timestamp:** 2026-05-28T13:44:33.909Z
+
+## Narrative
+### Structure
+Aggregated factual statements extracted from caplets context
+
+### Highlights
+1 statements for task, 3 statements for index.astro, 1 statements for content_visibility, 1 statements for global.css, 1 statements for typecheck, 1 statements for build, 1 statements for repository_state, 1 statements for review
+
+## Facts
+- **task**: Implemented reveal motion resilience in apps/landing.
+- **index.astro**: Removed the 1.8s global fallback in apps/landing/src/pages/index.astro.
+- **content_visibility**: Keeps content visible by default unless IntersectionObserver is available and initialized.
+- **index.astro**: Adds .motion-ready only after observer setup.
+- **index.astro**: Adds a 100ms safety net if no observer update arrives.
+- **global.css**: Reveal transition now uses only opacity and transform in apps/landing/src/styles/global.css.
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed with 0 errors.
+- **build**: pnpm --filter @caplets/landing build passed, 1 page built.
+- **repository_state**: Working tree contains unrelated pre-existing changes in global.css and other files.
+- **review**: Recommended next step: review the landing diff before commit because of the pre-existing unrelated working tree changes.
diff --git a/.brv/context-tree/design/caplets_copy/caplets_copy_guidance.md b/.brv/context-tree/design/caplets_copy/caplets_copy_guidance.md
new file mode 100644
index 0000000..9bf63f7
--- /dev/null
+++ b/.brv/context-tree/design/caplets_copy/caplets_copy_guidance.md
@@ -0,0 +1,43 @@
+---
+title: Caplets Copy Guidance
+summary: Guidelines for skill-like terminology and placement in Caplets marketing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:54:35.504Z'
+updatedAt: '2026-05-28T09:54:35.504Z'
+---
+## Reason
+Curate branding copy decisions from conversation
+
+## Raw Concept
+**Task:**
+Document copy guidance for Caplets skill-like branding
+
+**Changes:**
+- Defined copy guidance for skill-like terminology
+- Specified placement recommendations
+
+**Flow:**
+conversation -> extraction -> curation
+
+**Timestamp:** 2026-05-28T09:54:35.502Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Guidelines for using "skill-like" vs "skillify" in Caplets marketing copy
+
+### Highlights
+Use skill-like explicitly, avoid skillify as primary heading, hierarchy of language
+
+### Examples
+Caplets turns each backend into a skill-like capability...
+
+## Facts
+- **copy guidance**: Use “skill-like” explicitly, but be careful with “skillify.”
+- **Caplets functionality**: Caplets turns each backend into a skill-like capability: one card first, then searchable tools, inspectable schemas, and safe calls only when needed.
+- **Caplets description**: Skill-like backends for coding agents: Caplets wraps MCP servers, APIs, and commands as focused capabilities with progressive disclosure built in.
+- **placement of “skillify”**: Avoid leading with “skillify” in the H1 unless a more opinionated brand voice is desired; better places are a small supporting phrase, section heading, docs concept, or “What Caplets does” explainer.
+- **language hierarchy**: Primary language hierarchy: Primary – capability cards; Secondary – skill-like progressive disclosure; Avoid as primary – skillify, unless defined.
diff --git a/.brv/context-tree/design/caplets_curate/apps_landing_src_pages_index_astro.md b/.brv/context-tree/design/caplets_curate/apps_landing_src_pages_index_astro.md
new file mode 100644
index 0000000..a78535a
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/apps_landing_src_pages_index_astro.md
@@ -0,0 +1,22 @@
+---
+title: Apps/landing/src/pages/index.astro
+summary: Facts about apps/landing/src/pages/index.astro
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.603Z'
+updatedAt: '2026-05-28T13:47:56.603Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for apps/landing/src/pages/index.astro
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **apps/landing/src/pages/index.astro**: Changed file apps/landing/src/pages/index.astro.
diff --git a/.brv/context-tree/design/caplets_curate/build.md b/.brv/context-tree/design/caplets_curate/build.md
new file mode 100644
index 0000000..01b1a86
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/build.md
@@ -0,0 +1,22 @@
+---
+title: Build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.618Z'
+updatedAt: '2026-05-28T13:47:56.618Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for build
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **build**: pnpm --filter @caplets/landing build passed, 1 page built.
diff --git a/.brv/context-tree/design/caplets_curate/context.md b/.brv/context-tree/design/caplets_curate/context.md
new file mode 100644
index 0000000..b1faf22
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/context.md
@@ -0,0 +1,10 @@
+# Topic: caplets_curate
+
+## Overview
+Review of integration tab/panel markup and JS for accessibility after progressive enhancement fix
+
+## Key Concepts
+- ARIA roles
+- tablist
+- tabpanel
+- progressive enhancement
diff --git a/.brv/context-tree/design/caplets_curate/curated_caplets_context.md b/.brv/context-tree/design/caplets_curate/curated_caplets_context.md
new file mode 100644
index 0000000..48148b9
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/curated_caplets_context.md
@@ -0,0 +1,35 @@
+---
+title: Curated Caplets Context
+summary: Curated factual statements extracted from caplets context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:53:07.807Z'
+updatedAt: '2026-05-28T09:54:29.630Z'
+---
+## Reason
+Add curated facts from caplets context
+
+## Raw Concept
+**Task:**
+Curate extracted facts from caplets context
+
+**Changes:**
+- Extracted factual statements
+
+**Flow:**
+Extraction -> Deduplication -> Curation
+
+**Timestamp:** 2026-05-28T09:54:29.622Z
+
+## Narrative
+### Structure
+Curated facts from caplets context
+
+### Highlights
+skill-like progressive disclosure placement, Caplets functionality, hero trace demonstration
+
+## Facts
+- **skill-like progressive disclosure placement**: The skill-like progressive disclosure idea should live in the hero subhead and be demonstrated in the hero trace.
+- **Caplets functionality**: Caplets turns MCP servers, APIs, and commands into skill-like capabilities, presented as one card first, then searchable tools, inspectable schemas, and safe calls only when needed.
+- **hero trace demonstration**: The hero trace demonstrates the process: github get_caplet exposes search_tools, get_tool, call_tool; search_tools("pull request") returns create_pull_request, request_review...; get_tool("create_pull_request") preserves schema and redacts auth; call_tool(... ) preserves structured result.
diff --git a/.brv/context-tree/design/caplets_curate/curated_context.md b/.brv/context-tree/design/caplets_curate/curated_context.md
new file mode 100644
index 0000000..453782f
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/curated_context.md
@@ -0,0 +1,63 @@
+---
+title: curated_context
+summary: Curated factual statements from provided context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:45:50.257Z'
+updatedAt: '2026-05-28T13:45:50.257Z'
+---
+## Reason
+Curate extracted knowledge from RLM extraction
+
+## Raw Concept
+**Task:**
+Curate extracted knowledge from provided context
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-28T13:45:50.253Z
+
+## Narrative
+### Structure
+Organized by subject
+
+### Highlights
+Extracted and deduplicated factual statements
+
+### Examples
+[
+ {
+ "statement": "apps/landing/src/pages/index.astro:523-558 now only enables reveal enhancement when canAnimate is true and IntersectionObserver exists.",
+ "subject": "apps/landing/src/pages/index.astro"
+ },
+ {
+ "statement": "Content remains visible by default because hidden reveal styles are gated behind .motion-ready, added only after observer setup begins successfully.",
+ "subject": ".motion-ready CSS gating"
+ },
+ {
+ "statement": "The former 1.8s fallback is shortened to 100ms at index.astro:553-558.",
+ "subject": "apps/landing/src/pages/index.astro"
+ },
+ {
+ "statement": "Reduced-motion behavior is preserved via canAnimate check and CSS override at apps/landing/src/styles/global.css:1261-1285.",
+ "subject": "apps/landing/src/styles/global.css"
+ },
+ {
+ "statement": "Reveal transition now uses only opacity and transform at global.css:561-563; the prior border-color transition was removed.",
+ "subject": "apps/landing/src/styles/global.css"
+ },
+ {
+ "statement": "No reveal-related content or copy changes were found, and no em dashes were introduced in the reviewed reveal-motion changes.",
+ "subject": "reveal-motion changes"
+ }
+]
+
+## Facts
+- **apps/landing/src/pages/index.astro**: apps/landing/src/pages/index.astro:523-558 now only enables reveal enhancement when canAnimate is true and IntersectionObserver exists.
+- **.motion-ready CSS gating**: Content remains visible by default because hidden reveal styles are gated behind .motion-ready, added only after observer setup begins successfully.
+- **apps/landing/src/pages/index.astro**: The former 1.8s fallback is shortened to 100ms at index.astro:553-558.
+- **apps/landing/src/styles/global.css**: Reduced-motion behavior is preserved via canAnimate check and CSS override at apps/landing/src/styles/global.css:1261-1285.
+- **apps/landing/src/styles/global.css**: Reveal transition now uses only opacity and transform at global.css:561-563; the prior border-color transition was removed.
+- **reveal-motion changes**: No reveal-related content or copy changes were found, and no em dashes were introduced in the reviewed reveal-motion changes.
diff --git a/.brv/context-tree/design/caplets_curate/integration_tabs_and_panels.md b/.brv/context-tree/design/caplets_curate/integration_tabs_and_panels.md
new file mode 100644
index 0000000..2281c71
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/integration_tabs_and_panels.md
@@ -0,0 +1,22 @@
+---
+title: Integration tabs and panels
+summary: Facts about integration tabs and panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.602Z'
+updatedAt: '2026-05-28T13:47:56.602Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for integration tabs and panels
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **integration tabs and panels**: Implemented server-rendered accessibility state for integration tabs and panels.
diff --git a/.brv/context-tree/design/caplets_curate/panel_elements.md b/.brv/context-tree/design/caplets_curate/panel_elements.md
new file mode 100644
index 0000000..523728d
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/panel_elements.md
@@ -0,0 +1,22 @@
+---
+title: Panel elements
+summary: Facts about panel elements
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.607Z'
+updatedAt: '2026-05-28T13:47:56.607Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for panel elements
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **panel elements**: Added server-rendered panel attributes: role="tabpanel", aria-labelledby, hidden for inactive panels.
diff --git a/.brv/context-tree/design/caplets_curate/skillify_phrasing.md b/.brv/context-tree/design/caplets_curate/skillify_phrasing.md
new file mode 100644
index 0000000..0ab45ed
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/skillify_phrasing.md
@@ -0,0 +1,44 @@
+---
+title: skillify_phrasing
+summary: Guidance on phrasing "skillify" vs "skill-like" for Caplets marketing copy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:55:48.891Z'
+updatedAt: '2026-05-28T09:55:48.891Z'
+---
+## Reason
+Document copy guidance for using "skillify" branding
+
+## Raw Concept
+**Task:**
+Define copy guidelines for "skillify" branding
+
+**Changes:**
+- Add guidance to use "skill-like" explicitly
+- Recommend placement of "skillify" term
+- Establish language hierarchy
+
+**Flow:**
+copy creation -> review -> placement decision
+
+**Timestamp:** 2026-05-28T09:54:35.525Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Guidelines for marketing copy on Caplets backend skillification
+
+### Highlights
+Use "skill-like" explicitly; avoid leading with "skillify" unless defined; hierarchy: primary capability cards, secondary skill-like progressive disclosure
+
+### Examples
+Caplets turns each backend into a skill-like capability: one card first, then searchable tools, inspectable schemas, and safe calls only when needed.
+
+## Facts
+- **copy_guidance**: Use “skill-like” explicitly, but be careful with “skillify.” [preference]
+- **caplets_functionality**: Caplets turns each backend into a skill-like capability: one card first, then searchable tools, inspectable schemas, and safe calls only when needed. [project]
+- **caplets_description**: Skill-like backends for coding agents: Caplets wraps MCP servers, APIs, and commands as focused capabilities with progressive disclosure built in. [project]
+- **skillify_placement**: Avoid leading with “skillify” in the H1 unless a more opinionated brand voice is desired; better places are a small supporting phrase, section heading, docs concept, or “What Caplets does” explainer. [convention]
+- **language_hierarchy**: Primary language hierarchy: Primary – capability cards; Secondary – skill-like progressive disclosure; Avoid as primary – skillify, unless defined. [convention]
diff --git a/.brv/context-tree/design/caplets_curate/tab_container.md b/.brv/context-tree/design/caplets_curate/tab_container.md
new file mode 100644
index 0000000..4fe7910
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/tab_container.md
@@ -0,0 +1,22 @@
+---
+title: Tab container
+summary: Facts about tab container
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.605Z'
+updatedAt: '2026-05-28T13:47:56.605Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for tab container
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **tab container**: Added role="tablist" to the tab container.
diff --git a/.brv/context-tree/design/caplets_curate/tab_elements.md b/.brv/context-tree/design/caplets_curate/tab_elements.md
new file mode 100644
index 0000000..52ae548
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/tab_elements.md
@@ -0,0 +1,22 @@
+---
+title: Tab elements
+summary: Facts about tab elements
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.606Z'
+updatedAt: '2026-05-28T13:47:56.606Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for tab elements
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **tab elements**: Added server-rendered tab ARIA/state attributes: role="tab", aria-selected, aria-controls, tabindex.
diff --git a/.brv/context-tree/design/caplets_curate/task_3_review_progressive_enhancement.md b/.brv/context-tree/design/caplets_curate/task_3_review_progressive_enhancement.md
new file mode 100644
index 0000000..6ef6e0c
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/task_3_review_progressive_enhancement.md
@@ -0,0 +1,46 @@
+---
+title: task_3_review_progressive_enhancement
+summary: Task 3 re-review approved; ARIA roles and JS hidden state compliance
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:54:37.545Z'
+updatedAt: '2026-05-28T13:54:37.545Z'
+---
+## Reason
+Document review outcome for accessibility spec of integration tab/panel
+
+## Raw Concept
+**Task:**
+Re-review Task 3 after progressive enhancement fix
+
+**Changes:**
+- Reviewed ARIA roles, tablist, panel attributes
+- Confirmed no content changes needed
+
+**Files:**
+- apps/landing/src/pages/index.astro
+
+**Flow:**
+Review markup and JS for ARIA compliance and progressive enhancement
+
+**Timestamp:** 2026-05-28T13:54:37.543Z
+
+**Author:** assistant
+
+## Narrative
+### Structure
+Server-render tablist with role and ARIA state, panels with role=tabpanel and aria-labelledby, JS applies initial hidden state after init
+
+### Highlights
+APPROVED
+
+### Rules
+- Server-render tablist role and ARIA state where safe
+- Panels must have role=tabpanel and aria-labelledby
+- No server-side hidden on inactive panels unless non-JS fallback exposes all content
+- JS applies initial hidden state after initialization and preserves click/keyboard behavior
+- No content/copy changes, no em dashes
+
+## Facts
+- **task_3_review**: Review outcome: APPROVED [other]
diff --git a/.brv/context-tree/design/caplets_curate/typecheck.md b/.brv/context-tree/design/caplets_curate/typecheck.md
new file mode 100644
index 0000000..e0735f1
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/typecheck.md
@@ -0,0 +1,22 @@
+---
+title: Typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.610Z'
+updatedAt: '2026-05-28T13:47:56.610Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for typecheck
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed with 0 errors, 0 warnings, 0 hints.
diff --git a/.brv/context-tree/design/caplets_curate/working_module.md b/.brv/context-tree/design/caplets_curate/working_module.md
new file mode 100644
index 0000000..e00e213
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/working_module.md
@@ -0,0 +1,53 @@
+---
+title: working_module
+summary: Aggregated factual statements from working module
+tags: []
+related: [design/landing_page/landing_page_review_findings.md, design/landing_page/skillify_landing_page_review.md, design/landing_page/skillify_landing_page_review_2026_05_28.md, design/landing_page/skillify_landing_page_task_7_review.md, design/landing_page/task_8_responsive_pass.md]
+keywords: []
+createdAt: '2026-05-28T10:52:25.575Z'
+updatedAt: '2026-05-28T10:52:25.575Z'
+---
+## Reason
+Curate extracted facts from working module context
+
+## Raw Concept
+**Task:**
+Document working module findings
+
+**Timestamp:** 2026-05-28T10:52:25.574Z
+
+## Narrative
+### Structure
+Aggregated facts from working module extraction
+
+### Highlights
+Key factual statements extracted.
+
+## Facts
+- **assistant**: The assistant implemented the full plan with subagent-driven development and `impeccable` review.
+- **project**: Files changed: `apps/landing/src/pages/index.astro`, `apps/landing/src/styles/global.css`, `docs/plans/2026-05-28-skillify-landing-page.md`.
+- **landing_page**: Hero was rebuilt around “Skillify your backends.”
+- **landing_page**: Added realistic GitHub capability trace with source, status, redacted auth, schema inspection, and preserved result.
+- **landing_page**: Added “What skillify means” framework.
+- **landing_page**: Added concrete trust mechanics section.
+- **documentation**: Normalized install command to `npm install -g caplets`.
+- **UI**: Copy buttons only appear when JavaScript is enabled.
+- **UI**: Integration panels are accessible without JavaScript.
+- **codebase**: Removed old map/cartography/pointer/route choreography.
+- **codebase**: Removed hero/header page-load choreography.
+- **UI**: Fixed responsive behavior for trace, trust cards, snippets, and enhanced tabs.
+- **footer**: Added stable `Config docs` footer link to the README `#configure` anchor.
+- **spec_compliance**: Final spec compliance review: APPROVED.
+- **code_design_quality**: Final code/design quality review: APPROVED.
+- **typecheck**: Verification passed: `pnpm --filter @caplets/landing typecheck` succeeded.
+- **build**: Verification passed: `pnpm --filter @caplets/landing build` succeeded.
+- **format**: Verification passed: `pnpm format:check` succeeded.
+- **lint**: Verification passed: `pnpm lint` succeeded.
+- **typecheck**: Verification passed: `pnpm typecheck` succeeded.
+- **impeccable**: `npx impeccable --json apps/landing/src/pages/index.astro` returned an empty array.
+- **tests**: `pnpm verify` passed with 622 tests passed.
+- **pnpm verify**: pnpm verify passed, 622 tests passed
+- **Astro**: Astro still emits existing Node [DEP0205] module.register() warnings
+- **working tree**: The working tree includes unrelated pre-existing changes outside the landing files and plan, including .brv/ and workflow files
+- **Astro**: Astro still emits existing Node `[DEP0205] module.register()` warnings.
+- **working tree**: The working tree includes unrelated pre-existing changes outside the landing files and plan, including `.brv/` and workflow files.
diff --git a/.brv/context-tree/design/caplets_curate/working_tree.md b/.brv/context-tree/design/caplets_curate/working_tree.md
new file mode 100644
index 0000000..cb1cb17
--- /dev/null
+++ b/.brv/context-tree/design/caplets_curate/working_tree.md
@@ -0,0 +1,22 @@
+---
+title: Working tree
+summary: Facts about working tree
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:47:56.619Z'
+updatedAt: '2026-05-28T13:47:56.619Z'
+---
+## Reason
+Curated factual statements extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts for working tree
+
+## Narrative
+### Highlights
+Extracted 1 facts
+
+## Facts
+- **working tree**: Working tree contains many pre-existing unrelated modifications, including unrelated hunks in apps/landing/src/pages/index.astro.
diff --git a/.brv/context-tree/design/context.md b/.brv/context-tree/design/context.md
new file mode 100644
index 0000000..792fc3c
--- /dev/null
+++ b/.brv/context-tree/design/context.md
@@ -0,0 +1,16 @@
+# Domain: design
+
+## Purpose
+Capture design guidelines for the Impeccable skill used to craft frontend interfaces
+
+## Scope
+Included in this domain:
+- design laws
+- command reference
+- setup procedures
+
+Excluded from this domain:
+- implementation code
+
+## Ownership
+Impeccable team
diff --git a/.brv/context-tree/design/curated_facts/extracted_facts.md b/.brv/context-tree/design/curated_facts/extracted_facts.md
new file mode 100644
index 0000000..ab1ef05
--- /dev/null
+++ b/.brv/context-tree/design/curated_facts/extracted_facts.md
@@ -0,0 +1,39 @@
+---
+title: Extracted Facts
+summary: Contains 11 deduplicated facts extracted from source context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:49:52.994Z'
+updatedAt: '2026-05-28T13:49:52.994Z'
+---
+## Reason
+Store factual statements extracted from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from provided context
+
+**Timestamp:** 2026-05-28T13:49:52.993Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Structure
+Facts extracted and organized by subject
+
+### Highlights
+Extracted 11 unique facts across 8 subjects.
+
+## Facts
+- **tab component**: Server-rendered tab ARIA is coherent: each tab has role="tab", aria-selected, aria-controls, roving tabindex; each panel has role="tabpanel" and aria-labelledby
+- **tab component**: JS selection state matches the server-rendered IDs and updates aria-selected, tabIndex, and hidden consistently
+- **tab component**: Keyboard support covers Left/Right/Home/End navigation with focus movement and activation
+- **tab component**: There is duplicate state between SSR and JS for role, aria-controls, and aria-labelledby, but it is currently consistent and not conflicting
+- **SSR/JS synchronization**: There is duplicate state between SSR and JS for `role`, `aria-controls`, and `aria-labelledby`, but it is currently consistent and not conflicting.
+- **progressive enhancement**: Progressive enhancement regression is identified as a blocker.
+- **inactive panels**: Inactive panels are rendered with `hidden` server-side, but tab switching only works after JS initializes.
+- **no-JS scenario**: With JavaScript disabled or failed, users can only access the first integration panel, and the remaining server-rendered content is unavailable.
+- **panel rendering**: The recommended action is to render all panels accessible by default, then have JS apply the initial tab state on hydration/init, or provide a non-JS fallback that exposes all panels.
+- **approval**: The issue is not approved until the no-JS content access problem is fixed.
+- **ls**: ls accessible by default, then have JS apply the initial tab state on hydration/init, or provide a non-JS fallback that exposes all panels.
diff --git a/.brv/context-tree/design/impeccable/context.md b/.brv/context-tree/design/impeccable/context.md
new file mode 100644
index 0000000..1e4751e
--- /dev/null
+++ b/.brv/context-tree/design/impeccable/context.md
@@ -0,0 +1,10 @@
+# Topic: impeccable
+
+## Overview
+Impeccable skill provides design commands and enforces strict visual and interaction standards
+
+## Key Concepts
+- context loading
+- design laws
+- absolute bans
+- command routing
diff --git a/.brv/context-tree/design/impeccable/impeccable_skill_guidelines.md b/.brv/context-tree/design/impeccable/impeccable_skill_guidelines.md
new file mode 100644
index 0000000..0ea1f2e
--- /dev/null
+++ b/.brv/context-tree/design/impeccable/impeccable_skill_guidelines.md
@@ -0,0 +1,43 @@
+---
+title: Impeccable Skill Guidelines
+summary: Guidelines for Impeccable skill including context loading, design laws, bans, and commands
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:19:14.435Z'
+updatedAt: '2026-05-27T18:19:14.435Z'
+---
+## Reason
+Document the Impeccable skill design guidelines and commands
+
+## Raw Concept
+**Task:**
+Provide design guidelines and command reference for Impeccable skill
+
+**Changes:**
+- Defined required PRODUCT.md and optional DESIGN.md
+- Specified color strategy and bans
+- Listed commands and routing rules
+
+**Flow:**
+load context -> identify register -> apply design laws -> execute command
+
+**Timestamp:** 2026-05-27T18:18:06.366Z
+
+**Author:** Impeccable team
+
+## Narrative
+### Structure
+Conversation outlines setup, shared design laws, absolute bans, command table, and routing rules
+
+### Dependencies
+Requires PRODUCT.md and optionally DESIGN.md in project root or .agents/context/
+
+### Highlights
+Enforces color usage, bans side-stripe borders, gradient text, glassmorphism, hero-metric template, identical card grids, modal first thought, no em dashes
+
+### Rules
+Absolute bans list with specific CSS restrictions and design anti-patterns
+
+### Examples
+Command table with craft, shape, teach, etc.
diff --git a/.brv/context-tree/design/landing_fixes/audit_fixes_fix.md b/.brv/context-tree/design/landing_fixes/audit_fixes_fix.md
new file mode 100644
index 0000000..1269988
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/audit_fixes_fix.md
@@ -0,0 +1,42 @@
+---
+title: audit fixes fix
+summary: 'Landing page fix: audit fixes'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.738Z'
+updatedAt: '2026-05-28T11:24:30.738Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: audit fixes
+
+**Changes:**
+- Implemented all audit fixes with subagent-driven development.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Implemented all audit fixes with subagent-driven development.
+
+## Facts
+- **audit fixes**: Implemented all audit fixes with subagent-driven development.
diff --git a/.brv/context-tree/design/landing_fixes/audit_fixes_summary.md b/.brv/context-tree/design/landing_fixes/audit_fixes_summary.md
new file mode 100644
index 0000000..30886de
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/audit_fixes_summary.md
@@ -0,0 +1,72 @@
+---
+title: Audit Fixes Summary
+summary: Summary of audit fixes including touch targets, reveal motion, integration tabs, and verification steps
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:07:06.849Z'
+updatedAt: '2026-05-28T14:07:06.849Z'
+---
+## Reason
+Document audit fixes performed on landing page
+
+## Raw Concept
+**Task:**
+Apply audit fixes to landing page
+
+**Changes:**
+- Mobile touch targets fixed
+- Reveal motion resilience fixed
+- Integration tabs hardened
+- Repeated kicker scaffolding reduced
+- Low-priority hover motion quieted
+- Stale --header-shadow token removed
+- `.tool-noise` mask no longer uses literal black
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+Implement fixes -> Verify typecheck & build -> Browser checks
+
+**Timestamp:** 2026-05-28T14:07:06.844Z
+
+## Narrative
+### Structure
+Fixes applied to landing page source files and verified via typecheck, build, and visual browser checks
+
+### Highlights
+All audit fixes passed verification; mobile touch targets meet 44px minimum, no overflow at 320px and 1440px
+
+### Examples
+Implemented all audit fixes via subagent-driven development with implementer and reviewer passes.
+Mobile touch targets fixed.
+Reveal motion resilience fixed.
+Integration tabs hardened with safe progressive enhancement.
+Repeated kicker scaffolding reduced.
+Low-priority hover motion quieted.
+Stale `--header-shadow` token removed.
+`.tool-noise` mask no longer uses literal `black`.
+Final subagent review approved.
+Changed landing files: `apps/landing/src/pages/index.astro` and `apps/landing/src/styles/global.css`.
+Verification passed: `pnpm --filter @caplets/landing typecheck`.
+Verification passed: `pnpm --filter @caplets/landing build`.
+Browser check at `320px` showed no horizontal overflow and no visible `a`/`button` targets below `44px`.
+Browser check at `1440px` showed hero remains cleanly wrapped and trace card remains `660px` wide with no trace overflow.
+
+## Facts
+- **audit fixes**: Implemented all audit fixes via subagent-driven development with implementer and reviewer passes.
+- **mobile touch targets**: Mobile touch targets fixed.
+- **reveal motion resilience**: Reveal motion resilience fixed.
+- **integration tabs**: Integration tabs hardened with safe progressive enhancement.
+- **kicker scaffolding**: Repeated kicker scaffolding reduced.
+- **hover motion**: Low-priority hover motion quieted.
+- **header-shadow token**: Stale `--header-shadow` token removed.
+- **tool-noise mask**: `.tool-noise` mask no longer uses literal `black`.
+- **subagent review**: Final subagent review approved.
+- **landing files**: Changed landing files: `apps/landing/src/pages/index.astro` and `apps/landing/src/styles/global.css`.
+- **typecheck**: Verification passed: `pnpm --filter @caplets/landing typecheck`.
+- **build**: Verification passed: `pnpm --filter @caplets/landing build`.
+- **320px browser check**: Browser check at `320px` showed no horizontal overflow and no visible `a`/`button` targets below `44px`.
+- **1440px browser check**: Browser check at `1440px` showed hero remains cleanly wrapped and trace card remains `660px` wide with no trace overflow.
diff --git a/.brv/context-tree/design/landing_fixes/build_and_lint_checks_fix.md b/.brv/context-tree/design/landing_fixes/build_and_lint_checks_fix.md
new file mode 100644
index 0000000..1aefdc8
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/build_and_lint_checks_fix.md
@@ -0,0 +1,42 @@
+---
+title: build and lint checks fix
+summary: 'Landing page fix: build and lint checks'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.776Z'
+updatedAt: '2026-05-28T11:24:30.776Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: build and lint checks
+
+**Changes:**
+- Verification passed: pnpm typecheck, build, format:check, lint, and impeccable JSON check returned an empty array.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Verification passed: pnpm typecheck, build, format:check, lint, and impeccable JSON check returned an empty array.
+
+## Facts
+- **build and lint checks**: Verification passed: pnpm typecheck, build, format:check, lint, and impeccable JSON check returned an empty array.
diff --git a/.brv/context-tree/design/landing_fixes/clipboard_fallback_fix.md b/.brv/context-tree/design/landing_fixes/clipboard_fallback_fix.md
new file mode 100644
index 0000000..4efa566
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/clipboard_fallback_fix.md
@@ -0,0 +1,42 @@
+---
+title: clipboard fallback fix
+summary: 'Landing page fix: clipboard fallback'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.745Z'
+updatedAt: '2026-05-28T11:24:30.745Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: clipboard fallback
+
+**Changes:**
+- Improved clipboard fallback by associating copy buttons with snippet targets, focusing/selecting snippet text on failed write, and retaining a textarea fallback.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Improved clipboard fallback by associating copy buttons with snippet targets, focusing/selecting snippet text on failed write, and retaining a textarea fallback.
+
+## Facts
+- **clipboard fallback**: Improved clipboard fallback by associating copy buttons with snippet targets, focusing/selecting snippet text on failed write, and retaining a textarea fallback.
diff --git a/.brv/context-tree/design/landing_fixes/code_changes_fix.md b/.brv/context-tree/design/landing_fixes/code_changes_fix.md
new file mode 100644
index 0000000..c37e742
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/code_changes_fix.md
@@ -0,0 +1,42 @@
+---
+title: code changes fix
+summary: 'Landing page fix: code changes'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.778Z'
+updatedAt: '2026-05-28T11:24:30.778Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: code changes
+
+**Changes:**
+- Diff size for audit fixes/current landing changes: 108 insertions and 50 deletions across the two files.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.736Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Diff size for audit fixes/current landing changes: 108 insertions and 50 deletions across the two files.
+
+## Facts
+- **code changes**: Diff size for audit fixes/current landing changes: 108 insertions and 50 deletions across the two files.
diff --git a/.brv/context-tree/design/landing_fixes/color_values_fix.md b/.brv/context-tree/design/landing_fixes/color_values_fix.md
new file mode 100644
index 0000000..ae5905a
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/color_values_fix.md
@@ -0,0 +1,42 @@
+---
+title: color values fix
+summary: 'Landing page fix: color values'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.758Z'
+updatedAt: '2026-05-28T11:24:30.758Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: color values
+
+**Changes:**
+- Consolidated direct OKLCH values into semantic CSS tokens where appropriate.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Consolidated direct OKLCH values into semantic CSS tokens where appropriate.
+
+## Facts
+- **color values**: Consolidated direct OKLCH values into semantic CSS tokens where appropriate.
diff --git a/.brv/context-tree/design/landing_fixes/css_tokens_selectors_fix.md b/.brv/context-tree/design/landing_fixes/css_tokens_selectors_fix.md
new file mode 100644
index 0000000..f908f6f
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/css_tokens_selectors_fix.md
@@ -0,0 +1,42 @@
+---
+title: CSS tokens/selectors fix
+summary: 'Landing page fix: CSS tokens/selectors'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.760Z'
+updatedAt: '2026-05-28T11:24:30.760Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: CSS tokens/selectors
+
+**Changes:**
+- Removed stale tokens and selectors from the map refactor.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Removed stale tokens and selectors from the map refactor.
+
+## Facts
+- **CSS tokens/selectors**: Removed stale tokens and selectors from the map refactor.
diff --git a/.brv/context-tree/design/landing_fixes/integration_tabs_fix.md b/.brv/context-tree/design/landing_fixes/integration_tabs_fix.md
new file mode 100644
index 0000000..579f14c
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/integration_tabs_fix.md
@@ -0,0 +1,42 @@
+---
+title: integration tabs fix
+summary: 'Landing page fix: integration tabs'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.743Z'
+updatedAt: '2026-05-28T11:24:30.743Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: integration tabs
+
+**Changes:**
+- Converted integration tabs to true progressive enhancement, removing misleading tab ARIA in static/no-JS HTML and adding ARIA attributes via JavaScript.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Converted integration tabs to true progressive enhancement, removing misleading tab ARIA in static/no-JS HTML and adding ARIA attributes via JavaScript.
+
+## Facts
+- **integration tabs**: Converted integration tabs to true progressive enhancement, removing misleading tab ARIA in static/no-JS HTML and adding ARIA attributes via JavaScript.
diff --git a/.brv/context-tree/design/landing_fixes/open_issues_fix.md b/.brv/context-tree/design/landing_fixes/open_issues_fix.md
new file mode 100644
index 0000000..ded00f2
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/open_issues_fix.md
@@ -0,0 +1,42 @@
+---
+title: open issues fix
+summary: 'Landing page fix: open issues'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.770Z'
+updatedAt: '2026-05-28T11:24:30.770Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: open issues
+
+**Changes:**
+- No remaining actionable P0/P1/P2 audit issues.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+No remaining actionable P0/P1/P2 audit issues.
+
+## Facts
+- **open issues**: No remaining actionable P0/P1/P2 audit issues.
diff --git a/.brv/context-tree/design/landing_fixes/reveal_animation_fix.md b/.brv/context-tree/design/landing_fixes/reveal_animation_fix.md
new file mode 100644
index 0000000..0854460
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/reveal_animation_fix.md
@@ -0,0 +1,42 @@
+---
+title: reveal animation fix
+summary: 'Landing page fix: reveal animation'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.748Z'
+updatedAt: '2026-05-28T11:24:30.748Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: reveal animation
+
+**Changes:**
+- Added reveal animation fail‑safe: reduced‑motion safe, no‑IntersectionObserver safe, and a timeout fallback to reveal content if observer setup stalls.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Added reveal animation fail‑safe: reduced‑motion safe, no‑IntersectionObserver safe, and a timeout fallback to reveal content if observer setup stalls.
+
+## Facts
+- **reveal animation**: Added reveal animation fail‑safe: reduced‑motion safe, no‑IntersectionObserver safe, and a timeout fallback to reveal content if observer setup stalls.
diff --git a/.brv/context-tree/design/landing_fixes/source_code_punctuation_fix.md b/.brv/context-tree/design/landing_fixes/source_code_punctuation_fix.md
new file mode 100644
index 0000000..22484bc
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/source_code_punctuation_fix.md
@@ -0,0 +1,42 @@
+---
+title: source code punctuation fix
+summary: 'Landing page fix: source code punctuation'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.765Z'
+updatedAt: '2026-05-28T11:24:30.765Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: source code punctuation
+
+**Changes:**
+- Verified no em/en dashes exist in apps/landing/src.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Verified no em/en dashes exist in apps/landing/src.
+
+## Facts
+- **source code punctuation**: Verified no em/en dashes exist in apps/landing/src.
diff --git a/.brv/context-tree/design/landing_fixes/source_files_fix.md b/.brv/context-tree/design/landing_fixes/source_files_fix.md
new file mode 100644
index 0000000..529732e
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/source_files_fix.md
@@ -0,0 +1,42 @@
+---
+title: source files fix
+summary: 'Landing page fix: source files'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.740Z'
+updatedAt: '2026-05-28T11:24:30.740Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: source files
+
+**Changes:**
+- Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+
+## Facts
+- **source files**: Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
diff --git a/.brv/context-tree/design/landing_fixes/specification_fix.md b/.brv/context-tree/design/landing_fixes/specification_fix.md
new file mode 100644
index 0000000..46c55f9
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/specification_fix.md
@@ -0,0 +1,42 @@
+---
+title: specification fix
+summary: 'Landing page fix: specification'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.766Z'
+updatedAt: '2026-05-28T11:24:30.766Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: specification
+
+**Changes:**
+- Final spec review: APPROVED.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Final spec review: APPROVED.
+
+## Facts
+- **specification**: Final spec review: APPROVED.
diff --git a/.brv/context-tree/design/landing_fixes/task_3_re_review.md b/.brv/context-tree/design/landing_fixes/task_3_re_review.md
new file mode 100644
index 0000000..931f8a4
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/task_3_re_review.md
@@ -0,0 +1,42 @@
+---
+title: Task 3 Re-review
+summary: 'Re-review of Task 3: accessibility specs approved'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:53:34.424Z'
+updatedAt: '2026-05-28T13:53:34.424Z'
+---
+## Reason
+Document re-review of integration tab/panel accessibility specs
+
+## Raw Concept
+**Task:**
+Re-review Task 3 after progressive enhancement fix
+
+**Changes:**
+- Reviewed accessibility specs, no code changes
+
+**Files:**
+- apps/landing/src/pages/index.astro
+
+**Flow:**
+Review specs -> approve
+
+**Timestamp:** 2026-05-28T13:53:34.419Z
+
+**Author:** AI Assistant
+
+## Narrative
+### Structure
+Reviewed server-rendered tablist role, ARIA states, panel roles, and JS behavior
+
+### Highlights
+All specs met, APPROVED
+
+## Facts
+- **tablist_role**: Server-render tablist role and ARIA state where safe [project]
+- **panel_role**: Panels have role=tabpanel and aria-labelledby [project]
+- **panel_visibility**: No server-side hidden on inactive panels unless non-JS fallback [project]
+- **js_initial_hidden**: JS applies initial hidden state after initialization [project]
+- **review_outcome**: Review outcome: APPROVED [project]
diff --git a/.brv/context-tree/design/landing_fixes/technical_audit_fix.md b/.brv/context-tree/design/landing_fixes/technical_audit_fix.md
new file mode 100644
index 0000000..35ed4fa
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/technical_audit_fix.md
@@ -0,0 +1,42 @@
+---
+title: technical audit fix
+summary: 'Landing page fix: technical audit'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.768Z'
+updatedAt: '2026-05-28T11:24:30.768Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: technical audit
+
+**Changes:**
+- Final technical audit recheck: APPROVED.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Final technical audit recheck: APPROVED.
+
+## Facts
+- **technical audit**: Final technical audit recheck: APPROVED.
diff --git a/.brv/context-tree/design/landing_fixes/terminal_chrome_fix.md b/.brv/context-tree/design/landing_fixes/terminal_chrome_fix.md
new file mode 100644
index 0000000..523373b
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/terminal_chrome_fix.md
@@ -0,0 +1,42 @@
+---
+title: terminal chrome fix
+summary: 'Landing page fix: terminal chrome'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.761Z'
+updatedAt: '2026-05-28T11:24:30.761Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: terminal chrome
+
+**Changes:**
+- Marked decorative terminal chrome as aria‑hidden.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Marked decorative terminal chrome as aria‑hidden.
+
+## Facts
+- **terminal chrome**: Marked decorative terminal chrome as aria‑hidden.
diff --git a/.brv/context-tree/design/landing_fixes/theme_color_fix.md b/.brv/context-tree/design/landing_fixes/theme_color_fix.md
new file mode 100644
index 0000000..2c7dfa8
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/theme_color_fix.md
@@ -0,0 +1,42 @@
+---
+title: theme color fix
+summary: 'Landing page fix: theme color'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.763Z'
+updatedAt: '2026-05-28T11:24:30.763Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: theme color
+
+**Changes:**
+- Moved theme color into a frontmatter constant.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Moved theme color into a frontmatter constant.
+
+## Facts
+- **theme color**: Moved theme color into a frontmatter constant.
diff --git a/.brv/context-tree/design/landing_fixes/touch_targets_fix.md b/.brv/context-tree/design/landing_fixes/touch_targets_fix.md
new file mode 100644
index 0000000..cd330c2
--- /dev/null
+++ b/.brv/context-tree/design/landing_fixes/touch_targets_fix.md
@@ -0,0 +1,42 @@
+---
+title: touch targets fix
+summary: 'Landing page fix: touch targets'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:24:30.742Z'
+updatedAt: '2026-05-28T11:24:30.742Z'
+---
+## Reason
+Curate landing page audit fixes
+
+## Raw Concept
+**Task:**
+Document landing page fix: touch targets
+
+**Changes:**
+- Raised interactive touch targets to a minimum of 44px for brand mark, top nav links, header actions, integration pills, and copy buttons.
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+audit -> fix -> verification
+
+**Timestamp:** 2026-05-28T11:24:30.735Z
+
+**Author:** Ian Pascoe
+
+## Narrative
+### Structure
+Fixes applied to landing page and styles
+
+### Dependencies
+Requires build and lint verification
+
+### Highlights
+Raised interactive touch targets to a minimum of 44px for brand mark, top nav links, header actions, integration pills, and copy buttons.
+
+## Facts
+- **touch targets**: Raised interactive touch targets to a minimum of 44px for brand mark, top nav links, header actions, integration pills, and copy buttons.
diff --git a/.brv/context-tree/design/landing_page/context.md b/.brv/context-tree/design/landing_page/context.md
new file mode 100644
index 0000000..c6bada2
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/context.md
@@ -0,0 +1,12 @@
+---
+related: [design/landing_page/trust_priority.md]
+---
+# Topic: landing_page
+
+## Overview
+Landing page optimization priorities for Caplets
+
+## Key Concepts
+- trust
+- understanding
+- conversion
diff --git a/.brv/context-tree/design/landing_page/landing_page_review_findings.md b/.brv/context-tree/design/landing_page/landing_page_review_findings.md
new file mode 100644
index 0000000..154c416
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/landing_page_review_findings.md
@@ -0,0 +1,59 @@
+---
+title: Landing Page Review Findings
+summary: 'Landing page review: anchors valid, accessibility ok, build passes, minor dead CSS, no brand violations'
+tags: []
+related: [design/caplets_curate/working_module.md, design/landing_page/skillify_landing_page_review.md, design/landing_page/skillify_landing_page_review_2026_05_28.md, design/landing_page/skillify_landing_page_task_7_review.md, design/landing_page/task_8_responsive_pass.md]
+keywords: []
+createdAt: '2026-05-28T10:52:14.235Z'
+updatedAt: '2026-05-28T10:52:14.235Z'
+---
+## Reason
+Curate review outcomes for landing implementation
+
+## Raw Concept
+**Task:**
+Document landing page review findings
+
+**Changes:**
+- Verified internal anchors
+- Removed old map/cartography selectors
+- Confirmed accessibility basics
+- Passed typecheck and build
+- No brand violations
+- Identified dead CSS selectors and unused custom properties
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+- docs/plans/2026-05-28-skillify-landing-page.md
+
+**Flow:**
+review -> verify anchors -> check accessibility -> run typecheck/build -> run impeccable -> report
+
+**Timestamp:** 2026-05-28T10:50:23.115Z
+
+**Author:** AI Assistant
+
+## Narrative
+### Structure
+Landing page review summary with verification steps and findings.
+
+### Dependencies
+Requires pnpm, impeccable tool, and CSS files.
+
+### Highlights
+All anchors valid, accessibility intact, build passes, no brand violations, minor dead CSS identified.
+
+### Examples
+Unused selector .header-action.muted at lines 229-232; unused custom properties listed.
+
+## Facts
+- **apps/landing/src/pages/index.astro**: Internal anchors are valid: #main, #trace, #proof, and #install all resolve in apps/landing/src/pages/index.astro.
+- **codebase**: Old map/cartography selectors and scripts are gone. No remaining map-stage, route-*, capability-card, inspect-panel, or pointer/scroll choreography references were found.
+- **landing page**: Accessibility basics are intact: skip link, semantic sections, labeled nav/actions, keyboard tab controls, visible focus CSS, and reduced-motion handling.
+- **@caplets/landing**: pnpm --filter @caplets/landing typecheck: PASS, 0 errors.
+- **@caplets/landing**: pnpm --filter @caplets/landing build: PASS.
+- **apps/landing/src/pages/index.astro**: npx impeccable --json apps/landing/src/pages/index.astro returned an empty array, indicating no brand violations.
+- **apps/landing/src/styles/global.css**: Minor dead CSS remains in apps/landing/src/styles/global.css: Unused selector .header-action.muted at lines 229-232.
+- **apps/landing/src/styles/global.css**: Unused custom properties --ash-strong, --danger, --decorative-grid, --decorative-grid-muted, --decorative-grid-strong, --success-glow at lines 17, 20, 25-29 in apps/landing/src/styles/global.css.
+- **landing implementation**: No blockers, broken links, accessibility regressions, script regressions, or brand violations found.
diff --git a/.brv/context-tree/design/landing_page/skillify_landing_page_review.md b/.brv/context-tree/design/landing_page/skillify_landing_page_review.md
new file mode 100644
index 0000000..7f41bb1
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/skillify_landing_page_review.md
@@ -0,0 +1,60 @@
+---
+title: Skillify Landing Page Review
+summary: Landing page review approved, all tasks 1-9 satisfied
+tags: []
+related: [design/caplets_curate/working_module.md, design/landing_page/landing_page_review_findings.md, design/landing_page/skillify_landing_page_review_2026_05_28.md, design/landing_page/skillify_landing_page_task_7_review.md, design/landing_page/task_8_responsive_pass.md]
+keywords: []
+createdAt: '2026-05-28T10:43:56.110Z'
+updatedAt: '2026-05-28T10:43:56.110Z'
+---
+## Reason
+Document compliance review outcome
+
+## Raw Concept
+**Task:**
+Compliance review of skillify landing page implementation
+
+**Changes:**
+- Verified Tasks 1-9 implementation
+- No issues found
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+- docs/plans/2026-05-28-skillify-landing-page.md
+
+**Flow:**
+review -> verification -> approval
+
+**Timestamp:** 2026-05-28T10:43:56.106Z
+
+**Author:** AI Assistant
+
+## Narrative
+### Structure
+Review confirms all task requirements are met in the landing page code and docs.
+
+### Dependencies
+Requires source files to remain unchanged.
+
+### Highlights
+APPROVED status, no blockers, all features present, reduced-motion support, no em dashes, stable docs link.
+
+### Examples
+Hero constants at index.astro:4-139, reduced-motion CSS at global.css:1252-1278
+
+## Facts
+- **tasks**: Tasks 1-9 are implemented in the inspected files.
+- **hero_section**: Hero constants, trust mechanics, skillify framework, and install steps are present and aligned in apps/landing/src/pages/index.astro lines 4-139.
+- **hero_text**: Hero leads with “Skillify your backends.” and defines skillify in index.astro lines 184-192.
+- **github_trace**: GitHub trace shows status, source, auth redaction, progressive steps, schema inspection, and preserved result in index.astro lines 210-235.
+- **trust_section**: Skillify proof framework and concrete trust section are present in index.astro lines 265-302.
+- **copy_buttons**: Copy buttons exist for integration snippets and terminal commands, with copy script in index.astro lines 336-374 and 444-465.
+- **integration_panels**: Integration panels are not hidden in initial HTML and are hidden only after JS tab setup runs, as shown in index.astro lines 327-332 and 388-406.
+- **hidden_attribute**: CSS keeps [hidden] behavior in global.css lines 864-865.
+- **deprecated_selectors**: Old map/cartography/route/pointer selectors were not found in source searches.
+- **reduced_motion**: Reduced-motion support remains in apps/landing/src/styles/global.css lines 1252-1278.
+- **responsive_rules**: Responsive trace/trust/snippet rules are present in global.css lines 1202-1237.
+- **punctuation**: No em dashes were found in inspected index.astro or global.css.
+- **docs_config**: Docs/config link is stable against README #configure in index.astro lines 382-385.
+- **approval**: The review concluded with APPROVED status.
diff --git a/.brv/context-tree/design/landing_page/skillify_landing_page_review_2026_05_28.md b/.brv/context-tree/design/landing_page/skillify_landing_page_review_2026_05_28.md
new file mode 100644
index 0000000..2268dad
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/skillify_landing_page_review_2026_05_28.md
@@ -0,0 +1,55 @@
+---
+title: Skillify Landing Page Review 2026-05-28
+summary: 'Review of tasks 1-4 implementation; blocker: broken #map nav target'
+tags: []
+related: [design/caplets_curate/working_module.md, design/landing_page/landing_page_review_findings.md, design/landing_page/skillify_landing_page_review.md, design/landing_page/skillify_landing_page_task_7_review.md, design/landing_page/task_8_responsive_pass.md]
+keywords: []
+createdAt: '2026-05-28T10:19:04.961Z'
+updatedAt: '2026-05-28T10:19:04.961Z'
+---
+## Reason
+Document review findings and blocker for skillify landing page
+
+## Raw Concept
+**Task:**
+Document spec compliance review for skillify landing page
+
+**Files:**
+- docs/plans/2026-05-28-skillify-landing-page.md
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+Review -> Identify correct implementations -> Identify blocker -> Report approval status
+
+**Timestamp:** 2026-05-28T10:19:04.960Z
+
+## Narrative
+### Structure
+Review of tasks 1-4 implementation status and blocker identification
+
+### Dependencies
+Requires updated nav target to match trace section
+
+### Highlights
+All tasks 1-4 correct except broken navigation target #map
+
+### Examples
+Broken link at apps/landing/src/pages/index.astro:165 linking to #map
+
+## Facts
+- **apps/landing/src/pages/index.astro**: Task 1 constants are implemented: `heroTrace`, `skillifyFramework`, `trustMechanics`, and `installSteps` match the plan in `apps/landing/src/pages/index.astro:4-140`.
+- **apps/landing/src/pages/index.astro**: Generic installs are normalized to `npm install -g caplets` where applicable in `apps/landing/src/pages/index.astro:105`, `114`, `124`, and `136`.
+- **apps/landing/src/pages/index.astro**: Task 2 hero is rebuilt around “Skillify your backends.” and the GitHub trace in `apps/landing/src/pages/index.astro:182-236`.
+- **apps/landing/src/styles/global.css**: Task 2 trace CSS and updated hero columns are present in `apps/landing/src/styles/global.css:265-269` and `405-556`.
+- **apps/landing/src/styles/global.css**: Old map hero CSS selectors requested by Task 2 appear removed from `global.css`.
+- **apps/landing/src/pages/index.astro**: Task 3 proof framework is implemented in `apps/landing/src/pages/index.astro:265-279`.
+- **apps/landing/src/pages/index.astro**: Task 4 trust mechanics section is implemented in `apps/landing/src/pages/index.astro:281-302`, with CSS in `apps/landing/src/styles/global.css:773-812`.
+- **review scope**: Tasks 5+ are not required yet; missing copy buttons, no-JS tab changes, and motion cleanup are not counted as issues for this review scope.
+- **global.css**: CSS is located in `apps/landing/src/styles/global.css:773-812`.
+- **index.astro**: `apps/landing/src/pages/index.astro:165` still links the primary nav to `href="#map"` and labels it `Map`.
+- **index.astro**: Task 2 replaced the old `id="map"` hero visual with `id="trace"` at `apps/landing/src/pages/index.astro:210`.
+- **navigation**: The broken in-page navigation target after completing Task 2’s hero replacement needs to be fixed by updating the nav target and label to the new trace section, or restoring a valid `#map` target if intentional.
+- **review process**: The reviewer did not run typecheck/build because the request was to inspect diff/current files only.
+- **approval**: NOT APPROVED until the broken `#map` navigation target is fixed.
+- **#map target**: d `#map` target if intentional.
diff --git a/.brv/context-tree/design/landing_page/skillify_landing_page_task_7_review.md b/.brv/context-tree/design/landing_page/skillify_landing_page_task_7_review.md
new file mode 100644
index 0000000..606c94e
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/skillify_landing_page_task_7_review.md
@@ -0,0 +1,59 @@
+---
+title: Skillify Landing Page Task 7 Review
+summary: 'Task 7: removed old motion systems, updated CSS, verified build passes, no grep matches'
+tags: []
+related: [design/caplets_curate/working_module.md, design/landing_page/landing_page_review_findings.md, design/landing_page/skillify_landing_page_review.md, design/landing_page/skillify_landing_page_review_2026_05_28.md, design/landing_page/task_8_responsive_pass.md]
+keywords: []
+createdAt: '2026-05-28T10:36:29.420Z'
+updatedAt: '2026-05-28T10:36:29.420Z'
+---
+## Reason
+Document outcomes of Task 7 implementation for landing page
+
+## Raw Concept
+**Task:**
+Implement Task 7 for landing page
+
+**Changes:**
+- Removed old route/motion CSS dependencies (view-timeline, animation-timeline)
+- Reduced page warmth glow
+- Removed header backdrop-filter
+- Ensured smaller reveal setup includes .agent-setup-panel
+- Validated typecheck and build pass
+- Confirmed no remaining motion-related code via grep
+
+**Files:**
+- apps/landing/src/pages/index.astro
+- apps/landing/src/styles/global.css
+
+**Flow:**
+Inspect files -> remove old motion systems -> adjust styling -> run typecheck & build -> grep verification
+
+**Timestamp:** 2026-05-28T10:35:37.451Z
+
+**Author:** assistant
+
+## Narrative
+### Structure
+Landing page source files updated with cleaned CSS and removed motion scripts
+
+### Dependencies
+Depends on pnpm, @caplets/landing package, CSS build pipeline
+
+### Highlights
+All old motion systems removed, build passes, no grep matches
+
+## Facts
+- **assistant**: Implemented Task 7 only. [project]
+- **landing project**: Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css. [project]
+- **CSS**: Removed remaining old route/motion CSS dependencies, including view-timeline and animation-timeline. [project]
+- **page styling**: Reduced page warmth glow. [project]
+- **header CSS**: Removed .site-header backdrop-filter. [project]
+- **reveal setup**: Ensured the smaller reveal setup includes .agent-setup-panel. [project]
+- **motion systems**: Confirmed old motion systems are absent. [project]
+- **typecheck**: pnpm --filter @caplets/landing typecheck PASS. [project]
+- **build**: pnpm --filter @caplets/landing build PASS. [project]
+- **grep results**: Grep for map-stage|route-resolve|pointer-x|pointer-y|route-drift|cartography|is-route-active returned no matches. [project]
+- **build warnings**: Build emitted Node DEP0205 deprecation warnings only. [project]
+- **working tree**: Working tree contains unrelated .brv/ and plan-file changes not made by this implementation. [project]
+- **next steps**: Recommended next step: Review the two landing files, keeping unrelated dirty files separate before commit. [project]
diff --git a/.brv/context-tree/design/landing_page/task_8_responsive_pass.md b/.brv/context-tree/design/landing_page/task_8_responsive_pass.md
new file mode 100644
index 0000000..9cc6145
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/task_8_responsive_pass.md
@@ -0,0 +1,56 @@
+---
+title: Task 8 Responsive Pass
+summary: Responsive CSS updates for trace, trust, snippets and mobile copy button in landing page
+tags: []
+related: [design/caplets_curate/working_module.md, design/landing_page/landing_page_review_findings.md, design/landing_page/skillify_landing_page_review.md, design/landing_page/skillify_landing_page_review_2026_05_28.md, design/landing_page/skillify_landing_page_task_7_review.md]
+keywords: []
+createdAt: '2026-05-28T10:38:10.054Z'
+updatedAt: '2026-05-28T10:38:10.054Z'
+---
+## Reason
+Document responsive CSS changes for landing page Task 8
+
+## Raw Concept
+**Task:**
+Implement Task 8 responsive pass for landing page CSS
+
+**Changes:**
+- Added tablet trace sizing and two-column trust grid
+- Added phone rules for trace metadata, trust grid/cards, terminal copy layout
+- Added mobile .copy-button minimum 40px touch target
+- Removed old mobile map selectors
+
+**Files:**
+- apps/landing/src/styles/global.css
+
+**Flow:**
+Modify CSS -> run typecheck -> run build -> verify pass
+
+**Timestamp:** 2026-05-28T10:38:10.053Z
+
+**Author:** AI assistant
+
+## Narrative
+### Structure
+CSS modifications in global.css to improve responsiveness for trace, trust, snippets, and copy button
+
+### Dependencies
+Requires pnpm, @caplets/landing package
+
+### Highlights
+All checks pass (typecheck 0 errors, build successful)
+
+### Rules
+Do not implement tasks beyond 8, do not commit changes
+
+### Examples
+pnpm --filter @caplets/landing typecheck
+
+## Facts
+- **Task 8 implementation**: Implemented Task 8 responsive pass for trace, trust, and snippets. [other]
+- **global.css modifications**: Changed file apps/landing/src/styles/global.css to add tablet trace sizing and two-column trust grid. [other]
+- **global.css modifications**: Added phone rules for trace metadata/steps, trust grid/cards, terminal copy layout. [other]
+- **global.css modifications**: Added mobile .copy-button 40px minimum touch target. [other]
+- **global.css cleanup**: Confirmed no old mobile map selectors remain. [other]
+- **typecheck**: pnpm --filter @caplets/landing typecheck PASS, 0 errors. [other]
+- **build**: pnpm --filter @caplets/landing build PASS. [other]
diff --git a/.brv/context-tree/design/landing_page/trust_priority.md b/.brv/context-tree/design/landing_page/trust_priority.md
new file mode 100644
index 0000000..6bc9f1b
--- /dev/null
+++ b/.brv/context-tree/design/landing_page/trust_priority.md
@@ -0,0 +1,27 @@
+---
+title: trust_priority
+summary: Landing page should prioritize trust in architecture first
+tags: []
+related: [design/landing_page/context.md]
+keywords: []
+createdAt: '2026-05-28T09:50:32.824Z'
+updatedAt: '2026-05-28T09:50:32.824Z'
+---
+## Reason
+Document decision to prioritize trust in landing page
+
+## Raw Concept
+**Task:**
+Define landing page optimization priority
+
+**Changes:**
+- Prioritize trust in architecture
+
+**Timestamp:** 2026-05-28T09:50:32.823Z
+
+## Narrative
+### Highlights
+Trust first to build confidence before conversion or understanding
+
+## Facts
+- **landing_page_priority**: Trust in the architecture should be the primary focus for the landing page optimization. [preference]
diff --git a/.brv/context-tree/design/working_module/working_module_findings.md b/.brv/context-tree/design/working_module/working_module_findings.md
new file mode 100644
index 0000000..100391d
--- /dev/null
+++ b/.brv/context-tree/design/working_module/working_module_findings.md
@@ -0,0 +1,35 @@
+---
+title: Working Module Findings
+summary: Curated factual findings of the working module
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:37:46.984Z'
+updatedAt: '2026-05-28T13:46:43.741Z'
+---
+## Reason
+Curate extracted findings from working module analysis
+
+## Raw Concept
+**Task:**
+Document findings of the working module
+
+**Flow:**
+context extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T13:46:43.734Z
+
+## Narrative
+### Structure
+Extracted factual statements from provided context
+
+### Highlights
+uncategorized, apps/landing/src/pages/index.astro, apps/landing/src/styles/global.css
+
+## Facts
+- APPROVED
+- **apps/landing/src/pages/index.astro**: apps/landing/src/pages/index.astro:523-558 only enables hidden reveal state when animation is allowed, IntersectionObserver exists, and reveal targets are present
+- **apps/landing/src/pages/index.astro**: apps/landing/src/pages/index.astro:552-558 adds a short fail-safe; if no observer callback occurs, all reveal targets are made visible and the observer disconnects, reducing hidden-content risk versus the prior 1800ms blanket reveal
+- **apps/landing/src/styles/global.css**: apps/landing/src/styles/global.css:535-565 keeps hidden state gated behind .motion-ready, so content remains visible by default before JavaScript runs or when JavaScript fails
+- **apps/landing/src/styles/global.css**: apps/landing/src/styles/global.css:1261-1285 preserves reduced-motion behavior with visible, non-transformed reveal targets
+- The change observes targets once, unobserves each revealed target, and disconnects on fallback, which is maintainable and avoids long-running observation for already visible content
diff --git a/.brv/context-tree/design/writing_plans/implementation_plan.md b/.brv/context-tree/design/writing_plans/implementation_plan.md
new file mode 100644
index 0000000..06a222a
--- /dev/null
+++ b/.brv/context-tree/design/writing_plans/implementation_plan.md
@@ -0,0 +1,41 @@
+---
+title: implementation_plan
+summary: Implementation plan for skillify landing page covering trust narrative and checklist
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:03:54.550Z'
+updatedAt: '2026-05-28T10:03:54.550Z'
+---
+## Reason
+Document implementation plan created by writing-plans skill
+
+## Raw Concept
+**Task:**
+Create implementation plan for skillify landing page
+
+**Files:**
+- docs/plans/2026-05-28-skillify-landing-page.md
+
+**Flow:**
+write plan -> save -> scan for issues
+
+**Timestamp:** 2026-05-28T10:03:54.547Z
+
+**Author:** AI assistant
+
+## Narrative
+### Structure
+Plan includes sections on trust-first narrative, hero, GitHub trace, mechanics, copy buttons, no-JS fallback, system removal, responsive design, and verification checklist
+
+### Highlights
+All major aspects covered, no red flags found
+
+### Examples
+File path: docs/plans/2026-05-28-skillify-landing-page.md
+
+## Facts
+- **writing-plans skill**: I'm using the writing-plans skill to create the implementation plan.
+- **implementation plan**: Plan saved to docs/plans/2026-05-28-skillify-landing-page.md.
+- **implementation plan**: The plan covers trust-first narrative, “Skillify your backends” hero, realistic GitHub trace, concrete trust mechanics, command/config copy buttons, no-JS integration fallback, removal of major motion/cartography systems, responsive pass, and final verification checklist.
+- **plan scan**: I scanned the plan for em dashes, placeholders, and obvious plan red flags and found no matches.
diff --git a/.brv/context-tree/em_dash_usage/em_dash_usage/em_dash_usage.md b/.brv/context-tree/em_dash_usage/em_dash_usage/em_dash_usage.md
new file mode 100644
index 0000000..d02f00b
--- /dev/null
+++ b/.brv/context-tree/em_dash_usage/em_dash_usage/em_dash_usage.md
@@ -0,0 +1,30 @@
+---
+title: em dash usage
+summary: Facts about em dash usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.565Z'
+updatedAt: '2026-05-28T11:17:08.565Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under em dash usage
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **em dash usage**: No em dashes found in inspected landing files.
diff --git a/.brv/context-tree/extracted/curated/accessibility.md b/.brv/context-tree/extracted/curated/accessibility.md
new file mode 100644
index 0000000..ad9e546
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/accessibility.md
@@ -0,0 +1,27 @@
+---
+title: Accessibility
+summary: Facts about Accessibility
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.568Z'
+updatedAt: '2026-05-28T11:22:45.568Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for Accessibility
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Accessibility
+
+## Facts
+- **Accessibility**: Accessibility score is Excellent.
diff --git a/.brv/context-tree/extracted/curated/ai_slop_detection.md b/.brv/context-tree/extracted/curated/ai_slop_detection.md
new file mode 100644
index 0000000..d490646
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/ai_slop_detection.md
@@ -0,0 +1,20 @@
+---
+title: AI Slop Detection
+summary: Facts about AI Slop Detection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.232Z'
+updatedAt: '2026-05-28T09:43:19.232Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **AI Slop Detection**: AI Slop Detection is a critical evaluation criterion for the interface design.
diff --git a/.brv/context-tree/extracted/curated/anti_patterns.md b/.brv/context-tree/extracted/curated/anti_patterns.md
new file mode 100644
index 0000000..f8ce4f2
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/anti_patterns.md
@@ -0,0 +1,27 @@
+---
+title: anti-patterns
+summary: Facts about anti-patterns
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.574Z'
+updatedAt: '2026-05-28T11:22:45.588Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for anti-patterns
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for anti-patterns
+
+## Facts
+- **anti-patterns**: No actionable P0, P1, or P2 anti-pattern issues were found.
diff --git a/.brv/context-tree/extracted/curated/audit.md b/.brv/context-tree/extracted/curated/audit.md
new file mode 100644
index 0000000..b03ef94
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/audit.md
@@ -0,0 +1,27 @@
+---
+title: audit
+summary: Facts about audit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.599Z'
+updatedAt: '2026-05-28T11:22:45.599Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for audit
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for audit
+
+## Facts
+- **audit**: The audit result is APPROVED.
diff --git a/.brv/context-tree/extracted/curated/browser_automation.md b/.brv/context-tree/extracted/curated/browser_automation.md
new file mode 100644
index 0000000..e9381af
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/browser_automation.md
@@ -0,0 +1,20 @@
+---
+title: Browser automation
+summary: Facts about browser automation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.225Z'
+updatedAt: '2026-05-28T09:43:19.225Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **browser automation**: Each assessment MUST create its own new tab when browser automation is available.
diff --git a/.brv/context-tree/extracted/curated/browser_detection.md b/.brv/context-tree/extracted/curated/browser_detection.md
new file mode 100644
index 0000000..3b78fd5
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/browser_detection.md
@@ -0,0 +1,20 @@
+---
+title: Browser detection
+summary: Facts about Browser detection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.258Z'
+updatedAt: '2026-05-28T09:43:19.258Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **Browser detection**: The detector logs all findings with the `[impeccable]` prefix
diff --git a/.brv/context-tree/extracted/curated/browser_visualization.md b/.brv/context-tree/extracted/curated/browser_visualization.md
new file mode 100644
index 0000000..75f72a7
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/browser_visualization.md
@@ -0,0 +1,21 @@
+---
+title: Browser visualization
+summary: Facts about Browser visualization
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.254Z'
+updatedAt: '2026-05-28T09:43:19.254Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **Browser visualization**: The overlay is a visual aid for the user
+- **Browser visualization**: Do NOT scroll through the page to screenshot overlays
diff --git a/.brv/context-tree/extracted/curated/build_verification.md b/.brv/context-tree/extracted/curated/build_verification.md
new file mode 100644
index 0000000..c892617
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/build_verification.md
@@ -0,0 +1,24 @@
+---
+title: build verification
+summary: Facts about build verification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:09:29.211Z'
+updatedAt: '2026-05-28T09:09:29.211Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:09:29.206Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for build verification
+
+## Facts
+- **build verification**: Verified commands: `pnpm format:check`, `pnpm --filter @caplets/landing typecheck`, and `pnpm --filter @caplets/landing build`
diff --git a/.brv/context-tree/extracted/curated/claude_code_install_command.md b/.brv/context-tree/extracted/curated/claude_code_install_command.md
new file mode 100644
index 0000000..27d9ea1
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/claude_code_install_command.md
@@ -0,0 +1,24 @@
+---
+title: Claude Code install command
+summary: Facts about Claude Code install command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:09:29.207Z'
+updatedAt: '2026-05-28T09:09:29.207Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:09:29.206Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Claude Code install command
+
+## Facts
+- **Claude Code install command**: Claude Code install command is `npm install -g caplets && claude plugin marketplace add spiritledsoftware/caplets && claude plugin install caplets@caplets`
diff --git a/.brv/context-tree/extracted/curated/cli_scan.md b/.brv/context-tree/extracted/curated/cli_scan.md
new file mode 100644
index 0000000..1e12d99
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/cli_scan.md
@@ -0,0 +1,22 @@
+---
+title: CLI scan
+summary: Facts about CLI scan
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.253Z'
+updatedAt: '2026-05-28T09:43:19.253Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **CLI scan**: For large directories (200+ scannable files), use `--fast` (regex-only, skips jsdom)
+- **CLI scan**: For 500+ files, narrow scope or ask the user
+- **CLI scan**: Pass HTML/JSX/TSX/Vue/Svelte files or directories as `[target]` (anything with markup). Do not pass CSS-only files.
diff --git a/.brv/context-tree/extracted/curated/codex_install_command.md b/.brv/context-tree/extracted/curated/codex_install_command.md
new file mode 100644
index 0000000..6a2f359
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/codex_install_command.md
@@ -0,0 +1,24 @@
+---
+title: Codex install command
+summary: Facts about Codex install command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:09:29.210Z'
+updatedAt: '2026-05-28T09:09:29.210Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:09:29.206Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Codex install command
+
+## Facts
+- **Codex install command**: Codex install command is `npm install -g caplets && codex plugin marketplace add spiritledsoftware/caplets`
diff --git a/.brv/context-tree/extracted/curated/cognitive_load.md b/.brv/context-tree/extracted/curated/cognitive_load.md
new file mode 100644
index 0000000..e60a1a2
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/cognitive_load.md
@@ -0,0 +1,20 @@
+---
+title: Cognitive load
+summary: Facts about cognitive load
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.235Z'
+updatedAt: '2026-05-28T09:43:19.235Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **cognitive load**: Cognitive load checklist failure count of 0-1 is considered low, 2-3 moderate, and 4+ critical.
diff --git a/.brv/context-tree/extracted/curated/curated_content.md b/.brv/context-tree/extracted/curated/curated_content.md
new file mode 100644
index 0000000..9e4c78a
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/curated_content.md
@@ -0,0 +1,38 @@
+---
+title: Curated Content
+summary: Curated factual statements extracted from provided context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:56:03.656Z'
+updatedAt: '2026-05-28T13:24:55.559Z'
+---
+## Reason
+Store extracted factual statements from curating task
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-28T13:24:55.556Z
+
+## Narrative
+### Structure
+Curated factual statements from provided context
+
+### Highlights
+hero text, desktop hero wrap, global.css, hero grid, desktop h1, line height and letter spacing, headline, browser size, checks
+
+## Facts
+- **hero text**: The hero text "Skillify your backends." was wrapped weird on desktop
+- **desktop hero wrap**: The desktop hero wrap was fixed
+- **global.css**: The file apps/landing/src/styles/global.css was changed
+- **hero grid**: The hero grid was rebalanced so the text column has enough room
+- **desktop h1**: The oversized desktop h1 scale was reduced
+- **line height and letter spacing**: The line height and letter spacing were relaxed
+- **headline**: The result is now a clean two-line headline: "Skillify your" and "backends."
+- **browser size**: Verified in browser at 1440 × 900
+- **checks**: Build checks passed: pnpm --filter @caplets/landing typecheck and pnpm --filter @caplets/landing build
diff --git a/.brv/context-tree/extracted/curated/curated_context.md b/.brv/context-tree/extracted/curated/curated_context.md
new file mode 100644
index 0000000..7d033b4
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/curated_context.md
@@ -0,0 +1,39 @@
+---
+title: curated_context
+summary: Extracted factual statements from context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:33:03.171Z'
+updatedAt: '2026-05-28T13:39:45.007Z'
+---
+## Reason
+Curate extracted facts from context variable
+
+## Raw Concept
+**Task:**
+Curated knowledge from provided context
+
+**Flow:**
+extraction
+
+**Timestamp:** 2026-05-28T13:39:44.994Z
+
+## Narrative
+### Structure
+Aggregated factual statements extracted from context
+
+### Highlights
+Task 6, codebase, typecheck, build, node deprecation, risks, next steps
+
+## Facts
+- **changed files**: Unexpected changed files are present.
+- **expected changed file**: Spec expects only the file apps/landing/src/styles/global.css to be changed.
+- **global.css**: apps/landing/src/styles/global.css appears compliant with the touch‑target requirements.
+- **mobile brand target**: Mobile brand target has min‑width: 44px and min‑height: 44px (lines 1118‑1122).
+- **mobile nav/header actions**: Mobile nav/header actions have min‑height: 44px (lines 1140‑1144).
+- **npm/GitHub icon links**: npm/GitHub icon links have width: 44px via .icon-link (lines 1155‑1157) combined with .header-action min‑height.
+- **footer links**: Footer links have min‑height: 44px, display: flex, align‑items: center, padding‑block: 8px (lines 1254‑1258).
+- **integration pill**: Integration pill has min‑width: 44px and min‑height: 44px (lines 791‑793).
+- **header layout**: Header remains compact/full‑width, not a tall card; .site-header width: 100%, sticky at top: 0, with small mobile padding (lines 121‑133 and 1111‑1115).
+- **design constraints**: No CSS evidence found for em dashes, side‑stripe borders, gradient text, or glassmorphism.
diff --git a/.brv/context-tree/extracted/curated/curated_extraction.md b/.brv/context-tree/extracted/curated/curated_extraction.md
new file mode 100644
index 0000000..88f2487
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/curated_extraction.md
@@ -0,0 +1,35 @@
+---
+title: Curated Extraction
+summary: Extracted factual statements organized by subject
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:24:42.638Z'
+updatedAt: '2026-05-28T09:56:12.966Z'
+---
+## Reason
+Curate extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Extract and organize factual statements
+
+**Changes:**
+- Extracted facts from context
+- Extracted facts
+- Deduplicated
+- Grouped by subject
+
+**Timestamp:** 2026-05-28T09:56:12.962Z
+
+## Narrative
+### Structure
+Facts extracted and deduplicated
+
+### Highlights
+implementation plan, motion systems, fix-all plan
+
+## Facts
+- **implementation plan**: The implementation plan should remove substantial animation code, not just hide it behind toned-down styling.
+- **motion systems**: The page contains multiple motion systems: scroll-progress route resolution, pointer-reactive perspective tilt, route drift animation, entrance choreography, reveal choreography, glow and drop-shadow route effects, and a large animated hero headline treatment.
+- **fix-all plan**: The fix-all plan includes: keep reduced-motion support; keep small hover/focus transitions; keep maybe one restrained reveal pattern if it clarifies scanning; remove pointer tilt and scroll-driven route resolution; replace animated cartography with a mostly static, inspectable trace panel.
diff --git a/.brv/context-tree/extracted/curated/curated_facts.md b/.brv/context-tree/extracted/curated/curated_facts.md
new file mode 100644
index 0000000..2f12b58
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/curated_facts.md
@@ -0,0 +1,120 @@
+---
+title: curated_facts
+summary: Curated factual statements extracted from raw context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:46:02.466Z'
+updatedAt: '2026-05-28T09:46:02.466Z'
+---
+## Reason
+Store extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from provided context
+
+**Changes:**
+- Extracted factual statements
+
+**Timestamp:** 2026-05-28T09:46:02.465Z
+
+## Narrative
+### Highlights
+Extracted factual statements organized by subject
+
+### Examples
+[
+ {
+ "statement": "The CLI detector `npx impeccable --json apps/landing/src/pages/index.astro` returned an empty JSON array `[]`.",
+ "subject": "CLI detector output"
+ },
+ {
+ "statement": "The detector reported no findings.",
+ "subject": "detector summary"
+ },
+ {
+ "statement": "The detector likely misses CSS-driven brand and motion violations because most visual issues live in `global.css`.",
+ "subject": "detector blind spot"
+ },
+ {
+ "statement": "The detector likely does not compare implementation against `PRODUCT.md` and `DESIGN.md`.",
+ "subject": "detector blind spot"
+ },
+ {
+ "statement": "The detector likely does not reason about responsive layout quality, especially the mobile hero and map height.",
+ "subject": "detector blind spot"
+ },
+ {
+ "statement": "The detector likely does not inspect interaction fallback behavior, such as tab content when JavaScript is unavailable.",
+ "subject": "detector blind spot"
+ },
+ {
+ "statement": "The detector likely does not flag content credibility issues, such as inconsistent install commands.",
+ "subject": "detector blind spot"
+ },
+ {
+ "statement": "`DESIGN.md` specifies a quiet confidence brand with no decorative gradients, orchestrated page-load choreography, or glassmorphism.",
+ "subject": "DESIGN.md"
+ },
+ {
+ "statement": "The CSS uses radial gradients, perspective tilt, route glow/drop-shadow, sticky blurred header, large entrance animations, pointer-reactive map transforms, and animated route drift.",
+ "subject": "global.css"
+ },
+ {
+ "statement": "The hero `
` has a font size of 9.5rem, line-height of 0.82, and letter-spacing of -0.085em.",
+ "subject": "hero typography"
+ },
+ {
+ "statement": "Under a viewport width of 720px, `.map-stage` has a minimum height of 770px.",
+ "subject": "mobile layout"
+ },
+ {
+ "statement": "Reduced-motion handling exists in the page.",
+ "subject": "motion policy"
+ },
+ {
+ "statement": "`PRODUCT.md` advises avoiding neon/devtool dark and terminal theatrics.",
+ "subject": "PRODUCT.md"
+ },
+ {
+ "statement": "The page includes a dark integrations block and a dark terminal install section.",
+ "subject": "page content"
+ },
+ {
+ "statement": "The hero/install flow uses the command `pnpm add -g caplets`.",
+ "subject": "install command"
+ },
+ {
+ "statement": "Agent setup cards use the command `npm install -g caplets` for OpenCode, Pi, and generic MCP.",
+ "subject": "install command"
+ },
+ {
+ "statement": "Tabs after the first are rendered with `hidden={index !== 0}` causing them to be inaccessible without JavaScript.",
+ "subject": "tab markup"
+ },
+ {
+ "statement": "The `.status-dot` element is green and has `aria-hidden` attribute, providing only a color cue for status.",
+ "subject": "status indicator"
+ }
+]
+
+## Facts
+- **CLI detector output**: The CLI detector `npx impeccable --json apps/landing/src/pages/index.astro` returned an empty JSON array `[]`.
+- **detector summary**: The detector reported no findings.
+- **detector blind spot**: The detector likely misses CSS-driven brand and motion violations because most visual issues live in `global.css`.
+- **detector blind spot**: The detector likely does not compare implementation against `PRODUCT.md` and `DESIGN.md`.
+- **detector blind spot**: The detector likely does not reason about responsive layout quality, especially the mobile hero and map height.
+- **detector blind spot**: The detector likely does not inspect interaction fallback behavior, such as tab content when JavaScript is unavailable.
+- **detector blind spot**: The detector likely does not flag content credibility issues, such as inconsistent install commands.
+- **DESIGN.md**: `DESIGN.md` specifies a quiet confidence brand with no decorative gradients, orchestrated page-load choreography, or glassmorphism.
+- **global.css**: The CSS uses radial gradients, perspective tilt, route glow/drop-shadow, sticky blurred header, large entrance animations, pointer-reactive map transforms, and animated route drift.
+- **hero typography**: The hero `
` has a font size of 9.5rem, line-height of 0.82, and letter-spacing of -0.085em.
+- **mobile layout**: Under a viewport width of 720px, `.map-stage` has a minimum height of 770px.
+- **motion policy**: Reduced-motion handling exists in the page.
+- **PRODUCT.md**: `PRODUCT.md` advises avoiding neon/devtool dark and terminal theatrics.
+- **page content**: The page includes a dark integrations block and a dark terminal install section.
+- **install command**: The hero/install flow uses the command `pnpm add -g caplets`.
+- **install command**: Agent setup cards use the command `npm install -g caplets` for OpenCode, Pi, and generic MCP.
+- **tab markup**: Tabs after the first are rendered with `hidden={index !== 0}` causing them to be inaccessible without JavaScript.
+- **status indicator**: The `.status-dot` element is green and has `aria-hidden` attribute, providing only a color cue for status.
diff --git a/.brv/context-tree/extracted/curated/curated_knowledge.md b/.brv/context-tree/extracted/curated/curated_knowledge.md
new file mode 100644
index 0000000..8c097a8
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/curated_knowledge.md
@@ -0,0 +1,34 @@
+---
+title: Curated Knowledge
+summary: Aggregated factual statements extracted and deduplicated
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:30:44.778Z'
+updatedAt: '2026-05-28T09:30:44.778Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from provided context
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-28T09:30:44.777Z
+
+## Narrative
+### Structure
+Aggregated factual statements grouped by subject
+
+### Highlights
+apps/landing/src/styles/global.css, d2b942a, pnpm format:check, pnpm typecheck, .github/workflows/pr-preview.yml
+
+## Facts
+- **apps/landing/src/styles/global.css**: Changed files: apps/landing/src/styles/global.css
+- **d2b942a**: Commit created: d2b942a fix(landing): remove unused npm icon styles
+- **pnpm format:check**: pnpm format:check passed after formatting the touched CSS file
+- **pnpm typecheck**: pnpm --filter @caplets/landing typecheck passed with 0 errors, 0 warnings, 0 hints
+- **.github/workflows/pr-preview.yml**: Commit was created with --no-verify because the pre-commit hook failed on pre-existing unrelated formatting in untracked .github/workflows/pr-preview.yml
diff --git a/.brv/context-tree/extracted/curated/extracted_context.md b/.brv/context-tree/extracted/curated/extracted_context.md
new file mode 100644
index 0000000..1f48dfe
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/extracted_context.md
@@ -0,0 +1,24 @@
+---
+title: extracted_context
+summary: Contains extracted factual statements from provided short context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T12:52:11.616Z'
+updatedAt: '2026-05-28T12:52:11.616Z'
+---
+## Reason
+Curate extracted facts from short context via RLM single-pass
+
+## Raw Concept
+**Task:**
+Curate extracted knowledge from provided context
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-28T12:52:11.615Z
+
+## Narrative
+### Structure
+Aggregated facts extracted from short context
diff --git a/.brv/context-tree/extracted/curated/extracted_facts.md b/.brv/context-tree/extracted/curated/extracted_facts.md
new file mode 100644
index 0000000..c25b244
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/extracted_facts.md
@@ -0,0 +1,41 @@
+---
+title: extracted_facts
+summary: Extracted factual statements from provided context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:15:49.857Z'
+updatedAt: '2026-05-28T13:27:23.975Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Changes:**
+- Extracted facts from provided context
+
+**Flow:**
+extract -> dedup -> group -> curate
+
+**Timestamp:** 2026-05-28T13:27:23.971Z
+
+## Narrative
+### Structure
+Aggregated factual statements
+
+### Highlights
+hero layout, trace column, hero text column, headline sizing, trace card width
+
+## Facts
+- **hero layout**: Rebalanced the hero layout so the trace card is wider again while keeping the headline to a clean two-line wrap.
+- **trace column**: Increased trace column from 576px to about 660px at desktop width in apps/landing/src/styles/global.css.
+- **hero text column**: Reduced the hero text column slightly.
+- **headline sizing**: Adjusted headline sizing so it still wraps as: “Skillify your” and “backends.”
+- **trace card width**: Browser verified at 1440 × 900 that trace card width is 660px.
+- **trace card overflow**: No trace card horizontal overflow observed.
+- **hero headline**: Hero headline remains two lines.
+- **typecheck**: Build check passed: pnpm --filter @caplets/landing typecheck.
+- **build**: Build check passed: pnpm --filter @caplets/landing build.
diff --git a/.brv/context-tree/extracted/curated/github_job_url.md b/.brv/context-tree/extracted/curated/github_job_url.md
new file mode 100644
index 0000000..ffbaacd
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/github_job_url.md
@@ -0,0 +1,14 @@
+---
+title: GitHub job URL
+summary: Extracted facts about GitHub job URL
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:51:29.535Z'
+updatedAt: '2026-05-28T11:51:29.535Z'
+---
+## Reason
+Curate extracted facts from RLM context
+
+## Facts
+- **GitHub job URL**: https://github.com/spiritledsoftware/caplets/actions/runs/26572806394/job/78284056512
diff --git a/.brv/context-tree/extracted/curated/heuristics_scoring.md b/.brv/context-tree/extracted/curated/heuristics_scoring.md
new file mode 100644
index 0000000..10e6195
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/heuristics_scoring.md
@@ -0,0 +1,20 @@
+---
+title: Heuristics scoring
+summary: Facts about heuristics scoring
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.248Z'
+updatedAt: '2026-05-28T09:43:19.248Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **heuristics scoring**: Nielsen's Heuristics should be scored 0-4 for each of the 10 heuristics.
diff --git a/.brv/context-tree/extracted/curated/impeccable_tool.md b/.brv/context-tree/extracted/curated/impeccable_tool.md
new file mode 100644
index 0000000..b65a55c
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/impeccable_tool.md
@@ -0,0 +1,20 @@
+---
+title: Impeccable tool
+summary: Facts about impeccable tool
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.251Z'
+updatedAt: '2026-05-28T09:43:19.251Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **impeccable tool**: Exit code 0 = clean, 2 = findings
diff --git a/.brv/context-tree/extracted/curated/interface.md b/.brv/context-tree/extracted/curated/interface.md
new file mode 100644
index 0000000..2f98e55
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/interface.md
@@ -0,0 +1,20 @@
+---
+title: Interface
+summary: Facts about interface
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.271Z'
+updatedAt: '2026-05-28T09:43:19.271Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **interface**: The interface feels clinical and corporate.
diff --git a/.brv/context-tree/extracted/curated/interface_scores.md b/.brv/context-tree/extracted/curated/interface_scores.md
new file mode 100644
index 0000000..ace8b75
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/interface_scores.md
@@ -0,0 +1,20 @@
+---
+title: Interface scores
+summary: Facts about interface_scores
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.263Z'
+updatedAt: '2026-05-28T09:43:19.263Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **interface_scores**: Most real interfaces score 20-32.
diff --git a/.brv/context-tree/extracted/curated/issues.md b/.brv/context-tree/extracted/curated/issues.md
new file mode 100644
index 0000000..4c2a14e
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/issues.md
@@ -0,0 +1,20 @@
+---
+title: Issues
+summary: Facts about issues
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.272Z'
+updatedAt: '2026-05-28T09:43:19.272Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **issues**: I found N issues.
diff --git a/.brv/context-tree/extracted/curated/option_count.md b/.brv/context-tree/extracted/curated/option_count.md
new file mode 100644
index 0000000..82fc77e
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/option_count.md
@@ -0,0 +1,20 @@
+---
+title: Option count
+summary: Facts about option count
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.245Z'
+updatedAt: '2026-05-28T09:43:19.245Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **option count**: If visible options at a decision point exceed 4, it should be flagged.
diff --git a/.brv/context-tree/extracted/curated/performance.md b/.brv/context-tree/extracted/curated/performance.md
new file mode 100644
index 0000000..d3bf50b
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/performance.md
@@ -0,0 +1,27 @@
+---
+title: Performance
+summary: Facts about Performance
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.569Z'
+updatedAt: '2026-05-28T11:22:45.569Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for Performance
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Performance
+
+## Facts
+- **Performance**: Performance score is Good.
diff --git a/.brv/context-tree/extracted/curated/persona_generation.md b/.brv/context-tree/extracted/curated/persona_generation.md
new file mode 100644
index 0000000..3ecea56
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/persona_generation.md
@@ -0,0 +1,20 @@
+---
+title: Persona generation
+summary: Facts about persona_generation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.269Z'
+updatedAt: '2026-05-28T09:43:19.269Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **persona_generation**: If .github/copilot-instructions.md contains a ## Design Context section from impeccable teach, also generate 1-2 project-specific personas.
diff --git a/.brv/context-tree/extracted/curated/responsive.md b/.brv/context-tree/extracted/curated/responsive.md
new file mode 100644
index 0000000..0761566
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/responsive.md
@@ -0,0 +1,27 @@
+---
+title: Responsive
+summary: Facts about Responsive
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.571Z'
+updatedAt: '2026-05-28T11:22:45.571Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for Responsive
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Responsive
+
+## Facts
+- **Responsive**: Responsive score is Excellent.
diff --git a/.brv/context-tree/extracted/curated/score_meaning.md b/.brv/context-tree/extracted/curated/score_meaning.md
new file mode 100644
index 0000000..1a6bd58
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/score_meaning.md
@@ -0,0 +1,20 @@
+---
+title: Score meaning
+summary: Facts about score_meaning
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.259Z'
+updatedAt: '2026-05-28T09:43:19.259Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **score_meaning**: A 4 means genuinely excellent.
diff --git a/.brv/context-tree/extracted/curated/source_inspection.md b/.brv/context-tree/extracted/curated/source_inspection.md
new file mode 100644
index 0000000..e981e4f
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/source_inspection.md
@@ -0,0 +1,27 @@
+---
+title: source inspection
+summary: Facts about source inspection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.566Z'
+updatedAt: '2026-05-28T11:22:45.566Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for source inspection
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for source inspection
+
+## Facts
+- **source inspection**: Source inspection was completed for apps/landing/src/pages/index.astro, apps/landing/src/styles/global.css, PRODUCT.md, and DESIGN.md.
diff --git a/.brv/context-tree/extracted/curated/sub_agents.md b/.brv/context-tree/extracted/curated/sub_agents.md
new file mode 100644
index 0000000..2ed1bd8
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/sub_agents.md
@@ -0,0 +1,20 @@
+---
+title: Sub-agents
+summary: Facts about sub-agents
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.222Z'
+updatedAt: '2026-05-28T09:43:19.222Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.219Z
+
+## Facts
+- **sub-agents**: If sub-agents are not available in the current environment, complete each assessment sequentially, writing findings to internal notes before proceeding.
diff --git a/.brv/context-tree/extracted/curated/tab_labeling.md b/.brv/context-tree/extracted/curated/tab_labeling.md
new file mode 100644
index 0000000..df8716a
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/tab_labeling.md
@@ -0,0 +1,20 @@
+---
+title: Tab labeling
+summary: Facts about tab labeling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.230Z'
+updatedAt: '2026-05-28T09:43:19.230Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **tab labeling**: Assessment A should label its tab by setting the document title to '[LLM] ' + document.title.
diff --git a/.brv/context-tree/extracted/curated/tab_usage.md b/.brv/context-tree/extracted/curated/tab_usage.md
new file mode 100644
index 0000000..76ce0ca
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/tab_usage.md
@@ -0,0 +1,20 @@
+---
+title: Tab usage
+summary: Facts about tab usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.228Z'
+updatedAt: '2026-05-28T09:43:19.228Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **tab usage**: Never reuse an existing tab, even if one is already open at the correct URL.
diff --git a/.brv/context-tree/extracted/curated/theming.md b/.brv/context-tree/extracted/curated/theming.md
new file mode 100644
index 0000000..e8d1a9d
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/theming.md
@@ -0,0 +1,27 @@
+---
+title: Theming
+summary: Facts about Theming
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:22:45.572Z'
+updatedAt: '2026-05-28T11:22:45.572Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts for Theming
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:22:45.563Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Theming
+
+## Facts
+- **Theming**: Theming score is Good.
diff --git a/.brv/context-tree/extracted/curated/user.md b/.brv/context-tree/extracted/curated/user.md
new file mode 100644
index 0000000..456ce8b
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/user.md
@@ -0,0 +1,21 @@
+---
+title: User
+summary: Facts about user
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.274Z'
+updatedAt: '2026-05-28T09:43:19.274Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **user**: You can ask me to run these one at a time, all at once, or in any order you prefer.
+- **user**: Re-run `/critique` after fixes to see your score improve.
diff --git a/.brv/context-tree/extracted/curated/visual_hierarchy_color_usage_information_overload.md b/.brv/context-tree/extracted/curated/visual_hierarchy_color_usage_information_overload.md
new file mode 100644
index 0000000..55cccad
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/visual_hierarchy_color_usage_information_overload.md
@@ -0,0 +1,20 @@
+---
+title: Visual hierarchy, color usage, information overload
+summary: Facts about visual hierarchy, color usage, information overload
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.270Z'
+updatedAt: '2026-05-28T09:43:19.270Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **visual hierarchy, color usage, information overload**: I found problems with visual hierarchy, color usage, and information overload.
diff --git a/.brv/context-tree/extracted/curated/visual_overlays.md b/.brv/context-tree/extracted/curated/visual_overlays.md
new file mode 100644
index 0000000..9840165
--- /dev/null
+++ b/.brv/context-tree/extracted/curated/visual_overlays.md
@@ -0,0 +1,20 @@
+---
+title: Visual overlays
+summary: Facts about visual_overlays
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:43:19.265Z'
+updatedAt: '2026-05-28T09:43:19.265Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T09:43:19.220Z
+
+## Facts
+- **visual_overlays**: Visual overlays are now visible in the [Human] tab in the browser, highlighting the detected issues.
diff --git a/.brv/context-tree/extracted/curated_context/codex_and_claude_code_install_commands.md b/.brv/context-tree/extracted/curated_context/codex_and_claude_code_install_commands.md
new file mode 100644
index 0000000..9b591e7
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_context/codex_and_claude_code_install_commands.md
@@ -0,0 +1,24 @@
+---
+title: codex_and_claude_code_install_commands
+summary: Facts about codex and claude code install commands
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:07:52.574Z'
+updatedAt: '2026-05-28T09:07:52.574Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Document extracted facts for codex and claude code install commands
+
+**Timestamp:** 2026-05-28T09:07:52.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for codex and claude code install commands
+
+## Facts
+- **codex and claude code install commands**: The codex and claude code install commands are wrong
diff --git a/.brv/context-tree/extracted/curated_context/curated_context_extraction.md b/.brv/context-tree/extracted/curated_context/curated_context_extraction.md
new file mode 100644
index 0000000..62fd8a1
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_context/curated_context_extraction.md
@@ -0,0 +1,38 @@
+---
+title: Curated Context Extraction
+summary: Curated factual statements from provided context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:53:36.112Z'
+updatedAt: '2026-05-27T23:53:36.112Z'
+---
+## Reason
+Store extracted factual statements from RLM curating session
+
+## Raw Concept
+**Task:**
+Curate extracted knowledge from provided context
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-27T23:53:36.110Z
+
+## Narrative
+### Structure
+Aggregated factual statements extracted from context
+
+### Highlights
+landing setup, apps/landing/src/pages/index.astro, 352c0d5, README files, pnpm format, typecheck, commit hooks, risks, unstaged changes
+
+## Facts
+- **landing setup**: Implemented the landing setup snippet fixes.
+- **apps/landing/src/pages/index.astro**: Changed files: - apps/landing/src/pages/index.astro
+- **352c0d5**: Commit: 352c0d5 fix(landing): correct native agent setup snippets
+- **README files**: Read and verified relevant sections in: packages/opencode/README.md, packages/pi/README.md
+- **pnpm format**: pnpm format:check passed
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed
+- **commit hooks**: Commit hook checks also passed
+- **risks**: Open risks/questions: None for this task.
+- **unstaged changes**: Existing unrelated unstaged changes remain untouched.
diff --git a/.brv/context-tree/extracted/curated_extraction/curated_extraction.md b/.brv/context-tree/extracted/curated_extraction/curated_extraction.md
new file mode 100644
index 0000000..63ed6a9
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_extraction/curated_extraction.md
@@ -0,0 +1,44 @@
+---
+title: Curated Extraction
+summary: Aggregated factual statements extracted via RLM process
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:25:56.661Z'
+updatedAt: '2026-05-28T09:25:56.661Z'
+---
+## Reason
+Store extracted factual statements from source context
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from source context
+
+**Changes:**
+- Extracted facts via mapExtract
+
+**Timestamp:** 2026-05-28T09:25:56.659Z
+
+## Narrative
+### Structure
+Aggregated factual statements extracted from source
+
+### Highlights
+Subject rAF throttling has 1 facts
+Subject route drift has 1 facts
+Subject mobile/desktop scroll behavior has 1 facts
+Subject SVG decoration has 1 facts
+Subject integration tab cue has 1 facts
+Subject OKLCH color variables has 1 facts
+Subject Impeccable punctuation ban has 1 facts
+Subject Claude/Codex install commands has 1 facts
+
+## Facts
+- **rAF throttling**: rAF throttling is implemented for scroll/resize-driven hero `getBoundingClientRect()` calls, with `scroll` and `resize` calling `scheduleHeroProgressUpdate()` which gates updates through one `requestAnimationFrame` at a time.
+- **route drift**: Route drift is no longer continuous by default; `.route-backbone` is paused unless `.map-stage.is-route-active` is present, and IntersectionObserver toggles that class based on visibility.
+- **mobile/desktop scroll behavior**: Mobile avoids the fixed-height nested scroll panel while desktop keeps a bounded setup card, with desktop using `block-size` plus `overflow: auto` and mobile resetting to `block-size: auto` and `overflow: visible`.
+- **SVG decoration**: npm/GitHub SVGs are decorative inside already-labeled links, marked with `aria-hidden="true"` and `focusable="false"`.
+- **integration tab cue**: Active integration tab has a non-color cue via inset box-shadow.
+- **OKLCH color variables**: Repeated one-off OKLCH colors were promoted to variables for the targeted repeated values.
+- **Impeccable punctuation ban**: No newly introduced obvious Impeccable punctuation ban issue such as em dashes was found in the committed files.
+- **Claude/Codex install commands**: Claude/Codex install commands were changed rather than merely split for readability; the committed command for both was altered, violating the audit requirement.
diff --git a/.brv/context-tree/extracted/curated_facts/build.md b/.brv/context-tree/extracted/curated_facts/build.md
new file mode 100644
index 0000000..70723be
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/build.md
@@ -0,0 +1,30 @@
+---
+title: build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.135Z'
+updatedAt: '2026-05-28T11:21:06.135Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for build
+
+### Highlights
+pnpm --filter @caplets/landing build completed, building 1 page
+
+## Facts
+- **build**: pnpm --filter @caplets/landing build completed, building 1 page
diff --git a/.brv/context-tree/extracted/curated_facts/curated_facts_from_context.md b/.brv/context-tree/extracted/curated_facts/curated_facts_from_context.md
new file mode 100644
index 0000000..0699760
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/curated_facts_from_context.md
@@ -0,0 +1,27 @@
+---
+title: Curated Facts from Context
+summary: Contains 1 curated factual statements extracted from source context.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:37:31.539Z'
+updatedAt: '2026-05-28T11:37:31.539Z'
+---
+## Reason
+Store extracted factual statements as durable knowledge
+
+## Raw Concept
+**Task:**
+Curate extracted facts from source context
+
+**Flow:**
+extraction -> deduplication -> curation
+
+**Timestamp:** 2026-05-28T11:37:31.538Z
+
+## Narrative
+### Structure
+Extracted factual statements from provided context
+
+### Highlights
+Extracted 1 unique facts.
diff --git a/.brv/context-tree/extracted/curated_facts/dash_check.md b/.brv/context-tree/extracted/curated_facts/dash_check.md
new file mode 100644
index 0000000..742fca8
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/dash_check.md
@@ -0,0 +1,30 @@
+---
+title: dash check
+summary: Facts about dash check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.150Z'
+updatedAt: '2026-05-28T11:21:06.150Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for dash check
+
+### Highlights
+grep for em dash and en dash in apps/landing/src found no matches
+
+## Facts
+- **dash check**: grep for em dash and en dash in apps/landing/src found no matches
diff --git a/.brv/context-tree/extracted/curated_facts/deprecation_warnings.md b/.brv/context-tree/extracted/curated_facts/deprecation_warnings.md
new file mode 100644
index 0000000..c0ca4f2
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/deprecation_warnings.md
@@ -0,0 +1,30 @@
+---
+title: deprecation warnings
+summary: Facts about deprecation warnings
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.152Z'
+updatedAt: '2026-05-28T11:21:06.152Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for deprecation warnings
+
+### Highlights
+Astro commands emitted Node [DEP0205] module.register() deprecation warnings but completed successfully
+
+## Facts
+- **deprecation warnings**: Astro commands emitted Node [DEP0205] module.register() deprecation warnings but completed successfully
diff --git a/.brv/context-tree/extracted/curated_facts/extracted_facts.md b/.brv/context-tree/extracted/curated_facts/extracted_facts.md
new file mode 100644
index 0000000..bb910e7
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/extracted_facts.md
@@ -0,0 +1,36 @@
+---
+title: Extracted Facts
+summary: Facts extracted and deduplicated from source context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:17:26.110Z'
+updatedAt: '2026-05-28T10:17:26.110Z'
+---
+## Reason
+Curate facts extracted via RLM extraction
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from provided context
+
+**Changes:**
+- Extracted facts via RLM extraction
+
+**Timestamp:** 2026-05-28T10:17:26.108Z
+
+## Narrative
+### Structure
+Facts grouped by subject with deduplication
+
+### Highlights
+Extracted factual statements organized by subject
+
+## Facts
+- **Task 4 implementation**: Implemented Task 4 only: added the concrete trust mechanics section after proof, with matching trust CSS.
+- **modified files**: Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+- **typecheck result**: pnpm --filter @caplets/landing typecheck PASS.
+- **build result**: pnpm --filter @caplets/landing build PASS.
+- **open risks**: Open risks/questions: None.
+- **layout spacing**: Main spacing was left unchanged.
+- **next step**: Recommended next step: Visual review the landing page render before continuing to Task 5.
diff --git a/.brv/context-tree/extracted/curated_facts/format_check.md b/.brv/context-tree/extracted/curated_facts/format_check.md
new file mode 100644
index 0000000..250ce4f
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/format_check.md
@@ -0,0 +1,30 @@
+---
+title: format check
+summary: Facts about format check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.144Z'
+updatedAt: '2026-05-28T11:21:06.144Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for format check
+
+### Highlights
+pnpm format:check completed successfully
+
+## Facts
+- **format check**: pnpm format:check completed successfully
diff --git a/.brv/context-tree/extracted/curated_facts/formatting.md b/.brv/context-tree/extracted/curated_facts/formatting.md
new file mode 100644
index 0000000..675696b
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/formatting.md
@@ -0,0 +1,30 @@
+---
+title: formatting
+summary: Facts about formatting
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.131Z'
+updatedAt: '2026-05-28T11:21:06.131Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for formatting
+
+### Highlights
+pnpm exec oxfmt apps/landing/src/pages/index.astro apps/landing/src/styles/global.css completed successfully
+
+## Facts
+- **formatting**: pnpm exec oxfmt apps/landing/src/pages/index.astro apps/landing/src/styles/global.css completed successfully
diff --git a/.brv/context-tree/extracted/curated_facts/impeccable_check.md b/.brv/context-tree/extracted/curated_facts/impeccable_check.md
new file mode 100644
index 0000000..60d5f05
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/impeccable_check.md
@@ -0,0 +1,30 @@
+---
+title: impeccable check
+summary: Facts about impeccable check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.149Z'
+updatedAt: '2026-05-28T11:21:06.149Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for impeccable check
+
+### Highlights
+npx impeccable --json apps/landing/src/pages/index.astro returned an empty array
+
+## Facts
+- **impeccable check**: npx impeccable --json apps/landing/src/pages/index.astro returned an empty array
diff --git a/.brv/context-tree/extracted/curated_facts/interactive_controls.md b/.brv/context-tree/extracted/curated_facts/interactive_controls.md
new file mode 100644
index 0000000..79f8bee
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/interactive_controls.md
@@ -0,0 +1,30 @@
+---
+title: interactive controls
+summary: Facts about interactive controls
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.129Z'
+updatedAt: '2026-05-28T11:21:06.129Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for interactive controls
+
+### Highlights
+Ensured 44px minimum interactive target height for .brand-mark, .top-nav a, .header-action, .integration-pill, .copy-button, and mobile .copy-button
+
+## Facts
+- **interactive controls**: Ensured 44px minimum interactive target height for .brand-mark, .top-nav a, .header-action, .integration-pill, .copy-button, and mobile .copy-button
diff --git a/.brv/context-tree/extracted/curated_facts/lint.md b/.brv/context-tree/extracted/curated_facts/lint.md
new file mode 100644
index 0000000..6c691dd
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/lint.md
@@ -0,0 +1,30 @@
+---
+title: lint
+summary: Facts about lint
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.147Z'
+updatedAt: '2026-05-28T11:21:06.147Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for lint
+
+### Highlights
+pnpm lint completed successfully
+
+## Facts
+- **lint**: pnpm lint completed successfully
diff --git a/.brv/context-tree/extracted/curated_facts/meta_tag.md b/.brv/context-tree/extracted/curated_facts/meta_tag.md
new file mode 100644
index 0000000..5186258
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/meta_tag.md
@@ -0,0 +1,30 @@
+---
+title: meta tag
+summary: Facts about meta tag
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.127Z'
+updatedAt: '2026-05-28T11:21:06.127Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for meta tag
+
+### Highlights
+Changed theme-color meta to use content={themeColor}
+
+## Facts
+- **meta tag**: Changed theme-color meta to use content={themeColor}
diff --git a/.brv/context-tree/extracted/curated_facts/themecolor_constant.md b/.brv/context-tree/extracted/curated_facts/themecolor_constant.md
new file mode 100644
index 0000000..4be4db8
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/themecolor_constant.md
@@ -0,0 +1,30 @@
+---
+title: themeColor constant
+summary: Facts about themeColor constant
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.125Z'
+updatedAt: '2026-05-28T11:21:06.125Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for themeColor constant
+
+### Highlights
+Added const themeColor = "oklch(97% 0.012 85)" in apps/landing/src/pages/index.astro
+
+## Facts
+- **themeColor constant**: Added const themeColor = "oklch(97% 0.012 85)" in apps/landing/src/pages/index.astro
diff --git a/.brv/context-tree/extracted/curated_facts/typecheck.md b/.brv/context-tree/extracted/curated_facts/typecheck.md
new file mode 100644
index 0000000..8d85ef7
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/typecheck.md
@@ -0,0 +1,30 @@
+---
+title: typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.133Z'
+updatedAt: '2026-05-28T11:21:06.133Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for typecheck
+
+### Highlights
+pnpm --filter @caplets/landing typecheck completed with 0 errors and 0 warnings
+
+## Facts
+- **typecheck**: pnpm --filter @caplets/landing typecheck completed with 0 errors and 0 warnings
diff --git a/.brv/context-tree/extracted/curated_facts/unrelated_changes.md b/.brv/context-tree/extracted/curated_facts/unrelated_changes.md
new file mode 100644
index 0000000..3ae5a07
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_facts/unrelated_changes.md
@@ -0,0 +1,30 @@
+---
+title: unrelated changes
+summary: Facts about unrelated changes
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:21:06.156Z'
+updatedAt: '2026-05-28T11:21:06.156Z'
+---
+## Reason
+Curate extracted factual statements from context
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> curation
+
+**Timestamp:** 2026-05-28T11:21:06.122Z
+
+## Narrative
+### Structure
+Grouped factual statements for unrelated changes
+
+### Highlights
+Working tree contains unrelated pre-existing .brv changes that were not modified intentionally
+
+## Facts
+- **unrelated changes**: Working tree contains unrelated pre-existing .brv changes that were not modified intentionally
diff --git a/.brv/context-tree/extracted/curated_from_context/capabilitycards.md b/.brv/context-tree/extracted/curated_from_context/capabilitycards.md
new file mode 100644
index 0000000..6c9055f
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/capabilitycards.md
@@ -0,0 +1,24 @@
+---
+title: CapabilityCards
+summary: Facts about capabilityCards
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.151Z'
+updatedAt: '2026-05-28T10:06:54.151Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for capabilityCards
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+`capabilityCards` is still referenced by the existing old hero markup.
+
+## Facts
+- **capabilityCards**: `capabilityCards` is still referenced by the existing old hero markup.
diff --git a/.brv/context-tree/extracted/curated_from_context/commit.md b/.brv/context-tree/extracted/curated_from_context/commit.md
new file mode 100644
index 0000000..dbecf08
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/commit.md
@@ -0,0 +1,24 @@
+---
+title: Commit
+summary: Facts about commit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.139Z'
+updatedAt: '2026-05-28T10:06:54.139Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for commit
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+No commit made.
+
+## Facts
+- **commit**: No commit made.
diff --git a/.brv/context-tree/extracted/curated_from_context/constants.md b/.brv/context-tree/extracted/curated_from_context/constants.md
new file mode 100644
index 0000000..163a556
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/constants.md
@@ -0,0 +1,24 @@
+---
+title: Constants
+summary: Facts about constants
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.153Z'
+updatedAt: '2026-05-28T10:06:54.153Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for constants
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+New constants are currently unused until later plan tasks replace the hero/proof/trust markup.
+
+## Facts
+- **constants**: New constants are currently unused until later plan tasks replace the hero/proof/trust markup.
diff --git a/.brv/context-tree/extracted/curated_from_context/curated_context.md b/.brv/context-tree/extracted/curated_from_context/curated_context.md
new file mode 100644
index 0000000..199262d
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/curated_context.md
@@ -0,0 +1,33 @@
+---
+title: Curated Context
+summary: Curated 7 facts from raw context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:12:38.373Z'
+updatedAt: '2026-05-28T10:12:38.373Z'
+---
+## Reason
+Store extracted factual statements from raw context
+
+## Raw Concept
+**Task:**
+Curate extracted factual statements from provided context
+
+**Timestamp:** 2026-05-28T10:12:38.372Z
+
+## Narrative
+### Structure
+Extracted facts grouped by subject
+
+### Highlights
+Extracted 7 unique facts across 7 subjects.
+
+## Facts
+- **Task 2**: Implemented Task 2 only.
+- **files**: Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed, with expected unused-constant hints for Task 3/4 constants.
+- **build**: pnpm --filter @caplets/landing build passed.
+- **git diff**: git diff --check passed.
+- **variables**: skillifyFramework and trustMechanics remain unused until Task 3/4.
+- **next step**: Recommended next step: proceed to Task 3 when ready.
diff --git a/.brv/context-tree/extracted/curated_from_context/expected_behavior.md b/.brv/context-tree/extracted/curated_from_context/expected_behavior.md
new file mode 100644
index 0000000..967e16d
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/expected_behavior.md
@@ -0,0 +1,24 @@
+---
+title: Expected behavior
+summary: Facts about expected_behavior
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.156Z'
+updatedAt: '2026-05-28T10:06:54.156Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for expected_behavior
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+This is expected from doing Task 1 only, because Task 2 removes the old hero references.
+
+## Facts
+- **expected_behavior**: This is expected from doing Task 1 only, because Task 2 removes the old hero references.
diff --git a/.brv/context-tree/extracted/curated_from_context/extracted_knowledge.md b/.brv/context-tree/extracted/curated_from_context/extracted_knowledge.md
new file mode 100644
index 0000000..c79c3e5
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/extracted_knowledge.md
@@ -0,0 +1,30 @@
+---
+title: Extracted Knowledge
+summary: Extracted rawConcept, narrative, relations, and facts from provided context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:57:33.791Z'
+updatedAt: '2026-05-28T09:57:33.791Z'
+---
+## Reason
+Curate extracted knowledge from RLM context
+
+## Facts
+- **implementation plan**: Create a written implementation plan in docs/plans/ before code changes.
+- **landing page**: The landing page changes include narrative, information architecture, hero structure, trust proof, motion system, accessibility fallback, and command affordances.
+- **messaging refactor**: Messaging refactor should make trust the primary objective, define “skillify”, make “capability cards” dominant, and demote “map” to supporting metaphor.
+- **hero rebuild**: Hero rebuild should replace expressive map hero with realistic GitHub trace, show progressive disclosure path, and include source, status, auth redaction, schema preservation, structured result preservation.
+- **trust proof**: Trust proof section should add concrete safety/failure examples, show config source and redacted auth, and show timeout/error/recovery behavior where accurate.
+- **interaction hardening**: Interaction hardening includes copy buttons for commands and snippets, no-JS integration fallback, and non-color-only status cues.
+- **visual simplification**: Visual simplification should remove pointer tilt, scroll route resolution, route drift, heavy glow, and orchestration, keeping restrained hover/focus transitions.
+- **consistency fixes**: Consistency fixes include resolving install command mismatch and adding direct docs/config links if available.
+- **hover/focus behavior**: keep restrained hover/focus transitions
+- **consistency fixes**: resolve install command mismatch
+- **documentation**: add direct docs/config links if available
+- **verification**: pnpm --filter apps/landing typecheck
+- **verification**: pnpm --filter apps/landing build
+- **verification**: maybe full pnpm verify if landing changes interact with repo gates
+- **process**: produce a written docs/plans/... implementation plan before touching code
+- **pnpm verify**: Running `pnpm verify` may be needed if landing changes interact with repo gates.
+- **implementation plan**: A written implementation plan should be produced in docs/plans/... before touching code.
diff --git a/.brv/context-tree/extracted/curated_from_context/files.md b/.brv/context-tree/extracted/curated_from_context/files.md
new file mode 100644
index 0000000..d2b0140
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/files.md
@@ -0,0 +1,24 @@
+---
+title: Files
+summary: Facts about files
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.127Z'
+updatedAt: '2026-05-28T10:06:54.127Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for files
+
+**Timestamp:** 2026-05-28T10:06:54.121Z
+
+## Narrative
+### Highlights
+Changed files: apps/landing/src/pages/index.astro
+
+## Facts
+- **files**: Changed files: apps/landing/src/pages/index.astro
diff --git a/.brv/context-tree/extracted/curated_from_context/index_astro.md b/.brv/context-tree/extracted/curated_from_context/index_astro.md
new file mode 100644
index 0000000..0e6961c
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/index_astro.md
@@ -0,0 +1,24 @@
+---
+title: Index.astro
+summary: Facts about index.astro
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.134Z'
+updatedAt: '2026-05-28T10:06:54.134Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for index.astro
+
+**Timestamp:** 2026-05-28T10:06:54.121Z
+
+## Narrative
+### Highlights
+Replaced capabilityCards with exact heroTrace, skillifyFramework, and trustMechanics constants from the plan.
+
+## Facts
+- **index.astro**: Replaced capabilityCards with exact heroTrace, skillifyFramework, and trustMechanics constants from the plan.
diff --git a/.brv/context-tree/extracted/curated_from_context/installsteps.md b/.brv/context-tree/extracted/curated_from_context/installsteps.md
new file mode 100644
index 0000000..41301ab
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/installsteps.md
@@ -0,0 +1,24 @@
+---
+title: InstallSteps
+summary: Facts about installSteps
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.136Z'
+updatedAt: '2026-05-28T10:06:54.136Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for installSteps
+
+**Timestamp:** 2026-05-28T10:06:54.121Z
+
+## Narrative
+### Highlights
+Normalized installSteps[0] to npm install -g caplets.
+
+## Facts
+- **installSteps**: Normalized installSteps[0] to npm install -g caplets.
diff --git a/.brv/context-tree/extracted/curated_from_context/next_step.md b/.brv/context-tree/extracted/curated_from_context/next_step.md
new file mode 100644
index 0000000..7d06b6d
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/next_step.md
@@ -0,0 +1,24 @@
+---
+title: Next step
+summary: Facts about next_step
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.158Z'
+updatedAt: '2026-05-28T10:06:54.158Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for next_step
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+Recommended next step: Implement Task 2 to replace the old hero markup and resolve the typecheck errors.
+
+## Facts
+- **next_step**: Recommended next step: Implement Task 2 to replace the old hero markup and resolve the typecheck errors.
diff --git a/.brv/context-tree/extracted/curated_from_context/task_1.md b/.brv/context-tree/extracted/curated_from_context/task_1.md
new file mode 100644
index 0000000..f72449d
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/task_1.md
@@ -0,0 +1,24 @@
+---
+title: Task 1
+summary: Facts about Task 1
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.123Z'
+updatedAt: '2026-05-28T10:06:54.123Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for Task 1
+
+**Timestamp:** 2026-05-28T10:06:54.121Z
+
+## Narrative
+### Highlights
+Implemented Task 1 only.
+
+## Facts
+- **Task 1**: Implemented Task 1 only.
diff --git a/.brv/context-tree/extracted/curated_from_context/typecheck.md b/.brv/context-tree/extracted/curated_from_context/typecheck.md
new file mode 100644
index 0000000..cd02671
--- /dev/null
+++ b/.brv/context-tree/extracted/curated_from_context/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: Typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:06:54.141Z'
+updatedAt: '2026-05-28T10:06:54.141Z'
+---
+## Reason
+Extracted from RLM context
+
+## Raw Concept
+**Task:**
+Document facts for typecheck
+
+**Timestamp:** 2026-05-28T10:06:54.122Z
+
+## Narrative
+### Highlights
+pnpm --filter @caplets/landing typecheck Result: FAILED, exit 1
+
+## Facts
+- **typecheck**: pnpm --filter @caplets/landing typecheck Result: FAILED, exit 1
diff --git a/.brv/context-tree/extracted/facts/accent_rule.md b/.brv/context-tree/extracted/facts/accent_rule.md
new file mode 100644
index 0000000..406d041
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/accent_rule.md
@@ -0,0 +1,24 @@
+---
+title: Accent rule
+summary: Facts about accent rule
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.389Z'
+updatedAt: '2026-05-28T13:18:21.389Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for accent rule
+
+## Facts
+- **accent rule**: The "one accent ≤10%" rule is Restrained only.
diff --git a/.brv/context-tree/extracted/facts/accessibility.md b/.brv/context-tree/extracted/facts/accessibility.md
new file mode 100644
index 0000000..d858137
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/accessibility.md
@@ -0,0 +1,20 @@
+---
+title: Accessibility
+summary: Facts about accessibility
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.405Z'
+updatedAt: '2026-05-28T09:45:40.405Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **accessibility**: Accessibility intent is visible in source.
diff --git a/.brv/context-tree/extracted/facts/adapt.md b/.brv/context-tree/extracted/facts/adapt.md
new file mode 100644
index 0000000..b79e30c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/adapt.md
@@ -0,0 +1,24 @@
+---
+title: Adapt
+summary: Facts about adapt
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.494Z'
+updatedAt: '2026-05-28T13:18:21.494Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for adapt
+
+## Facts
+- **adapt**: `adapt [target]` is a Fix command that adapts designs for different devices and screen sizes.
diff --git a/.brv/context-tree/extracted/facts/aesthetic_and_minimalist_design.md b/.brv/context-tree/extracted/facts/aesthetic_and_minimalist_design.md
new file mode 100644
index 0000000..95b8600
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/aesthetic_and_minimalist_design.md
@@ -0,0 +1,20 @@
+---
+title: Aesthetic and minimalist design
+summary: Facts about Aesthetic and minimalist design
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.375Z'
+updatedAt: '2026-05-28T09:45:40.375Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Aesthetic and minimalist design**: Aesthetic and minimalist design score is 2.
diff --git a/.brv/context-tree/extracted/facts/agent_setup_panel.md b/.brv/context-tree/extracted/facts/agent_setup_panel.md
new file mode 100644
index 0000000..0a810c2
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/agent_setup_panel.md
@@ -0,0 +1,24 @@
+---
+title: .agent-setup-panel
+summary: Facts about .agent-setup-panel
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.578Z'
+updatedAt: '2026-05-27T23:50:44.578Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for .agent-setup-panel
+
+## Facts
+- **.agent-setup-panel**: Previous blocker is resolved. `.agent-setup-panel` is included in reveal targets at `apps/landing/src/pages/index.astro:418-420`, reveal CSS initial/visible states at `apps/landing/src/styles/global.css:688-707`, and reduced-motion reveal override at `apps/landing/src/styles/global.css:1324-1331`.
diff --git a/.brv/context-tree/extracted/facts/agentsetups.md b/.brv/context-tree/extracted/facts/agentsetups.md
new file mode 100644
index 0000000..df31b2f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/agentsetups.md
@@ -0,0 +1,24 @@
+---
+title: agentSetups
+summary: Facts about agentSetups
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.570Z'
+updatedAt: '2026-05-27T23:50:44.570Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for agentSetups
+
+## Facts
+- **agentSetups**: `agentSetups` is centralized and used to render tab labels/panels from data in `apps/landing/src/pages/index.astro:26` and `apps/landing/src/pages/index.astro:267`.
diff --git a/.brv/context-tree/extracted/facts/agentsetups_data_centralization.md b/.brv/context-tree/extracted/facts/agentsetups_data_centralization.md
new file mode 100644
index 0000000..9884a77
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/agentsetups_data_centralization.md
@@ -0,0 +1,20 @@
+---
+title: agentSetups data centralization
+summary: Facts about agentSetups data centralization
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.187Z'
+updatedAt: '2026-05-27T23:48:05.187Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about agentSetups data centralization
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **agentSetups data centralization**: Setup data is centralized in `agentSetups`, and hero client labels derive from it (`apps/landing/src/pages/index.astro:26-88`).
diff --git a/.brv/context-tree/extracted/facts/animate.md b/.brv/context-tree/extracted/facts/animate.md
new file mode 100644
index 0000000..7d43749
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/animate.md
@@ -0,0 +1,24 @@
+---
+title: Animate
+summary: Facts about animate
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.484Z'
+updatedAt: '2026-05-28T13:18:21.484Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for animate
+
+## Facts
+- **animate**: `animate [target]` is an Enhance command that adds purposeful animations and motion.
diff --git a/.brv/context-tree/extracted/facts/audit.md b/.brv/context-tree/extracted/facts/audit.md
new file mode 100644
index 0000000..e06e968
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/audit.md
@@ -0,0 +1,24 @@
+---
+title: Audit
+summary: Facts about audit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.473Z'
+updatedAt: '2026-05-28T13:18:21.473Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for audit
+
+## Facts
+- **audit**: `audit [target]` is an Evaluate command that performs technical quality checks (a11y, perf, responsive).
diff --git a/.brv/context-tree/extracted/facts/average.md b/.brv/context-tree/extracted/facts/average.md
new file mode 100644
index 0000000..7d4ecc3
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/average.md
@@ -0,0 +1,20 @@
+---
+title: Average
+summary: Facts about average
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.391Z'
+updatedAt: '2026-05-28T09:45:40.391Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **average**: Average: 2.3 / 4
diff --git a/.brv/context-tree/extracted/facts/average_score.md b/.brv/context-tree/extracted/facts/average_score.md
new file mode 100644
index 0000000..96ee575
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/average_score.md
@@ -0,0 +1,20 @@
+---
+title: Average score
+summary: Facts about average_score
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.384Z'
+updatedAt: '2026-05-28T09:45:40.384Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **average_score**: Average Nielsen heuristic score is 2.3 out of 4.
diff --git a/.brv/context-tree/extracted/facts/bolder.md b/.brv/context-tree/extracted/facts/bolder.md
new file mode 100644
index 0000000..9c06927
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/bolder.md
@@ -0,0 +1,24 @@
+---
+title: Bolder
+summary: Facts about bolder
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.476Z'
+updatedAt: '2026-05-28T13:18:21.476Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for bolder
+
+## Facts
+- **bolder**: `bolder [target]` is a Refine command that amplifies safe or bland designs.
diff --git a/.brv/context-tree/extracted/facts/border_usage.md b/.brv/context-tree/extracted/facts/border_usage.md
new file mode 100644
index 0000000..63c359b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/border_usage.md
@@ -0,0 +1,24 @@
+---
+title: Border usage
+summary: Facts about border usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.242Z'
+updatedAt: '2026-05-28T13:02:34.242Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for border usage
+
+## Facts
+- **border usage**: Side‑stripe borders greater than 1 px as colored accents are banned; use full borders, background tints, or icons instead.
diff --git a/.brv/context-tree/extracted/facts/browser.md b/.brv/context-tree/extracted/facts/browser.md
new file mode 100644
index 0000000..a3c22ff
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/browser.md
@@ -0,0 +1,24 @@
+---
+title: Browser
+summary: Facts about Browser
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.509Z'
+updatedAt: '2026-05-28T13:18:21.509Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Browser
+
+## Facts
+- **Browser**: Browser verification inspected at 320 × 740 dimensions
diff --git a/.brv/context-tree/extracted/facts/build.md b/.brv/context-tree/extracted/facts/build.md
new file mode 100644
index 0000000..6e23915
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/build.md
@@ -0,0 +1,24 @@
+---
+title: Build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.263Z'
+updatedAt: '2026-05-28T13:02:34.263Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for build
+
+## Facts
+- **build**: Build succeeded for @caplets/landing using `pnpm --filter @caplets/landing build`.
diff --git a/.brv/context-tree/extracted/facts/card_grids.md b/.brv/context-tree/extracted/facts/card_grids.md
new file mode 100644
index 0000000..c29d37c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/card_grids.md
@@ -0,0 +1,24 @@
+---
+title: Card grids
+summary: Facts about card grids
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.456Z'
+updatedAt: '2026-05-28T13:18:21.456Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for card grids
+
+## Facts
+- **card grids**: Identical card grids are banned.
diff --git a/.brv/context-tree/extracted/facts/cards.md b/.brv/context-tree/extracted/facts/cards.md
new file mode 100644
index 0000000..122537d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/cards.md
@@ -0,0 +1,24 @@
+---
+title: Cards
+summary: Facts about cards
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.241Z'
+updatedAt: '2026-05-28T13:02:34.241Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for cards
+
+## Facts
+- **cards**: Cards are considered a lazy answer and should only be used when truly the best affordance; nested cards are always wrong.
diff --git a/.brv/context-tree/extracted/facts/cards_usage.md b/.brv/context-tree/extracted/facts/cards_usage.md
new file mode 100644
index 0000000..34ae5ac
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/cards_usage.md
@@ -0,0 +1,24 @@
+---
+title: Cards usage
+summary: Facts about cards usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.419Z'
+updatedAt: '2026-05-28T13:18:21.419Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for cards usage
+
+## Facts
+- **cards usage**: Cards are the lazy answer; use them only when they're truly the best affordance.
diff --git a/.brv/context-tree/extracted/facts/casey.md b/.brv/context-tree/extracted/facts/casey.md
new file mode 100644
index 0000000..814ea47
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/casey.md
@@ -0,0 +1,22 @@
+---
+title: Casey
+summary: Facts about Casey
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.758Z'
+updatedAt: '2026-05-28T09:51:10.758Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Casey
+
+## Facts
+- **Casey**: Persona Casey (Distracted Mobile User) experiences large decorative map dominating viewport and sticky header delaying access to install info
diff --git a/.brv/context-tree/extracted/facts/chroma_adjustment.md b/.brv/context-tree/extracted/facts/chroma_adjustment.md
new file mode 100644
index 0000000..3863621
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/chroma_adjustment.md
@@ -0,0 +1,24 @@
+---
+title: Chroma adjustment
+summary: Facts about chroma adjustment
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.373Z'
+updatedAt: '2026-05-28T13:18:21.373Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for chroma adjustment
+
+## Facts
+- **chroma adjustment**: Reduce chroma as lightness approaches 0 or 100; high chroma at extremes looks garish.
diff --git a/.brv/context-tree/extracted/facts/clarify.md b/.brv/context-tree/extracted/facts/clarify.md
new file mode 100644
index 0000000..467b571
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/clarify.md
@@ -0,0 +1,24 @@
+---
+title: Clarify
+summary: Facts about clarify
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.492Z'
+updatedAt: '2026-05-28T13:18:21.492Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for clarify
+
+## Facts
+- **clarify**: `clarify [target]` is a Fix command that improves UX copy, labels, and error messages.
diff --git a/.brv/context-tree/extracted/facts/cli_scan.md b/.brv/context-tree/extracted/facts/cli_scan.md
new file mode 100644
index 0000000..5081325
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/cli_scan.md
@@ -0,0 +1,22 @@
+---
+title: CLI scan
+summary: Facts about CLI scan
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.704Z'
+updatedAt: '2026-05-28T09:51:10.704Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for CLI scan
+
+## Facts
+- **CLI scan**: The deterministic scan with `npx impeccable --json apps/landing/src/pages/index.astro` returned an empty array
diff --git a/.brv/context-tree/extracted/facts/code_snippets.md b/.brv/context-tree/extracted/facts/code_snippets.md
new file mode 100644
index 0000000..d8267bf
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/code_snippets.md
@@ -0,0 +1,22 @@
+---
+title: Code snippets
+summary: Facts about Code snippets
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.745Z'
+updatedAt: '2026-05-28T09:51:10.745Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Code snippets
+
+## Facts
+- **Code snippets**: Snippets are not copyable, increasing friction for developers
diff --git a/.brv/context-tree/extracted/facts/cognitive_load_failures.md b/.brv/context-tree/extracted/facts/cognitive_load_failures.md
new file mode 100644
index 0000000..0e2e742
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/cognitive_load_failures.md
@@ -0,0 +1,20 @@
+---
+title: Cognitive load failures
+summary: Facts about cognitive_load_failures
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.387Z'
+updatedAt: '2026-05-28T09:45:40.387Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **cognitive_load_failures**: Cognitive load failure count is 7 notable load failures.
diff --git a/.brv/context-tree/extracted/facts/color_model.md b/.brv/context-tree/extracted/facts/color_model.md
new file mode 100644
index 0000000..4724f95
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/color_model.md
@@ -0,0 +1,24 @@
+---
+title: Color model
+summary: Facts about color model
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.365Z'
+updatedAt: '2026-05-28T13:18:21.365Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for color model
+
+## Facts
+- **color model**: Use OKLCH.
diff --git a/.brv/context-tree/extracted/facts/color_strategy.md b/.brv/context-tree/extracted/facts/color_strategy.md
new file mode 100644
index 0000000..798480c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/color_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Color strategy
+summary: Facts about color strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.226Z'
+updatedAt: '2026-05-28T13:02:34.226Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for color strategy
+
+## Facts
+- **color strategy**: Color strategy must be chosen before picking colors, with four options: Restrained, Committed, Full palette, and Drenched.
diff --git a/.brv/context-tree/extracted/facts/color_usage.md b/.brv/context-tree/extracted/facts/color_usage.md
new file mode 100644
index 0000000..45d2d55
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/color_usage.md
@@ -0,0 +1,24 @@
+---
+title: Color usage
+summary: Facts about color usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.236Z'
+updatedAt: '2026-05-28T13:02:34.236Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for color usage
+
+## Facts
+- **color usage**: Never use #000 or #fff; neutral colors must be tinted toward the brand hue with chroma 0.005–0.01.
diff --git a/.brv/context-tree/extracted/facts/colorize.md b/.brv/context-tree/extracted/facts/colorize.md
new file mode 100644
index 0000000..bd43530
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/colorize.md
@@ -0,0 +1,24 @@
+---
+title: Colorize
+summary: Facts about colorize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.485Z'
+updatedAt: '2026-05-28T13:18:21.485Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for colorize
+
+## Facts
+- **colorize**: `colorize [target]` is an Enhance command that adds strategic color to monochromatic UIs.
diff --git a/.brv/context-tree/extracted/facts/command_syntax.md b/.brv/context-tree/extracted/facts/command_syntax.md
new file mode 100644
index 0000000..8042f8f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/command_syntax.md
@@ -0,0 +1,24 @@
+---
+title: Command syntax
+summary: Facts about Command syntax
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.503Z'
+updatedAt: '2026-05-28T13:18:21.503Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Command syntax
+
+## Facts
+- **Command syntax**: The command syntax is node {{scripts_path}}/pin.mjs
diff --git a/.brv/context-tree/extracted/facts/commits_0e56e8f_86f9679.md b/.brv/context-tree/extracted/facts/commits_0e56e8f_86f9679.md
new file mode 100644
index 0000000..4473894
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/commits_0e56e8f_86f9679.md
@@ -0,0 +1,24 @@
+---
+title: commits_0e56e8f_86f9679
+summary: Facts about commits_0e56e8f_86f9679
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.587Z'
+updatedAt: '2026-05-27T23:50:44.587Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for commits_0e56e8f_86f9679
+
+## Facts
+- **commits_0e56e8f_86f9679**: No exact issues found in the committed changes for commits `0e56e8f` and `86f9679`.
diff --git a/.brv/context-tree/extracted/facts/committed_strategy.md b/.brv/context-tree/extracted/facts/committed_strategy.md
new file mode 100644
index 0000000..da12b50
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/committed_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Committed strategy
+summary: Facts about Committed strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.386Z'
+updatedAt: '2026-05-28T13:18:21.386Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Committed strategy
+
+## Facts
+- **Committed strategy**: Committed: one saturated color carries 30–60% of the surface.
diff --git a/.brv/context-tree/extracted/facts/consistency_and_standards.md b/.brv/context-tree/extracted/facts/consistency_and_standards.md
new file mode 100644
index 0000000..544af59
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/consistency_and_standards.md
@@ -0,0 +1,20 @@
+---
+title: Consistency and standards
+summary: Facts about Consistency and standards
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.352Z'
+updatedAt: '2026-05-28T09:45:40.352Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Consistency and standards**: Consistency and standards score is 3.
diff --git a/.brv/context-tree/extracted/facts/containers.md b/.brv/context-tree/extracted/facts/containers.md
new file mode 100644
index 0000000..17deaf2
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/containers.md
@@ -0,0 +1,24 @@
+---
+title: Containers
+summary: Facts about containers
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.429Z'
+updatedAt: '2026-05-28T13:18:21.429Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for containers
+
+## Facts
+- **containers**: Don't wrap everything in a container.
diff --git a/.brv/context-tree/extracted/facts/craft.md b/.brv/context-tree/extracted/facts/craft.md
new file mode 100644
index 0000000..232f1fd
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/craft.md
@@ -0,0 +1,24 @@
+---
+title: Craft
+summary: Facts about craft
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.465Z'
+updatedAt: '2026-05-28T13:18:21.465Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for craft
+
+## Facts
+- **craft**: `craft [feature]` is a Build command that shapes then builds a feature end-to-end.
diff --git a/.brv/context-tree/extracted/facts/critique.md b/.brv/context-tree/extracted/facts/critique.md
new file mode 100644
index 0000000..f8f217f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/critique.md
@@ -0,0 +1,24 @@
+---
+title: Critique
+summary: Facts about critique
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.472Z'
+updatedAt: '2026-05-28T13:18:21.472Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for critique
+
+## Facts
+- **critique**: `critique [target]` is an Evaluate command that performs a UX design review with heuristic scoring.
diff --git a/.brv/context-tree/extracted/facts/css.md b/.brv/context-tree/extracted/facts/css.md
new file mode 100644
index 0000000..df50b42
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/css.md
@@ -0,0 +1,24 @@
+---
+title: CSS
+summary: Facts about CSS
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.250Z'
+updatedAt: '2026-05-28T13:02:34.250Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for CSS
+
+## Facts
+- **CSS**: The nav pill/card treatment was removed from `.top‑nav`.
diff --git a/.brv/context-tree/extracted/facts/css_animation.md b/.brv/context-tree/extracted/facts/css_animation.md
new file mode 100644
index 0000000..ba9a12d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/css_animation.md
@@ -0,0 +1,24 @@
+---
+title: CSS animation
+summary: Facts about CSS animation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.432Z'
+updatedAt: '2026-05-28T13:18:21.432Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for CSS animation
+
+## Facts
+- **CSS animation**: Don't animate CSS layout properties.
diff --git a/.brv/context-tree/extracted/facts/css_reveal_rules_update.md b/.brv/context-tree/extracted/facts/css_reveal_rules_update.md
new file mode 100644
index 0000000..1ae6b78
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/css_reveal_rules_update.md
@@ -0,0 +1,20 @@
+---
+title: CSS reveal rules update
+summary: Facts about CSS reveal rules update
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.210Z'
+updatedAt: '2026-05-27T23:48:05.210Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about CSS reveal rules update
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **CSS reveal rules update**: To fix, add `.agent-setup-panel` to the base hidden state and `.agent-setup-panel.is-visible` reveal rules, plus reduced-motion visibility if needed.
diff --git a/.brv/context-tree/extracted/facts/current_content_audience.md b/.brv/context-tree/extracted/facts/current_content_audience.md
new file mode 100644
index 0000000..268d09d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/current_content_audience.md
@@ -0,0 +1,20 @@
+---
+title: Current content audience
+summary: Facts about current content audience
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.428Z'
+updatedAt: '2026-05-28T09:45:40.428Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **current content audience**: The current content feels best for people already aware of MCP and coding agents.
diff --git a/.brv/context-tree/extracted/facts/dark_integration_and_terminal_blocks.md b/.brv/context-tree/extracted/facts/dark_integration_and_terminal_blocks.md
new file mode 100644
index 0000000..ba63815
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/dark_integration_and_terminal_blocks.md
@@ -0,0 +1,20 @@
+---
+title: Dark integration and terminal blocks
+summary: Facts about dark integration and terminal blocks
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.418Z'
+updatedAt: '2026-05-28T09:45:40.418Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **dark integration and terminal blocks**: Dark integration and terminal blocks edge toward the “neon devtool dark” anti-reference, although not fully.
diff --git a/.brv/context-tree/extracted/facts/default_panel.md b/.brv/context-tree/extracted/facts/default_panel.md
new file mode 100644
index 0000000..4f40a67
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/default_panel.md
@@ -0,0 +1,24 @@
+---
+title: default_panel
+summary: Facts about default_panel
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.574Z'
+updatedAt: '2026-05-27T23:50:44.574Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for default_panel
+
+## Facts
+- **default_panel**: Default selected panel renders initially via `hidden={index !== 0}` at `apps/landing/src/pages/index.astro:289`.
diff --git a/.brv/context-tree/extracted/facts/delight.md b/.brv/context-tree/extracted/facts/delight.md
new file mode 100644
index 0000000..d26e445
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/delight.md
@@ -0,0 +1,24 @@
+---
+title: Delight
+summary: Facts about delight
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.489Z'
+updatedAt: '2026-05-28T13:18:21.489Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for delight
+
+## Facts
+- **delight**: `delight [target]` is an Enhance command that adds personality and memorable touches.
diff --git a/.brv/context-tree/extracted/facts/design_health.md b/.brv/context-tree/extracted/facts/design_health.md
new file mode 100644
index 0000000..b46f29a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/design_health.md
@@ -0,0 +1,22 @@
+---
+title: Design health
+summary: Facts about Design health
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.707Z'
+updatedAt: '2026-05-28T09:51:10.707Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Design health
+
+## Facts
+- **Design health**: Design Health Score total is 23 out of 40
diff --git a/.brv/context-tree/extracted/facts/design_md.md b/.brv/context-tree/extracted/facts/design_md.md
new file mode 100644
index 0000000..829ab5c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/design_md.md
@@ -0,0 +1,25 @@
+---
+title: DESIGN.md
+summary: Facts about DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.219Z'
+updatedAt: '2026-05-28T13:18:21.343Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 2 facts for DESIGN.md
+
+## Facts
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
+- **DESIGN.md**: If DESIGN.md is missing, nudge once per session with "Run `impeccable document` for more on-brand output" then proceed.
diff --git a/.brv/context-tree/extracted/facts/design_process.md b/.brv/context-tree/extracted/facts/design_process.md
new file mode 100644
index 0000000..de92c9d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/design_process.md
@@ -0,0 +1,24 @@
+---
+title: Design process
+summary: Facts about design process
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.384Z'
+updatedAt: '2026-05-28T13:18:21.384Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for design process
+
+## Facts
+- **design process**: Pick a color strategy before picking colors.
diff --git a/.brv/context-tree/extracted/facts/design_register.md b/.brv/context-tree/extracted/facts/design_register.md
new file mode 100644
index 0000000..ccbd5cb
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/design_register.md
@@ -0,0 +1,24 @@
+---
+title: Design register
+summary: Facts about design register
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.224Z'
+updatedAt: '2026-05-28T13:02:34.224Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for design register
+
+## Facts
+- **design register**: Design tasks are classified as either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/extracted/facts/design_task.md b/.brv/context-tree/extracted/facts/design_task.md
new file mode 100644
index 0000000..1be5c1a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/design_task.md
@@ -0,0 +1,24 @@
+---
+title: Design task
+summary: Facts about design task
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.346Z'
+updatedAt: '2026-05-28T13:18:21.346Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for design task
+
+## Facts
+- **design task**: Every design task is either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/extracted/facts/desktop_navbar.md b/.brv/context-tree/extracted/facts/desktop_navbar.md
new file mode 100644
index 0000000..6d69673
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/desktop_navbar.md
@@ -0,0 +1,24 @@
+---
+title: Desktop navbar
+summary: Facts about desktop navbar
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.254Z'
+updatedAt: '2026-05-28T13:02:34.254Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for desktop navbar
+
+## Facts
+- **desktop navbar**: Desktop navigation is centered with the brand on the left and project links on the right.
diff --git a/.brv/context-tree/extracted/facts/distill.md b/.brv/context-tree/extracted/facts/distill.md
new file mode 100644
index 0000000..4bf4955
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/distill.md
@@ -0,0 +1,24 @@
+---
+title: Distill
+summary: Facts about distill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.479Z'
+updatedAt: '2026-05-28T13:18:21.479Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for distill
+
+## Facts
+- **distill**: `distill [target]` is a Refine command that strips to essence, removing complexity.
diff --git a/.brv/context-tree/extracted/facts/document.md b/.brv/context-tree/extracted/facts/document.md
new file mode 100644
index 0000000..e7564a9
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/document.md
@@ -0,0 +1,24 @@
+---
+title: Document
+summary: Facts about document
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.469Z'
+updatedAt: '2026-05-28T13:18:21.469Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for document
+
+## Facts
+- **document**: `document` is a Build command that generates DESIGN.md from existing project code.
diff --git a/.brv/context-tree/extracted/facts/drenched_strategy.md b/.brv/context-tree/extracted/facts/drenched_strategy.md
new file mode 100644
index 0000000..282c108
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/drenched_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Drenched strategy
+summary: Facts about Drenched strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.388Z'
+updatedAt: '2026-05-28T13:18:21.388Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Drenched strategy
+
+## Facts
+- **Drenched strategy**: Drenched: the surface IS the color.
diff --git a/.brv/context-tree/extracted/facts/easing.md b/.brv/context-tree/extracted/facts/easing.md
new file mode 100644
index 0000000..c3cf09d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/easing.md
@@ -0,0 +1,24 @@
+---
+title: Easing
+summary: Facts about easing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.435Z'
+updatedAt: '2026-05-28T13:18:21.435Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for easing
+
+## Facts
+- **easing**: Ease out with exponential curves (ease-out-quart / quint / expo). No bounce, no elastic.
diff --git a/.brv/context-tree/extracted/facts/error_prevention.md b/.brv/context-tree/extracted/facts/error_prevention.md
new file mode 100644
index 0000000..f696580
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/error_prevention.md
@@ -0,0 +1,20 @@
+---
+title: Error prevention
+summary: Facts about Error prevention
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.356Z'
+updatedAt: '2026-05-28T09:45:40.356Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Error prevention**: Error prevention score is 2.
diff --git a/.brv/context-tree/extracted/facts/error_recovery.md b/.brv/context-tree/extracted/facts/error_recovery.md
new file mode 100644
index 0000000..90be653
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/error_recovery.md
@@ -0,0 +1,22 @@
+---
+title: Error Recovery
+summary: Facts about Error Recovery
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.731Z'
+updatedAt: '2026-05-28T09:51:10.731Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Error Recovery
+
+## Facts
+- **Error Recovery**: Error Recovery scored 1 as there are no concrete recovery examples
diff --git a/.brv/context-tree/extracted/facts/extract.md b/.brv/context-tree/extracted/facts/extract.md
new file mode 100644
index 0000000..9db26b5
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/extract.md
@@ -0,0 +1,24 @@
+---
+title: Extract
+summary: Facts about extract
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.470Z'
+updatedAt: '2026-05-28T13:18:21.470Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for extract
+
+## Facts
+- **extract**: `extract [target]` is a Build command that pulls reusable tokens and components into a design system.
diff --git a/.brv/context-tree/extracted/facts/extracted_facts_from_context.md b/.brv/context-tree/extracted/facts/extracted_facts_from_context.md
new file mode 100644
index 0000000..25656f1
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/extracted_facts_from_context.md
@@ -0,0 +1,46 @@
+---
+title: Extracted Facts from Context
+summary: Aggregated factual statements extracted from given context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:38:45.004Z'
+updatedAt: '2026-05-27T23:55:14.308Z'
+---
+## Reason
+Store facts extracted via RLM single-pass extraction
+
+## Raw Concept
+**Task:**
+Curate extracted facts from provided context
+
+**Changes:**
+- Extracted and deduplicated factual statements
+
+**Flow:**
+extraction -> deduplication -> grouping -> upsert
+
+**Timestamp:** 2026-05-27T23:55:14.296Z
+
+## Narrative
+### Structure
+Aggregated factual statements extracted from the source context.
+
+### Highlights
+tabbed agent setup card, 0e56e8f, 86f9679, 352c0d5, apps/landing/src/pages/index.astro, ...
+
+## Facts
+- **tabbed agent setup card**: Implemented the tabbed agent setup card via subagents, with Impeccable product-design review applied.
+- **0e56e8f**: Commit 0e56e8f feat(landing): add agent setup tabs.
+- **86f9679**: Commit 86f9679 fix(landing): reveal agent setup panels.
+- **352c0d5**: Commit 352c0d5 fix(landing): correct native agent setup snippets.
+- **apps/landing/src/pages/index.astro**: Changed file apps/landing/src/pages/index.astro.
+- **apps/landing/src/styles/global.css**: Changed file apps/landing/src/styles/global.css.
+- **docs/plans/2026-05-27-agent-card-setup-tabs.md**: Changed file docs/plans/2026-05-27-agent-card-setup-tabs.md.
+- **spec compliance**: Spec compliance review: approved.
+- **code quality**: Code quality review: approved after correcting OpenCode/Pi snippets against their package READMEs.
+- **pnpm format:check**: Fresh verification passed: pnpm format:check.
+- **pnpm lint**: Fresh verification passed: pnpm lint.
+- **typecheck**: Fresh verification passed: pnpm --filter @caplets/landing typecheck.
+- **build**: Fresh verification passed: pnpm --filter @caplets/landing build.
+- **working tree**: The working tree still has pre-existing unrelated unstaged/untracked changes (.brv/*, deleted apps/landing/.vscode/*, screenshots, and unstaged landing file diffs) that were left untouched.
diff --git a/.brv/context-tree/extracted/facts/flexibility_and_efficiency.md b/.brv/context-tree/extracted/facts/flexibility_and_efficiency.md
new file mode 100644
index 0000000..159de63
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/flexibility_and_efficiency.md
@@ -0,0 +1,20 @@
+---
+title: Flexibility and efficiency
+summary: Facts about Flexibility and efficiency
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.369Z'
+updatedAt: '2026-05-28T09:45:40.369Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Flexibility and efficiency**: Flexibility and efficiency score is 2.
diff --git a/.brv/context-tree/extracted/facts/full_palette_strategy.md b/.brv/context-tree/extracted/facts/full_palette_strategy.md
new file mode 100644
index 0000000..8acf2fe
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/full_palette_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Full palette strategy
+summary: Facts about Full palette strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.387Z'
+updatedAt: '2026-05-28T13:18:21.387Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Full palette strategy
+
+## Facts
+- **Full palette strategy**: Full palette: 3–4 named roles, each used deliberately.
diff --git a/.brv/context-tree/extracted/facts/glassmorphism.md b/.brv/context-tree/extracted/facts/glassmorphism.md
new file mode 100644
index 0000000..4275568
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/glassmorphism.md
@@ -0,0 +1,24 @@
+---
+title: Glassmorphism
+summary: Facts about glassmorphism
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.449Z'
+updatedAt: '2026-05-28T13:18:21.449Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for glassmorphism
+
+## Facts
+- **glassmorphism**: Glassmorphism as default is banned.
diff --git a/.brv/context-tree/extracted/facts/global_css.md b/.brv/context-tree/extracted/facts/global_css.md
new file mode 100644
index 0000000..bc68591
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/global_css.md
@@ -0,0 +1,27 @@
+---
+title: Global.css
+summary: Facts about global.css
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.507Z'
+updatedAt: '2026-05-28T13:18:21.507Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 4 facts for global.css
+
+## Facts
+- **global.css**: In apps/landing/src/styles/global.css, mobile native-agent panel padding and spacing were tightened
+- **global.css**: In apps/landing/src/styles/global.css, mobile code font size was reduced slightly
+- **global.css**: In apps/landing/src/styles/global.css, snippets now wrap on mobile so long commands no longer spill outside the code box
+- **global.css**: In apps/landing/src/styles/global.css, code block padding on mobile was reduced while preserving copyable formatting
diff --git a/.brv/context-tree/extracted/facts/gradient_text.md b/.brv/context-tree/extracted/facts/gradient_text.md
new file mode 100644
index 0000000..7e54fe8
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/gradient_text.md
@@ -0,0 +1,24 @@
+---
+title: Gradient text
+summary: Facts about gradient text
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.244Z'
+updatedAt: '2026-05-28T13:18:21.446Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for gradient text
+
+## Facts
+- **gradient text**: Gradient text using background‑clip: text combined with a gradient background is decorative, never meaningful.
diff --git a/.brv/context-tree/extracted/facts/harden.md b/.brv/context-tree/extracted/facts/harden.md
new file mode 100644
index 0000000..082eecf
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/harden.md
@@ -0,0 +1,24 @@
+---
+title: Harden
+summary: Facts about harden
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.481Z'
+updatedAt: '2026-05-28T13:18:21.481Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for harden
+
+## Facts
+- **harden**: `harden [target]` is a Refine command that makes a product production‑ready, handling errors, i18n, and edge cases.
diff --git a/.brv/context-tree/extracted/facts/header.md b/.brv/context-tree/extracted/facts/header.md
new file mode 100644
index 0000000..b896e9c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/header.md
@@ -0,0 +1,24 @@
+---
+title: Header
+summary: Facts about header
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.249Z'
+updatedAt: '2026-05-28T13:02:34.249Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for header
+
+## Facts
+- **header**: The floating rounded header card was replaced with a full-width sticky navbar.
diff --git a/.brv/context-tree/extracted/facts/header_icon_only_npm_github_links.md b/.brv/context-tree/extracted/facts/header_icon_only_npm_github_links.md
new file mode 100644
index 0000000..ad4a83a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/header_icon_only_npm_github_links.md
@@ -0,0 +1,20 @@
+---
+title: Header icon-only npm/GitHub links
+summary: Facts about header icon-only npm/GitHub links
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.414Z'
+updatedAt: '2026-05-28T09:45:40.414Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **header icon-only npm/GitHub links**: Header icon-only npm/GitHub links have labels, good.
diff --git a/.brv/context-tree/extracted/facts/help_and_documentation.md b/.brv/context-tree/extracted/facts/help_and_documentation.md
new file mode 100644
index 0000000..0ac148d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/help_and_documentation.md
@@ -0,0 +1,20 @@
+---
+title: Help and documentation
+summary: Facts about Help and documentation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.382Z'
+updatedAt: '2026-05-28T09:45:40.382Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **Help and documentation**: Help and documentation score is 2.
diff --git a/.brv/context-tree/extracted/facts/help_users_recognize_diagnose_recover.md b/.brv/context-tree/extracted/facts/help_users_recognize_diagnose_recover.md
new file mode 100644
index 0000000..9f1ab0d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/help_users_recognize_diagnose_recover.md
@@ -0,0 +1,20 @@
+---
+title: Help users recognize, diagnose, recover
+summary: Facts about Help users recognize, diagnose, recover
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.380Z'
+updatedAt: '2026-05-28T09:45:40.380Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **Help users recognize, diagnose, recover**: Help users recognize, diagnose, recover score is 1.
diff --git a/.brv/context-tree/extracted/facts/hero_content.md b/.brv/context-tree/extracted/facts/hero_content.md
new file mode 100644
index 0000000..82c6c34
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/hero_content.md
@@ -0,0 +1,22 @@
+---
+title: Hero content
+summary: Facts about Hero content
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.734Z'
+updatedAt: '2026-05-28T09:51:10.734Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Hero content
+
+## Facts
+- **Hero content**: The hero section lacks a concrete definition of the product within 5 seconds
diff --git a/.brv/context-tree/extracted/facts/hero_headline.md b/.brv/context-tree/extracted/facts/hero_headline.md
new file mode 100644
index 0000000..347de3b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/hero_headline.md
@@ -0,0 +1,20 @@
+---
+title: Hero headline
+summary: Facts about hero headline
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.395Z'
+updatedAt: '2026-05-28T09:45:40.395Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **hero headline**: Hero headline is too abstract: “Give every tool stack a map”.
diff --git a/.brv/context-tree/extracted/facts/hero_metric_template.md b/.brv/context-tree/extracted/facts/hero_metric_template.md
new file mode 100644
index 0000000..7707286
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/hero_metric_template.md
@@ -0,0 +1,24 @@
+---
+title: Hero‑metric template
+summary: Facts about hero‑metric template
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.454Z'
+updatedAt: '2026-05-28T13:18:21.454Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for hero‑metric template
+
+## Facts
+- **hero‑metric template**: The hero‑metric template is a SaaS cliché.
diff --git a/.brv/context-tree/extracted/facts/hero_metrics.md b/.brv/context-tree/extracted/facts/hero_metrics.md
new file mode 100644
index 0000000..597b3fd
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/hero_metrics.md
@@ -0,0 +1,20 @@
+---
+title: Hero metrics
+summary: Facts about hero metrics
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.407Z'
+updatedAt: '2026-05-28T09:45:40.407Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **hero metrics**: No hero metrics.
diff --git a/.brv/context-tree/extracted/facts/hex_colors.md b/.brv/context-tree/extracted/facts/hex_colors.md
new file mode 100644
index 0000000..385d40b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/hex_colors.md
@@ -0,0 +1,24 @@
+---
+title: Hex colors
+summary: Facts about hex colors
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.381Z'
+updatedAt: '2026-05-28T13:18:21.381Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for hex colors
+
+## Facts
+- **hex colors**: Never use #000 or #fff.
diff --git a/.brv/context-tree/extracted/facts/horizontal_overflow.md b/.brv/context-tree/extracted/facts/horizontal_overflow.md
new file mode 100644
index 0000000..c0dc06e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/horizontal_overflow.md
@@ -0,0 +1,24 @@
+---
+title: Horizontal overflow
+summary: Facts about horizontal overflow
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.518Z'
+updatedAt: '2026-05-28T13:18:21.518Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for horizontal overflow
+
+## Facts
+- **horizontal overflow**: No document/body horizontal overflow
diff --git a/.brv/context-tree/extracted/facts/icons.md b/.brv/context-tree/extracted/facts/icons.md
new file mode 100644
index 0000000..2dcf651
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/icons.md
@@ -0,0 +1,24 @@
+---
+title: Icons
+summary: Facts about icons
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.252Z'
+updatedAt: '2026-05-28T13:02:34.252Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for icons
+
+## Facts
+- **icons**: Card‑like borders/backgrounds were removed from header action icons.
diff --git a/.brv/context-tree/extracted/facts/impeccable_context_dir.md b/.brv/context-tree/extracted/facts/impeccable_context_dir.md
new file mode 100644
index 0000000..49ace20
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/impeccable_context_dir.md
@@ -0,0 +1,24 @@
+---
+title: IMPECCABLE CONTEXT DIR
+summary: Facts about IMPECCABLE_CONTEXT_DIR
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.348Z'
+updatedAt: '2026-05-28T13:18:21.348Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for IMPECCABLE_CONTEXT_DIR
+
+## Facts
+- **IMPECCABLE_CONTEXT_DIR**: Override the loader directory with `IMPECCABLE_CONTEXT_DIR=path/to/dir` (absolute or relative to cwd).
diff --git a/.brv/context-tree/extracted/facts/impeccable_skill.md b/.brv/context-tree/extracted/facts/impeccable_skill.md
new file mode 100644
index 0000000..7415c80
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/impeccable_skill.md
@@ -0,0 +1,24 @@
+---
+title: Impeccable skill
+summary: Facts about impeccable skill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.213Z'
+updatedAt: '2026-05-28T13:02:34.213Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for impeccable skill
+
+## Facts
+- **impeccable skill**: The skill "impeccable" designs and iterates production-grade frontend interfaces with real working code and exceptional craft.
diff --git a/.brv/context-tree/extracted/facts/install_command.md b/.brv/context-tree/extracted/facts/install_command.md
new file mode 100644
index 0000000..76a5d7e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/install_command.md
@@ -0,0 +1,21 @@
+---
+title: Install command
+summary: Facts about install command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.398Z'
+updatedAt: '2026-05-28T09:45:40.398Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **install command**: Install commands may conflict with repo conventions or user expectation: page uses `pnpm add -g caplets`; many users expect `npm install -g caplets`.
+- **install command**: Fix install command inconsistency: `pnpm add -g caplets` versus `npm install -g caplets` creates immediate doubt.
diff --git a/.brv/context-tree/extracted/facts/install_command_rendering.md b/.brv/context-tree/extracted/facts/install_command_rendering.md
new file mode 100644
index 0000000..a3caef0
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/install_command_rendering.md
@@ -0,0 +1,20 @@
+---
+title: install command rendering
+summary: Facts about install command rendering
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.189Z'
+updatedAt: '2026-05-27T23:48:05.189Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about install command rendering
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **install command rendering**: Each agent has an install command and config snippet rendered from the centralized data (`apps/landing/src/pages/index.astro:291-300`).
diff --git a/.brv/context-tree/extracted/facts/install_commands.md b/.brv/context-tree/extracted/facts/install_commands.md
new file mode 100644
index 0000000..ff8e52e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/install_commands.md
@@ -0,0 +1,22 @@
+---
+title: Install commands
+summary: Facts about Install commands
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.737Z'
+updatedAt: '2026-05-28T09:51:10.737Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Install commands
+
+## Facts
+- **Install commands**: Install commands are inconsistent between pnpm and npm
diff --git a/.brv/context-tree/extracted/facts/integrations_card_structure.md b/.brv/context-tree/extracted/facts/integrations_card_structure.md
new file mode 100644
index 0000000..365c58c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/integrations_card_structure.md
@@ -0,0 +1,20 @@
+---
+title: integrations card structure
+summary: Facts about integrations card structure
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.177Z'
+updatedAt: '2026-05-27T23:48:05.177Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about integrations card structure
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **integrations card structure**: Landing integrations card remains structurally recognizable: same `.integrations` section heading/card shell is preserved, with tabbed setup content added inside it (`apps/landing/src/pages/index.astro:260-305`).
diff --git a/.brv/context-tree/extracted/facts/javascript_fallback.md b/.brv/context-tree/extracted/facts/javascript_fallback.md
new file mode 100644
index 0000000..4f8a57e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/javascript_fallback.md
@@ -0,0 +1,22 @@
+---
+title: JavaScript fallback
+summary: Facts about JavaScript fallback
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.751Z'
+updatedAt: '2026-05-28T09:51:10.751Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for JavaScript fallback
+
+## Facts
+- **JavaScript fallback**: JS‑disabled tabs hide content, causing loss of integration instructions
diff --git a/.brv/context-tree/extracted/facts/jordan.md b/.brv/context-tree/extracted/facts/jordan.md
new file mode 100644
index 0000000..6bdc76a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/jordan.md
@@ -0,0 +1,22 @@
+---
+title: Jordan
+summary: Facts about Jordan
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.752Z'
+updatedAt: '2026-05-28T09:51:10.752Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Jordan
+
+## Facts
+- **Jordan**: Persona Jordan (First‑Timer) encounters unexplained terms like “capability cards” and “get_caplet”
diff --git a/.brv/context-tree/extracted/facts/landing_page.md b/.brv/context-tree/extracted/facts/landing_page.md
new file mode 100644
index 0000000..7c9e7a1
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/landing_page.md
@@ -0,0 +1,22 @@
+---
+title: Landing page
+summary: Facts about Landing page
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.697Z'
+updatedAt: '2026-05-28T09:51:10.697Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Landing page
+
+## Facts
+- **Landing page**: The page has product‑specific language, capability‑card metaphor, and custom visual style
diff --git a/.brv/context-tree/extracted/facts/layout.md b/.brv/context-tree/extracted/facts/layout.md
new file mode 100644
index 0000000..13cb6d5
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/layout.md
@@ -0,0 +1,24 @@
+---
+title: Layout
+summary: Facts about layout
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.488Z'
+updatedAt: '2026-05-28T13:18:21.488Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for layout
+
+## Facts
+- **layout**: `layout [target]` is an Enhance command that fixes spacing, rhythm, and visual hierarchy.
diff --git a/.brv/context-tree/extracted/facts/line_length.md b/.brv/context-tree/extracted/facts/line_length.md
new file mode 100644
index 0000000..a966ecd
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/line_length.md
@@ -0,0 +1,24 @@
+---
+title: Line length
+summary: Facts about line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.239Z'
+updatedAt: '2026-05-28T13:18:21.393Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for line length
+
+## Facts
+- **line length**: Cap body line length at 65–75ch.
diff --git a/.brv/context-tree/extracted/facts/live.md b/.brv/context-tree/extracted/facts/live.md
new file mode 100644
index 0000000..8f9d840
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/live.md
@@ -0,0 +1,24 @@
+---
+title: Live
+summary: Facts about live
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.497Z'
+updatedAt: '2026-05-28T13:18:21.497Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for live
+
+## Facts
+- **live**: `live` is an Iterate command that provides a visual variant mode, allowing selection of elements in the browser to generate alternatives.
diff --git a/.brv/context-tree/extracted/facts/load_failures.md b/.brv/context-tree/extracted/facts/load_failures.md
new file mode 100644
index 0000000..40b90a8
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/load_failures.md
@@ -0,0 +1,20 @@
+---
+title: Load failures
+summary: Facts about load failures
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.394Z'
+updatedAt: '2026-05-28T09:45:40.394Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **load failures**: 7 notable load failures
diff --git a/.brv/context-tree/extracted/facts/loader.md b/.brv/context-tree/extracted/facts/loader.md
new file mode 100644
index 0000000..ba43c90
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/loader.md
@@ -0,0 +1,24 @@
+---
+title: Loader
+summary: Facts about loader
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.347Z'
+updatedAt: '2026-05-28T13:18:21.347Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for loader
+
+## Facts
+- **loader**: The loader looks at the project root by default and falls back to `.agents/context/` and `docs/` if the root is clean.
diff --git a/.brv/context-tree/extracted/facts/loader_output_handling.md b/.brv/context-tree/extracted/facts/loader_output_handling.md
new file mode 100644
index 0000000..b4eac98
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/loader_output_handling.md
@@ -0,0 +1,24 @@
+---
+title: Loader output handling
+summary: Facts about loader output handling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.351Z'
+updatedAt: '2026-05-28T13:18:21.351Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for loader output handling
+
+## Facts
+- **loader output handling**: Never pipe the loader's JSON output through `head`, `tail`, `grep`, or `jq`.
diff --git a/.brv/context-tree/extracted/facts/loader_script.md b/.brv/context-tree/extracted/facts/loader_script.md
new file mode 100644
index 0000000..c5868e2
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/loader_script.md
@@ -0,0 +1,24 @@
+---
+title: Loader script
+summary: Facts about loader script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.221Z'
+updatedAt: '2026-05-28T13:02:34.221Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for loader script
+
+## Facts
+- **loader script**: The loader script looks for context files in the project root, then falls back to .agents/context/ and docs/.
diff --git a/.brv/context-tree/extracted/facts/match_between_system_and_real_world.md b/.brv/context-tree/extracted/facts/match_between_system_and_real_world.md
new file mode 100644
index 0000000..a512eb6
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/match_between_system_and_real_world.md
@@ -0,0 +1,20 @@
+---
+title: Match between system and real world
+summary: Facts about Match between system and real world
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.347Z'
+updatedAt: '2026-05-28T09:45:40.347Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Match between system and real world**: Match between system and real world score is 3.
diff --git a/.brv/context-tree/extracted/facts/mobile_branding.md b/.brv/context-tree/extracted/facts/mobile_branding.md
new file mode 100644
index 0000000..9878940
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/mobile_branding.md
@@ -0,0 +1,24 @@
+---
+title: Mobile branding
+summary: Facts about mobile branding
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.260Z'
+updatedAt: '2026-05-28T13:02:34.260Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for mobile branding
+
+## Facts
+- **mobile branding**: Brand text is hidden on mobile to preserve horizontal space.
diff --git a/.brv/context-tree/extracted/facts/mobile_header.md b/.brv/context-tree/extracted/facts/mobile_header.md
new file mode 100644
index 0000000..80b605d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/mobile_header.md
@@ -0,0 +1,24 @@
+---
+title: Mobile header
+summary: Facts about mobile header
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.258Z'
+updatedAt: '2026-05-28T13:02:34.258Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for mobile header
+
+## Facts
+- **mobile header**: Mobile header height reduced from a multi‑row card to a 48 px bar.
diff --git a/.brv/context-tree/extracted/facts/mobile_navbar.md b/.brv/context-tree/extracted/facts/mobile_navbar.md
new file mode 100644
index 0000000..88feb44
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/mobile_navbar.md
@@ -0,0 +1,24 @@
+---
+title: Mobile navbar
+summary: Facts about mobile navbar
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.255Z'
+updatedAt: '2026-05-28T13:02:34.256Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for mobile navbar
+
+## Facts
+- **mobile navbar**: Tablet and mobile layout changed from stacked rows to a single compact horizontal navbar.
diff --git a/.brv/context-tree/extracted/facts/modals.md b/.brv/context-tree/extracted/facts/modals.md
new file mode 100644
index 0000000..169463f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/modals.md
@@ -0,0 +1,24 @@
+---
+title: Modals
+summary: Facts about modals
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.457Z'
+updatedAt: '2026-05-28T13:18:21.457Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for modals
+
+## Facts
+- **modals**: Modal as first thought is usually laziness; exhaust inline / progressive alternatives first.
diff --git a/.brv/context-tree/extracted/facts/native_agent_tabs.md b/.brv/context-tree/extracted/facts/native_agent_tabs.md
new file mode 100644
index 0000000..b0f803a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/native_agent_tabs.md
@@ -0,0 +1,24 @@
+---
+title: Native agent tabs
+summary: Facts about Native agent tabs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.510Z'
+updatedAt: '2026-05-28T13:18:21.510Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Native agent tabs
+
+## Facts
+- **Native agent tabs**: All native agent tabs have scrollWidth === clientWidth for their code snippets
diff --git a/.brv/context-tree/extracted/facts/native_agents_install_card.md b/.brv/context-tree/extracted/facts/native_agents_install_card.md
new file mode 100644
index 0000000..1965e38
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/native_agents_install_card.md
@@ -0,0 +1,24 @@
+---
+title: Native agents install card
+summary: Facts about Native agents install card
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.506Z'
+updatedAt: '2026-05-28T13:18:21.506Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Native agents install card
+
+## Facts
+- **Native agents install card**: The native agents install card overflow was fixed after inspecting it in the browser at mobile dimensions
diff --git a/.brv/context-tree/extracted/facts/navbar.md b/.brv/context-tree/extracted/facts/navbar.md
new file mode 100644
index 0000000..9347453
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/navbar.md
@@ -0,0 +1,25 @@
+---
+title: Navbar
+summary: Facts about navbar
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.247Z'
+updatedAt: '2026-05-28T13:02:34.247Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 2 facts for navbar
+
+## Facts
+- **navbar**: The top navigation on both mobile and desktop should be a full-width navbar, not cards.
+- **navbar**: The mobile navbar takes up too much vertical space.
diff --git a/.brv/context-tree/extracted/facts/nested_cards.md b/.brv/context-tree/extracted/facts/nested_cards.md
new file mode 100644
index 0000000..a4ed6dd
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/nested_cards.md
@@ -0,0 +1,24 @@
+---
+title: Nested cards
+summary: Facts about nested cards
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.422Z'
+updatedAt: '2026-05-28T13:18:21.422Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for nested cards
+
+## Facts
+- **nested cards**: Nested cards are always wrong.
diff --git a/.brv/context-tree/extracted/facts/neutral_tinting.md b/.brv/context-tree/extracted/facts/neutral_tinting.md
new file mode 100644
index 0000000..0dc9052
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/neutral_tinting.md
@@ -0,0 +1,24 @@
+---
+title: Neutral tinting
+summary: Facts about neutral tinting
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.382Z'
+updatedAt: '2026-05-28T13:18:21.382Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for neutral tinting
+
+## Facts
+- **neutral tinting**: Tint every neutral toward the brand hue (chroma 0.005–0.01 is enough).
diff --git a/.brv/context-tree/extracted/facts/newer_users.md b/.brv/context-tree/extracted/facts/newer_users.md
new file mode 100644
index 0000000..9ff229f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/newer_users.md
@@ -0,0 +1,20 @@
+---
+title: Newer users
+summary: Facts about newer users
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.429Z'
+updatedAt: '2026-05-28T09:45:40.429Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **newer users**: Newer users may need one clearer bridge sentence.
diff --git a/.brv/context-tree/extracted/facts/npm.md b/.brv/context-tree/extracted/facts/npm.md
new file mode 100644
index 0000000..9d8d700
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/npm.md
@@ -0,0 +1,20 @@
+---
+title: Npm
+summary: Facts about npm
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.390Z'
+updatedAt: '2026-05-28T09:45:40.390Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **npm**: npm links exist, install steps exist.
diff --git a/.brv/context-tree/extracted/facts/onboard.md b/.brv/context-tree/extracted/facts/onboard.md
new file mode 100644
index 0000000..df48b1b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/onboard.md
@@ -0,0 +1,24 @@
+---
+title: Onboard
+summary: Facts about onboard
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.482Z'
+updatedAt: '2026-05-28T13:18:21.482Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for onboard
+
+## Facts
+- **onboard**: `onboard [target]` is a Refine command that designs first‑run flows, empty states, and activation experiences.
diff --git a/.brv/context-tree/extracted/facts/opencode_configuration.md b/.brv/context-tree/extracted/facts/opencode_configuration.md
new file mode 100644
index 0000000..f6fd1cb
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/opencode_configuration.md
@@ -0,0 +1,24 @@
+---
+title: OpenCode configuration
+summary: Facts about OpenCode configuration
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.216Z'
+updatedAt: '2026-05-27T23:52:05.216Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **OpenCode configuration**: The landing page tells users to configure OpenCode with an MCP-style "mcp": { ... "command": ["caplets", "serve"] } block after installing @caplets/opencode.
diff --git a/.brv/context-tree/extracted/facts/opencode_readme.md b/.brv/context-tree/extracted/facts/opencode_readme.md
new file mode 100644
index 0000000..fc2685b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/opencode_readme.md
@@ -0,0 +1,24 @@
+---
+title: OpenCode README
+summary: Facts about OpenCode README
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.218Z'
+updatedAt: '2026-05-27T23:52:05.218Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **OpenCode README**: packages/opencode/README.md states that @caplets/opencode is a native OpenCode plugin, does not start the MCP server, and is configured as { "plugin": ["@caplets/opencode"] }.
diff --git a/.brv/context-tree/extracted/facts/opencode_setup_snippet.md b/.brv/context-tree/extracted/facts/opencode_setup_snippet.md
new file mode 100644
index 0000000..b8a4f27
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/opencode_setup_snippet.md
@@ -0,0 +1,24 @@
+---
+title: OpenCode setup snippet
+summary: Facts about OpenCode setup snippet
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.214Z'
+updatedAt: '2026-05-27T23:52:05.214Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **OpenCode setup snippet**: The OpenCode setup snippet is product misinformation.
diff --git a/.brv/context-tree/extracted/facts/optimize.md b/.brv/context-tree/extracted/facts/optimize.md
new file mode 100644
index 0000000..023702a
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/optimize.md
@@ -0,0 +1,24 @@
+---
+title: Optimize
+summary: Facts about optimize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.495Z'
+updatedAt: '2026-05-28T13:18:21.495Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for optimize
+
+## Facts
+- **optimize**: `optimize [target]` is a Fix command that diagnoses and fixes UI performance issues.
diff --git a/.brv/context-tree/extracted/facts/overall_assessment.md b/.brv/context-tree/extracted/facts/overall_assessment.md
new file mode 100644
index 0000000..8ae5aa7
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/overall_assessment.md
@@ -0,0 +1,22 @@
+---
+title: Overall assessment
+summary: Facts about Overall assessment
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.702Z'
+updatedAt: '2026-05-28T09:51:10.702Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Overall assessment
+
+## Facts
+- **Overall assessment**: Weaknesses include too much spectacle and lack of demonstrable trust evidence
diff --git a/.brv/context-tree/extracted/facts/overdrive.md b/.brv/context-tree/extracted/facts/overdrive.md
new file mode 100644
index 0000000..e78d222
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/overdrive.md
@@ -0,0 +1,24 @@
+---
+title: Overdrive
+summary: Facts about overdrive
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.491Z'
+updatedAt: '2026-05-28T13:18:21.491Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for overdrive
+
+## Facts
+- **overdrive**: `overdrive [target]` is an Enhance command that pushes past conventional limits.
diff --git a/.brv/context-tree/extracted/facts/page_layout.md b/.brv/context-tree/extracted/facts/page_layout.md
new file mode 100644
index 0000000..59c356f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/page_layout.md
@@ -0,0 +1,24 @@
+---
+title: Page layout
+summary: Facts about Page layout
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.512Z'
+updatedAt: '2026-05-28T13:18:21.512Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Page layout
+
+## Facts
+- **Page layout**: Page width remains stable at 320px with no document/body horizontal overflow
diff --git a/.brv/context-tree/extracted/facts/page_width.md b/.brv/context-tree/extracted/facts/page_width.md
new file mode 100644
index 0000000..23a366e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/page_width.md
@@ -0,0 +1,24 @@
+---
+title: Page width
+summary: Facts about page width
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.517Z'
+updatedAt: '2026-05-28T13:18:21.517Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for page width
+
+## Facts
+- **page width**: Page width remains stable at 320px
diff --git a/.brv/context-tree/extracted/facts/pi_extension.md b/.brv/context-tree/extracted/facts/pi_extension.md
new file mode 100644
index 0000000..7b90728
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pi_extension.md
@@ -0,0 +1,24 @@
+---
+title: Pi extension
+summary: Facts about Pi extension
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.239Z'
+updatedAt: '2026-05-27T23:52:05.239Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **Pi extension**: packages/pi/README.md says the extension reads existing Caplets config and does not create or mutate Pi config files.
diff --git a/.brv/context-tree/extracted/facts/pi_installation.md b/.brv/context-tree/extracted/facts/pi_installation.md
new file mode 100644
index 0000000..caacb31
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pi_installation.md
@@ -0,0 +1,24 @@
+---
+title: Pi installation
+summary: Facts about Pi installation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.238Z'
+updatedAt: '2026-05-27T23:52:05.238Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **Pi installation**: The page shows "pi update && npm install -g @caplets/pi" and a config snippet with a top-level "caplets" object, but packages/pi/README.md documents installation as "pi install npm:@caplets/pi" and settings as "{ \"packages\": [\"npm:@caplets/pi\"] }".
diff --git a/.brv/context-tree/extracted/facts/pi_setup_snippet.md b/.brv/context-tree/extracted/facts/pi_setup_snippet.md
new file mode 100644
index 0000000..ce8bc7c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pi_setup_snippet.md
@@ -0,0 +1,24 @@
+---
+title: Pi setup snippet
+summary: Facts about Pi setup snippet
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.229Z'
+updatedAt: '2026-05-27T23:52:05.229Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **Pi setup snippet**: The Pi setup snippet is product misinformation.
diff --git a/.brv/context-tree/extracted/facts/pill_tab_semantics.md b/.brv/context-tree/extracted/facts/pill_tab_semantics.md
new file mode 100644
index 0000000..9c584e6
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pill_tab_semantics.md
@@ -0,0 +1,20 @@
+---
+title: pill tab semantics
+summary: Facts about pill tab semantics
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.191Z'
+updatedAt: '2026-05-27T23:48:05.191Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about pill tab semantics
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **pill tab semantics**: Pills use tab semantics with `role="tablist"`, `role="tab"`, `aria-selected`, `aria-controls`, `role="tabpanel"`, and `aria-labelledby` (`apps/landing/src/pages/index.astro:265-289`).
diff --git a/.brv/context-tree/extracted/facts/pin.md b/.brv/context-tree/extracted/facts/pin.md
new file mode 100644
index 0000000..f01dbf9
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pin.md
@@ -0,0 +1,24 @@
+---
+title: Pin
+summary: Facts about Pin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.499Z'
+updatedAt: '2026-05-28T13:18:21.499Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Pin
+
+## Facts
+- **Pin**: Pin creates a standalone shortcut so {{command_prefix}} invokes {{command_prefix}}impeccable directly
diff --git a/.brv/context-tree/extracted/facts/pin_unpin.md b/.brv/context-tree/extracted/facts/pin_unpin.md
new file mode 100644
index 0000000..fea8a66
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/pin_unpin.md
@@ -0,0 +1,24 @@
+---
+title: Pin/unpin
+summary: Facts about pin/unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.498Z'
+updatedAt: '2026-05-28T13:18:21.498Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for pin/unpin
+
+## Facts
+- **pin/unpin**: `pin ` and `unpin ` are management commands for pinning and unpinning commands.
diff --git a/.brv/context-tree/extracted/facts/polish.md b/.brv/context-tree/extracted/facts/polish.md
new file mode 100644
index 0000000..eac6f88
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/polish.md
@@ -0,0 +1,24 @@
+---
+title: Polish
+summary: Facts about polish
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.475Z'
+updatedAt: '2026-05-28T13:18:21.475Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for polish
+
+## Facts
+- **polish**: `polish [target]` is a Refine command that provides a final quality pass before shipping.
diff --git a/.brv/context-tree/extracted/facts/product_details.md b/.brv/context-tree/extracted/facts/product_details.md
new file mode 100644
index 0000000..41df77d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/product_details.md
@@ -0,0 +1,22 @@
+---
+title: Product details
+summary: Facts about Product details
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.700Z'
+updatedAt: '2026-05-28T09:51:10.700Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Product details
+
+## Facts
+- **Product details**: Strengths include clear product specifics such as MCP, OpenAPI, GraphQL, CLI, Claude Code, Codex, OpenCode, Pi
diff --git a/.brv/context-tree/extracted/facts/product_md.md b/.brv/context-tree/extracted/facts/product_md.md
new file mode 100644
index 0000000..1f03331
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/product_md.md
@@ -0,0 +1,25 @@
+---
+title: PRODUCT.md
+summary: Facts about PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.218Z'
+updatedAt: '2026-05-28T13:18:21.335Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 2 facts for PRODUCT.md
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
+- **PRODUCT.md**: If PRODUCT.md is missing, empty, or placeholder (<200 chars), run `impeccable teach` and then resume the user's original task.
diff --git a/.brv/context-tree/extracted/facts/product_specificity.md b/.brv/context-tree/extracted/facts/product_specificity.md
new file mode 100644
index 0000000..3cac8b8
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/product_specificity.md
@@ -0,0 +1,20 @@
+---
+title: Product specificity
+summary: Facts about product specificity
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.403Z'
+updatedAt: '2026-05-28T09:45:40.403Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **product specificity**: Product specificity is good.
diff --git a/.brv/context-tree/extracted/facts/punctuation.md b/.brv/context-tree/extracted/facts/punctuation.md
new file mode 100644
index 0000000..fd2701d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/punctuation.md
@@ -0,0 +1,24 @@
+---
+title: Punctuation
+summary: Facts about punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.246Z'
+updatedAt: '2026-05-28T13:18:21.462Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for punctuation
+
+## Facts
+- **punctuation**: No em dashes. Use commas, colons, semicolons, periods, or parentheses. Also not --.
diff --git a/.brv/context-tree/extracted/facts/quieter.md b/.brv/context-tree/extracted/facts/quieter.md
new file mode 100644
index 0000000..82901d2
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/quieter.md
@@ -0,0 +1,24 @@
+---
+title: Quieter
+summary: Facts about quieter
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.478Z'
+updatedAt: '2026-05-28T13:18:21.478Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for quieter
+
+## Facts
+- **quieter**: `quieter [target]` is a Refine command that tones down aggressive or overstimulating designs.
diff --git a/.brv/context-tree/extracted/facts/read_the_repo_wording.md b/.brv/context-tree/extracted/facts/read_the_repo_wording.md
new file mode 100644
index 0000000..60686d9
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/read_the_repo_wording.md
@@ -0,0 +1,20 @@
+---
+title: '`Read the repo` wording'
+summary: Facts about `Read the repo` wording
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.415Z'
+updatedAt: '2026-05-28T09:45:40.415Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **`Read the repo` wording**: `Read the repo` is more developer-authentic than “Learn more.”
diff --git a/.brv/context-tree/extracted/facts/recognition_rather_than_recall.md b/.brv/context-tree/extracted/facts/recognition_rather_than_recall.md
new file mode 100644
index 0000000..109a91f
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/recognition_rather_than_recall.md
@@ -0,0 +1,20 @@
+---
+title: Recognition rather than recall
+summary: Facts about Recognition rather than recall
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.359Z'
+updatedAt: '2026-05-28T09:45:40.359Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **Recognition rather than recall**: Recognition rather than recall score is 3.
diff --git a/.brv/context-tree/extracted/facts/restrained_strategy.md b/.brv/context-tree/extracted/facts/restrained_strategy.md
new file mode 100644
index 0000000..d1f2bd0
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/restrained_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Restrained strategy
+summary: Facts about Restrained strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.385Z'
+updatedAt: '2026-05-28T13:18:21.385Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Restrained strategy
+
+## Facts
+- **Restrained strategy**: Restrained: tinted neutrals + one accent ≤10%.
diff --git a/.brv/context-tree/extracted/facts/reveal_functionality.md b/.brv/context-tree/extracted/facts/reveal_functionality.md
new file mode 100644
index 0000000..b3ef171
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/reveal_functionality.md
@@ -0,0 +1,20 @@
+---
+title: reveal functionality
+summary: Facts about reveal functionality
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.208Z'
+updatedAt: '2026-05-27T23:48:05.208Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about reveal functionality
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **reveal functionality**: Adding `is-visible` to setup panels has no styling effect, so the reveal selector update is functionally incomplete against the plan/spec requirement.
diff --git a/.brv/context-tree/extracted/facts/reveal_selector_implementation.md b/.brv/context-tree/extracted/facts/reveal_selector_implementation.md
new file mode 100644
index 0000000..c7bb4b3
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/reveal_selector_implementation.md
@@ -0,0 +1,20 @@
+---
+title: reveal selector implementation
+summary: Facts about reveal selector implementation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.206Z'
+updatedAt: '2026-05-27T23:48:05.206Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about reveal selector implementation
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **reveal selector implementation**: Reveal selector update is incomplete: the script now observes `.agent-setup-panel` (`apps/landing/src/pages/index.astro:418-419`), but CSS reveal rules do not include `.agent-setup-panel`, only `.integration-pill` and other existing targets (`apps/landing/src/styles/global.css:690-705`).
diff --git a/.brv/context-tree/extracted/facts/review_scope.md b/.brv/context-tree/extracted/facts/review_scope.md
new file mode 100644
index 0000000..b4c48bb
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/review_scope.md
@@ -0,0 +1,24 @@
+---
+title: review scope
+summary: Facts about review scope
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.241Z'
+updatedAt: '2026-05-27T23:52:05.241Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **review scope**: The review was performed on committed changes only via git diff 0e56e8f^..86f9679; unrelated unstaged/untracked worktree changes were ignored.
diff --git a/.brv/context-tree/extracted/facts/riley.md b/.brv/context-tree/extracted/facts/riley.md
new file mode 100644
index 0000000..cf11b51
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/riley.md
@@ -0,0 +1,22 @@
+---
+title: Riley
+summary: Facts about Riley
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.754Z'
+updatedAt: '2026-05-28T09:51:10.754Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Riley
+
+## Facts
+- **Riley**: Persona Riley (Stress Tester) finds safety claims unbacked and install command inconsistency erodes trust
diff --git a/.brv/context-tree/extracted/facts/safety_claims.md b/.brv/context-tree/extracted/facts/safety_claims.md
new file mode 100644
index 0000000..07e448e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/safety_claims.md
@@ -0,0 +1,20 @@
+---
+title: Safety claims
+summary: Facts about safety claims
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.400Z'
+updatedAt: '2026-05-28T09:45:40.400Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **safety claims**: Safety claims lack proof detail.
diff --git a/.brv/context-tree/extracted/facts/script.md b/.brv/context-tree/extracted/facts/script.md
new file mode 100644
index 0000000..2a40159
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/script.md
@@ -0,0 +1,24 @@
+---
+title: Script
+summary: Facts about Script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.502Z'
+updatedAt: '2026-05-28T13:18:21.502Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Script
+
+## Facts
+- **Script**: The script writes to every harness directory present in the project
diff --git a/.brv/context-tree/extracted/facts/setup.md b/.brv/context-tree/extracted/facts/setup.md
new file mode 100644
index 0000000..993916b
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/setup.md
@@ -0,0 +1,24 @@
+---
+title: Setup
+summary: Facts about setup
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.216Z'
+updatedAt: '2026-05-28T13:02:34.216Z'
+---
+## Reason
+Curated extracted facts from provided context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T13:02:34.210Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for setup
+
+## Facts
+- **setup**: Before any design work, the user must load context (PRODUCT.md / DESIGN.md) via the loader script.
diff --git a/.brv/context-tree/extracted/facts/setup_panel.md b/.brv/context-tree/extracted/facts/setup_panel.md
new file mode 100644
index 0000000..3c779e4
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/setup_panel.md
@@ -0,0 +1,24 @@
+---
+title: setup_panel
+summary: Facts about setup_panel
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.580Z'
+updatedAt: '2026-05-27T23:50:44.580Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for setup_panel
+
+## Facts
+- **setup_panel**: Setup panel/code styling and responsive stacking are present at `apps/landing/src/styles/global.css:940-1001` and `apps/landing/src/styles/global.css:1211-1217`.
diff --git a/.brv/context-tree/extracted/facts/setup_panels.md b/.brv/context-tree/extracted/facts/setup_panels.md
new file mode 100644
index 0000000..bded187
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/setup_panels.md
@@ -0,0 +1,24 @@
+---
+title: setup panels
+summary: Facts about setup panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.213Z'
+updatedAt: '2026-05-27T23:52:05.213Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **setup panels**: CSS is focused and responsive; setup panels stack on narrow screens at apps/landing/src/styles/global.css:979-1043 and :1211-1213.
diff --git a/.brv/context-tree/extracted/facts/shape.md b/.brv/context-tree/extracted/facts/shape.md
new file mode 100644
index 0000000..cf9e980
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/shape.md
@@ -0,0 +1,24 @@
+---
+title: Shape
+summary: Facts about shape
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.466Z'
+updatedAt: '2026-05-28T13:18:21.466Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for shape
+
+## Facts
+- **shape**: `shape [feature]` is a Build command that plans UX/UI before writing code.
diff --git a/.brv/context-tree/extracted/facts/side_stripe_borders.md b/.brv/context-tree/extracted/facts/side_stripe_borders.md
new file mode 100644
index 0000000..abd08ef
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/side_stripe_borders.md
@@ -0,0 +1,24 @@
+---
+title: Side‑stripe borders
+summary: Facts about side‑stripe borders
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.442Z'
+updatedAt: '2026-05-28T13:18:21.442Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for side‑stripe borders
+
+## Facts
+- **side‑stripe borders**: Side‑stripe borders greater than 1px as a colored accent are never intentional.
diff --git a/.brv/context-tree/extracted/facts/site_animation_code.md b/.brv/context-tree/extracted/facts/site_animation_code.md
new file mode 100644
index 0000000..22bddd9
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/site_animation_code.md
@@ -0,0 +1,20 @@
+---
+title: Site animation code
+summary: Facts about site animation code
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.427Z'
+updatedAt: '2026-05-28T09:45:40.427Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **site animation code**: The site has a lot of animation code for a product whose brand asks for quiet confidence.
diff --git a/.brv/context-tree/extracted/facts/spacing.md b/.brv/context-tree/extracted/facts/spacing.md
new file mode 100644
index 0000000..59e0831
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/spacing.md
@@ -0,0 +1,24 @@
+---
+title: Spacing
+summary: Facts about spacing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.416Z'
+updatedAt: '2026-05-28T13:18:21.416Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for spacing
+
+## Facts
+- **spacing**: Vary spacing for rhythm.
diff --git a/.brv/context-tree/extracted/facts/status_dot.md b/.brv/context-tree/extracted/facts/status_dot.md
new file mode 100644
index 0000000..60416c8
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/status_dot.md
@@ -0,0 +1,20 @@
+---
+title: '`status-dot`'
+summary: Facts about `status-dot`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.425Z'
+updatedAt: '2026-05-28T09:45:40.425Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **`status-dot`**: `status-dot` is color-only and decorative unless paired with meaningful text.
diff --git a/.brv/context-tree/extracted/facts/styling_alignment.md b/.brv/context-tree/extracted/facts/styling_alignment.md
new file mode 100644
index 0000000..2747b11
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/styling_alignment.md
@@ -0,0 +1,20 @@
+---
+title: styling alignment
+summary: Facts about styling alignment
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.195Z'
+updatedAt: '2026-05-27T23:48:05.195Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about styling alignment
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **styling alignment**: Styling is restrained and product-aligned: dark integration card retained, selected pill state is clear, and command/config blocks use monospace (`apps/landing/src/styles/global.css:888-1011`).
diff --git a/.brv/context-tree/extracted/facts/tab_implementation.md b/.brv/context-tree/extracted/facts/tab_implementation.md
new file mode 100644
index 0000000..a78568e
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/tab_implementation.md
@@ -0,0 +1,20 @@
+---
+title: Tab implementation
+summary: Facts about tab implementation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.409Z'
+updatedAt: '2026-05-28T09:45:40.409Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.335Z
+
+## Facts
+- **tab implementation**: The tab implementation is stronger than typical landing-page tabs.
diff --git a/.brv/context-tree/extracted/facts/tab_keyboard_navigation.md b/.brv/context-tree/extracted/facts/tab_keyboard_navigation.md
new file mode 100644
index 0000000..d06db15
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/tab_keyboard_navigation.md
@@ -0,0 +1,20 @@
+---
+title: tab keyboard navigation
+summary: Facts about tab keyboard navigation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:48:05.192Z'
+updatedAt: '2026-05-27T23:48:05.192Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document factual statements about tab keyboard navigation
+
+**Timestamp:** 2026-05-27T23:48:05.172Z
+
+## Facts
+- **tab keyboard navigation**: Tab switching supports click and ArrowLeft/ArrowRight/Home/End keyboard navigation (`apps/landing/src/pages/index.astro:343-388`).
diff --git a/.brv/context-tree/extracted/facts/tab_markup.md b/.brv/context-tree/extracted/facts/tab_markup.md
new file mode 100644
index 0000000..602017c
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/tab_markup.md
@@ -0,0 +1,24 @@
+---
+title: tab markup
+summary: Facts about tab markup
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:52:05.210Z'
+updatedAt: '2026-05-27T23:52:05.210Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Extracted factual statements
+
+**Timestamp:** 2026-05-27T23:52:05.208Z
+
+## Narrative
+### Structure
+Collected facts grouped by subject
+
+## Facts
+- **tab markup**: The tab markup is broadly accessible with role="tablist", role="tab", aria-selected, aria-controls, role="tabpanel", and keyboard navigation implemented in apps/landing/src/pages/index.astro:268-305 and :342-390.
diff --git a/.brv/context-tree/extracted/facts/tab_semantics.md b/.brv/context-tree/extracted/facts/tab_semantics.md
new file mode 100644
index 0000000..5a69a26
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/tab_semantics.md
@@ -0,0 +1,24 @@
+---
+title: tab_semantics
+summary: Facts about tab_semantics
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.572Z'
+updatedAt: '2026-05-27T23:50:44.572Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for tab_semantics
+
+## Facts
+- **tab_semantics**: Required tab semantics are present: `role="tablist"` at `apps/landing/src/pages/index.astro:266`, tab buttons at `:268-278`, and tab panels at `:283-289`.
diff --git a/.brv/context-tree/extracted/facts/tab_switching.md b/.brv/context-tree/extracted/facts/tab_switching.md
new file mode 100644
index 0000000..067fd72
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/tab_switching.md
@@ -0,0 +1,24 @@
+---
+title: tab_switching
+summary: Facts about tab_switching
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:50:44.576Z'
+updatedAt: '2026-05-27T23:50:44.576Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T23:50:44.568Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for tab_switching
+
+## Facts
+- **tab_switching**: Client-side tab switching updates `aria-selected`, `tabIndex`, and panel `hidden` state at `apps/landing/src/pages/index.astro:343-352`, with click and keyboard handling at `:358-386`.
diff --git a/.brv/context-tree/extracted/facts/teach.md b/.brv/context-tree/extracted/facts/teach.md
new file mode 100644
index 0000000..cc4c111
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/teach.md
@@ -0,0 +1,24 @@
+---
+title: Teach
+summary: Facts about teach
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.467Z'
+updatedAt: '2026-05-28T13:18:21.467Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for teach
+
+## Facts
+- **teach**: `teach` is a Build command that sets up PRODUCT.md and DESIGN.md context.
diff --git a/.brv/context-tree/extracted/facts/theme_selection.md b/.brv/context-tree/extracted/facts/theme_selection.md
new file mode 100644
index 0000000..69f8cd3
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/theme_selection.md
@@ -0,0 +1,24 @@
+---
+title: Theme selection
+summary: Facts about theme selection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.238Z'
+updatedAt: '2026-05-28T13:18:21.391Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for theme selection
+
+## Facts
+- **theme selection**: Dark vs. light is never a default.
diff --git a/.brv/context-tree/extracted/facts/typecheck.md b/.brv/context-tree/extracted/facts/typecheck.md
new file mode 100644
index 0000000..56a2474
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: Typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:02:34.262Z'
+updatedAt: '2026-05-28T13:18:21.520Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for typecheck
+
+## Facts
+- **typecheck**: Build verification passed for pnpm --filter @caplets/landing typecheck
diff --git a/.brv/context-tree/extracted/facts/typeset.md b/.brv/context-tree/extracted/facts/typeset.md
new file mode 100644
index 0000000..2dddb10
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/typeset.md
@@ -0,0 +1,24 @@
+---
+title: Typeset
+summary: Facts about typeset
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.486Z'
+updatedAt: '2026-05-28T13:18:21.486Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for typeset
+
+## Facts
+- **typeset**: `typeset [target]` is an Enhance command that improves typography hierarchy and fonts.
diff --git a/.brv/context-tree/extracted/facts/typographic_hierarchy.md b/.brv/context-tree/extracted/facts/typographic_hierarchy.md
new file mode 100644
index 0000000..dd24b4d
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/typographic_hierarchy.md
@@ -0,0 +1,24 @@
+---
+title: Typographic hierarchy
+summary: Facts about typographic hierarchy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.413Z'
+updatedAt: '2026-05-28T13:18:21.413Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for typographic hierarchy
+
+## Facts
+- **typographic hierarchy**: Hierarchy through scale + weight contrast (≥1.25 ratio between steps).
diff --git a/.brv/context-tree/extracted/facts/unpin.md b/.brv/context-tree/extracted/facts/unpin.md
new file mode 100644
index 0000000..98deb45
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/unpin.md
@@ -0,0 +1,24 @@
+---
+title: Unpin
+summary: Facts about Unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.501Z'
+updatedAt: '2026-05-28T13:18:21.501Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Unpin
+
+## Facts
+- **Unpin**: Unpin removes the shortcut created by Pin
diff --git a/.brv/context-tree/extracted/facts/user_control_and_freedom.md b/.brv/context-tree/extracted/facts/user_control_and_freedom.md
new file mode 100644
index 0000000..5ae9f14
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/user_control_and_freedom.md
@@ -0,0 +1,20 @@
+---
+title: User control and freedom
+summary: Facts about User control and freedom
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.350Z'
+updatedAt: '2026-05-28T09:45:40.350Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Facts
+- **User control and freedom**: User control and freedom score is 2.
diff --git a/.brv/context-tree/extracted/facts/user_control_freedom.md b/.brv/context-tree/extracted/facts/user_control_freedom.md
new file mode 100644
index 0000000..318d919
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/user_control_freedom.md
@@ -0,0 +1,22 @@
+---
+title: User Control & Freedom
+summary: Facts about User Control & Freedom
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.729Z'
+updatedAt: '2026-05-28T09:51:10.729Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for User Control & Freedom
+
+## Facts
+- **User Control & Freedom**: User Control & Freedom scored 2 because there are no copy buttons for code snippets
diff --git a/.brv/context-tree/extracted/facts/valid_command.md b/.brv/context-tree/extracted/facts/valid_command.md
new file mode 100644
index 0000000..4cf6abd
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/valid_command.md
@@ -0,0 +1,24 @@
+---
+title: Valid command
+summary: Facts about Valid command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.505Z'
+updatedAt: '2026-05-28T13:18:21.505Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for Valid command
+
+## Facts
+- **Valid command**: Valid is any command from the table above
diff --git a/.brv/context-tree/extracted/facts/visibility_of_system_status.md b/.brv/context-tree/extracted/facts/visibility_of_system_status.md
new file mode 100644
index 0000000..eba6483
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/visibility_of_system_status.md
@@ -0,0 +1,24 @@
+---
+title: Visibility of System Status
+summary: Facts about Visibility of System Status
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:40.341Z'
+updatedAt: '2026-05-28T09:51:10.717Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:45:40.334Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Visibility of System Status
+
+## Facts
+- **Visibility of System Status**: Visibility of System Status scored 3 due to decorative cues not functional
diff --git a/.brv/context-tree/extracted/facts/visuals.md b/.brv/context-tree/extracted/facts/visuals.md
new file mode 100644
index 0000000..fc42bf3
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/visuals.md
@@ -0,0 +1,22 @@
+---
+title: Visuals
+summary: Facts about Visuals
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:10.699Z'
+updatedAt: '2026-05-28T09:51:10.699Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+## Narrative
+### Highlights
+Extracted 1 facts for Visuals
+
+## Facts
+- **Visuals**: The visual metaphor uses map, route animations, glow, and dark panels
diff --git a/.brv/context-tree/extracted/facts/writing_guidelines.md b/.brv/context-tree/extracted/facts/writing_guidelines.md
new file mode 100644
index 0000000..64e73a2
--- /dev/null
+++ b/.brv/context-tree/extracted/facts/writing_guidelines.md
@@ -0,0 +1,24 @@
+---
+title: Writing guidelines
+summary: Facts about writing guidelines
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:18:21.460Z'
+updatedAt: '2026-05-28T13:18:21.460Z'
+---
+## Reason
+Curated extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:18:21.328Z
+
+## Narrative
+### Highlights
+Contains 1 facts for writing guidelines
+
+## Facts
+- **writing guidelines**: Every word earns its place; no restated headings, no intros that repeat the title.
diff --git a/.brv/context-tree/extracted/hero_proof/hero_proof_preference.md b/.brv/context-tree/extracted/hero_proof/hero_proof_preference.md
new file mode 100644
index 0000000..8400dcd
--- /dev/null
+++ b/.brv/context-tree/extracted/hero_proof/hero_proof_preference.md
@@ -0,0 +1,26 @@
+---
+title: Hero Proof Preference
+summary: User prefers realistic CLI trace as hero proof; assistant provides rationale
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:51:24.818Z'
+updatedAt: '2026-05-28T09:51:24.818Z'
+---
+## Reason
+Curate extracted facts from user/assistant discussion about hero proof style
+
+## Raw Concept
+**Task:**
+Document hero proof preference
+
+**Timestamp:** 2026-05-28T09:51:24.818Z
+
+## Narrative
+### Structure
+Preference discussion and rationale
+
+## Facts
+- **hero proof**: My recommended answer: real trace, lightly designed.
+- **hero proof**: The hero should feel like a developer could squint and recognize the actual product model, not a marketing abstraction.
+- **trace evidence**: The proposed trace demonstrates that source metadata exists, capabilities are scoped, schemas are inspectable before calling, auth is redacted, and structured output is preserved.
diff --git a/.brv/context-tree/facts/conventions/agent_card.md b/.brv/context-tree/facts/conventions/agent_card.md
new file mode 100644
index 0000000..1718a43
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/agent_card.md
@@ -0,0 +1,24 @@
+---
+title: agent card
+summary: Facts about agent card
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:17:13.646Z'
+updatedAt: '2026-05-28T09:02:34.793Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of agent card facts
+
+## Facts
+- **agent card**: The agent card should have a fixed height so that when a different agent is selected, the card doesn't shift.
diff --git a/.brv/context-tree/facts/conventions/agent_setup_panels.md b/.brv/context-tree/facts/conventions/agent_setup_panels.md
new file mode 100644
index 0000000..5068ccd
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/agent_setup_panels.md
@@ -0,0 +1,24 @@
+---
+title: agent setup panels
+summary: Facts about agent setup panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.800Z'
+updatedAt: '2026-05-28T09:02:34.800Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of agent setup panels facts
+
+## Facts
+- **agent setup panels**: Adjusted the agent setup panels to a fixed responsive height so switching tabs no longer shifts the card/page layout.
diff --git a/.brv/context-tree/facts/conventions/agent_setup_tab.md b/.brv/context-tree/facts/conventions/agent_setup_tab.md
new file mode 100644
index 0000000..2b8c5cf
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/agent_setup_tab.md
@@ -0,0 +1,26 @@
+---
+title: Agent Setup Tab
+summary: Facts about Agent setup tab
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:32:37.372Z'
+updatedAt: '2026-05-28T09:32:37.372Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts for Agent setup tab
+
+**Timestamp:** 2026-05-28T09:32:37.363Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Extracted 1 facts for Agent setup tab
+
+## Facts
+- **Agent setup tab**: Agent setup tab logic and panels remain coherent in apps/landing/src/pages/index.astro:340-461, including click, keyboard navigation, and hidden panel toggling.
diff --git a/.brv/context-tree/facts/conventions/assistant_fact.md b/.brv/context-tree/facts/conventions/assistant_fact.md
new file mode 100644
index 0000000..6a3ce02
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/assistant_fact.md
@@ -0,0 +1,26 @@
+---
+title: assistant fact
+summary: The assistant is using Subagent-Driven Development to implement all audit fixes continuously.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.322Z'
+updatedAt: '2026-05-28T09:33:34.322Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+The assistant is using Subagent-Driven Development to implement all audit fixes continuously.
+
+## Facts
+- **assistant**: The assistant is using Subagent-Driven Development to implement all audit fixes continuously.
diff --git a/.brv/context-tree/facts/conventions/audit_spec_compliance_fact.md b/.brv/context-tree/facts/conventions/audit_spec_compliance_fact.md
new file mode 100644
index 0000000..650c423
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/audit_spec_compliance_fact.md
@@ -0,0 +1,26 @@
+---
+title: audit/spec compliance fact
+summary: Audit/spec compliance was approved.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.348Z'
+updatedAt: '2026-05-28T09:33:34.348Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Audit/spec compliance was approved.
+
+## Facts
+- **audit/spec compliance**: Audit/spec compliance was approved.
diff --git a/.brv/context-tree/facts/conventions/border_usage.md b/.brv/context-tree/facts/conventions/border_usage.md
new file mode 100644
index 0000000..320bf93
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/border_usage.md
@@ -0,0 +1,24 @@
+---
+title: border usage
+summary: Facts about border usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.786Z'
+updatedAt: '2026-05-28T09:02:34.786Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of border usage facts
+
+## Facts
+- **border usage**: Side‑stripe borders greater than 1 px as colored accents on cards, list items, callouts, or alerts are absolutely banned.
diff --git a/.brv/context-tree/facts/conventions/build.md b/.brv/context-tree/facts/conventions/build.md
new file mode 100644
index 0000000..92c52de
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/build.md
@@ -0,0 +1,24 @@
+---
+title: build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.805Z'
+updatedAt: '2026-05-28T09:02:34.805Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of build facts
+
+## Facts
+- **build**: Verification passed: `pnpm --filter @caplets/landing build`.
diff --git a/.brv/context-tree/facts/conventions/build_fact.md b/.brv/context-tree/facts/conventions/build_fact.md
new file mode 100644
index 0000000..78768e0
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/build_fact.md
@@ -0,0 +1,26 @@
+---
+title: build fact
+summary: Landing-specific verification passed for pnpm --filter @caplets/landing build.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.382Z'
+updatedAt: '2026-05-28T09:33:34.382Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Landing-specific verification passed for pnpm --filter @caplets/landing build.
+
+## Facts
+- **build**: Landing-specific verification passed for pnpm --filter @caplets/landing build.
diff --git a/.brv/context-tree/facts/conventions/caplets_landing.md b/.brv/context-tree/facts/conventions/caplets_landing.md
new file mode 100644
index 0000000..de8b7a8
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/caplets_landing.md
@@ -0,0 +1,27 @@
+---
+title: '@Caplets/Landing'
+summary: Facts about @caplets/landing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:32:37.374Z'
+updatedAt: '2026-05-28T09:32:37.374Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts for @caplets/landing
+
+**Timestamp:** 2026-05-28T09:32:37.363Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Extracted 2 facts for @caplets/landing
+
+## Facts
+- **@caplets/landing**: pnpm --filter @caplets/landing typecheck passed with 0 errors.
+- **@caplets/landing**: pnpm --filter @caplets/landing build passed.
diff --git a/.brv/context-tree/facts/conventions/code_quality_fact.md b/.brv/context-tree/facts/conventions/code_quality_fact.md
new file mode 100644
index 0000000..47c6d39
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/code_quality_fact.md
@@ -0,0 +1,26 @@
+---
+title: code quality fact
+summary: Code quality was approved.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.358Z'
+updatedAt: '2026-05-28T09:33:34.358Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Code quality was approved.
+
+## Facts
+- **code quality**: Code quality was approved.
diff --git a/.brv/context-tree/facts/conventions/color_palette.md b/.brv/context-tree/facts/conventions/color_palette.md
new file mode 100644
index 0000000..8dc7b18
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/color_palette.md
@@ -0,0 +1,24 @@
+---
+title: color palette
+summary: Facts about color palette
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.780Z'
+updatedAt: '2026-05-28T09:02:34.780Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of color palette facts
+
+## Facts
+- **color palette**: Color values must be expressed in OKLCH; pure black (#000) and pure white (#fff) are never allowed.
diff --git a/.brv/context-tree/facts/conventions/color_strategy.md b/.brv/context-tree/facts/conventions/color_strategy.md
new file mode 100644
index 0000000..4f2b1f6
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/color_strategy.md
@@ -0,0 +1,24 @@
+---
+title: color strategy
+summary: Facts about color strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.781Z'
+updatedAt: '2026-05-28T09:02:34.781Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of color strategy facts
+
+## Facts
+- **color strategy**: The "one accent ≤10%" rule applies only to the Restrained color strategy.
diff --git a/.brv/context-tree/facts/conventions/commit_2acfcef_fact.md b/.brv/context-tree/facts/conventions/commit_2acfcef_fact.md
new file mode 100644
index 0000000..e93926b
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/commit_2acfcef_fact.md
@@ -0,0 +1,26 @@
+---
+title: commit 2acfcef fact
+summary: 'Commit 2acfcef fix(landing): align plugin install commands was created.'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.343Z'
+updatedAt: '2026-05-28T09:33:34.343Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Commit 2acfcef fix(landing): align plugin install commands was created.
+
+## Facts
+- **commit 2acfcef**: Commit 2acfcef fix(landing): align plugin install commands was created.
diff --git a/.brv/context-tree/facts/conventions/commit_8646209_fact.md b/.brv/context-tree/facts/conventions/commit_8646209_fact.md
new file mode 100644
index 0000000..fcafa6f
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/commit_8646209_fact.md
@@ -0,0 +1,26 @@
+---
+title: commit 8646209 fact
+summary: 'Commit 8646209 fix(landing): address audit findings was created.'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.342Z'
+updatedAt: '2026-05-28T09:33:34.342Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Commit 8646209 fix(landing): address audit findings was created.
+
+## Facts
+- **commit 8646209**: Commit 8646209 fix(landing): address audit findings was created.
diff --git a/.brv/context-tree/facts/conventions/commit_d2b942a_fact.md b/.brv/context-tree/facts/conventions/commit_d2b942a_fact.md
new file mode 100644
index 0000000..7680380
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/commit_d2b942a_fact.md
@@ -0,0 +1,26 @@
+---
+title: commit d2b942a fact
+summary: 'Commit d2b942a fix(landing): remove unused npm icon styles was created.'
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.345Z'
+updatedAt: '2026-05-28T09:33:34.345Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Commit d2b942a fix(landing): remove unused npm icon styles was created.
+
+## Facts
+- **commit d2b942a**: Commit d2b942a fix(landing): remove unused npm icon styles was created.
diff --git a/.brv/context-tree/facts/conventions/context_directory.md b/.brv/context-tree/facts/conventions/context_directory.md
new file mode 100644
index 0000000..b9d1496
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/context_directory.md
@@ -0,0 +1,24 @@
+---
+title: context directory
+summary: Facts about context directory
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.771Z'
+updatedAt: '2026-05-28T09:02:34.771Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of context directory facts
+
+## Facts
+- **context directory**: The environment variable IMPECCABLE_CONTEXT_DIR can override the context directory with an absolute or relative path.
diff --git a/.brv/context-tree/facts/conventions/context_loader.md b/.brv/context-tree/facts/conventions/context_loader.md
new file mode 100644
index 0000000..a636659
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/context_loader.md
@@ -0,0 +1,24 @@
+---
+title: context loader
+summary: Facts about context loader
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.757Z'
+updatedAt: '2026-05-28T09:02:34.757Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of context loader facts
+
+## Facts
+- **context loader**: The loader script searches the project root, then falls back to .agents/context/ and docs/ if the root is clean.
diff --git a/.brv/context-tree/facts/conventions/d2b942a.md b/.brv/context-tree/facts/conventions/d2b942a.md
new file mode 100644
index 0000000..dd80069
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/d2b942a.md
@@ -0,0 +1,26 @@
+---
+title: D2b942a
+summary: Facts about d2b942a
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:32:37.365Z'
+updatedAt: '2026-05-28T09:32:37.365Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts for d2b942a
+
+**Timestamp:** 2026-05-28T09:32:37.363Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Extracted 1 facts for d2b942a
+
+## Facts
+- **d2b942a**: d2b942a removes the unused .npm-link CSS block from apps/landing/src/styles/global.css; git grep -n npm-link HEAD -- apps/landing returns no matches.
diff --git a/.brv/context-tree/facts/conventions/design_registers.md b/.brv/context-tree/facts/conventions/design_registers.md
new file mode 100644
index 0000000..4e1693e
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/design_registers.md
@@ -0,0 +1,24 @@
+---
+title: design registers
+summary: Facts about design registers
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.778Z'
+updatedAt: '2026-05-28T09:02:34.778Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of design registers facts
+
+## Facts
+- **design registers**: Every design task is classified as either brand (marketing, landing, campaign, long‑form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/facts/conventions/design_workflow.md b/.brv/context-tree/facts/conventions/design_workflow.md
new file mode 100644
index 0000000..cd49874
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/design_workflow.md
@@ -0,0 +1,24 @@
+---
+title: design workflow
+summary: Facts about design workflow
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.750Z'
+updatedAt: '2026-05-28T09:02:34.750Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of design workflow facts
+
+## Facts
+- **design workflow**: Before any design work or file edits, the user must load context (PRODUCT.md / DESIGN.md) via the loader script.
diff --git a/.brv/context-tree/facts/conventions/format_check.md b/.brv/context-tree/facts/conventions/format_check.md
new file mode 100644
index 0000000..2e10ae5
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/format_check.md
@@ -0,0 +1,24 @@
+---
+title: format check
+summary: Facts about format check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.802Z'
+updatedAt: '2026-05-28T09:02:34.802Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of format check facts
+
+## Facts
+- **format check**: Verification passed: `pnpm format:check`.
diff --git a/.brv/context-tree/facts/conventions/format_check_fact.md b/.brv/context-tree/facts/conventions/format_check_fact.md
new file mode 100644
index 0000000..6a59e3f
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/format_check_fact.md
@@ -0,0 +1,26 @@
+---
+title: format check fact
+summary: Landing-specific verification passed for pnpm exec oxfmt --check apps/landing/src/pages/index.astro apps/landing/src/styles/global.css.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.359Z'
+updatedAt: '2026-05-28T09:33:34.359Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Landing-specific verification passed for pnpm exec oxfmt --check apps/landing/src/pages/index.astro apps/landing/src/styles/global.css.
+
+## Facts
+- **format check**: Landing-specific verification passed for pnpm exec oxfmt --check apps/landing/src/pages/index.astro apps/landing/src/styles/global.css.
diff --git a/.brv/context-tree/facts/conventions/glassmorphism.md b/.brv/context-tree/facts/conventions/glassmorphism.md
new file mode 100644
index 0000000..c127f47
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/glassmorphism.md
@@ -0,0 +1,24 @@
+---
+title: glassmorphism
+summary: Facts about glassmorphism
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.789Z'
+updatedAt: '2026-05-28T09:02:34.789Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of glassmorphism facts
+
+## Facts
+- **glassmorphism**: Glassmorphism as a default (blurred glass cards) is absolutely banned.
diff --git a/.brv/context-tree/facts/conventions/gradient_text.md b/.brv/context-tree/facts/conventions/gradient_text.md
new file mode 100644
index 0000000..36328e5
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/gradient_text.md
@@ -0,0 +1,24 @@
+---
+title: gradient text
+summary: Facts about gradient text
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.787Z'
+updatedAt: '2026-05-28T09:02:34.787Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of gradient text facts
+
+## Facts
+- **gradient text**: Gradient text using background‑clip: text with a gradient background is absolutely banned.
diff --git a/.brv/context-tree/facts/conventions/head.md b/.brv/context-tree/facts/conventions/head.md
new file mode 100644
index 0000000..c63f495
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/head.md
@@ -0,0 +1,26 @@
+---
+title: HEAD
+summary: Facts about HEAD
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:32:37.373Z'
+updatedAt: '2026-05-28T09:32:37.373Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts for HEAD
+
+**Timestamp:** 2026-05-28T09:32:37.363Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Extracted 1 facts for HEAD
+
+## Facts
+- **HEAD**: Verified committed HEAD in a detached worktree to avoid unrelated local unstaged/untracked changes. [environment]
diff --git a/.brv/context-tree/facts/conventions/hero_metric.md b/.brv/context-tree/facts/conventions/hero_metric.md
new file mode 100644
index 0000000..e5b27f5
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/hero_metric.md
@@ -0,0 +1,24 @@
+---
+title: hero metric
+summary: Facts about hero metric
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.790Z'
+updatedAt: '2026-05-28T09:02:34.790Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of hero metric facts
+
+## Facts
+- **hero metric**: The hero‑metric template (big number, small label, supporting stats, gradient accent) is an absolute ban.
diff --git a/.brv/context-tree/facts/conventions/hierarchy.md b/.brv/context-tree/facts/conventions/hierarchy.md
new file mode 100644
index 0000000..b7eaae4
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/hierarchy.md
@@ -0,0 +1,24 @@
+---
+title: hierarchy
+summary: Facts about hierarchy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.784Z'
+updatedAt: '2026-05-28T09:02:34.784Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of hierarchy facts
+
+## Facts
+- **hierarchy**: Hierarchy must have a scale and weight contrast of at least a 1.25 ratio between steps.
diff --git a/.brv/context-tree/facts/conventions/impeccable_skill.md b/.brv/context-tree/facts/conventions/impeccable_skill.md
new file mode 100644
index 0000000..09b1235
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/impeccable_skill.md
@@ -0,0 +1,24 @@
+---
+title: impeccable skill
+summary: Facts about impeccable skill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.745Z'
+updatedAt: '2026-05-28T09:02:34.745Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of impeccable skill facts
+
+## Facts
+- **impeccable skill**: The skill "impeccable" is located at /home/ianpascoe/.agents/skills/impeccable/SKILL.md.
diff --git a/.brv/context-tree/facts/conventions/landing_app.md b/.brv/context-tree/facts/conventions/landing_app.md
new file mode 100644
index 0000000..3d84bf7
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/landing_app.md
@@ -0,0 +1,30 @@
+---
+title: Landing app
+summary: Facts about landing app
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:21:53.900Z'
+updatedAt: '2026-05-27T19:21:53.900Z'
+---
+## Reason
+Curate extracted factual statements
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-27T19:21:53.899Z
+
+## Facts
+- **landing app**: Replaced the npm and GitHub text links with accessible icon-only links.
+- **landing app**: Changed files: apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+- **landing app**: Added inline SVG npm icon.
+- **landing app**: Added inline SVG GitHub icon.
+- **landing app**: Preserved accessible labels with aria-label.
+- **landing app**: Kept 46px icon buttons for touch target quality.
+- **landing app**: pnpm --filter @caplets/landing build passed.
+- **landing app**: pnpm --filter @caplets/landing typecheck passed, 0 errors, 0 warnings, 0 hints.
diff --git a/.brv/context-tree/facts/conventions/landing_page_fact.md b/.brv/context-tree/facts/conventions/landing_page_fact.md
new file mode 100644
index 0000000..b29ad30
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/landing_page_fact.md
@@ -0,0 +1,26 @@
+---
+title: landing page fact
+summary: All landing page audit fixes were implemented using subagent-driven development.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.334Z'
+updatedAt: '2026-05-28T09:33:34.334Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+All landing page audit fixes were implemented using subagent-driven development.
+
+## Facts
+- **landing page**: All landing page audit fixes were implemented using subagent-driven development.
diff --git a/.brv/context-tree/facts/conventions/line_length.md b/.brv/context-tree/facts/conventions/line_length.md
new file mode 100644
index 0000000..15d2993
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/line_length.md
@@ -0,0 +1,24 @@
+---
+title: line length
+summary: Facts about line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.783Z'
+updatedAt: '2026-05-28T09:02:34.783Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of line length facts
+
+## Facts
+- **line length**: Body line length should be capped at 65–75 characters.
diff --git a/.brv/context-tree/facts/conventions/lint_fact.md b/.brv/context-tree/facts/conventions/lint_fact.md
new file mode 100644
index 0000000..bd32e09
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/lint_fact.md
@@ -0,0 +1,26 @@
+---
+title: lint fact
+summary: Landing-specific verification passed for pnpm lint.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.378Z'
+updatedAt: '2026-05-28T09:33:34.378Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Landing-specific verification passed for pnpm lint.
+
+## Facts
+- **lint**: Landing-specific verification passed for pnpm lint.
diff --git a/.brv/context-tree/facts/conventions/missing_design_md.md b/.brv/context-tree/facts/conventions/missing_design_md.md
new file mode 100644
index 0000000..a676260
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/missing_design_md.md
@@ -0,0 +1,24 @@
+---
+title: missing DESIGN.md
+summary: Facts about missing DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.776Z'
+updatedAt: '2026-05-28T09:02:34.776Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of missing DESIGN.md facts
+
+## Facts
+- **missing DESIGN.md**: If DESIGN.md is missing, the assistant should nudge the user once per session to run {{command_prefix}}impeccable document.
diff --git a/.brv/context-tree/facts/conventions/missing_product_md.md b/.brv/context-tree/facts/conventions/missing_product_md.md
new file mode 100644
index 0000000..81ae800
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/missing_product_md.md
@@ -0,0 +1,24 @@
+---
+title: missing PRODUCT.md
+summary: Facts about missing PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.773Z'
+updatedAt: '2026-05-28T09:02:34.773Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of missing PRODUCT.md facts
+
+## Facts
+- **missing PRODUCT.md**: If PRODUCT.md is missing, empty, or contains only placeholder text under 200 characters, the command {{command_prefix}}impeccable teach must be run.
diff --git a/.brv/context-tree/facts/conventions/npm_header_link.md b/.brv/context-tree/facts/conventions/npm_header_link.md
new file mode 100644
index 0000000..fd70b9f
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/npm_header_link.md
@@ -0,0 +1,26 @@
+---
+title: Npm Header Link
+summary: Facts about npm header link
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:32:37.370Z'
+updatedAt: '2026-05-28T09:32:37.370Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts for npm header link
+
+**Timestamp:** 2026-05-28T09:32:37.363Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Extracted 1 facts for npm header link
+
+## Facts
+- **npm header link**: Remaining npm header link uses the shared .header-action.icon-link styles at apps/landing/src/styles/global.css:244-253, so the removed CSS is not needed.
diff --git a/.brv/context-tree/facts/conventions/panel.md b/.brv/context-tree/facts/conventions/panel.md
new file mode 100644
index 0000000..981d8ac
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/panel.md
@@ -0,0 +1,26 @@
+---
+title: panel
+summary: Facts about panel
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.801Z'
+updatedAt: '2026-05-28T09:02:34.801Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of panel facts
+
+## Facts
+- **panel**: The panel now uses a stable `block-size: clamp(260px, 24vw, 320px)` and scrolls internally if a snippet is longer.
+- **panel**: The panel now uses a stable block-size defined as clamp(260px, 24vw, 320px).
+- **panel**: The panel scrolls internally if a snippet is longer.
diff --git a/.brv/context-tree/facts/conventions/pnpm.md b/.brv/context-tree/facts/conventions/pnpm.md
new file mode 100644
index 0000000..0749b73
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/pnpm.md
@@ -0,0 +1,25 @@
+---
+title: pnpm
+summary: Facts about pnpm
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.806Z'
+updatedAt: '2026-05-28T09:02:34.806Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of pnpm facts
+
+## Facts
+- **pnpm**: The command `pnpm --filter @caplets/landing typecheck` is used.
+- **pnpm**: The command `pnpm --filter @caplets/landing build` is used.
diff --git a/.brv/context-tree/facts/conventions/pnpm_format_check_fact.md b/.brv/context-tree/facts/conventions/pnpm_format_check_fact.md
new file mode 100644
index 0000000..9115c9d
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/pnpm_format_check_fact.md
@@ -0,0 +1,26 @@
+---
+title: pnpm format:check fact
+summary: Full pnpm format:check is currently blocked by unrelated untracked .github/workflows/pr-preview.yml formatting.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.384Z'
+updatedAt: '2026-05-28T09:33:34.384Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Full pnpm format:check is currently blocked by unrelated untracked .github/workflows/pr-preview.yml formatting.
+
+## Facts
+- **pnpm format:check**: Full pnpm format:check is currently blocked by unrelated untracked .github/workflows/pr-preview.yml formatting.
diff --git a/.brv/context-tree/facts/conventions/pr_preview_yml_fact.md b/.brv/context-tree/facts/conventions/pr_preview_yml_fact.md
new file mode 100644
index 0000000..f2aefc5
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/pr_preview_yml_fact.md
@@ -0,0 +1,26 @@
+---
+title: pr-preview.yml fact
+summary: The .github/workflows/pr-preview.yml file was not part of the landing fixes.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.385Z'
+updatedAt: '2026-05-28T09:33:34.385Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+The .github/workflows/pr-preview.yml file was not part of the landing fixes.
+
+## Facts
+- **pr-preview.yml**: The .github/workflows/pr-preview.yml file was not part of the landing fixes.
diff --git a/.brv/context-tree/facts/conventions/project_context.md b/.brv/context-tree/facts/conventions/project_context.md
new file mode 100644
index 0000000..c442160
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/project_context.md
@@ -0,0 +1,24 @@
+---
+title: project context
+summary: Facts about project context
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.755Z'
+updatedAt: '2026-05-28T09:02:34.755Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of project context facts
+
+## Facts
+- **project context**: PRODUCT.md is required; DESIGN.md is optional but strongly recommended.
diff --git a/.brv/context-tree/facts/conventions/punctuation.md b/.brv/context-tree/facts/conventions/punctuation.md
new file mode 100644
index 0000000..218afc4
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/punctuation.md
@@ -0,0 +1,24 @@
+---
+title: punctuation
+summary: Facts about punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.791Z'
+updatedAt: '2026-05-28T09:02:34.791Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of punctuation facts
+
+## Facts
+- **punctuation**: Em dashes are prohibited in copy; commas, colons, semicolons, periods, or parentheses must be used instead.
diff --git a/.brv/context-tree/facts/conventions/setup_model.md b/.brv/context-tree/facts/conventions/setup_model.md
new file mode 100644
index 0000000..fd50953
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/setup_model.md
@@ -0,0 +1,20 @@
+---
+title: setup model
+summary: Facts about setup model
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:17:13.657Z'
+updatedAt: '2026-05-27T23:17:13.657Z'
+---
+## Reason
+Curated facts from extraction
+
+## Raw Concept
+**Task:**
+Document facts for setup model
+
+**Timestamp:** 2026-05-27T23:17:13.640Z
+
+## Facts
+- **setup model**: Add a normalized `setup` model to each agent entry, probably `{ installCommand, configSnippet, notes? }`.
diff --git a/.brv/context-tree/facts/conventions/setup_rendering.md b/.brv/context-tree/facts/conventions/setup_rendering.md
new file mode 100644
index 0000000..a62f629
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/setup_rendering.md
@@ -0,0 +1,20 @@
+---
+title: setup rendering
+summary: Facts about setup rendering
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:17:13.661Z'
+updatedAt: '2026-05-27T23:17:13.661Z'
+---
+## Reason
+Curated facts from extraction
+
+## Raw Concept
+**Task:**
+Document facts for setup rendering
+
+**Timestamp:** 2026-05-27T23:17:13.640Z
+
+## Facts
+- **setup rendering**: Tests should cover that all agents with setup data render both the install command and config snippet, and that copy text matches the source strings.
diff --git a/.brv/context-tree/facts/conventions/sub_command_handling.md b/.brv/context-tree/facts/conventions/sub_command_handling.md
new file mode 100644
index 0000000..369c9b5
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/sub_command_handling.md
@@ -0,0 +1,24 @@
+---
+title: sub‑command handling
+summary: Facts about sub‑command handling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.752Z'
+updatedAt: '2026-05-28T09:02:34.752Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of sub‑command handling facts
+
+## Facts
+- **sub‑command handling**: If the user invoked a sub‑command such as craft, shape, or audit, the corresponding reference file (e.g., craft.md) must also be loaded.
diff --git a/.brv/context-tree/facts/conventions/theme_selection.md b/.brv/context-tree/facts/conventions/theme_selection.md
new file mode 100644
index 0000000..93e5491
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/theme_selection.md
@@ -0,0 +1,24 @@
+---
+title: theme selection
+summary: Facts about theme selection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.782Z'
+updatedAt: '2026-05-28T09:02:34.782Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of theme selection facts
+
+## Facts
+- **theme selection**: Dark vs. light theme must be chosen based on a concrete physical scene description, not by default.
diff --git a/.brv/context-tree/facts/conventions/typecheck.md b/.brv/context-tree/facts/conventions/typecheck.md
new file mode 100644
index 0000000..5e3327c
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:02:34.803Z'
+updatedAt: '2026-05-28T09:02:34.803Z'
+---
+## Reason
+Curated factual statements from context
+
+## Raw Concept
+**Task:**
+Document factual statements
+
+**Timestamp:** 2026-05-28T09:02:34.738Z
+
+## Narrative
+### Structure
+Collection of typecheck facts
+
+## Facts
+- **typecheck**: Verification passed: `pnpm --filter @caplets/landing typecheck`.
diff --git a/.brv/context-tree/facts/conventions/typecheck_fact.md b/.brv/context-tree/facts/conventions/typecheck_fact.md
new file mode 100644
index 0000000..726b049
--- /dev/null
+++ b/.brv/context-tree/facts/conventions/typecheck_fact.md
@@ -0,0 +1,26 @@
+---
+title: typecheck fact
+summary: Landing-specific verification passed for pnpm --filter @caplets/landing typecheck.
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:33:34.381Z'
+updatedAt: '2026-05-28T09:33:34.381Z'
+---
+## Reason
+Curate extracted factual statement
+
+## Raw Concept
+**Task:**
+Document factual statement
+
+**Timestamp:** 2026-05-28T09:33:34.318Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+Landing-specific verification passed for pnpm --filter @caplets/landing typecheck.
+
+## Facts
+- **typecheck**: Landing-specific verification passed for pnpm --filter @caplets/landing typecheck.
diff --git a/.brv/context-tree/facts/extracted/adapt.md b/.brv/context-tree/facts/extracted/adapt.md
new file mode 100644
index 0000000..9c504b8
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/adapt.md
@@ -0,0 +1,24 @@
+---
+title: Adapt
+summary: Extracted facts about adapt
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.263Z'
+updatedAt: '2026-05-27T19:41:18.263Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under adapt
+
+## Facts
+- **adapt**: `adapt [target]` is a Fix command that adapts designs for different devices and screen sizes.
diff --git a/.brv/context-tree/facts/extracted/animate.md b/.brv/context-tree/facts/extracted/animate.md
new file mode 100644
index 0000000..f5f0563
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/animate.md
@@ -0,0 +1,24 @@
+---
+title: Animate
+summary: Extracted facts about animate
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.253Z'
+updatedAt: '2026-05-27T19:41:18.253Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under animate
+
+## Facts
+- **animate**: `animate [target]` is an Enhance command that adds purposeful animations and motion.
diff --git a/.brv/context-tree/facts/extracted/animation_restrictions.md b/.brv/context-tree/facts/extracted/animation_restrictions.md
new file mode 100644
index 0000000..6804c2d
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/animation_restrictions.md
@@ -0,0 +1,24 @@
+---
+title: Animation restrictions
+summary: Extracted facts about Animation restrictions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.203Z'
+updatedAt: '2026-05-27T19:41:18.203Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Animation restrictions
+
+## Facts
+- **Animation restrictions**: Do not animate CSS layout properties.
diff --git a/.brv/context-tree/facts/extracted/assistant.md b/.brv/context-tree/facts/extracted/assistant.md
new file mode 100644
index 0000000..b905620
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/assistant.md
@@ -0,0 +1,24 @@
+---
+title: assistant
+summary: Extracted facts about assistant
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:24:46.822Z'
+updatedAt: '2026-05-28T09:24:46.822Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Extract facts
+
+**Timestamp:** 2026-05-28T09:24:46.821Z
+
+## Narrative
+### Highlights
+Facts related to assistant
+
+## Facts
+- **assistant**: I'm using Subagent-Driven Development to implement all audit fixes continuously.
diff --git a/.brv/context-tree/facts/extracted/audit.md b/.brv/context-tree/facts/extracted/audit.md
new file mode 100644
index 0000000..75fce1e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/audit.md
@@ -0,0 +1,24 @@
+---
+title: Audit
+summary: Extracted facts about audit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.239Z'
+updatedAt: '2026-05-27T19:41:18.239Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under audit
+
+## Facts
+- **audit**: `audit [target]` is an Evaluate command that performs technical quality checks such as accessibility, performance, and responsiveness.
diff --git a/.brv/context-tree/facts/extracted/bolder.md b/.brv/context-tree/facts/extracted/bolder.md
new file mode 100644
index 0000000..00e6770
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/bolder.md
@@ -0,0 +1,24 @@
+---
+title: Bolder
+summary: Extracted facts about bolder
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.242Z'
+updatedAt: '2026-05-27T19:41:18.242Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under bolder
+
+## Facts
+- **bolder**: `bolder [target]` is a Refine command that amplifies safe or bland designs.
diff --git a/.brv/context-tree/facts/extracted/browser_console.md b/.brv/context-tree/facts/extracted/browser_console.md
new file mode 100644
index 0000000..9df61b9
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/browser_console.md
@@ -0,0 +1,24 @@
+---
+title: Browser console
+summary: Extracted facts about Browser console
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.280Z'
+updatedAt: '2026-05-27T19:41:18.280Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Browser console
+
+## Facts
+- **Browser console**: Browser console checked, 0 errors and 0 warnings.
diff --git a/.brv/context-tree/facts/extracted/browser_preview.md b/.brv/context-tree/facts/extracted/browser_preview.md
new file mode 100644
index 0000000..90f9847
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/browser_preview.md
@@ -0,0 +1,24 @@
+---
+title: Browser preview
+summary: Extracted facts about Browser preview
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.279Z'
+updatedAt: '2026-05-27T19:41:18.279Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Browser preview
+
+## Facts
+- **Browser preview**: Browser preview checked at desktop and mobile sizes.
diff --git a/.brv/context-tree/facts/extracted/browser_testing.md b/.brv/context-tree/facts/extracted/browser_testing.md
new file mode 100644
index 0000000..32c8ef5
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/browser_testing.md
@@ -0,0 +1,24 @@
+---
+title: Browser testing
+summary: Extracted facts about browser testing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.278Z'
+updatedAt: '2026-05-27T19:41:18.278Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under browser testing
+
+## Facts
+- **browser testing**: Browser preview was checked at desktop and mobile sizes with no errors or warnings in the console.
diff --git a/.brv/context-tree/facts/extracted/build_process.md b/.brv/context-tree/facts/extracted/build_process.md
new file mode 100644
index 0000000..607691a
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/build_process.md
@@ -0,0 +1,24 @@
+---
+title: Build process
+summary: Extracted facts about build process
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.276Z'
+updatedAt: '2026-05-27T19:41:18.276Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under build process
+
+## Facts
+- **build process**: `pnpm --filter @caplets/landing build` passed.
diff --git a/.brv/context-tree/facts/extracted/card_usage.md b/.brv/context-tree/facts/extracted/card_usage.md
new file mode 100644
index 0000000..160c837
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/card_usage.md
@@ -0,0 +1,24 @@
+---
+title: Card usage
+summary: Extracted facts about Card usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.197Z'
+updatedAt: '2026-05-27T19:41:18.197Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Card usage
+
+## Facts
+- **Card usage**: Cards should only be used when they are the best affordance; nested cards are always wrong.
diff --git a/.brv/context-tree/facts/extracted/chroma_adjustment.md b/.brv/context-tree/facts/extracted/chroma_adjustment.md
new file mode 100644
index 0000000..4e649f9
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/chroma_adjustment.md
@@ -0,0 +1,24 @@
+---
+title: Chroma adjustment
+summary: Extracted facts about Chroma adjustment
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.145Z'
+updatedAt: '2026-05-27T19:41:18.145Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Chroma adjustment
+
+## Facts
+- **Chroma adjustment**: Reduce chroma as lightness approaches 0 or 100 because high chroma at extremes looks garish.
diff --git a/.brv/context-tree/facts/extracted/clarify.md b/.brv/context-tree/facts/extracted/clarify.md
new file mode 100644
index 0000000..e9261a3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/clarify.md
@@ -0,0 +1,24 @@
+---
+title: Clarify
+summary: Extracted facts about clarify
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.261Z'
+updatedAt: '2026-05-27T19:41:18.261Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under clarify
+
+## Facts
+- **clarify**: `clarify [target]` is a Fix command that improves UX copy, labels, and error messages.
diff --git a/.brv/context-tree/facts/extracted/color_specification.md b/.brv/context-tree/facts/extracted/color_specification.md
new file mode 100644
index 0000000..6ae475e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/color_specification.md
@@ -0,0 +1,24 @@
+---
+title: Color specification
+summary: Extracted facts about Color specification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.142Z'
+updatedAt: '2026-05-27T19:41:18.142Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Color specification
+
+## Facts
+- **Color specification**: Use OKLCH for colors.
diff --git a/.brv/context-tree/facts/extracted/colorize.md b/.brv/context-tree/facts/extracted/colorize.md
new file mode 100644
index 0000000..f861e0e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/colorize.md
@@ -0,0 +1,24 @@
+---
+title: Colorize
+summary: Extracted facts about colorize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.255Z'
+updatedAt: '2026-05-27T19:41:18.255Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under colorize
+
+## Facts
+- **colorize**: `colorize [target]` is an Enhance command that adds strategic color to monochromatic UIs.
diff --git a/.brv/context-tree/facts/extracted/committed_strategy.md b/.brv/context-tree/facts/extracted/committed_strategy.md
new file mode 100644
index 0000000..ddc2410
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/committed_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Committed strategy
+summary: Extracted facts about Committed strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.180Z'
+updatedAt: '2026-05-27T19:41:18.180Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Committed strategy
+
+## Facts
+- **Committed strategy**: Committed strategy uses one saturated color covering 30–60% of surface.
diff --git a/.brv/context-tree/facts/extracted/copy_economy.md b/.brv/context-tree/facts/extracted/copy_economy.md
new file mode 100644
index 0000000..f4961bb
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/copy_economy.md
@@ -0,0 +1,24 @@
+---
+title: Copy economy
+summary: Extracted facts about Copy economy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.222Z'
+updatedAt: '2026-05-27T19:41:18.222Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Copy economy
+
+## Facts
+- **Copy economy**: Every word in copy must earn its place; no restated headings or intros that repeat the title.
diff --git a/.brv/context-tree/facts/extracted/craft.md b/.brv/context-tree/facts/extracted/craft.md
new file mode 100644
index 0000000..c6a3c94
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/craft.md
@@ -0,0 +1,24 @@
+---
+title: Craft
+summary: Extracted facts about craft
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.225Z'
+updatedAt: '2026-05-27T19:41:18.225Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under craft
+
+## Facts
+- **craft**: `craft [feature]` is a Build command that shapes then builds a feature end-to-end.
diff --git a/.brv/context-tree/facts/extracted/critique.md b/.brv/context-tree/facts/extracted/critique.md
new file mode 100644
index 0000000..42b3956
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/critique.md
@@ -0,0 +1,24 @@
+---
+title: Critique
+summary: Extracted facts about critique
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.238Z'
+updatedAt: '2026-05-27T19:41:18.238Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under critique
+
+## Facts
+- **critique**: `critique [target]` is an Evaluate command that performs a UX design review with heuristic scoring.
diff --git a/.brv/context-tree/facts/extracted/delight.md b/.brv/context-tree/facts/extracted/delight.md
new file mode 100644
index 0000000..975c47e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/delight.md
@@ -0,0 +1,24 @@
+---
+title: Delight
+summary: Extracted facts about delight
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.259Z'
+updatedAt: '2026-05-27T19:41:18.259Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under delight
+
+## Facts
+- **delight**: `delight [target]` is an Enhance command that adds personality and memorable touches.
diff --git a/.brv/context-tree/facts/extracted/design_md.md b/.brv/context-tree/facts/extracted/design_md.md
new file mode 100644
index 0000000..bf148ce
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/design_md.md
@@ -0,0 +1,25 @@
+---
+title: DESIGN.md
+summary: Extracted facts about DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.133Z'
+updatedAt: '2026-05-27T19:41:18.133Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under DESIGN.md
+
+## Facts
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
+- **DESIGN.md**: If DESIGN.md is missing, nudge the user once per session to run {{command_prefix}}impeccable document.
diff --git a/.brv/context-tree/facts/extracted/design_process.md b/.brv/context-tree/facts/extracted/design_process.md
new file mode 100644
index 0000000..6a2b2c0
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/design_process.md
@@ -0,0 +1,24 @@
+---
+title: Design process
+summary: Extracted facts about Design process
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.174Z'
+updatedAt: '2026-05-27T19:41:18.174Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Design process
+
+## Facts
+- **Design process**: Pick a color strategy before picking colors, with four steps on the commitment axis.
diff --git a/.brv/context-tree/facts/extracted/design_task.md b/.brv/context-tree/facts/extracted/design_task.md
new file mode 100644
index 0000000..d4a621a
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/design_task.md
@@ -0,0 +1,24 @@
+---
+title: Design task
+summary: Extracted facts about design task
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.139Z'
+updatedAt: '2026-05-27T19:41:18.139Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under design task
+
+## Facts
+- **design task**: Every design task is either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/facts/extracted/distill.md b/.brv/context-tree/facts/extracted/distill.md
new file mode 100644
index 0000000..f5d9a54
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/distill.md
@@ -0,0 +1,24 @@
+---
+title: Distill
+summary: Extracted facts about distill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.245Z'
+updatedAt: '2026-05-27T19:41:18.245Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under distill
+
+## Facts
+- **distill**: `distill [target]` is a Refine command that strips to essence and removes complexity.
diff --git a/.brv/context-tree/facts/extracted/document.md b/.brv/context-tree/facts/extracted/document.md
new file mode 100644
index 0000000..192bb3e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/document.md
@@ -0,0 +1,24 @@
+---
+title: Document
+summary: Extracted facts about document
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.231Z'
+updatedAt: '2026-05-27T19:41:18.231Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under document
+
+## Facts
+- **document**: `document` is a Build command that generates DESIGN.md from existing project code.
diff --git a/.brv/context-tree/facts/extracted/drenched_strategy.md b/.brv/context-tree/facts/extracted/drenched_strategy.md
new file mode 100644
index 0000000..716814e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/drenched_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Drenched strategy
+summary: Extracted facts about Drenched strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.188Z'
+updatedAt: '2026-05-27T19:41:18.188Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Drenched strategy
+
+## Facts
+- **Drenched strategy**: Drenched strategy makes the surface the color.
diff --git a/.brv/context-tree/facts/extracted/easing_functions.md b/.brv/context-tree/facts/extracted/easing_functions.md
new file mode 100644
index 0000000..9e2facd
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/easing_functions.md
@@ -0,0 +1,24 @@
+---
+title: Easing functions
+summary: Extracted facts about Easing functions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.205Z'
+updatedAt: '2026-05-27T19:41:18.205Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Easing functions
+
+## Facts
+- **Easing functions**: Use ease-out exponential curves (ease-out-quart, quint, expo) for motion; no bounce or elastic.
diff --git a/.brv/context-tree/facts/extracted/extract.md b/.brv/context-tree/facts/extracted/extract.md
new file mode 100644
index 0000000..a0cc76d
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/extract.md
@@ -0,0 +1,24 @@
+---
+title: Extract
+summary: Extracted facts about extract
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.237Z'
+updatedAt: '2026-05-27T19:41:18.237Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under extract
+
+## Facts
+- **extract**: `extract [target]` is a Build command that pulls reusable tokens and components into a design system.
diff --git a/.brv/context-tree/facts/extracted/full_palette_strategy.md b/.brv/context-tree/facts/extracted/full_palette_strategy.md
new file mode 100644
index 0000000..1af2f5f
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/full_palette_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Full palette strategy
+summary: Extracted facts about Full palette strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.182Z'
+updatedAt: '2026-05-27T19:41:18.182Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Full palette strategy
+
+## Facts
+- **Full palette strategy**: Full palette uses 3–4 named roles, each used deliberately.
diff --git a/.brv/context-tree/facts/extracted/glassmorphism.md b/.brv/context-tree/facts/extracted/glassmorphism.md
new file mode 100644
index 0000000..fb3696e
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/glassmorphism.md
@@ -0,0 +1,24 @@
+---
+title: Glassmorphism
+summary: Extracted facts about Glassmorphism
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.210Z'
+updatedAt: '2026-05-27T19:41:18.210Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Glassmorphism
+
+## Facts
+- **Glassmorphism**: Glassmorphism as a default style is prohibited; use only rarely and purposefully.
diff --git a/.brv/context-tree/facts/extracted/gradient_text.md b/.brv/context-tree/facts/extracted/gradient_text.md
new file mode 100644
index 0000000..27df6f6
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/gradient_text.md
@@ -0,0 +1,24 @@
+---
+title: Gradient text
+summary: Extracted facts about Gradient text
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.208Z'
+updatedAt: '2026-05-27T19:41:18.208Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Gradient text
+
+## Facts
+- **Gradient text**: Gradient text using background‑clip: text with a gradient background is prohibited.
diff --git a/.brv/context-tree/facts/extracted/harden.md b/.brv/context-tree/facts/extracted/harden.md
new file mode 100644
index 0000000..6ab11c8
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/harden.md
@@ -0,0 +1,24 @@
+---
+title: Harden
+summary: Extracted facts about harden
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.246Z'
+updatedAt: '2026-05-27T19:41:18.246Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under harden
+
+## Facts
+- **harden**: `harden [target]` is a Refine command that makes a product production‑ready, handling errors, i18n, and edge cases.
diff --git a/.brv/context-tree/facts/extracted/hero_metric_template.md b/.brv/context-tree/facts/extracted/hero_metric_template.md
new file mode 100644
index 0000000..5f4cae1
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/hero_metric_template.md
@@ -0,0 +1,24 @@
+---
+title: Hero‑metric template
+summary: Extracted facts about Hero‑metric template
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.211Z'
+updatedAt: '2026-05-27T19:41:18.211Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Hero‑metric template
+
+## Facts
+- **Hero‑metric template**: The hero‑metric template (big number, small label, supporting stats, gradient accent) is a SaaS cliché and prohibited.
diff --git a/.brv/context-tree/facts/extracted/identical_card_grids.md b/.brv/context-tree/facts/extracted/identical_card_grids.md
new file mode 100644
index 0000000..2ecc57f
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/identical_card_grids.md
@@ -0,0 +1,24 @@
+---
+title: Identical card grids
+summary: Extracted facts about Identical card grids
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.213Z'
+updatedAt: '2026-05-27T19:41:18.213Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Identical card grids
+
+## Facts
+- **Identical card grids**: Identical card grids with repeated icon + heading + text are prohibited.
diff --git a/.brv/context-tree/facts/extracted/landing_page.md b/.brv/context-tree/facts/extracted/landing_page.md
new file mode 100644
index 0000000..4015627
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/landing_page.md
@@ -0,0 +1,30 @@
+---
+title: Landing page
+summary: Extracted facts about landing page
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.275Z'
+updatedAt: '2026-05-27T19:41:18.275Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under landing page
+
+## Facts
+- **landing page**: Hardening improvements added a `theme-color` meta tag to the landing page.
+- **landing page**: Reveal animation was made progressive: content is visible by default and hidden only after JavaScript confirms IntersectionObserver support.
+- **landing page**: An IntersectionObserver fallback was added so content never stays invisible on older browsers.
+- **landing page**: Long-text resilience was improved with `min-width: 0`, `overflow-wrap`, and safer grid columns.
+- **landing page**: Header, nav, proof grid, terminal, capability cards, and install layout were hardened against overflow.
+- **landing page**: Safe-area padding was added for notched mobile devices.
+- **landing page**: The funky npm mark was replaced with a cleaner custom npm-style icon.
diff --git a/.brv/context-tree/facts/extracted/layout.md b/.brv/context-tree/facts/extracted/layout.md
new file mode 100644
index 0000000..92828ff
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/layout.md
@@ -0,0 +1,24 @@
+---
+title: Layout
+summary: Extracted facts about layout
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.257Z'
+updatedAt: '2026-05-27T19:41:18.257Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under layout
+
+## Facts
+- **layout**: `layout [target]` is an Enhance command that fixes spacing, rhythm, and visual hierarchy.
diff --git a/.brv/context-tree/facts/extracted/line_length.md b/.brv/context-tree/facts/extracted/line_length.md
new file mode 100644
index 0000000..2600d1a
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/line_length.md
@@ -0,0 +1,24 @@
+---
+title: Line length
+summary: Extracted facts about Line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.192Z'
+updatedAt: '2026-05-27T19:41:18.192Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Line length
+
+## Facts
+- **Line length**: Cap body line length at 65–75 characters.
diff --git a/.brv/context-tree/facts/extracted/live.md b/.brv/context-tree/facts/extracted/live.md
new file mode 100644
index 0000000..e221c30
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/live.md
@@ -0,0 +1,24 @@
+---
+title: Live
+summary: Extracted facts about live
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.270Z'
+updatedAt: '2026-05-27T19:41:18.270Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under live
+
+## Facts
+- **live**: `live` is an Iterate command that provides a visual variant mode, allowing selection of elements in the browser to generate alternatives.
diff --git a/.brv/context-tree/facts/extracted/load_context_mjs_output.md b/.brv/context-tree/facts/extracted/load_context_mjs_output.md
new file mode 100644
index 0000000..57eb066
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/load_context_mjs_output.md
@@ -0,0 +1,24 @@
+---
+title: Load-context.mjs output
+summary: Extracted facts about load-context.mjs output
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.137Z'
+updatedAt: '2026-05-27T19:41:18.137Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under load-context.mjs output
+
+## Facts
+- **load-context.mjs output**: Never pipe the context loader output through head, tail, grep, or jq.
diff --git a/.brv/context-tree/facts/extracted/modal_usage.md b/.brv/context-tree/facts/extracted/modal_usage.md
new file mode 100644
index 0000000..db95e15
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/modal_usage.md
@@ -0,0 +1,24 @@
+---
+title: Modal usage
+summary: Extracted facts about Modal usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.215Z'
+updatedAt: '2026-05-27T19:41:18.215Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Modal usage
+
+## Facts
+- **Modal usage**: Modals should not be the first design thought; exhaust inline or progressive alternatives first.
diff --git a/.brv/context-tree/facts/extracted/neutral_tinting.md b/.brv/context-tree/facts/extracted/neutral_tinting.md
new file mode 100644
index 0000000..b9ea75d
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/neutral_tinting.md
@@ -0,0 +1,24 @@
+---
+title: Neutral tinting
+summary: Extracted facts about Neutral tinting
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.160Z'
+updatedAt: '2026-05-27T19:41:18.160Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Neutral tinting
+
+## Facts
+- **Neutral tinting**: Never use #000 or #fff; tint every neutral toward the brand hue with chroma 0.005–0.01.
diff --git a/.brv/context-tree/facts/extracted/onboard.md b/.brv/context-tree/facts/extracted/onboard.md
new file mode 100644
index 0000000..00aa08d
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/onboard.md
@@ -0,0 +1,24 @@
+---
+title: Onboard
+summary: Extracted facts about onboard
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.252Z'
+updatedAt: '2026-05-27T19:41:18.252Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under onboard
+
+## Facts
+- **onboard**: `onboard [target]` is a Refine command that designs first‑run flows, empty states, and activation experiences.
diff --git a/.brv/context-tree/facts/extracted/optimize.md b/.brv/context-tree/facts/extracted/optimize.md
new file mode 100644
index 0000000..500a0ca
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/optimize.md
@@ -0,0 +1,24 @@
+---
+title: Optimize
+summary: Extracted facts about optimize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.268Z'
+updatedAt: '2026-05-27T19:41:18.269Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under optimize
+
+## Facts
+- **optimize**: `optimize [target]` is a Fix command that diagnoses and fixes UI performance issues.
diff --git a/.brv/context-tree/facts/extracted/overdrive.md b/.brv/context-tree/facts/extracted/overdrive.md
new file mode 100644
index 0000000..00fdc38
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/overdrive.md
@@ -0,0 +1,24 @@
+---
+title: Overdrive
+summary: Extracted facts about overdrive
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.260Z'
+updatedAt: '2026-05-27T19:41:18.260Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under overdrive
+
+## Facts
+- **overdrive**: `overdrive [target]` is an Enhance command that pushes past conventional limits.
diff --git a/.brv/context-tree/facts/extracted/pin.md b/.brv/context-tree/facts/extracted/pin.md
new file mode 100644
index 0000000..d1d8485
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/pin.md
@@ -0,0 +1,24 @@
+---
+title: Pin
+summary: Extracted facts about Pin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.272Z'
+updatedAt: '2026-05-27T19:41:18.272Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Pin
+
+## Facts
+- **Pin**: Pin creates a standalone shortcut so `{{command_prefix}}` invokes `{{command_prefix}}impeccable ` directly.
diff --git a/.brv/context-tree/facts/extracted/pin_mjs_script.md b/.brv/context-tree/facts/extracted/pin_mjs_script.md
new file mode 100644
index 0000000..a0625bc
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/pin_mjs_script.md
@@ -0,0 +1,24 @@
+---
+title: Pin.mjs script
+summary: Extracted facts about pin.mjs script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.274Z'
+updatedAt: '2026-05-27T19:41:18.274Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under pin.mjs script
+
+## Facts
+- **pin.mjs script**: The pin/unpin script writes to every harness directory present in the project.
diff --git a/.brv/context-tree/facts/extracted/pin_unpin.md b/.brv/context-tree/facts/extracted/pin_unpin.md
new file mode 100644
index 0000000..bd14ed3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/pin_unpin.md
@@ -0,0 +1,24 @@
+---
+title: Pin/unpin
+summary: Extracted facts about pin/unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.271Z'
+updatedAt: '2026-05-27T19:41:18.271Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under pin/unpin
+
+## Facts
+- **pin/unpin**: `pin ` and `unpin ` are management commands for pinning and unpinning other commands.
diff --git a/.brv/context-tree/facts/extracted/polish.md b/.brv/context-tree/facts/extracted/polish.md
new file mode 100644
index 0000000..2abdccf
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/polish.md
@@ -0,0 +1,24 @@
+---
+title: Polish
+summary: Extracted facts about polish
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.240Z'
+updatedAt: '2026-05-27T19:41:18.240Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under polish
+
+## Facts
+- **polish**: `polish [target]` is a Refine command that provides a final quality pass before shipping.
diff --git a/.brv/context-tree/facts/extracted/product_md.md b/.brv/context-tree/facts/extracted/product_md.md
new file mode 100644
index 0000000..bdf7f68
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/product_md.md
@@ -0,0 +1,25 @@
+---
+title: PRODUCT.md
+summary: Extracted facts about PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.125Z'
+updatedAt: '2026-05-27T19:41:18.125Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under PRODUCT.md
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
+- **PRODUCT.md**: If PRODUCT.md is missing, empty, or contains placeholder markers ([TODO] or less than 200 characters), run {{command_prefix}}impeccable teach.
diff --git a/.brv/context-tree/facts/extracted/punctuation.md b/.brv/context-tree/facts/extracted/punctuation.md
new file mode 100644
index 0000000..32ebda5
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/punctuation.md
@@ -0,0 +1,24 @@
+---
+title: Punctuation
+summary: Extracted facts about Punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.223Z'
+updatedAt: '2026-05-27T19:41:18.223Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Punctuation
+
+## Facts
+- **Punctuation**: Em dashes are not allowed; use commas, colons, semicolons, periods, or parentheses instead.
diff --git a/.brv/context-tree/facts/extracted/quieter.md b/.brv/context-tree/facts/extracted/quieter.md
new file mode 100644
index 0000000..c98d436
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/quieter.md
@@ -0,0 +1,24 @@
+---
+title: Quieter
+summary: Extracted facts about quieter
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.243Z'
+updatedAt: '2026-05-27T19:41:18.243Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under quieter
+
+## Facts
+- **quieter**: `quieter [target]` is a Refine command that tones down aggressive or overstimulating designs.
diff --git a/.brv/context-tree/facts/extracted/register_identification.md b/.brv/context-tree/facts/extracted/register_identification.md
new file mode 100644
index 0000000..7788c0f
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/register_identification.md
@@ -0,0 +1,24 @@
+---
+title: Register identification
+summary: Extracted facts about register identification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.140Z'
+updatedAt: '2026-05-27T19:41:18.140Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under register identification
+
+## Facts
+- **register identification**: Identify the register before designing, using priority: (1) cue in the task, (2) surface in focus, (3) register field in PRODUCT.md.
diff --git a/.brv/context-tree/facts/extracted/restrained_strategy.md b/.brv/context-tree/facts/extracted/restrained_strategy.md
new file mode 100644
index 0000000..165af09
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/restrained_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Restrained strategy
+summary: Extracted facts about Restrained strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.178Z'
+updatedAt: '2026-05-27T19:41:18.178Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Restrained strategy
+
+## Facts
+- **Restrained strategy**: Restrained strategy uses tinted neutrals plus one accent ≤10% of surface.
diff --git a/.brv/context-tree/facts/extracted/screenshots.md b/.brv/context-tree/facts/extracted/screenshots.md
new file mode 100644
index 0000000..1e08a58
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/screenshots.md
@@ -0,0 +1,24 @@
+---
+title: Screenshots
+summary: Extracted facts about Screenshots
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.285Z'
+updatedAt: '2026-05-27T19:41:18.285Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Screenshots
+
+## Facts
+- **Screenshots**: Screenshots captured: caplets-harden-desktop.png and caplets-harden-mobile.png.
diff --git a/.brv/context-tree/facts/extracted/shape.md b/.brv/context-tree/facts/extracted/shape.md
new file mode 100644
index 0000000..79244b8
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/shape.md
@@ -0,0 +1,24 @@
+---
+title: Shape
+summary: Extracted facts about shape
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.226Z'
+updatedAt: '2026-05-27T19:41:18.226Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under shape
+
+## Facts
+- **shape**: `shape [feature]` is a Build command that plans UX/UI before writing code.
diff --git a/.brv/context-tree/facts/extracted/side_stripe_borders.md b/.brv/context-tree/facts/extracted/side_stripe_borders.md
new file mode 100644
index 0000000..0fe0702
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/side_stripe_borders.md
@@ -0,0 +1,24 @@
+---
+title: Side‑stripe borders
+summary: Extracted facts about Side‑stripe borders
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.206Z'
+updatedAt: '2026-05-27T19:41:18.206Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Side‑stripe borders
+
+## Facts
+- **Side‑stripe borders**: Side‑stripe borders greater than 1 px as colored accents are prohibited.
diff --git a/.brv/context-tree/facts/extracted/spacing.md b/.brv/context-tree/facts/extracted/spacing.md
new file mode 100644
index 0000000..f3bebad
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/spacing.md
@@ -0,0 +1,24 @@
+---
+title: Spacing
+summary: Extracted facts about Spacing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.195Z'
+updatedAt: '2026-05-27T19:41:18.195Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Spacing
+
+## Facts
+- **Spacing**: Vary spacing for rhythm; same padding everywhere creates monotony.
diff --git a/.brv/context-tree/facts/extracted/teach.md b/.brv/context-tree/facts/extracted/teach.md
new file mode 100644
index 0000000..8440c92
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/teach.md
@@ -0,0 +1,24 @@
+---
+title: Teach
+summary: Extracted facts about teach
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.229Z'
+updatedAt: '2026-05-27T19:41:18.229Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under teach
+
+## Facts
+- **teach**: `teach` is a Build command that sets up PRODUCT.md and DESIGN.md context.
diff --git a/.brv/context-tree/facts/extracted/theme_selection.md b/.brv/context-tree/facts/extracted/theme_selection.md
new file mode 100644
index 0000000..d5eb1e4
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/theme_selection.md
@@ -0,0 +1,24 @@
+---
+title: Theme selection
+summary: Extracted facts about Theme selection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.190Z'
+updatedAt: '2026-05-27T19:41:18.190Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Theme selection
+
+## Facts
+- **Theme selection**: Dark vs. light theme is never a default; must be chosen based on physical scene description.
diff --git a/.brv/context-tree/facts/extracted/typecheck.md b/.brv/context-tree/facts/extracted/typecheck.md
new file mode 100644
index 0000000..8a1d556
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: Typecheck
+summary: Extracted facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.277Z'
+updatedAt: '2026-05-27T19:41:18.277Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under typecheck
+
+## Facts
+- **typecheck**: `pnpm --filter @caplets/landing typecheck` passed with 0 errors, 0 warnings, and 0 hints.
diff --git a/.brv/context-tree/facts/extracted/typeset.md b/.brv/context-tree/facts/extracted/typeset.md
new file mode 100644
index 0000000..085db43
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/typeset.md
@@ -0,0 +1,24 @@
+---
+title: Typeset
+summary: Extracted facts about typeset
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.256Z'
+updatedAt: '2026-05-27T19:41:18.256Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under typeset
+
+## Facts
+- **typeset**: `typeset [target]` is an Enhance command that improves typography hierarchy and fonts.
diff --git a/.brv/context-tree/facts/extracted/typographic_hierarchy.md b/.brv/context-tree/facts/extracted/typographic_hierarchy.md
new file mode 100644
index 0000000..c4a32ed
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/typographic_hierarchy.md
@@ -0,0 +1,24 @@
+---
+title: Typographic hierarchy
+summary: Extracted facts about Typographic hierarchy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.193Z'
+updatedAt: '2026-05-27T19:41:18.193Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Typographic hierarchy
+
+## Facts
+- **Typographic hierarchy**: Maintain hierarchy through scale and weight contrast with at least 1.25 ratio between steps.
diff --git a/.brv/context-tree/facts/extracted/unpin.md b/.brv/context-tree/facts/extracted/unpin.md
new file mode 100644
index 0000000..1548789
--- /dev/null
+++ b/.brv/context-tree/facts/extracted/unpin.md
@@ -0,0 +1,24 @@
+---
+title: Unpin
+summary: Extracted facts about Unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:41:18.273Z'
+updatedAt: '2026-05-27T19:41:18.273Z'
+---
+## Reason
+Curated extracted facts from RLM context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-27T19:41:18.110Z
+
+## Narrative
+### Structure
+Facts grouped under Unpin
+
+## Facts
+- **Unpin**: Unpin removes the shortcut created by Pin.
diff --git a/.brv/context-tree/facts/extracted_facts/adapt_command.md b/.brv/context-tree/facts/extracted_facts/adapt_command.md
new file mode 100644
index 0000000..7811abb
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/adapt_command.md
@@ -0,0 +1,24 @@
+---
+title: adapt command
+summary: Facts about adapt command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.617Z'
+updatedAt: '2026-05-28T14:20:02.617Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for adapt command
+
+## Facts
+- **adapt command**: `adapt [target]` adapts designs for different devices and screen sizes.
diff --git a/.brv/context-tree/facts/extracted_facts/animate_command.md b/.brv/context-tree/facts/extracted_facts/animate_command.md
new file mode 100644
index 0000000..a794901
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/animate_command.md
@@ -0,0 +1,24 @@
+---
+title: animate command
+summary: Facts about animate command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.607Z'
+updatedAt: '2026-05-28T14:20:02.607Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for animate command
+
+## Facts
+- **animate command**: `animate [target]` adds purposeful animations and motion.
diff --git a/.brv/context-tree/facts/extracted_facts/animation_constraints.md b/.brv/context-tree/facts/extracted_facts/animation_constraints.md
new file mode 100644
index 0000000..2c992b3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/animation_constraints.md
@@ -0,0 +1,24 @@
+---
+title: Animation constraints
+summary: Facts about Animation constraints
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.555Z'
+updatedAt: '2026-05-28T14:20:02.555Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Animation constraints
+
+## Facts
+- **Animation constraints**: Do not animate CSS layout properties.
diff --git a/.brv/context-tree/facts/extracted_facts/audit_command.md b/.brv/context-tree/facts/extracted_facts/audit_command.md
new file mode 100644
index 0000000..2825ef4
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/audit_command.md
@@ -0,0 +1,24 @@
+---
+title: audit command
+summary: Facts about audit command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.597Z'
+updatedAt: '2026-05-28T14:20:02.597Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for audit command
+
+## Facts
+- **audit command**: `audit [target]` conducts technical quality checks (a11y, perf, responsive).
diff --git a/.brv/context-tree/facts/extracted_facts/bolder_command.md b/.brv/context-tree/facts/extracted_facts/bolder_command.md
new file mode 100644
index 0000000..45d13ad
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/bolder_command.md
@@ -0,0 +1,24 @@
+---
+title: bolder command
+summary: Facts about bolder command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.600Z'
+updatedAt: '2026-05-28T14:20:02.600Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for bolder command
+
+## Facts
+- **bolder command**: `bolder [target]` amplifies safe or bland designs.
diff --git a/.brv/context-tree/facts/extracted_facts/border_usage.md b/.brv/context-tree/facts/extracted_facts/border_usage.md
new file mode 100644
index 0000000..e965b81
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/border_usage.md
@@ -0,0 +1,24 @@
+---
+title: Border usage
+summary: Facts about Border usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.557Z'
+updatedAt: '2026-05-28T14:20:02.557Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Border usage
+
+## Facts
+- **Border usage**: Side-stripe borders greater than 1px as colored accents are prohibited.
diff --git a/.brv/context-tree/facts/extracted_facts/browser.md b/.brv/context-tree/facts/extracted_facts/browser.md
new file mode 100644
index 0000000..98bfe93
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/browser.md
@@ -0,0 +1,24 @@
+---
+title: browser
+summary: Facts about browser
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.634Z'
+updatedAt: '2026-05-28T14:20:02.634Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for browser
+
+## Facts
+- **browser**: Browser at 390 × 844 with root font size forced to 200%: no horizontal overflow. [environment]
diff --git a/.brv/context-tree/facts/extracted_facts/browser_rendering.md b/.brv/context-tree/facts/extracted_facts/browser_rendering.md
new file mode 100644
index 0000000..208c8bb
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/browser_rendering.md
@@ -0,0 +1,24 @@
+---
+title: Browser rendering
+summary: Facts about Browser rendering
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.629Z'
+updatedAt: '2026-05-28T14:20:02.629Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Browser rendering
+
+## Facts
+- **Browser rendering**: Browser at `390 × 844` with root font size forced to `200%` shows no horizontal overflow.
diff --git a/.brv/context-tree/facts/extracted_facts/build.md b/.brv/context-tree/facts/extracted_facts/build.md
new file mode 100644
index 0000000..ff999e9
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/build.md
@@ -0,0 +1,24 @@
+---
+title: Build
+summary: Facts about Build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.633Z'
+updatedAt: '2026-05-28T14:20:02.633Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Build
+
+## Facts
+- **Build**: `pnpm --filter @caplets/landing build` passed.
diff --git a/.brv/context-tree/facts/extracted_facts/card_grid_design.md b/.brv/context-tree/facts/extracted_facts/card_grid_design.md
new file mode 100644
index 0000000..b06317a
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/card_grid_design.md
@@ -0,0 +1,24 @@
+---
+title: Card grid design
+summary: Facts about Card grid design
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.563Z'
+updatedAt: '2026-05-28T14:20:02.563Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Card grid design
+
+## Facts
+- **Card grid design**: Identical card grids with repeated icon, heading, and text are prohibited.
diff --git a/.brv/context-tree/facts/extracted_facts/card_usage.md b/.brv/context-tree/facts/extracted_facts/card_usage.md
new file mode 100644
index 0000000..a6ae224
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/card_usage.md
@@ -0,0 +1,24 @@
+---
+title: Card usage
+summary: Facts about Card usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.553Z'
+updatedAt: '2026-05-28T14:20:02.553Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Card usage
+
+## Facts
+- **Card usage**: Nested cards are always wrong.
diff --git a/.brv/context-tree/facts/extracted_facts/category_reflex_check.md b/.brv/context-tree/facts/extracted_facts/category_reflex_check.md
new file mode 100644
index 0000000..f0667ba
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/category_reflex_check.md
@@ -0,0 +1,24 @@
+---
+title: category-reflex check
+summary: Facts about category-reflex check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.579Z'
+updatedAt: '2026-05-28T14:20:02.579Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for category-reflex check
+
+## Facts
+- **category-reflex check**: Category-reflex check runs at two altitudes; the second one catches what the first one misses.
diff --git a/.brv/context-tree/facts/extracted_facts/clarify_command.md b/.brv/context-tree/facts/extracted_facts/clarify_command.md
new file mode 100644
index 0000000..224e6d4
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/clarify_command.md
@@ -0,0 +1,24 @@
+---
+title: clarify command
+summary: Facts about clarify command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.616Z'
+updatedAt: '2026-05-28T14:20:02.616Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for clarify command
+
+## Facts
+- **clarify command**: `clarify [target]` improves UX copy, labels, and error messages.
diff --git a/.brv/context-tree/facts/extracted_facts/color_model.md b/.brv/context-tree/facts/extracted_facts/color_model.md
new file mode 100644
index 0000000..1a9b6e6
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/color_model.md
@@ -0,0 +1,24 @@
+---
+title: Color model
+summary: Facts about Color model
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.515Z'
+updatedAt: '2026-05-28T14:20:02.515Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Color model
+
+## Facts
+- **Color model**: Use OKLCH for color.
diff --git a/.brv/context-tree/facts/extracted_facts/colorize_command.md b/.brv/context-tree/facts/extracted_facts/colorize_command.md
new file mode 100644
index 0000000..01648ef
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/colorize_command.md
@@ -0,0 +1,24 @@
+---
+title: colorize command
+summary: Facts about colorize command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.608Z'
+updatedAt: '2026-05-28T14:20:02.608Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for colorize command
+
+## Facts
+- **colorize command**: `colorize [target]` adds strategic color to monochromatic UIs.
diff --git a/.brv/context-tree/facts/extracted_facts/committed_strategy.md b/.brv/context-tree/facts/extracted_facts/committed_strategy.md
new file mode 100644
index 0000000..b538226
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/committed_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Committed strategy
+summary: Facts about Committed strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.533Z'
+updatedAt: '2026-05-28T14:20:02.533Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Committed strategy
+
+## Facts
+- **Committed strategy**: Committed color strategy uses one saturated color for 30–60% of surface.
diff --git a/.brv/context-tree/facts/extracted_facts/copywriting.md b/.brv/context-tree/facts/extracted_facts/copywriting.md
new file mode 100644
index 0000000..db92a40
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/copywriting.md
@@ -0,0 +1,24 @@
+---
+title: Copywriting
+summary: Facts about Copywriting
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.573Z'
+updatedAt: '2026-05-28T14:20:02.573Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Copywriting
+
+## Facts
+- **Copywriting**: Every word must earn its place; no restated headings or intros that repeat the title.
diff --git a/.brv/context-tree/facts/extracted_facts/craft_command.md b/.brv/context-tree/facts/extracted_facts/craft_command.md
new file mode 100644
index 0000000..e6fccf3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/craft_command.md
@@ -0,0 +1,24 @@
+---
+title: craft command
+summary: Facts about craft command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.580Z'
+updatedAt: '2026-05-28T14:20:02.580Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for craft command
+
+## Facts
+- **craft command**: `craft [feature]` shapes and then builds a feature end-to-end.
diff --git a/.brv/context-tree/facts/extracted_facts/critique_command.md b/.brv/context-tree/facts/extracted_facts/critique_command.md
new file mode 100644
index 0000000..ca764d2
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/critique_command.md
@@ -0,0 +1,24 @@
+---
+title: critique command
+summary: Facts about critique command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.594Z'
+updatedAt: '2026-05-28T14:20:02.594Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for critique command
+
+## Facts
+- **critique command**: `critique [target]` performs a UX design review with heuristic scoring.
diff --git a/.brv/context-tree/facts/extracted_facts/delight_command.md b/.brv/context-tree/facts/extracted_facts/delight_command.md
new file mode 100644
index 0000000..bcb7de2
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/delight_command.md
@@ -0,0 +1,24 @@
+---
+title: delight command
+summary: Facts about delight command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.612Z'
+updatedAt: '2026-05-28T14:20:02.612Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for delight command
+
+## Facts
+- **delight command**: `delight [target]` adds personality and memorable touches.
diff --git a/.brv/context-tree/facts/extracted_facts/design_md.md b/.brv/context-tree/facts/extracted_facts/design_md.md
new file mode 100644
index 0000000..0345e0a
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/design_md.md
@@ -0,0 +1,25 @@
+---
+title: DESIGN.md
+summary: Facts about DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.507Z'
+updatedAt: '2026-05-28T14:20:02.507Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for DESIGN.md
+
+## Facts
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
+- **DESIGN.md**: If DESIGN.md is missing, nudge the user once per session to run the document command and then proceed.
diff --git a/.brv/context-tree/facts/extracted_facts/design_task.md b/.brv/context-tree/facts/extracted_facts/design_task.md
new file mode 100644
index 0000000..c7a54a3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/design_task.md
@@ -0,0 +1,24 @@
+---
+title: design task
+summary: Facts about design task
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.509Z'
+updatedAt: '2026-05-28T14:20:02.509Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for design task
+
+## Facts
+- **design task**: Every design task is either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/facts/extracted_facts/distill_command.md b/.brv/context-tree/facts/extracted_facts/distill_command.md
new file mode 100644
index 0000000..e3da671
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/distill_command.md
@@ -0,0 +1,24 @@
+---
+title: distill command
+summary: Facts about distill command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.603Z'
+updatedAt: '2026-05-28T14:20:02.603Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for distill command
+
+## Facts
+- **distill command**: `distill [target]` strips to essence, removing complexity.
diff --git a/.brv/context-tree/facts/extracted_facts/document_command.md b/.brv/context-tree/facts/extracted_facts/document_command.md
new file mode 100644
index 0000000..430ad86
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/document_command.md
@@ -0,0 +1,24 @@
+---
+title: document command
+summary: Facts about document command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.589Z'
+updatedAt: '2026-05-28T14:20:02.589Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for document command
+
+## Facts
+- **document command**: `document` generates DESIGN.md from existing project code.
diff --git a/.brv/context-tree/facts/extracted_facts/drenched_strategy.md b/.brv/context-tree/facts/extracted_facts/drenched_strategy.md
new file mode 100644
index 0000000..5cee36b
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/drenched_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Drenched strategy
+summary: Facts about Drenched strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.540Z'
+updatedAt: '2026-05-28T14:20:02.540Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Drenched strategy
+
+## Facts
+- **Drenched strategy**: Drenched strategy makes the surface the color.
diff --git a/.brv/context-tree/facts/extracted_facts/easing_functions.md b/.brv/context-tree/facts/extracted_facts/easing_functions.md
new file mode 100644
index 0000000..ea3ce31
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/easing_functions.md
@@ -0,0 +1,24 @@
+---
+title: Easing functions
+summary: Facts about Easing functions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.556Z'
+updatedAt: '2026-05-28T14:20:02.556Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Easing functions
+
+## Facts
+- **Easing functions**: Use ease-out exponential curves (ease-out-quart, quint, expo) for motion.
diff --git a/.brv/context-tree/facts/extracted_facts/extract_command.md b/.brv/context-tree/facts/extracted_facts/extract_command.md
new file mode 100644
index 0000000..e81a7f1
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/extract_command.md
@@ -0,0 +1,24 @@
+---
+title: extract command
+summary: Facts about extract command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.591Z'
+updatedAt: '2026-05-28T14:20:02.591Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for extract command
+
+## Facts
+- **extract command**: `extract [target]` pulls reusable tokens and components into design system.
diff --git a/.brv/context-tree/facts/extracted_facts/full_palette_strategy.md b/.brv/context-tree/facts/extracted_facts/full_palette_strategy.md
new file mode 100644
index 0000000..53a7627
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/full_palette_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Full palette strategy
+summary: Facts about Full palette strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.538Z'
+updatedAt: '2026-05-28T14:20:02.538Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Full palette strategy
+
+## Facts
+- **Full palette strategy**: Full palette strategy uses 3–4 named roles deliberately.
diff --git a/.brv/context-tree/facts/extracted_facts/glassmorphism.md b/.brv/context-tree/facts/extracted_facts/glassmorphism.md
new file mode 100644
index 0000000..c580c78
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/glassmorphism.md
@@ -0,0 +1,24 @@
+---
+title: Glassmorphism
+summary: Facts about Glassmorphism
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.560Z'
+updatedAt: '2026-05-28T14:20:02.560Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Glassmorphism
+
+## Facts
+- **Glassmorphism**: Glassmorphism as default is prohibited.
diff --git a/.brv/context-tree/facts/extracted_facts/harden_command.md b/.brv/context-tree/facts/extracted_facts/harden_command.md
new file mode 100644
index 0000000..7e55969
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/harden_command.md
@@ -0,0 +1,24 @@
+---
+title: harden command
+summary: Facts about harden command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.604Z'
+updatedAt: '2026-05-28T14:20:02.604Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for harden command
+
+## Facts
+- **harden command**: `harden [target]` makes designs production-ready, handling errors, i18n, and edge cases.
diff --git a/.brv/context-tree/facts/extracted_facts/hero_metric_template.md b/.brv/context-tree/facts/extracted_facts/hero_metric_template.md
new file mode 100644
index 0000000..7b8a347
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/hero_metric_template.md
@@ -0,0 +1,24 @@
+---
+title: Hero metric template
+summary: Facts about Hero metric template
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.561Z'
+updatedAt: '2026-05-28T14:20:02.561Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Hero metric template
+
+## Facts
+- **Hero metric template**: The hero-metric template is prohibited as a SaaS cliché.
diff --git a/.brv/context-tree/facts/extracted_facts/hex_colors.md b/.brv/context-tree/facts/extracted_facts/hex_colors.md
new file mode 100644
index 0000000..f469c1f
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/hex_colors.md
@@ -0,0 +1,24 @@
+---
+title: Hex colors
+summary: Facts about Hex colors
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.518Z'
+updatedAt: '2026-05-28T14:20:02.518Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Hex colors
+
+## Facts
+- **Hex colors**: Never use #000 or #fff.
diff --git a/.brv/context-tree/facts/extracted_facts/install_copy.md b/.brv/context-tree/facts/extracted_facts/install_copy.md
new file mode 100644
index 0000000..1a0c851
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/install_copy.md
@@ -0,0 +1,24 @@
+---
+title: install-copy
+summary: Facts about install-copy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.628Z'
+updatedAt: '2026-05-28T14:20:02.628Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for install-copy
+
+## Facts
+- **install-copy**: Added `.install-copy { min-width: 0; }` so install copy and headings do not overflow at 200% text size.
diff --git a/.brv/context-tree/facts/extracted_facts/layout_command.md b/.brv/context-tree/facts/extracted_facts/layout_command.md
new file mode 100644
index 0000000..32472a5
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/layout_command.md
@@ -0,0 +1,24 @@
+---
+title: layout command
+summary: Facts about layout command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.611Z'
+updatedAt: '2026-05-28T14:20:02.611Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for layout command
+
+## Facts
+- **layout command**: `layout [target]` fixes spacing, rhythm, and visual hierarchy.
diff --git a/.brv/context-tree/facts/extracted_facts/line_length.md b/.brv/context-tree/facts/extracted_facts/line_length.md
new file mode 100644
index 0000000..65290be
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/line_length.md
@@ -0,0 +1,24 @@
+---
+title: Line length
+summary: Facts about Line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.546Z'
+updatedAt: '2026-05-28T14:20:02.546Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Line length
+
+## Facts
+- **Line length**: Cap body line length at 65–75 characters.
diff --git a/.brv/context-tree/facts/extracted_facts/live_command.md b/.brv/context-tree/facts/extracted_facts/live_command.md
new file mode 100644
index 0000000..fb7fdb2
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/live_command.md
@@ -0,0 +1,24 @@
+---
+title: live command
+summary: Facts about live command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.620Z'
+updatedAt: '2026-05-28T14:20:02.620Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for live command
+
+## Facts
+- **live command**: `live` enables visual variant mode: pick elements in the browser, generate alternatives.
diff --git a/.brv/context-tree/facts/extracted_facts/modal_usage.md b/.brv/context-tree/facts/extracted_facts/modal_usage.md
new file mode 100644
index 0000000..e2bc8d0
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/modal_usage.md
@@ -0,0 +1,24 @@
+---
+title: Modal usage
+summary: Facts about Modal usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.567Z'
+updatedAt: '2026-05-28T14:20:02.567Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Modal usage
+
+## Facts
+- **Modal usage**: Modals should not be the first design thought.
diff --git a/.brv/context-tree/facts/extracted_facts/neutral_tinting.md b/.brv/context-tree/facts/extracted_facts/neutral_tinting.md
new file mode 100644
index 0000000..d0612c1
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/neutral_tinting.md
@@ -0,0 +1,24 @@
+---
+title: Neutral tinting
+summary: Facts about Neutral tinting
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.526Z'
+updatedAt: '2026-05-28T14:20:02.526Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Neutral tinting
+
+## Facts
+- **Neutral tinting**: Tint every neutral toward the brand hue with chroma 0.005–0.01.
diff --git a/.brv/context-tree/facts/extracted_facts/onboard_command.md b/.brv/context-tree/facts/extracted_facts/onboard_command.md
new file mode 100644
index 0000000..11de771
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/onboard_command.md
@@ -0,0 +1,24 @@
+---
+title: onboard command
+summary: Facts about onboard command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.606Z'
+updatedAt: '2026-05-28T14:20:02.606Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for onboard command
+
+## Facts
+- **onboard command**: `onboard [target]` designs first-run flows, empty states, and activation.
diff --git a/.brv/context-tree/facts/extracted_facts/optimize_command.md b/.brv/context-tree/facts/extracted_facts/optimize_command.md
new file mode 100644
index 0000000..1a3e476
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/optimize_command.md
@@ -0,0 +1,24 @@
+---
+title: optimize command
+summary: Facts about optimize command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.618Z'
+updatedAt: '2026-05-28T14:20:02.618Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for optimize command
+
+## Facts
+- **optimize command**: `optimize [target]` diagnoses and fixes UI performance issues.
diff --git a/.brv/context-tree/facts/extracted_facts/overdrive_command.md b/.brv/context-tree/facts/extracted_facts/overdrive_command.md
new file mode 100644
index 0000000..7d0d2d3
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/overdrive_command.md
@@ -0,0 +1,24 @@
+---
+title: overdrive command
+summary: Facts about overdrive command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.614Z'
+updatedAt: '2026-05-28T14:20:02.614Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for overdrive command
+
+## Facts
+- **overdrive command**: `overdrive [target]` pushes past conventional limits.
diff --git a/.brv/context-tree/facts/extracted_facts/pin.md b/.brv/context-tree/facts/extracted_facts/pin.md
new file mode 100644
index 0000000..2d898ec
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/pin.md
@@ -0,0 +1,24 @@
+---
+title: Pin
+summary: Facts about Pin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.622Z'
+updatedAt: '2026-05-28T14:20:02.622Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Pin
+
+## Facts
+- **Pin**: Pin creates a standalone shortcut so `{{command_prefix}}` invokes `{{command_prefix}}impeccable ` directly.
diff --git a/.brv/context-tree/facts/extracted_facts/pin_unpin_commands.md b/.brv/context-tree/facts/extracted_facts/pin_unpin_commands.md
new file mode 100644
index 0000000..eca6555
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/pin_unpin_commands.md
@@ -0,0 +1,24 @@
+---
+title: pin/unpin commands
+summary: Facts about pin/unpin commands
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.621Z'
+updatedAt: '2026-05-28T14:20:02.621Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for pin/unpin commands
+
+## Facts
+- **pin/unpin commands**: Two management commands exist: `pin ` and `unpin `.
diff --git a/.brv/context-tree/facts/extracted_facts/pin_unpin_script.md b/.brv/context-tree/facts/extracted_facts/pin_unpin_script.md
new file mode 100644
index 0000000..5f2da70
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/pin_unpin_script.md
@@ -0,0 +1,24 @@
+---
+title: Pin/Unpin script
+summary: Facts about Pin/Unpin script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.625Z'
+updatedAt: '2026-05-28T14:20:02.625Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Pin/Unpin script
+
+## Facts
+- **Pin/Unpin script**: The script writes to every harness directory present in the project.
diff --git a/.brv/context-tree/facts/extracted_facts/pnpm.md b/.brv/context-tree/facts/extracted_facts/pnpm.md
new file mode 100644
index 0000000..d743ea8
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/pnpm.md
@@ -0,0 +1,25 @@
+---
+title: pnpm
+summary: Facts about pnpm
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.635Z'
+updatedAt: '2026-05-28T14:20:02.635Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for pnpm
+
+## Facts
+- **pnpm**: pnpm --filter @caplets/landing typecheck passed.
+- **pnpm**: pnpm --filter @caplets/landing build passed.
diff --git a/.brv/context-tree/facts/extracted_facts/polish_command.md b/.brv/context-tree/facts/extracted_facts/polish_command.md
new file mode 100644
index 0000000..45a4405
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/polish_command.md
@@ -0,0 +1,24 @@
+---
+title: polish command
+summary: Facts about polish command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.598Z'
+updatedAt: '2026-05-28T14:20:02.598Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for polish command
+
+## Facts
+- **polish command**: `polish [target]` provides a final quality pass before shipping.
diff --git a/.brv/context-tree/facts/extracted_facts/product_md.md b/.brv/context-tree/facts/extracted_facts/product_md.md
new file mode 100644
index 0000000..b70c300
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/product_md.md
@@ -0,0 +1,25 @@
+---
+title: PRODUCT.md
+summary: Facts about PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.504Z'
+updatedAt: '2026-05-28T14:20:02.504Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for PRODUCT.md
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
+- **PRODUCT.md**: If PRODUCT.md is missing, empty, or placeholder ([TODO] markers, <200 chars), run the teach command and then resume the original task.
diff --git a/.brv/context-tree/facts/extracted_facts/punctuation.md b/.brv/context-tree/facts/extracted_facts/punctuation.md
new file mode 100644
index 0000000..5ab9e3b
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/punctuation.md
@@ -0,0 +1,24 @@
+---
+title: Punctuation
+summary: Facts about Punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.575Z'
+updatedAt: '2026-05-28T14:20:02.575Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Punctuation
+
+## Facts
+- **Punctuation**: Em dashes are prohibited; use commas, colons, semicolons, periods, or parentheses instead.
diff --git a/.brv/context-tree/facts/extracted_facts/quieter_command.md b/.brv/context-tree/facts/extracted_facts/quieter_command.md
new file mode 100644
index 0000000..ee2ef5b
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/quieter_command.md
@@ -0,0 +1,24 @@
+---
+title: quieter command
+summary: Facts about quieter command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.602Z'
+updatedAt: '2026-05-28T14:20:02.602Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for quieter command
+
+## Facts
+- **quieter command**: `quieter [target]` tones down aggressive or overstimulating designs.
diff --git a/.brv/context-tree/facts/extracted_facts/register_failures.md b/.brv/context-tree/facts/extracted_facts/register_failures.md
new file mode 100644
index 0000000..a74530b
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/register_failures.md
@@ -0,0 +1,24 @@
+---
+title: register failures
+summary: Facts about register failures
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.576Z'
+updatedAt: '2026-05-28T14:20:02.576Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for register failures
+
+## Facts
+- **register failures**: Register failures are the absolute bans above.
diff --git a/.brv/context-tree/facts/extracted_facts/register_identification.md b/.brv/context-tree/facts/extracted_facts/register_identification.md
new file mode 100644
index 0000000..a74e8e0
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/register_identification.md
@@ -0,0 +1,24 @@
+---
+title: register identification
+summary: Facts about register identification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.514Z'
+updatedAt: '2026-05-28T14:20:02.514Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for register identification
+
+## Facts
+- **register identification**: Identify the register before designing, using priority: cue in the task, surface in focus, then register field in PRODUCT.md.
diff --git a/.brv/context-tree/facts/extracted_facts/register_specific_failures.md b/.brv/context-tree/facts/extracted_facts/register_specific_failures.md
new file mode 100644
index 0000000..04d6434
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/register_specific_failures.md
@@ -0,0 +1,24 @@
+---
+title: register-specific failures
+summary: Facts about register-specific failures
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.577Z'
+updatedAt: '2026-05-28T14:20:02.577Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for register-specific failures
+
+## Facts
+- **register-specific failures**: Register-specific failures live in each reference.
diff --git a/.brv/context-tree/facts/extracted_facts/restrained_strategy.md b/.brv/context-tree/facts/extracted_facts/restrained_strategy.md
new file mode 100644
index 0000000..2963f47
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/restrained_strategy.md
@@ -0,0 +1,24 @@
+---
+title: Restrained strategy
+summary: Facts about Restrained strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.527Z'
+updatedAt: '2026-05-28T14:20:02.527Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Restrained strategy
+
+## Facts
+- **Restrained strategy**: Restrained color strategy uses tinted neutrals plus one accent ≤10% of surface.
diff --git a/.brv/context-tree/facts/extracted_facts/section_heading.md b/.brv/context-tree/facts/extracted_facts/section_heading.md
new file mode 100644
index 0000000..883ec70
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/section_heading.md
@@ -0,0 +1,24 @@
+---
+title: section-heading
+summary: Facts about section-heading
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.627Z'
+updatedAt: '2026-05-28T14:20:02.627Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for section-heading
+
+## Facts
+- **section-heading**: Added `min-width: 0` to direct `.section-heading` children so long or enlarged section notes/headings can shrink inside grid columns.
diff --git a/.brv/context-tree/facts/extracted_facts/shape_command.md b/.brv/context-tree/facts/extracted_facts/shape_command.md
new file mode 100644
index 0000000..533a3ae
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/shape_command.md
@@ -0,0 +1,24 @@
+---
+title: shape command
+summary: Facts about shape command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.582Z'
+updatedAt: '2026-05-28T14:20:02.582Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for shape command
+
+## Facts
+- **shape command**: `shape [feature]` plans UX/UI before writing code.
diff --git a/.brv/context-tree/facts/extracted_facts/spacing.md b/.brv/context-tree/facts/extracted_facts/spacing.md
new file mode 100644
index 0000000..a8bd4ce
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/spacing.md
@@ -0,0 +1,24 @@
+---
+title: Spacing
+summary: Facts about Spacing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.552Z'
+updatedAt: '2026-05-28T14:20:02.552Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Spacing
+
+## Facts
+- **Spacing**: Vary spacing for rhythm; same padding everywhere creates monotony.
diff --git a/.brv/context-tree/facts/extracted_facts/teach_command.md b/.brv/context-tree/facts/extracted_facts/teach_command.md
new file mode 100644
index 0000000..fa7a572
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/teach_command.md
@@ -0,0 +1,24 @@
+---
+title: teach command
+summary: Facts about teach command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.584Z'
+updatedAt: '2026-05-28T14:20:02.584Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for teach command
+
+## Facts
+- **teach command**: `teach` sets up PRODUCT.md and DESIGN.md context.
diff --git a/.brv/context-tree/facts/extracted_facts/text_styling.md b/.brv/context-tree/facts/extracted_facts/text_styling.md
new file mode 100644
index 0000000..73e2142
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/text_styling.md
@@ -0,0 +1,24 @@
+---
+title: Text styling
+summary: Facts about Text styling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.559Z'
+updatedAt: '2026-05-28T14:20:02.559Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Text styling
+
+## Facts
+- **Text styling**: Gradient text using background-clip: text is prohibited.
diff --git a/.brv/context-tree/facts/extracted_facts/theme_selection.md b/.brv/context-tree/facts/extracted_facts/theme_selection.md
new file mode 100644
index 0000000..9164ecd
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/theme_selection.md
@@ -0,0 +1,24 @@
+---
+title: Theme selection
+summary: Facts about Theme selection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.542Z'
+updatedAt: '2026-05-28T14:20:02.542Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Theme selection
+
+## Facts
+- **Theme selection**: Dark vs. light mode should not be chosen by default.
diff --git a/.brv/context-tree/facts/extracted_facts/typecheck.md b/.brv/context-tree/facts/extracted_facts/typecheck.md
new file mode 100644
index 0000000..31f1728
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: Typecheck
+summary: Facts about Typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.631Z'
+updatedAt: '2026-05-28T14:20:02.631Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Typecheck
+
+## Facts
+- **Typecheck**: `pnpm --filter @caplets/landing typecheck` passed.
diff --git a/.brv/context-tree/facts/extracted_facts/typeset_command.md b/.brv/context-tree/facts/extracted_facts/typeset_command.md
new file mode 100644
index 0000000..d1fa3a8
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/typeset_command.md
@@ -0,0 +1,24 @@
+---
+title: typeset command
+summary: Facts about typeset command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.610Z'
+updatedAt: '2026-05-28T14:20:02.610Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for typeset command
+
+## Facts
+- **typeset command**: `typeset [target]` improves typography hierarchy and fonts.
diff --git a/.brv/context-tree/facts/extracted_facts/typographic_hierarchy.md b/.brv/context-tree/facts/extracted_facts/typographic_hierarchy.md
new file mode 100644
index 0000000..5c0847b
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/typographic_hierarchy.md
@@ -0,0 +1,24 @@
+---
+title: Typographic hierarchy
+summary: Facts about Typographic hierarchy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.548Z'
+updatedAt: '2026-05-28T14:20:02.548Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.494Z
+
+## Narrative
+### Structure
+Collection of facts for Typographic hierarchy
+
+## Facts
+- **Typographic hierarchy**: Maintain a hierarchy through scale and weight contrast with at least a 1.25 ratio between steps.
diff --git a/.brv/context-tree/facts/extracted_facts/unpin.md b/.brv/context-tree/facts/extracted_facts/unpin.md
new file mode 100644
index 0000000..0dd6997
--- /dev/null
+++ b/.brv/context-tree/facts/extracted_facts/unpin.md
@@ -0,0 +1,24 @@
+---
+title: Unpin
+summary: Facts about Unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:20:02.624Z'
+updatedAt: '2026-05-28T14:20:02.624Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:20:02.495Z
+
+## Narrative
+### Structure
+Collection of facts for Unpin
+
+## Facts
+- **Unpin**: Unpin removes the shortcut created by Pin.
diff --git a/.brv/context-tree/facts/project/accessibility.md b/.brv/context-tree/facts/project/accessibility.md
new file mode 100644
index 0000000..12dfc2b
--- /dev/null
+++ b/.brv/context-tree/facts/project/accessibility.md
@@ -0,0 +1,21 @@
+---
+title: Accessibility
+summary: Facts about accessibility
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.535Z'
+updatedAt: '2026-05-28T11:17:59.535Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about accessibility
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **accessibility**: Accessibility score is 4/4.
+- **accessibility**: Skip link, landmark structure, labeled sections, icon link labels, keyboard tab behavior, visible focus, reduced motion, and non-color-only status cues are present.
diff --git a/.brv/context-tree/facts/project/adapt.md b/.brv/context-tree/facts/project/adapt.md
new file mode 100644
index 0000000..8905c0d
--- /dev/null
+++ b/.brv/context-tree/facts/project/adapt.md
@@ -0,0 +1,24 @@
+---
+title: Adapt
+summary: Facts about adapt
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.747Z'
+updatedAt: '2026-05-27T18:47:50.747Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for adapt
+
+## Facts
+- **adapt**: `adapt [target]` is a Fix command that adapts designs for different devices and screen sizes.
diff --git a/.brv/context-tree/facts/project/adapt_target_facts.md b/.brv/context-tree/facts/project/adapt_target_facts.md
new file mode 100644
index 0000000..d1da1e3
--- /dev/null
+++ b/.brv/context-tree/facts/project/adapt_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`adapt [target]` facts'
+summary: Facts about `adapt [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.753Z'
+updatedAt: '2026-05-27T19:11:54.753Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `adapt [target]`
+
+## Facts
+- **`adapt [target]`**: The command `adapt [target]` belongs to the Fix category and adapts designs for different devices and screen sizes.
diff --git a/.brv/context-tree/facts/project/ai_generation_likelihood.md b/.brv/context-tree/facts/project/ai_generation_likelihood.md
new file mode 100644
index 0000000..3fd87ee
--- /dev/null
+++ b/.brv/context-tree/facts/project/ai_generation_likelihood.md
@@ -0,0 +1,24 @@
+---
+title: AI-generation likelihood
+summary: Facts about AI-generation likelihood
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.174Z'
+updatedAt: '2026-05-28T09:45:49.174Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for AI-generation likelihood
+
+## Facts
+- **AI-generation likelihood**: It does not look immediately AI-generated.
diff --git a/.brv/context-tree/facts/project/ai_slop.md b/.brv/context-tree/facts/project/ai_slop.md
new file mode 100644
index 0000000..ea6c6d5
--- /dev/null
+++ b/.brv/context-tree/facts/project/ai_slop.md
@@ -0,0 +1,24 @@
+---
+title: AI slop
+summary: Facts about AI slop
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.150Z'
+updatedAt: '2026-05-28T09:45:49.150Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for AI slop
+
+## Facts
+- **AI slop**: AI slop detection checks for AI color palette, gradient text, dark glows, glassmorphism, hero metric layouts, identical card grids, generic fonts, and other tells.
diff --git a/.brv/context-tree/facts/project/alchemy.md b/.brv/context-tree/facts/project/alchemy.md
new file mode 100644
index 0000000..2943d09
--- /dev/null
+++ b/.brv/context-tree/facts/project/alchemy.md
@@ -0,0 +1,22 @@
+---
+title: Alchemy
+summary: Facts about Alchemy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.570Z'
+updatedAt: '2026-05-28T10:53:51.570Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Alchemy
+
+**Timestamp:** 2026-05-28T10:53:51.568Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Alchemy**: Alchemy version is v0.93.9
diff --git a/.brv/context-tree/facts/project/alchemy_cli_process_behavior.md b/.brv/context-tree/facts/project/alchemy_cli_process_behavior.md
new file mode 100644
index 0000000..c35812c
--- /dev/null
+++ b/.brv/context-tree/facts/project/alchemy_cli_process_behavior.md
@@ -0,0 +1,20 @@
+---
+title: Alchemy CLI process behavior
+summary: Facts about Alchemy CLI process behavior
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.138Z'
+updatedAt: '2026-05-28T11:56:15.138Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.126Z
+
+## Facts
+- **Alchemy CLI process behavior**: The shim was loaded in the parent Alchemy CLI, but Alchemy spawns a child process to evaluate `alchemy.run.ts`; the child was not inheriting the `--import` preload.
diff --git a/.brv/context-tree/facts/project/animate.md b/.brv/context-tree/facts/project/animate.md
new file mode 100644
index 0000000..158469f
--- /dev/null
+++ b/.brv/context-tree/facts/project/animate.md
@@ -0,0 +1,24 @@
+---
+title: Animate
+summary: Facts about animate
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.704Z'
+updatedAt: '2026-05-27T18:47:50.704Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for animate
+
+## Facts
+- **animate**: `animate [target]` is an Enhance command that adds purposeful animations and motion.
diff --git a/.brv/context-tree/facts/project/animate_target_facts.md b/.brv/context-tree/facts/project/animate_target_facts.md
new file mode 100644
index 0000000..c275c43
--- /dev/null
+++ b/.brv/context-tree/facts/project/animate_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`animate [target]` facts'
+summary: Facts about `animate [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.738Z'
+updatedAt: '2026-05-27T19:11:54.738Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `animate [target]`
+
+## Facts
+- **`animate [target]`**: The command `animate [target]` belongs to the Enhance category and adds purposeful animations and motion.
diff --git a/.brv/context-tree/facts/project/animation_facts.md b/.brv/context-tree/facts/project/animation_facts.md
new file mode 100644
index 0000000..706f5a3
--- /dev/null
+++ b/.brv/context-tree/facts/project/animation_facts.md
@@ -0,0 +1,24 @@
+---
+title: Animation facts
+summary: Facts about animation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.702Z'
+updatedAt: '2026-05-27T19:11:54.703Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for animation
+
+## Facts
+- **animation**: Do not animate CSS layout properties.
diff --git a/.brv/context-tree/facts/project/apps_landing_src_pages_index_astro.md b/.brv/context-tree/facts/project/apps_landing_src_pages_index_astro.md
new file mode 100644
index 0000000..0305d05
--- /dev/null
+++ b/.brv/context-tree/facts/project/apps_landing_src_pages_index_astro.md
@@ -0,0 +1,27 @@
+---
+title: apps/landing/src/pages/index.astro
+summary: Facts about apps/landing/src/pages/index.astro
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.350Z'
+updatedAt: '2026-05-28T13:51:08.350Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about apps/landing/src/pages/index.astro
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for apps/landing/src/pages/index.astro
+
+### Highlights
+Changed files: apps/landing/src/pages/index.astro
+
+## Facts
+- **apps/landing/src/pages/index.astro**: Changed files: apps/landing/src/pages/index.astro
diff --git a/.brv/context-tree/facts/project/assessment_a.md b/.brv/context-tree/facts/project/assessment_a.md
new file mode 100644
index 0000000..0466f8e
--- /dev/null
+++ b/.brv/context-tree/facts/project/assessment_a.md
@@ -0,0 +1,24 @@
+---
+title: Assessment A
+summary: Facts about Assessment A
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.149Z'
+updatedAt: '2026-05-28T09:45:49.149Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Assessment A
+
+## Facts
+- **Assessment A**: Assessment A is an LLM Design Review that evaluates AI slop detection, holistic design, cognitive load, emotional journey, and Nielsen's heuristics.
diff --git a/.brv/context-tree/facts/project/assessment_b.md b/.brv/context-tree/facts/project/assessment_b.md
new file mode 100644
index 0000000..8b48350
--- /dev/null
+++ b/.brv/context-tree/facts/project/assessment_b.md
@@ -0,0 +1,24 @@
+---
+title: Assessment B
+summary: Facts about Assessment B
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.154Z'
+updatedAt: '2026-05-28T09:45:49.154Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Assessment B
+
+## Facts
+- **Assessment B**: Assessment B runs the deterministic detector via the CLI command "npx impeccable --json [--fast] [target]".
diff --git a/.brv/context-tree/facts/project/assessment_execution.md b/.brv/context-tree/facts/project/assessment_execution.md
new file mode 100644
index 0000000..9d1fdc0
--- /dev/null
+++ b/.brv/context-tree/facts/project/assessment_execution.md
@@ -0,0 +1,24 @@
+---
+title: Assessment execution
+summary: Facts about assessment execution
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.144Z'
+updatedAt: '2026-05-28T09:45:49.144Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for assessment execution
+
+## Facts
+- **assessment execution**: If sub‑agents are unavailable, the assessments should be performed sequentially with findings written to internal notes.
diff --git a/.brv/context-tree/facts/project/audit.md b/.brv/context-tree/facts/project/audit.md
new file mode 100644
index 0000000..5aaa467
--- /dev/null
+++ b/.brv/context-tree/facts/project/audit.md
@@ -0,0 +1,24 @@
+---
+title: Audit
+summary: Facts about audit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.671Z'
+updatedAt: '2026-05-27T18:47:50.671Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for audit
+
+## Facts
+- **audit**: `audit [target]` is an Evaluate command that conducts technical quality checks (a11y, perf, responsive).
diff --git a/.brv/context-tree/facts/project/audit_target_facts.md b/.brv/context-tree/facts/project/audit_target_facts.md
new file mode 100644
index 0000000..55674df
--- /dev/null
+++ b/.brv/context-tree/facts/project/audit_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`audit [target]` facts'
+summary: Facts about `audit [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.721Z'
+updatedAt: '2026-05-27T19:11:54.721Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `audit [target]`
+
+## Facts
+- **`audit [target]`**: The command `audit [target]` belongs to the Evaluate category and conducts technical quality checks such as accessibility, performance, and responsiveness.
diff --git a/.brv/context-tree/facts/project/background_map_usage.md b/.brv/context-tree/facts/project/background_map_usage.md
new file mode 100644
index 0000000..d94b964
--- /dev/null
+++ b/.brv/context-tree/facts/project/background_map_usage.md
@@ -0,0 +1,24 @@
+---
+title: Background map usage
+summary: Facts about background map usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:50:25.725Z'
+updatedAt: '2026-05-28T09:50:25.725Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:50:25.672Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for background map usage
+
+## Facts
+- **background map usage**: The current map can remain as a quieter background motif but should no longer be the main element users decode.
diff --git a/.brv/context-tree/facts/project/blocker.md b/.brv/context-tree/facts/project/blocker.md
new file mode 100644
index 0000000..366f4d7
--- /dev/null
+++ b/.brv/context-tree/facts/project/blocker.md
@@ -0,0 +1,20 @@
+---
+title: Blocker
+summary: Facts about blocker
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.562Z'
+updatedAt: '2026-05-28T11:17:59.562Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about blocker
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **blocker**: Blocker: None.
diff --git a/.brv/context-tree/facts/project/bolder.md b/.brv/context-tree/facts/project/bolder.md
new file mode 100644
index 0000000..c11fec0
--- /dev/null
+++ b/.brv/context-tree/facts/project/bolder.md
@@ -0,0 +1,24 @@
+---
+title: Bolder
+summary: Facts about bolder
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.691Z'
+updatedAt: '2026-05-27T18:47:50.691Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for bolder
+
+## Facts
+- **bolder**: `bolder [target]` is a Refine command that amplifies safe or bland designs.
diff --git a/.brv/context-tree/facts/project/bolder_target_facts.md b/.brv/context-tree/facts/project/bolder_target_facts.md
new file mode 100644
index 0000000..c44850a
--- /dev/null
+++ b/.brv/context-tree/facts/project/bolder_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`bolder [target]` facts'
+summary: Facts about `bolder [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.725Z'
+updatedAt: '2026-05-27T19:11:54.726Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `bolder [target]`
+
+## Facts
+- **`bolder [target]`**: The command `bolder [target]` belongs to the Refine category and amplifies safe or bland designs.
diff --git a/.brv/context-tree/facts/project/border_style.md b/.brv/context-tree/facts/project/border_style.md
new file mode 100644
index 0000000..c1b7ef0
--- /dev/null
+++ b/.brv/context-tree/facts/project/border_style.md
@@ -0,0 +1,24 @@
+---
+title: Border style
+summary: Facts about border style
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.617Z'
+updatedAt: '2026-05-27T18:47:50.617Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for border style
+
+## Facts
+- **border style**: Side‑stripe borders (`border-left` or `border-right`) greater than 1 px as a colored accent are banned.
diff --git a/.brv/context-tree/facts/project/border_style_facts.md b/.brv/context-tree/facts/project/border_style_facts.md
new file mode 100644
index 0000000..d4aeeb8
--- /dev/null
+++ b/.brv/context-tree/facts/project/border_style_facts.md
@@ -0,0 +1,24 @@
+---
+title: Border style facts
+summary: Facts about border style
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.676Z'
+updatedAt: '2026-05-27T19:11:54.676Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for border style
+
+## Facts
+- **border style**: Side-stripe borders greater than 1px as a colored accent are prohibited.
diff --git a/.brv/context-tree/facts/project/borders.md b/.brv/context-tree/facts/project/borders.md
new file mode 100644
index 0000000..0174c2c
--- /dev/null
+++ b/.brv/context-tree/facts/project/borders.md
@@ -0,0 +1,27 @@
+---
+title: Borders
+summary: Facts about borders
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.154Z'
+updatedAt: '2026-05-27T19:18:57.154Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **borders**: Side-stripe borders greater than 1px as a colored accent are banned.
diff --git a/.brv/context-tree/facts/project/brand_mark.md b/.brv/context-tree/facts/project/brand_mark.md
new file mode 100644
index 0000000..3aa69e9
--- /dev/null
+++ b/.brv/context-tree/facts/project/brand_mark.md
@@ -0,0 +1,27 @@
+---
+title: .brand-mark
+summary: Facts about .brand-mark
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.012Z'
+updatedAt: '2026-05-28T13:40:49.012Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **.brand-mark**: Mobile header targets meet 44px sizing without adding unnecessary visual bulk: `.brand-mark` is 44px minimum with compact 30px icon and hidden text, safe because markup has `aria-label="Caplets home"`.
diff --git a/.brv/context-tree/facts/project/brand_register.md b/.brv/context-tree/facts/project/brand_register.md
new file mode 100644
index 0000000..bdd77ae
--- /dev/null
+++ b/.brv/context-tree/facts/project/brand_register.md
@@ -0,0 +1,24 @@
+---
+title: Brand register
+summary: Facts about brand register
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.646Z'
+updatedAt: '2026-05-27T18:47:50.646Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for brand register
+
+## Facts
+- **brand register**: The brand register's reflex-reject aesthetic lanes list catches the currently-saturated families.
diff --git a/.brv/context-tree/facts/project/browser.md b/.brv/context-tree/facts/project/browser.md
new file mode 100644
index 0000000..e7d8aee
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser.md
@@ -0,0 +1,24 @@
+---
+title: Browser
+summary: Facts about browser
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.377Z'
+updatedAt: '2026-05-28T09:45:49.178Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for browser
+
+## Facts
+- **browser**: Browser overlay was not
diff --git a/.brv/context-tree/facts/project/browser_check.md b/.brv/context-tree/facts/project/browser_check.md
new file mode 100644
index 0000000..f1f5348
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_check.md
@@ -0,0 +1,27 @@
+---
+title: Browser check
+summary: Facts about browser check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.186Z'
+updatedAt: '2026-05-27T19:18:57.186Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **browser check**: Browser preview and console showed 0 errors and 0 warnings after the animation changes.
diff --git a/.brv/context-tree/facts/project/browser_console.md b/.brv/context-tree/facts/project/browser_console.md
new file mode 100644
index 0000000..1f171c7
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_console.md
@@ -0,0 +1,27 @@
+---
+title: Browser console
+summary: Facts about browser console
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.213Z'
+updatedAt: '2026-05-27T19:18:57.213Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **browser console**: Browser console checked, 0 errors and 0 warnings.
diff --git a/.brv/context-tree/facts/project/browser_facts.md b/.brv/context-tree/facts/project/browser_facts.md
new file mode 100644
index 0000000..b0d45be
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_facts.md
@@ -0,0 +1,25 @@
+---
+title: Browser facts
+summary: Facts about browser
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.775Z'
+updatedAt: '2026-05-27T19:11:54.775Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 2 facts for browser
+
+## Facts
+- **browser**: Browser preview checked desktop and mobile.
+- **browser**: Browser console checked, 0 errors and 0 warnings.
diff --git a/.brv/context-tree/facts/project/browser_preview.md b/.brv/context-tree/facts/project/browser_preview.md
new file mode 100644
index 0000000..3c29b4a
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_preview.md
@@ -0,0 +1,27 @@
+---
+title: Browser preview
+summary: Facts about browser preview
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.189Z'
+updatedAt: '2026-05-27T19:18:57.189Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **browser preview**: Browser preview checked.
diff --git a/.brv/context-tree/facts/project/browser_preview_facts.md b/.brv/context-tree/facts/project/browser_preview_facts.md
new file mode 100644
index 0000000..d924e63
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_preview_facts.md
@@ -0,0 +1,24 @@
+---
+title: Browser preview facts
+summary: Facts about Browser preview
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.773Z'
+updatedAt: '2026-05-27T19:11:54.773Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Browser preview
+
+## Facts
+- **Browser preview**: Browser preview showed no errors or warnings in the console for both desktop and mobile views.
diff --git a/.brv/context-tree/facts/project/browser_visualization.md b/.brv/context-tree/facts/project/browser_visualization.md
new file mode 100644
index 0000000..4fa87c5
--- /dev/null
+++ b/.brv/context-tree/facts/project/browser_visualization.md
@@ -0,0 +1,24 @@
+---
+title: Browser visualization
+summary: Facts about browser visualization
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.157Z'
+updatedAt: '2026-05-28T09:45:49.157Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for browser visualization
+
+## Facts
+- **browser visualization**: When using browser visualization, the live detection server is started with "npx impeccable live &" and stopped with "npx impeccable live stop".
diff --git a/.brv/context-tree/facts/project/build.md b/.brv/context-tree/facts/project/build.md
new file mode 100644
index 0000000..54e0849
--- /dev/null
+++ b/.brv/context-tree/facts/project/build.md
@@ -0,0 +1,27 @@
+---
+title: Build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.352Z'
+updatedAt: '2026-05-28T13:55:17.314Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Structure
+Collected facts for build
+
+### Highlights
+Extracted 1 facts for build
+
+## Facts
+- **build**: pnpm --filter @caplets/landing build passed, building 1 page successfully.
diff --git a/.brv/context-tree/facts/project/build_facts.md b/.brv/context-tree/facts/project/build_facts.md
new file mode 100644
index 0000000..1fb81c4
--- /dev/null
+++ b/.brv/context-tree/facts/project/build_facts.md
@@ -0,0 +1,24 @@
+---
+title: Build facts
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:23.989Z'
+updatedAt: '2026-05-28T10:14:23.989Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for build
+
+## Facts
+- **build**: `pnpm --filter @caplets/landing build` PASS.
diff --git a/.brv/context-tree/facts/project/caplets.md b/.brv/context-tree/facts/project/caplets.md
new file mode 100644
index 0000000..12b5318
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets.md
@@ -0,0 +1,20 @@
+---
+title: Caplets
+summary: Facts about Caplets
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.543Z'
+updatedAt: '2026-05-28T11:17:59.543Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about Caplets
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **Caplets**: Caplets uses a warm light palette, restrained ember accents, and mono for machine-facing text, aligning with PRODUCT/DESIGN direction.
diff --git a/.brv/context-tree/facts/project/caplets_dark_contrast_fixed_png.md b/.brv/context-tree/facts/project/caplets_dark_contrast_fixed_png.md
new file mode 100644
index 0000000..108d7dc
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets_dark_contrast_fixed_png.md
@@ -0,0 +1,24 @@
+---
+title: Caplets-dark-contrast-fixed.png
+summary: Facts about caplets-dark-contrast-fixed.png
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.378Z'
+updatedAt: '2026-05-27T18:59:51.378Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for caplets-dark-contrast-fixed.png
+
+## Facts
+- **caplets-dark-contrast-fixed.png**: Screenshot caplets-dark-contrast-fixed.png captured.
diff --git a/.brv/context-tree/facts/project/caplets_github_action_run.md b/.brv/context-tree/facts/project/caplets_github_action_run.md
new file mode 100644
index 0000000..24569fb
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets_github_action_run.md
@@ -0,0 +1,29 @@
+---
+title: caplets_github_action_run
+summary: Link to specific GitHub Actions run for caplets CI
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T12:17:08.199Z'
+updatedAt: '2026-05-28T12:17:08.199Z'
+---
+## Reason
+Record CI run link for caplets repository
+
+## Raw Concept
+**Task:**
+Record CI run reference
+
+**Changes:**
+- Added CI run link
+
+**Timestamp:** 2026-05-28T12:17:08.198Z
+
+**Author:** ByteRover Context Engineer
+
+## Narrative
+### Highlights
+GitHub Actions run URL: https://github.com/spiritledsoftware/caplets/actions/runs/26572806394/job/78284056512
+
+## Facts
+- **ci_run_url**: GitHub Actions run URL for caplets CI [project]
diff --git a/.brv/context-tree/facts/project/caplets_icon_facts.md b/.brv/context-tree/facts/project/caplets_icon_facts.md
new file mode 100644
index 0000000..e140102
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets_icon_facts.md
@@ -0,0 +1,24 @@
+---
+title: Caplets icon facts
+summary: Facts about Caplets icon
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.766Z'
+updatedAt: '2026-05-27T19:11:54.766Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Caplets icon
+
+## Facts
+- **Caplets icon**: The Caplets icon from `plugins/caplets/assets/icon.png` is now used for the favicon, Apple touch icon, and header brand mark.
diff --git a/.brv/context-tree/facts/project/caplets_landing.md b/.brv/context-tree/facts/project/caplets_landing.md
new file mode 100644
index 0000000..85c3fc0
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets_landing.md
@@ -0,0 +1,27 @@
+---
+title: '@caplets/landing'
+summary: Facts about @caplets/landing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.373Z'
+updatedAt: '2026-05-27T18:59:51.373Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 4 facts for @caplets/landing
+
+## Facts
+- **@caplets/landing**: @caplets/landing build passed.
+- **@caplets/landing**: pnpm --filter @caplets/landing typecheck passed with 0 errors, 0 warnings, 0 hints.
+- **@caplets/landing**: ilter @caplets/landing typecheck passed, 0 errors, 0 warnings, 0 hints.
+- **@caplets/landing**: Screenshot captured: caplets-dark-contrast-fixed.png
diff --git a/.brv/context-tree/facts/project/caplets_navigation_facts.md b/.brv/context-tree/facts/project/caplets_navigation_facts.md
new file mode 100644
index 0000000..647df1c
--- /dev/null
+++ b/.brv/context-tree/facts/project/caplets_navigation_facts.md
@@ -0,0 +1,24 @@
+---
+title: Caplets navigation facts
+summary: Facts about caplets navigation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.777Z'
+updatedAt: '2026-05-27T19:11:54.777Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for caplets navigation
+
+## Facts
+- **caplets navigation**: Screenshots: caplets-nav-desktop.png, caplets-nav-mobile.png
diff --git a/.brv/context-tree/facts/project/card_grids.md b/.brv/context-tree/facts/project/card_grids.md
new file mode 100644
index 0000000..44867ba
--- /dev/null
+++ b/.brv/context-tree/facts/project/card_grids.md
@@ -0,0 +1,27 @@
+---
+title: Card grids
+summary: Facts about card grids
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.166Z'
+updatedAt: '2026-05-27T19:18:57.166Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **card grids**: Identical card grids with repeated icon, heading, and text are banned.
diff --git a/.brv/context-tree/facts/project/card_layout_facts.md b/.brv/context-tree/facts/project/card_layout_facts.md
new file mode 100644
index 0000000..652f8bc
--- /dev/null
+++ b/.brv/context-tree/facts/project/card_layout_facts.md
@@ -0,0 +1,24 @@
+---
+title: Card layout facts
+summary: Facts about card layout
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.692Z'
+updatedAt: '2026-05-27T19:11:54.692Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for card layout
+
+## Facts
+- **card layout**: Identical card grids with same-sized cards repeated endlessly are prohibited.
diff --git a/.brv/context-tree/facts/project/clarify.md b/.brv/context-tree/facts/project/clarify.md
new file mode 100644
index 0000000..d0cb29c
--- /dev/null
+++ b/.brv/context-tree/facts/project/clarify.md
@@ -0,0 +1,24 @@
+---
+title: Clarify
+summary: Facts about clarify
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.740Z'
+updatedAt: '2026-05-27T18:47:50.740Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for clarify
+
+## Facts
+- **clarify**: `clarify [target]` is a Fix command that improves UX copy, labels, and error messages.
diff --git a/.brv/context-tree/facts/project/clarify_target_facts.md b/.brv/context-tree/facts/project/clarify_target_facts.md
new file mode 100644
index 0000000..cbe0ddd
--- /dev/null
+++ b/.brv/context-tree/facts/project/clarify_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`clarify [target]` facts'
+summary: Facts about `clarify [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.750Z'
+updatedAt: '2026-05-27T19:11:54.750Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `clarify [target]`
+
+## Facts
+- **`clarify [target]`**: The command `clarify [target]` belongs to the Fix category and improves UX copy, labels, and error messages.
diff --git a/.brv/context-tree/facts/project/cli_exit_codes.md b/.brv/context-tree/facts/project/cli_exit_codes.md
new file mode 100644
index 0000000..a69c7b5
--- /dev/null
+++ b/.brv/context-tree/facts/project/cli_exit_codes.md
@@ -0,0 +1,24 @@
+---
+title: CLI exit codes
+summary: Facts about CLI exit codes
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.156Z'
+updatedAt: '2026-05-28T09:45:49.156Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for CLI exit codes
+
+## Facts
+- **CLI exit codes**: The CLI detector exits with code 0 for clean and code 2 for findings.
diff --git a/.brv/context-tree/facts/project/cli_scan.md b/.brv/context-tree/facts/project/cli_scan.md
new file mode 100644
index 0000000..2d98105
--- /dev/null
+++ b/.brv/context-tree/facts/project/cli_scan.md
@@ -0,0 +1,24 @@
+---
+title: CLI scan
+summary: Facts about CLI scan
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.163Z'
+updatedAt: '2026-05-28T09:45:49.163Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for CLI scan
+
+## Facts
+- **CLI scan**: Deterministic scan: `npx impeccable --json apps/landing/src/pages/index.astro` returned []
diff --git a/.brv/context-tree/facts/project/cloudflare_api_client.md b/.brv/context-tree/facts/project/cloudflare_api_client.md
new file mode 100644
index 0000000..6d051b3
--- /dev/null
+++ b/.brv/context-tree/facts/project/cloudflare_api_client.md
@@ -0,0 +1,23 @@
+---
+title: Cloudflare API client
+summary: Facts about Cloudflare API client
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.575Z'
+updatedAt: '2026-05-28T10:53:51.575Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Cloudflare API client
+
+**Timestamp:** 2026-05-28T10:53:51.569Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Cloudflare API client**: Under Node 26, Alchemy’s Cloudflare API client receives gzipped bytes with no response headers (contentType: null, contentEncoding: null)
+- **Cloudflare API client**: Under Node 24.15.0, the same Cloudflare endpoint returns correctly decoded JSON with contentType "application/json; charset=UTF-8" and contentEncoding "gzip"
diff --git a/.brv/context-tree/facts/project/cognitive_load.md b/.brv/context-tree/facts/project/cognitive_load.md
new file mode 100644
index 0000000..49b3012
--- /dev/null
+++ b/.brv/context-tree/facts/project/cognitive_load.md
@@ -0,0 +1,24 @@
+---
+title: Cognitive load
+summary: Facts about cognitive load
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.153Z'
+updatedAt: '2026-05-28T09:45:49.153Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for cognitive load
+
+## Facts
+- **cognitive load**: Cognitive load assessment uses an 8‑item checklist, flags >4 visible options at a decision point, and checks for progressive disclosure.
diff --git a/.brv/context-tree/facts/project/color_facts.md b/.brv/context-tree/facts/project/color_facts.md
new file mode 100644
index 0000000..02b58cf
--- /dev/null
+++ b/.brv/context-tree/facts/project/color_facts.md
@@ -0,0 +1,24 @@
+---
+title: Color facts
+summary: Facts about color
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.675Z'
+updatedAt: '2026-05-27T19:11:54.675Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for color
+
+## Facts
+- **color**: Never use #000 or #fff; tint every neutral toward the brand hue.
diff --git a/.brv/context-tree/facts/project/color_space.md b/.brv/context-tree/facts/project/color_space.md
new file mode 100644
index 0000000..bbcec20
--- /dev/null
+++ b/.brv/context-tree/facts/project/color_space.md
@@ -0,0 +1,24 @@
+---
+title: Color space
+summary: Facts about color space
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.604Z'
+updatedAt: '2026-05-27T18:47:50.604Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for color space
+
+## Facts
+- **color space**: Use the OKLCH color space for colors.
diff --git a/.brv/context-tree/facts/project/color_specification.md b/.brv/context-tree/facts/project/color_specification.md
new file mode 100644
index 0000000..edceac5
--- /dev/null
+++ b/.brv/context-tree/facts/project/color_specification.md
@@ -0,0 +1,27 @@
+---
+title: Color specification
+summary: Facts about color specification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.292Z'
+updatedAt: '2026-05-27T19:18:57.138Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **color specification**: Use OKLCH for colors and reduce chroma as lightness approaches 0 or 100.
diff --git a/.brv/context-tree/facts/project/color_strategy.md b/.brv/context-tree/facts/project/color_strategy.md
new file mode 100644
index 0000000..28db99a
--- /dev/null
+++ b/.brv/context-tree/facts/project/color_strategy.md
@@ -0,0 +1,27 @@
+---
+title: Color strategy
+summary: Facts about color strategy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.141Z'
+updatedAt: '2026-05-27T19:18:57.141Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **color strategy**: The "one accent ≤10%" rule applies only to the Restrained color strategy.
diff --git a/.brv/context-tree/facts/project/color_usage.md b/.brv/context-tree/facts/project/color_usage.md
new file mode 100644
index 0000000..10251aa
--- /dev/null
+++ b/.brv/context-tree/facts/project/color_usage.md
@@ -0,0 +1,27 @@
+---
+title: Color usage
+summary: Facts about color usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.598Z'
+updatedAt: '2026-05-27T19:18:57.134Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **color usage**: Never use #000 or #fff; tint every neutral toward the brand hue.
diff --git a/.brv/context-tree/facts/project/colorize.md b/.brv/context-tree/facts/project/colorize.md
new file mode 100644
index 0000000..1c62390
--- /dev/null
+++ b/.brv/context-tree/facts/project/colorize.md
@@ -0,0 +1,24 @@
+---
+title: Colorize
+summary: Facts about colorize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.713Z'
+updatedAt: '2026-05-27T18:47:50.713Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for colorize
+
+## Facts
+- **colorize**: `colorize [target]` is an Enhance command that adds strategic color to monochromatic UIs.
diff --git a/.brv/context-tree/facts/project/colorize_target_facts.md b/.brv/context-tree/facts/project/colorize_target_facts.md
new file mode 100644
index 0000000..c5b30f0
--- /dev/null
+++ b/.brv/context-tree/facts/project/colorize_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`colorize [target]` facts'
+summary: Facts about `colorize [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.740Z'
+updatedAt: '2026-05-27T19:11:54.740Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `colorize [target]`
+
+## Facts
+- **`colorize [target]`**: The command `colorize [target]` belongs to the Enhance category and adds strategic color to monochromatic UIs.
diff --git a/.brv/context-tree/facts/project/command.md b/.brv/context-tree/facts/project/command.md
new file mode 100644
index 0000000..b571b4d
--- /dev/null
+++ b/.brv/context-tree/facts/project/command.md
@@ -0,0 +1,24 @@
+---
+title: Command
+summary: Facts about command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.771Z'
+updatedAt: '2026-05-27T18:47:50.771Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for command
+
+## Facts
+- **command**: Valid `` is any command from the table above.
diff --git a/.brv/context-tree/facts/project/command_table.md b/.brv/context-tree/facts/project/command_table.md
new file mode 100644
index 0000000..83f2b5f
--- /dev/null
+++ b/.brv/context-tree/facts/project/command_table.md
@@ -0,0 +1,27 @@
+---
+title: Command table
+summary: Facts about command table
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.331Z'
+updatedAt: '2026-05-27T19:18:57.171Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **command table**: The command table lists commands such as `craft [feature]`, `shape [feature]`, and `animate [target]` with their categories and descriptions.
diff --git a/.brv/context-tree/facts/project/command_validation.md b/.brv/context-tree/facts/project/command_validation.md
new file mode 100644
index 0000000..fa193da
--- /dev/null
+++ b/.brv/context-tree/facts/project/command_validation.md
@@ -0,0 +1,24 @@
+---
+title: Command validation
+summary: Facts about Command validation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.330Z'
+updatedAt: '2026-05-27T19:12:30.330Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Command validation
+
+## Facts
+- **Command validation**: Valid `` is any command from the table above.
diff --git a/.brv/context-tree/facts/project/commit.md b/.brv/context-tree/facts/project/commit.md
new file mode 100644
index 0000000..6ca0cc2
--- /dev/null
+++ b/.brv/context-tree/facts/project/commit.md
@@ -0,0 +1,24 @@
+---
+title: Commit
+summary: Facts about commit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.817Z'
+updatedAt: '2026-05-28T10:26:09.817Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for commit
+
+## Facts
+- **commit**: Do not commit any changes.
diff --git a/.brv/context-tree/facts/project/commit_1ad7201.md b/.brv/context-tree/facts/project/commit_1ad7201.md
new file mode 100644
index 0000000..7c67c9b
--- /dev/null
+++ b/.brv/context-tree/facts/project/commit_1ad7201.md
@@ -0,0 +1,20 @@
+---
+title: commit 1ad7201
+summary: Facts about commit 1ad7201
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:20:10.884Z'
+updatedAt: '2026-05-27T23:20:10.884Z'
+---
+## Reason
+Curated facts from extraction
+
+## Raw Concept
+**Task:**
+Document facts for commit 1ad7201
+
+**Timestamp:** 2026-05-27T23:20:10.880Z
+
+## Facts
+- **commit 1ad7201**: Commit: `1ad7201 docs: specify agent setup tabs`.
diff --git a/.brv/context-tree/facts/project/console.md b/.brv/context-tree/facts/project/console.md
new file mode 100644
index 0000000..fe53c19
--- /dev/null
+++ b/.brv/context-tree/facts/project/console.md
@@ -0,0 +1,24 @@
+---
+title: Console
+summary: Facts about console
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.367Z'
+updatedAt: '2026-05-27T18:59:51.367Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for console
+
+## Facts
+- **console**: Browser console checked, 0 errors and 0 warnings.
diff --git a/.brv/context-tree/facts/project/constraints.md b/.brv/context-tree/facts/project/constraints.md
new file mode 100644
index 0000000..a763854
--- /dev/null
+++ b/.brv/context-tree/facts/project/constraints.md
@@ -0,0 +1,25 @@
+---
+title: Constraints
+summary: Facts about constraints
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.284Z'
+updatedAt: '2026-05-28T13:55:17.284Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 2 facts for constraints
+
+## Facts
+- **constraints**: Design constraints prohibit em dashes, side‑stripe borders, gradient text, and glassmorphism.
+- **constraints**: Design constraints require using existing tokens and OKLCH color space while maintaining the Caplets precise/calm/capable voice.
diff --git a/.brv/context-tree/facts/project/content.md b/.brv/context-tree/facts/project/content.md
new file mode 100644
index 0000000..aa99ea7
--- /dev/null
+++ b/.brv/context-tree/facts/project/content.md
@@ -0,0 +1,24 @@
+---
+title: content
+summary: Facts about content
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:48:34.347Z'
+updatedAt: '2026-05-28T13:48:34.347Z'
+---
+## Reason
+Curated factual statements from recent context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-28T13:48:34.339Z
+
+## Narrative
+### Highlights
+Collected 1 facts for content
+
+## Facts
+- **content**: No integration tab/panel content or copy changes found, and no em dashes in the reviewed tab/panel markup or JS
diff --git a/.brv/context-tree/facts/project/content_vs_style.md b/.brv/context-tree/facts/project/content_vs_style.md
new file mode 100644
index 0000000..974e19a
--- /dev/null
+++ b/.brv/context-tree/facts/project/content_vs_style.md
@@ -0,0 +1,24 @@
+---
+title: Content vs. style
+summary: Facts about content vs. style
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.170Z'
+updatedAt: '2026-05-28T09:45:49.170Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for content vs. style
+
+## Facts
+- **content vs. style**: The page says “quiet confidence” in the content, then the CSS says “watch this animated cartography rig.”
diff --git a/.brv/context-tree/facts/project/context_loader.md b/.brv/context-tree/facts/project/context_loader.md
new file mode 100644
index 0000000..623c739
--- /dev/null
+++ b/.brv/context-tree/facts/project/context_loader.md
@@ -0,0 +1,24 @@
+---
+title: Context loader
+summary: Facts about context loader
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.266Z'
+updatedAt: '2026-05-27T19:12:30.266Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.245Z
+
+## Narrative
+### Structure
+Extracted facts for context loader
+
+## Facts
+- **context loader**: The loader looks at the project root by default and falls back to .agents/context/ and docs/ if the root is clean.
diff --git a/.brv/context-tree/facts/project/context_loading.md b/.brv/context-tree/facts/project/context_loading.md
new file mode 100644
index 0000000..41e127e
--- /dev/null
+++ b/.brv/context-tree/facts/project/context_loading.md
@@ -0,0 +1,27 @@
+---
+title: Context loading
+summary: Facts about context loading
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.527Z'
+updatedAt: '2026-05-27T19:18:57.131Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **context loading**: The loader looks at the project root by default and falls back to .agents/context/ and docs/ if the root is clean.
diff --git a/.brv/context-tree/facts/project/context_override.md b/.brv/context-tree/facts/project/context_override.md
new file mode 100644
index 0000000..3840b5b
--- /dev/null
+++ b/.brv/context-tree/facts/project/context_override.md
@@ -0,0 +1,24 @@
+---
+title: Context override
+summary: Facts about context override
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.541Z'
+updatedAt: '2026-05-27T18:47:50.541Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for context override
+
+## Facts
+- **context override**: Override the context directory with `IMPECCABLE_CONTEXT_DIR=path/to/dir` (absolute or relative to cwd).
diff --git a/.brv/context-tree/facts/project/copy_text.md b/.brv/context-tree/facts/project/copy_text.md
new file mode 100644
index 0000000..d7614b5
--- /dev/null
+++ b/.brv/context-tree/facts/project/copy_text.md
@@ -0,0 +1,24 @@
+---
+title: Copy text
+summary: Facts about copy text
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.788Z'
+updatedAt: '2026-05-28T10:26:09.788Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for copy text
+
+## Facts
+- **copy text**: Update lingering `serve the map.` copy to avoid map dominance.
diff --git a/.brv/context-tree/facts/project/craft.md b/.brv/context-tree/facts/project/craft.md
new file mode 100644
index 0000000..0d3e5ed
--- /dev/null
+++ b/.brv/context-tree/facts/project/craft.md
@@ -0,0 +1,24 @@
+---
+title: Craft
+summary: Facts about craft
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.654Z'
+updatedAt: '2026-05-27T18:47:50.654Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for craft
+
+## Facts
+- **craft**: `craft [feature]` is a Build command that shapes then builds a feature end-to-end.
diff --git a/.brv/context-tree/facts/project/craft_command.md b/.brv/context-tree/facts/project/craft_command.md
new file mode 100644
index 0000000..35895e3
--- /dev/null
+++ b/.brv/context-tree/facts/project/craft_command.md
@@ -0,0 +1,24 @@
+---
+title: Craft command
+summary: Facts about Craft command
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.351Z'
+updatedAt: '2026-05-27T19:12:30.351Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Craft command
+
+## Facts
+- **Craft command**: If the first word is `craft`, setup still runs first, but reference/craft.md owns the rest of the flow.
diff --git a/.brv/context-tree/facts/project/craft_feature_facts.md b/.brv/context-tree/facts/project/craft_feature_facts.md
new file mode 100644
index 0000000..2e18d0b
--- /dev/null
+++ b/.brv/context-tree/facts/project/craft_feature_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`craft [feature]` facts'
+summary: Facts about `craft [feature]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.709Z'
+updatedAt: '2026-05-27T19:11:54.709Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `craft [feature]`
+
+## Facts
+- **`craft [feature]`**: The command `craft [feature]` belongs to the Build category and shapes then builds a feature end-to-end.
diff --git a/.brv/context-tree/facts/project/critique.md b/.brv/context-tree/facts/project/critique.md
new file mode 100644
index 0000000..b1c3fe5
--- /dev/null
+++ b/.brv/context-tree/facts/project/critique.md
@@ -0,0 +1,24 @@
+---
+title: Critique
+summary: Facts about critique
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.667Z'
+updatedAt: '2026-05-27T18:47:50.667Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for critique
+
+## Facts
+- **critique**: `critique [target]` is an Evaluate command that performs UX design review with heuristic scoring.
diff --git a/.brv/context-tree/facts/project/critique_target_facts.md b/.brv/context-tree/facts/project/critique_target_facts.md
new file mode 100644
index 0000000..749232e
--- /dev/null
+++ b/.brv/context-tree/facts/project/critique_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`critique [target]` facts'
+summary: Facts about `critique [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.720Z'
+updatedAt: '2026-05-27T19:11:54.720Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `critique [target]`
+
+## Facts
+- **`critique [target]`**: The command `critique [target]` belongs to the Evaluate category and performs a UX design review with heuristic scoring.
diff --git a/.brv/context-tree/facts/project/css_animation.md b/.brv/context-tree/facts/project/css_animation.md
new file mode 100644
index 0000000..372f836
--- /dev/null
+++ b/.brv/context-tree/facts/project/css_animation.md
@@ -0,0 +1,24 @@
+---
+title: CSS animation
+summary: Facts about CSS animation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.301Z'
+updatedAt: '2026-05-27T19:12:30.301Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for CSS animation
+
+## Facts
+- **CSS animation**: Do not animate CSS layout properties.
diff --git a/.brv/context-tree/facts/project/css_implementation.md b/.brv/context-tree/facts/project/css_implementation.md
new file mode 100644
index 0000000..ed26b36
--- /dev/null
+++ b/.brv/context-tree/facts/project/css_implementation.md
@@ -0,0 +1,27 @@
+---
+title: CSS implementation
+summary: Facts about CSS implementation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.040Z'
+updatedAt: '2026-05-28T13:40:49.040Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **CSS implementation**: The implementation fits existing CSS patterns: simple selectors, existing variables, existing breakpoint structure, no new design tokens or one‑off abstractions.
diff --git a/.brv/context-tree/facts/project/css_variable.md b/.brv/context-tree/facts/project/css_variable.md
new file mode 100644
index 0000000..8b2b7b0
--- /dev/null
+++ b/.brv/context-tree/facts/project/css_variable.md
@@ -0,0 +1,22 @@
+---
+title: CSS variable
+summary: Facts about CSS variable
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.040Z'
+updatedAt: '2026-05-28T13:58:26.040Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for CSS variable
+
+## Narrative
+### Highlights
+Extracted 1 facts for CSS variable
+
+## Facts
+- **CSS variable**: `--header-shadow` is removed.
diff --git a/.brv/context-tree/facts/project/curated_project_facts.md b/.brv/context-tree/facts/project/curated_project_facts.md
new file mode 100644
index 0000000..08bea2f
--- /dev/null
+++ b/.brv/context-tree/facts/project/curated_project_facts.md
@@ -0,0 +1,97 @@
+---
+title: Curated Project Facts
+summary: Aggregated project-related facts extracted via RLM extraction
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:17:41.215Z'
+updatedAt: '2026-05-27T18:17:41.215Z'
+---
+## Reason
+Extracted factual statements from recent context
+
+## Raw Concept
+**Task:**
+Curate extracted project facts
+
+**Timestamp:** 2026-05-27T18:17:41.212Z
+
+## Narrative
+### Highlights
+Extracted 74 unique facts across 72 subjects.
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
+- **loader**: The loader looks at the project root by default and falls back to .agents/context/ and docs/ if the root is clean.
+- **IMPECCABLE_CONTEXT_DIR**: Override with IMPECCABLE_CONTEXT_DIR=path/to/dir (absolute or relative to cwd).
+- **load-context.mjs**: Load both files in one call using: node {{scripts_path}}/load-context.mjs
+- **loader output**: Never pipe the loader output through head, tail, grep, or jq.
+- **PRODUCT.md**: If PRODUCT.md is missing, empty, or contains placeholder [TODO] markers with less than 200 characters, run {{command_prefix}}impeccable teach and then resume the original task.
+- **DESIGN.md**: If DESIGN.md is missing, prompt the user once per session to run {{command_prefix}}impeccable document, then proceed.
+- **design task**: Every design task is either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
+- **register identification**: Identify the register before designing, using priority: (1) cue in the task itself, (2) the surface in focus, (3) the register field in PRODUCT.md.
+- **Color system**: Use OKLCH for color definitions.
+- **Chroma adjustment**: Reduce chroma as lightness approaches 0 or 100 because high chroma at extremes looks garish.
+- **Neutral tinting**: Never use #000 or #fff; tint every neutral toward the brand hue with chroma 0.005–0.01.
+- **Restrained strategy**: Restrained color strategy uses tinted neutrals plus one accent ≤10% of surface.
+- **Committed strategy**: Committed color strategy uses one saturated color for 30–60% of surface.
+- **Full palette**: Full palette strategy uses 3–4 named color roles deliberately.
+- **Drenched strategy**: Drenched strategy makes the surface itself the color.
+- **Theme selection**: Dark vs. light theme should not be chosen by default; it must be justified by physical context.
+- **Line length**: Cap body line length at 65–75 characters.
+- **Hierarchy**: Maintain a hierarchy through scale and weight contrast with at least a 1.25 ratio between steps.
+- **Spacing**: Vary spacing to create rhythm; avoid using the same padding everywhere.
+- **Card usage**: Cards should only be used when they are the best affordance; nested cards are always wrong.
+- **Animation**: Do not animate CSS layout properties.
+- **Easing**: Use ease-out exponential curves (ease-out-quart, quint, expo) for motion; avoid bounce or elastic easing.
+- **Side-stripe borders**: Side-stripe borders greater than 1px as colored accents are prohibited; use full borders, background tints, leading numbers/icons, or nothing instead.
+- **Gradient text**: Gradient text using background-clip: text with a gradient background is prohibited; use a single solid color instead.
+- **Glassmorphism**: Glassmorphism as a default style is prohibited; use blurs and glass cards only rarely and purposefully.
+- **Hero-metric template**: The hero-metric template (big number, small label, supporting stats, gradient accent) is prohibited as a SaaS cliché.
+- **Identical card grids**: Identical card grids with the same-sized cards repeated endlessly are prohibited.
+- **Modals**: Modals should not be the first design thought; explore inline or progressive alternatives first.
+- **Copy economy**: Every word in copy must earn its place; avoid restated headings and intros that repeat the title.
+- **Punctuation**: Do not use em dashes; use commas, colons, semicolons, periods, or parentheses instead.
+- **craft**: `craft [feature]` shapes then builds a feature end-to-end.
+- **shape**: `shape [feature]` plans UX/UI before writing code.
+- **teach**: `teach` sets up PRODUCT.md and DESIGN.md context.
+- **document**: `document` generates DESIGN.md from existing project code.
+- **extract**: `extract [target]` pulls reusable tokens and components into the design system.
+- **critique**: `critique [target]` performs a UX design review with heuristic scoring.
+- **audit**: `audit [target]` conducts technical quality checks for accessibility, performance, and responsiveness.
+- **polish**: `polish [target]` provides a final quality pass before shipping.
+- **bolder**: `bolder [target]` amplifies safe or bland designs.
+- **quieter**: `quieter [target]` tones down aggressive or overstimulating designs.
+- **distill**: `distill [target]` strips to essence and removes complexity.
+- **harden**: `harden [target]` makes a product production‑ready by handling errors, i18n, and edge cases.
+- **onboard**: `onboard [target]` designs first‑run flows, empty states, and activation experiences.
+- **animate**: `animate [target]` adds purposeful animations and motion.
+- **colorize**: `colorize [target]` adds strategic color to monochromatic UIs.
+- **typeset**: `typeset [target]` improves typography hierarchy and fonts.
+- **layout**: `layout [target]` fixes spacing, rhythm, and visual hierarchy.
+- **delight**: `delight [target]` adds personality and memorable touches.
+- **overdrive**: `overdrive [target]` pushes past conventional limits.
+- **clarify**: `clarify [target]` improves UX copy, labels, and error messages.
+- **adapt**: `adapt [target]` adapts designs for different devices and screen sizes.
+- **optimize**: `optimize [target]` diagnoses and fixes UI performance issues.
+- **live**: `live` enables visual variant mode to pick elements in the browser and generate alternatives.
+- **pin**: `pin ` pins a command for quick access.
+- **unpin**: `unpin ` unpins a previously pinned command.
+- **Pin**: Pin creates a standalone shortcut so {{command_prefix}} invokes {{command_prefix}}impeccable directly.
+- **Unpin**: Unpin removes the shortcut created by Pin.
+- **Pin/Unpin script**: The script writes to every harness directory present in the project.
+- **pin.mjs**: The command node {{scripts_path}}/pin.mjs is used to pin or unpin commands.
+- **Command argument**: Valid is any command from the table above.
+- **Visual design system**: Generated the visual design system.
+- **Repository**: Changed files: DESIGN.md and .impeccable/design.json.
+- **North star**: North star is "The Tool Cartographer".
+- **Palette**: Palette includes charred ink, parchment, and rare ember accent.
+- **Elevation**: Elevation is tonal layering, flat at rest.
+- **Components**: Components are tactile, calm, compact product primitives.
+- **Sidecar**: Sidecar includes renderable button, chip, card, input, and nav snippets for the live panel.
+- **.impeccable/design.json**: .impeccable/design.json parses as valid JSON.
+- **Impeccable context**: Refreshed impeccable context with the new DESIGN.md.
+- **r**: r includes renderable button, chip, card, input, and nav snippets for the live panel
+- **`.impeccable/design.json`**: `.impeccable/design.json` parses as valid JSON
+- **impeccable context**: Refreshed impeccable context with the new `DESIGN.md`
diff --git a/.brv/context-tree/facts/project/dark_mode_contrast.md b/.brv/context-tree/facts/project/dark_mode_contrast.md
new file mode 100644
index 0000000..961e2bd
--- /dev/null
+++ b/.brv/context-tree/facts/project/dark_mode_contrast.md
@@ -0,0 +1,24 @@
+---
+title: Dark mode contrast
+summary: Facts about dark mode contrast
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.344Z'
+updatedAt: '2026-05-27T18:59:51.344Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for dark mode contrast
+
+## Facts
+- **dark mode contrast**: Improved contrast for the dark surfaces.
diff --git a/.brv/context-tree/facts/project/delight.md b/.brv/context-tree/facts/project/delight.md
new file mode 100644
index 0000000..7e93b00
--- /dev/null
+++ b/.brv/context-tree/facts/project/delight.md
@@ -0,0 +1,24 @@
+---
+title: Delight
+summary: Facts about delight
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.732Z'
+updatedAt: '2026-05-27T18:47:50.732Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for delight
+
+## Facts
+- **delight**: `delight [target]` is an Enhance command that adds personality and memorable touches.
diff --git a/.brv/context-tree/facts/project/delight_target_facts.md b/.brv/context-tree/facts/project/delight_target_facts.md
new file mode 100644
index 0000000..fe237c1
--- /dev/null
+++ b/.brv/context-tree/facts/project/delight_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`delight [target]` facts'
+summary: Facts about `delight [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.746Z'
+updatedAt: '2026-05-27T19:11:54.746Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `delight [target]`
+
+## Facts
+- **`delight [target]`**: The command `delight [target]` belongs to the Enhance category and adds personality and memorable touches.
diff --git a/.brv/context-tree/facts/project/deprecation_warnings.md b/.brv/context-tree/facts/project/deprecation_warnings.md
new file mode 100644
index 0000000..bf75dce
--- /dev/null
+++ b/.brv/context-tree/facts/project/deprecation_warnings.md
@@ -0,0 +1,20 @@
+---
+title: Deprecation warnings
+summary: Facts about deprecation warnings
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:40:14.711Z'
+updatedAt: '2026-05-28T10:40:14.711Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document facts for deprecation warnings
+
+**Timestamp:** 2026-05-28T10:40:14.681Z
+
+## Facts
+- **deprecation warnings**: Build/typecheck emitted Node [DEP0205] module.register() deprecation warnings only
diff --git a/.brv/context-tree/facts/project/design_md.md b/.brv/context-tree/facts/project/design_md.md
new file mode 100644
index 0000000..686548c
--- /dev/null
+++ b/.brv/context-tree/facts/project/design_md.md
@@ -0,0 +1,27 @@
+---
+title: DESIGN.md
+summary: Facts about DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.556Z'
+updatedAt: '2026-05-27T19:18:57.128Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
diff --git a/.brv/context-tree/facts/project/design_md_facts.md b/.brv/context-tree/facts/project/design_md_facts.md
new file mode 100644
index 0000000..85e6985
--- /dev/null
+++ b/.brv/context-tree/facts/project/design_md_facts.md
@@ -0,0 +1,24 @@
+---
+title: DESIGN.md facts
+summary: Facts about DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.674Z'
+updatedAt: '2026-05-27T19:11:54.674Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for DESIGN.md
+
+## Facts
+- **DESIGN.md**: DESIGN.md is optional, strongly recommended.
diff --git a/.brv/context-tree/facts/project/design_task.md b/.brv/context-tree/facts/project/design_task.md
new file mode 100644
index 0000000..37a1b39
--- /dev/null
+++ b/.brv/context-tree/facts/project/design_task.md
@@ -0,0 +1,24 @@
+---
+title: Design task
+summary: Facts about design task
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.285Z'
+updatedAt: '2026-05-27T19:12:30.285Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for design task
+
+## Facts
+- **design task**: Every design task is either brand (marketing, landing, campaign, long-form content, portfolio) or product (app UI, admin, dashboard, tool).
diff --git a/.brv/context-tree/facts/project/design_tokens.md b/.brv/context-tree/facts/project/design_tokens.md
new file mode 100644
index 0000000..9dcb601
--- /dev/null
+++ b/.brv/context-tree/facts/project/design_tokens.md
@@ -0,0 +1,24 @@
+---
+title: Design tokens
+summary: Facts about design tokens
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.348Z'
+updatedAt: '2026-05-27T18:59:51.348Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for design tokens
+
+## Facts
+- **design tokens**: Added dedicated dark-surface tokens: --night-ink, --night-panel, --night-line, --night-text, --night-muted.
diff --git a/.brv/context-tree/facts/project/desktop_nav_facts.md b/.brv/context-tree/facts/project/desktop_nav_facts.md
new file mode 100644
index 0000000..982782d
--- /dev/null
+++ b/.brv/context-tree/facts/project/desktop_nav_facts.md
@@ -0,0 +1,24 @@
+---
+title: Desktop nav facts
+summary: Facts about Desktop nav
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.760Z'
+updatedAt: '2026-05-27T19:11:54.760Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Desktop nav
+
+## Facts
+- **Desktop nav**: Desktop navigation now includes numbered map‑style waypoints: 01 Map, 02 Proof, 03 Install.
diff --git a/.brv/context-tree/facts/project/diff_scope.md b/.brv/context-tree/facts/project/diff_scope.md
new file mode 100644
index 0000000..5f5afb4
--- /dev/null
+++ b/.brv/context-tree/facts/project/diff_scope.md
@@ -0,0 +1,24 @@
+---
+title: Diff scope
+summary: Facts about diff scope
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.318Z'
+updatedAt: '2026-05-28T13:55:17.318Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for diff scope
+
+## Facts
+- **diff scope**: The working tree already contained other landing edits in the same files, so the full diff includes changes outside this task.
diff --git a/.brv/context-tree/facts/project/distill.md b/.brv/context-tree/facts/project/distill.md
new file mode 100644
index 0000000..9c33574
--- /dev/null
+++ b/.brv/context-tree/facts/project/distill.md
@@ -0,0 +1,24 @@
+---
+title: Distill
+summary: Facts about distill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.697Z'
+updatedAt: '2026-05-27T18:47:50.697Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for distill
+
+## Facts
+- **distill**: `distill [target]` is a Refine command that strips to essence and removes complexity.
diff --git a/.brv/context-tree/facts/project/distill_target_facts.md b/.brv/context-tree/facts/project/distill_target_facts.md
new file mode 100644
index 0000000..485452c
--- /dev/null
+++ b/.brv/context-tree/facts/project/distill_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`distill [target]` facts'
+summary: Facts about `distill [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.730Z'
+updatedAt: '2026-05-27T19:11:54.730Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `distill [target]`
+
+## Facts
+- **`distill [target]`**: The command `distill [target]` belongs to the Refine category and strips designs to their essence, removing complexity.
diff --git a/.brv/context-tree/facts/project/docs_inspection.md b/.brv/context-tree/facts/project/docs_inspection.md
new file mode 100644
index 0000000..355481d
--- /dev/null
+++ b/.brv/context-tree/facts/project/docs_inspection.md
@@ -0,0 +1,20 @@
+---
+title: Docs inspection
+summary: Facts about docs inspection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:40:14.686Z'
+updatedAt: '2026-05-28T10:40:14.686Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document facts for docs inspection
+
+**Timestamp:** 2026-05-28T10:40:14.681Z
+
+## Facts
+- **docs inspection**: Docs inspection command run: find docs apps/landing/src -maxdepth 3 -type f | sort | grep -E '(README|docs|config|usage|getting|index)'
diff --git a/.brv/context-tree/facts/project/docs_lookup.md b/.brv/context-tree/facts/project/docs_lookup.md
new file mode 100644
index 0000000..b9f32ae
--- /dev/null
+++ b/.brv/context-tree/facts/project/docs_lookup.md
@@ -0,0 +1,18 @@
+---
+title: Docs lookup
+summary: Facts about docs lookup
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:52:02.639Z'
+updatedAt: '2026-05-28T09:52:02.639Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about docs lookup
+
+## Facts
+- **docs lookup**: A docs lookup feels safe by default, so redaction, schemas, auth, source metadata, and safe failure states matter less.
diff --git a/.brv/context-tree/facts/project/docs_specs_2026_05_27_agent_card_setup_tabs_design_md.md b/.brv/context-tree/facts/project/docs_specs_2026_05_27_agent_card_setup_tabs_design_md.md
new file mode 100644
index 0000000..ef7e72c
--- /dev/null
+++ b/.brv/context-tree/facts/project/docs_specs_2026_05_27_agent_card_setup_tabs_design_md.md
@@ -0,0 +1,20 @@
+---
+title: docs/specs/2026-05-27-agent-card-setup-tabs-design.md
+summary: Facts about docs/specs/2026-05-27-agent-card-setup-tabs-design.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:20:10.882Z'
+updatedAt: '2026-05-27T23:20:10.882Z'
+---
+## Reason
+Curated facts from extraction
+
+## Raw Concept
+**Task:**
+Document facts for docs/specs/2026-05-27-agent-card-setup-tabs-design.md
+
+**Timestamp:** 2026-05-27T23:20:10.880Z
+
+## Facts
+- **docs/specs/2026-05-27-agent-card-setup-tabs-design.md**: Spec written and committed to `docs/specs/2026-05-27-agent-card-setup-tabs-design.md`.
diff --git a/.brv/context-tree/facts/project/document.md b/.brv/context-tree/facts/project/document.md
new file mode 100644
index 0000000..0f55570
--- /dev/null
+++ b/.brv/context-tree/facts/project/document.md
@@ -0,0 +1,24 @@
+---
+title: Document
+summary: Facts about document
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.662Z'
+updatedAt: '2026-05-27T18:47:50.662Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for document
+
+## Facts
+- **document**: `document` is a Build command that generates DESIGN.md from existing project code.
diff --git a/.brv/context-tree/facts/project/document_facts.md b/.brv/context-tree/facts/project/document_facts.md
new file mode 100644
index 0000000..86eafce
--- /dev/null
+++ b/.brv/context-tree/facts/project/document_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`document` facts'
+summary: Facts about `document`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.715Z'
+updatedAt: '2026-05-27T19:11:54.715Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `document`
+
+## Facts
+- **`document`**: The command `document` belongs to the Build category and generates DESIGN.md from existing project code.
diff --git a/.brv/context-tree/facts/project/easing_facts.md b/.brv/context-tree/facts/project/easing_facts.md
new file mode 100644
index 0000000..cdc62d8
--- /dev/null
+++ b/.brv/context-tree/facts/project/easing_facts.md
@@ -0,0 +1,24 @@
+---
+title: Easing facts
+summary: Facts about easing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.707Z'
+updatedAt: '2026-05-27T19:11:54.707Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for easing
+
+## Facts
+- **easing**: Use ease-out exponential curves (ease-out-quart, quint, expo) for motion; no bounce or elastic.
diff --git a/.brv/context-tree/facts/project/extract.md b/.brv/context-tree/facts/project/extract.md
new file mode 100644
index 0000000..d1dcae7
--- /dev/null
+++ b/.brv/context-tree/facts/project/extract.md
@@ -0,0 +1,24 @@
+---
+title: Extract
+summary: Facts about extract
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.664Z'
+updatedAt: '2026-05-27T18:47:50.664Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for extract
+
+## Facts
+- **extract**: `extract [target]` is a Build command that pulls reusable tokens and components into the design system.
diff --git a/.brv/context-tree/facts/project/extract_target_facts.md b/.brv/context-tree/facts/project/extract_target_facts.md
new file mode 100644
index 0000000..f945916
--- /dev/null
+++ b/.brv/context-tree/facts/project/extract_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`extract [target]` facts'
+summary: Facts about `extract [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.718Z'
+updatedAt: '2026-05-27T19:11:54.718Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `extract [target]`
+
+## Facts
+- **`extract [target]`**: The command `extract [target]` belongs to the Build category and pulls reusable tokens and components into the design system.
diff --git a/.brv/context-tree/facts/project/extracted_project_facts.md b/.brv/context-tree/facts/project/extracted_project_facts.md
new file mode 100644
index 0000000..d4aac10
--- /dev/null
+++ b/.brv/context-tree/facts/project/extracted_project_facts.md
@@ -0,0 +1,37 @@
+---
+title: Extracted Project Facts
+summary: Compiled project-related factual statements extracted via RLM extraction
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:02:18.225Z'
+updatedAt: '2026-05-27T18:02:18.225Z'
+---
+## Reason
+Curate extracted factual statements from RLM context
+
+## Raw Concept
+**Task:**
+Document extracted project facts
+
+**Timestamp:** 2026-05-27T18:02:18.221Z
+
+## Narrative
+### Structure
+Aggregated factual statements
+
+### Highlights
+pnpm alchemy:dev failure, package.json script, alchemy.run.ts content, Astro helper defaults, command execution
+
+## Facts
+- **pnpm alchemy:dev failure**: `pnpm alchemy:dev` fails because Alchemy runs Astro from the repository root, but Astro is only installed in the landing workspace.
+- **package.json script**: The root script in `package.json` defines "alchemy:dev": "alchemy dev".
+- **alchemy.run.ts content**: `alchemy.run.ts` currently contains `export const landing = await Astro("landing", { assets: "apps/landing/dist" });`.
+- **Astro helper defaults**: Alchemy’s `Astro()` helper defaults `cwd` to `props.cwd ?? process.cwd()` and `dev` to "pnpm exec astro dev".
+- **command execution**: From the repository root, Alchemy effectively runs `pnpm exec astro dev`.
+- **error message**: Running `pnpm exec astro dev` from the root fails with error "ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Command \"astro\" not found".
+- **astro dependency location**: `astro` is not a root dependency; it is defined in `apps/landing/package.json`.
+- **workspace name**: The workspace package name is "@caplets/landing", not "@landing".
+- **workspace command**: The direct workspace command `pnpm --filter @caplets/landing dev` works.
+- **root cause**: Root cause: `alchemy.run.ts` does not set `cwd: "apps/landing"` for the Astro resource, causing Alchemy to run Astro in the wrong package context.
+- **proposed fix**: A likely fix is to modify `alchemy.run.ts` to include `cwd: "apps/landing"` and adjust assets path, e.g., `export const landing = await Astro("landing", { cwd: "apps/landing", assets: "dist" });`.
diff --git a/.brv/context-tree/facts/project/files.md b/.brv/context-tree/facts/project/files.md
new file mode 100644
index 0000000..87cdc5c
--- /dev/null
+++ b/.brv/context-tree/facts/project/files.md
@@ -0,0 +1,24 @@
+---
+title: Files
+summary: Facts about files
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.286Z'
+updatedAt: '2026-05-28T13:55:17.286Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for files
+
+## Facts
+- **files**: Changed files are apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
diff --git a/.brv/context-tree/facts/project/files_facts.md b/.brv/context-tree/facts/project/files_facts.md
new file mode 100644
index 0000000..0bfe633
--- /dev/null
+++ b/.brv/context-tree/facts/project/files_facts.md
@@ -0,0 +1,24 @@
+---
+title: Files facts
+summary: Facts about files
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:23.981Z'
+updatedAt: '2026-05-28T10:14:23.981Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for files
+
+## Facts
+- **files**: Changed files: `apps/landing/src/pages/index.astro`.
diff --git a/.brv/context-tree/facts/project/fix_comparison.md b/.brv/context-tree/facts/project/fix_comparison.md
new file mode 100644
index 0000000..8c48824
--- /dev/null
+++ b/.brv/context-tree/facts/project/fix_comparison.md
@@ -0,0 +1,20 @@
+---
+title: Fix comparison
+summary: Facts about fix comparison
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.190Z'
+updatedAt: '2026-05-28T11:56:15.190Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.127Z
+
+## Facts
+- **fix comparison**: The key difference from the previous fix is that `NODE_OPTIONS` follows Alchemy into its spawned evaluator.
diff --git a/.brv/context-tree/facts/project/footer_link.md b/.brv/context-tree/facts/project/footer_link.md
new file mode 100644
index 0000000..27ebf46
--- /dev/null
+++ b/.brv/context-tree/facts/project/footer_link.md
@@ -0,0 +1,21 @@
+---
+title: Footer link
+summary: Facts about footer link
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:40:14.683Z'
+updatedAt: '2026-05-28T10:40:14.683Z'
+---
+## Reason
+Curated extracted factual statements
+
+## Raw Concept
+**Task:**
+Document facts for footer link
+
+**Timestamp:** 2026-05-28T10:40:14.681Z
+
+## Facts
+- **footer link**: Added footer link: Config docs → https://github.com/spiritledsoftware/caplets#configure
+- **footer link**: Link was added because README.md contains a stable ## Configure anchor
diff --git a/.brv/context-tree/facts/project/footer_mobile_links.md b/.brv/context-tree/facts/project/footer_mobile_links.md
new file mode 100644
index 0000000..6653ad3
--- /dev/null
+++ b/.brv/context-tree/facts/project/footer_mobile_links.md
@@ -0,0 +1,27 @@
+---
+title: footer mobile links
+summary: Facts about footer mobile links
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.017Z'
+updatedAt: '2026-05-28T13:40:49.017Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **footer mobile links**: Footer mobile links get 44px minimum height with flex alignment and modest padding, improving touch accessibility without excessive spacing.
diff --git a/.brv/context-tree/facts/project/forked_pr_secrets.md b/.brv/context-tree/facts/project/forked_pr_secrets.md
new file mode 100644
index 0000000..a7de65e
--- /dev/null
+++ b/.brv/context-tree/facts/project/forked_pr_secrets.md
@@ -0,0 +1,24 @@
+---
+title: Forked PR secrets
+summary: Facts about forked PR secrets
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.181Z'
+updatedAt: '2026-05-28T10:41:19.181Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for forked PR secrets
+
+## Facts
+- **forked PR secrets**: For PRs from forks, GitHub will not expose repository secrets to `pull_request` workflows, so this step will likely fail.
diff --git a/.brv/context-tree/facts/project/github.md b/.brv/context-tree/facts/project/github.md
new file mode 100644
index 0000000..ab70a18
--- /dev/null
+++ b/.brv/context-tree/facts/project/github.md
@@ -0,0 +1,19 @@
+---
+title: GitHub
+summary: Facts about GitHub
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:52:02.637Z'
+updatedAt: '2026-05-28T09:52:02.637Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about GitHub
+
+## Facts
+- **GitHub**: GitHub has higher trust stakes.
+- **GitHub**: GitHub lets the page demonstrate why Caplets is valuable before an agent touches workflows like issues, PRs, branches, or review operations.
diff --git a/.brv/context-tree/facts/project/github_trace.md b/.brv/context-tree/facts/project/github_trace.md
new file mode 100644
index 0000000..8d935b6
--- /dev/null
+++ b/.brv/context-tree/facts/project/github_trace.md
@@ -0,0 +1,20 @@
+---
+title: GitHub trace
+summary: Facts about GitHub trace
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.235Z'
+updatedAt: '2026-05-28T10:20:18.235Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about GitHub trace
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **GitHub trace**: GitHub trace includes source, auth redaction, status, progressive steps, schema inspection, and preserved result.
diff --git a/.brv/context-tree/facts/project/github_workflows_deploy_yml.md b/.brv/context-tree/facts/project/github_workflows_deploy_yml.md
new file mode 100644
index 0000000..5ceb69f
--- /dev/null
+++ b/.brv/context-tree/facts/project/github_workflows_deploy_yml.md
@@ -0,0 +1,24 @@
+---
+title: .github/workflows/deploy.yml
+summary: Facts about .github/workflows/deploy.yml
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:30:56.817Z'
+updatedAt: '2026-05-28T09:30:56.817Z'
+---
+## Reason
+Curated factual statements from source context
+
+## Raw Concept
+**Task:**
+Document facts about .github/workflows/deploy.yml
+
+**Timestamp:** 2026-05-28T09:30:56.811Z
+
+## Narrative
+### Highlights
+.github/workflows/deploy.yml: added an apps/ change check so deploy steps only run when the release or manual dispatch commit range includes changes under apps/.
+
+## Facts
+- **.github/workflows/deploy.yml**: .github/workflows/deploy.yml: added an apps/ change check so deploy steps only run when the release or manual dispatch commit range includes changes under apps/.
diff --git a/.brv/context-tree/facts/project/github_workflows_pr_preview_yml.md b/.brv/context-tree/facts/project/github_workflows_pr_preview_yml.md
new file mode 100644
index 0000000..1a37c67
--- /dev/null
+++ b/.brv/context-tree/facts/project/github_workflows_pr_preview_yml.md
@@ -0,0 +1,24 @@
+---
+title: .github/workflows/pr-preview.yml
+summary: Facts about .github/workflows/pr-preview.yml
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:30:56.815Z'
+updatedAt: '2026-05-28T09:30:56.815Z'
+---
+## Reason
+Curated factual statements from source context
+
+## Raw Concept
+**Task:**
+Document facts about .github/workflows/pr-preview.yml
+
+**Timestamp:** 2026-05-28T09:30:56.811Z
+
+## Narrative
+### Highlights
+.github/workflows/pr-preview.yml: added paths: ['apps/**'] to the pull_request trigger.
+
+## Facts
+- **.github/workflows/pr-preview.yml**: .github/workflows/pr-preview.yml: added paths: ['apps/**'] to the pull_request trigger.
diff --git a/.brv/context-tree/facts/project/glassmorphism.md b/.brv/context-tree/facts/project/glassmorphism.md
new file mode 100644
index 0000000..daf2c8d
--- /dev/null
+++ b/.brv/context-tree/facts/project/glassmorphism.md
@@ -0,0 +1,27 @@
+---
+title: Glassmorphism
+summary: Facts about glassmorphism
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.633Z'
+updatedAt: '2026-05-27T19:18:57.163Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **glassmorphism**: Glassmorphism as default is banned.
diff --git a/.brv/context-tree/facts/project/global_css_facts.md b/.brv/context-tree/facts/project/global_css_facts.md
new file mode 100644
index 0000000..a86a56f
--- /dev/null
+++ b/.brv/context-tree/facts/project/global_css_facts.md
@@ -0,0 +1,24 @@
+---
+title: Global.css facts
+summary: Facts about global.css
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:23.983Z'
+updatedAt: '2026-05-28T10:14:23.983Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for global.css
+
+## Facts
+- **global.css**: `apps/landing/src/styles/global.css` was not changed for Task 3.
diff --git a/.brv/context-tree/facts/project/gradient_text.md b/.brv/context-tree/facts/project/gradient_text.md
new file mode 100644
index 0000000..81cad04
--- /dev/null
+++ b/.brv/context-tree/facts/project/gradient_text.md
@@ -0,0 +1,27 @@
+---
+title: Gradient text
+summary: Facts about gradient text
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.631Z'
+updatedAt: '2026-05-27T19:18:57.155Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **gradient text**: Gradient text using background-clip: text with a gradient background is banned.
diff --git a/.brv/context-tree/facts/project/harden.md b/.brv/context-tree/facts/project/harden.md
new file mode 100644
index 0000000..ceca835
--- /dev/null
+++ b/.brv/context-tree/facts/project/harden.md
@@ -0,0 +1,24 @@
+---
+title: Harden
+summary: Facts about harden
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.700Z'
+updatedAt: '2026-05-27T18:47:50.700Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for harden
+
+## Facts
+- **harden**: `harden [target]` is a Refine command that makes designs production‑ready, handling errors, i18n, and edge cases.
diff --git a/.brv/context-tree/facts/project/harden_target_facts.md b/.brv/context-tree/facts/project/harden_target_facts.md
new file mode 100644
index 0000000..af6a80e
--- /dev/null
+++ b/.brv/context-tree/facts/project/harden_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`harden [target]` facts'
+summary: Facts about `harden [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.733Z'
+updatedAt: '2026-05-27T19:11:54.733Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `harden [target]`
+
+## Facts
+- **`harden [target]`**: The command `harden [target]` belongs to the Refine category and makes designs production‑ready, handling errors, i18n, and edge cases.
diff --git a/.brv/context-tree/facts/project/header_shadow_token.md b/.brv/context-tree/facts/project/header_shadow_token.md
new file mode 100644
index 0000000..f6310c4
--- /dev/null
+++ b/.brv/context-tree/facts/project/header_shadow_token.md
@@ -0,0 +1,25 @@
+---
+title: Header shadow token
+summary: Facts about header shadow token
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.275Z'
+updatedAt: '2026-05-28T13:55:17.275Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 2 facts for header shadow token
+
+## Facts
+- **header shadow token**: Audit finding 3: The --header-shadow token is stale and should be removed if unused.
+- **header shadow token**: The unused --header-shadow token was removed.
diff --git a/.brv/context-tree/facts/project/header_styling_facts.md b/.brv/context-tree/facts/project/header_styling_facts.md
new file mode 100644
index 0000000..2fa718c
--- /dev/null
+++ b/.brv/context-tree/facts/project/header_styling_facts.md
@@ -0,0 +1,24 @@
+---
+title: Header styling facts
+summary: Facts about Header styling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.763Z'
+updatedAt: '2026-05-27T19:11:54.763Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Header styling
+
+## Facts
+- **Header styling**: Header spacing, sticky behavior, hover states, and visual weight were improved.
diff --git a/.brv/context-tree/facts/project/hero_copy.md b/.brv/context-tree/facts/project/hero_copy.md
new file mode 100644
index 0000000..4eafea6
--- /dev/null
+++ b/.brv/context-tree/facts/project/hero_copy.md
@@ -0,0 +1,20 @@
+---
+title: Hero copy
+summary: Facts about hero copy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.233Z'
+updatedAt: '2026-05-28T10:20:18.233Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about hero copy
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **hero copy**: Hero copy leads with `Skillify your backends.` and defines “skillify” clearly.
diff --git a/.brv/context-tree/facts/project/hero_design.md b/.brv/context-tree/facts/project/hero_design.md
new file mode 100644
index 0000000..ea2a988
--- /dev/null
+++ b/.brv/context-tree/facts/project/hero_design.md
@@ -0,0 +1,24 @@
+---
+title: Hero design
+summary: Facts about hero design
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:50:25.675Z'
+updatedAt: '2026-05-28T09:50:25.675Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:50:25.672Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for hero design
+
+## Facts
+- **hero design**: The hero’s center of gravity should be replaced with a proof‑first product diagram.
diff --git a/.brv/context-tree/facts/project/hero_metric_template.md b/.brv/context-tree/facts/project/hero_metric_template.md
new file mode 100644
index 0000000..43c8123
--- /dev/null
+++ b/.brv/context-tree/facts/project/hero_metric_template.md
@@ -0,0 +1,27 @@
+---
+title: Hero-metric template
+summary: Facts about hero-metric template
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.165Z'
+updatedAt: '2026-05-27T19:18:57.165Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **hero-metric template**: The hero-metric template is banned.
diff --git a/.brv/context-tree/facts/project/hero_motion_script.md b/.brv/context-tree/facts/project/hero_motion_script.md
new file mode 100644
index 0000000..6bf27a1
--- /dev/null
+++ b/.brv/context-tree/facts/project/hero_motion_script.md
@@ -0,0 +1,20 @@
+---
+title: Hero-motion script
+summary: Facts about hero-motion script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.282Z'
+updatedAt: '2026-05-28T10:20:18.282Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about hero-motion script
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **hero-motion script**: Dead old hero-motion script remains in `apps/landing/src/pages/index.astro:379-505`, including `.map-stage`, pointer tracking, route progress, and `is-route-active` logic; it is mostly inert but should be removed.
diff --git a/.brv/context-tree/facts/project/hero_workflow.md b/.brv/context-tree/facts/project/hero_workflow.md
new file mode 100644
index 0000000..76aa93a
--- /dev/null
+++ b/.brv/context-tree/facts/project/hero_workflow.md
@@ -0,0 +1,24 @@
+---
+title: Hero workflow
+summary: Facts about hero workflow
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:50:25.724Z'
+updatedAt: '2026-05-28T09:50:25.724Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:50:25.672Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for hero workflow
+
+## Facts
+- **hero workflow**: The hero should show a progressive‑disclosure path consisting of: Capability: github; Discover: search_tools; Inspect: get_tool; Call: call_tool; Result: structured output preserved, errors redacted.
diff --git a/.brv/context-tree/facts/project/heuristic_scoring.md b/.brv/context-tree/facts/project/heuristic_scoring.md
new file mode 100644
index 0000000..b87b9f2
--- /dev/null
+++ b/.brv/context-tree/facts/project/heuristic_scoring.md
@@ -0,0 +1,24 @@
+---
+title: Heuristic scoring
+summary: Facts about heuristic scoring
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.161Z'
+updatedAt: '2026-05-28T09:45:49.161Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for heuristic scoring
+
+## Facts
+- **heuristic scoring**: Nielsen's 10 heuristics are scored 0‑4, with total possible score 40; most real interfaces score 20‑32.
diff --git a/.brv/context-tree/facts/project/hierarchy_facts.md b/.brv/context-tree/facts/project/hierarchy_facts.md
new file mode 100644
index 0000000..8675845
--- /dev/null
+++ b/.brv/context-tree/facts/project/hierarchy_facts.md
@@ -0,0 +1,24 @@
+---
+title: Hierarchy facts
+summary: Facts about hierarchy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.700Z'
+updatedAt: '2026-05-27T19:11:54.700Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for hierarchy
+
+## Facts
+- **hierarchy**: Hierarchy should have a scale and weight contrast ratio of at least 1.25 between steps.
diff --git a/.brv/context-tree/facts/project/home_ianpascoe_src_caplets.md b/.brv/context-tree/facts/project/home_ianpascoe_src_caplets.md
new file mode 100644
index 0000000..1d9479d
--- /dev/null
+++ b/.brv/context-tree/facts/project/home_ianpascoe_src_caplets.md
@@ -0,0 +1,24 @@
+---
+title: /home/ianpascoe/src/caplets
+summary: Facts about /home/ianpascoe/src/caplets
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.783Z'
+updatedAt: '2026-05-28T10:26:09.783Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for /home/ianpascoe/src/caplets
+
+## Facts
+- **/home/ianpascoe/src/caplets**: The user is working in the directory /home/ianpascoe/src/caplets.
diff --git a/.brv/context-tree/facts/project/hover_motion.md b/.brv/context-tree/facts/project/hover_motion.md
new file mode 100644
index 0000000..0190b9b
--- /dev/null
+++ b/.brv/context-tree/facts/project/hover_motion.md
@@ -0,0 +1,25 @@
+---
+title: Hover motion
+summary: Facts about hover motion
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.273Z'
+updatedAt: '2026-05-28T13:55:17.273Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 2 facts for hover motion
+
+## Facts
+- **hover motion**: Audit finding 2: Some secondary hover motion is over‑applied and should be reduced on low‑priority nav/icon/copy controls.
+- **hover motion**: Hover translate motion was removed from low‑priority top nav, header icons, and copy buttons.
diff --git a/.brv/context-tree/facts/project/hover_transform.md b/.brv/context-tree/facts/project/hover_transform.md
new file mode 100644
index 0000000..5e57019
--- /dev/null
+++ b/.brv/context-tree/facts/project/hover_transform.md
@@ -0,0 +1,24 @@
+---
+title: Hover transform
+summary: Facts about hover transform
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.290Z'
+updatedAt: '2026-05-28T13:55:17.290Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for hover transform
+
+## Facts
+- **hover transform**: Hover transform was kept for primary/secondary buttons and integration pills.
diff --git a/.brv/context-tree/facts/project/hover_transforms.md b/.brv/context-tree/facts/project/hover_transforms.md
new file mode 100644
index 0000000..60bb9e4
--- /dev/null
+++ b/.brv/context-tree/facts/project/hover_transforms.md
@@ -0,0 +1,22 @@
+---
+title: Hover transforms
+summary: Facts about Hover transforms
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.030Z'
+updatedAt: '2026-05-28T13:58:26.030Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Hover transforms
+
+## Narrative
+### Highlights
+Extracted 1 facts for Hover transforms
+
+## Facts
+- **Hover transforms**: Low-priority hover transforms were reduced, while primary/integration transforms remain.
diff --git a/.brv/context-tree/facts/project/icon_link.md b/.brv/context-tree/facts/project/icon_link.md
new file mode 100644
index 0000000..3def3e3
--- /dev/null
+++ b/.brv/context-tree/facts/project/icon_link.md
@@ -0,0 +1,27 @@
+---
+title: .icon-link
+summary: Facts about .icon-link
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.016Z'
+updatedAt: '2026-05-28T13:40:49.016Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **.icon-link**: `.icon-link` becomes exactly 44px wide and inherits 44px min height, giving square icon targets.
diff --git a/.brv/context-tree/facts/project/identified_issues.md b/.brv/context-tree/facts/project/identified_issues.md
new file mode 100644
index 0000000..0a35e75
--- /dev/null
+++ b/.brv/context-tree/facts/project/identified_issues.md
@@ -0,0 +1,24 @@
+---
+title: Identified issues
+summary: Facts about identified issues
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.165Z'
+updatedAt: '2026-05-28T09:45:49.165Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for identified issues
+
+## Facts
+- **identified issues**: The issues live mostly in CSS, product-context mismatch, motion volume, no-JS behavior, install consistency, and trust-copy specificity.
diff --git a/.brv/context-tree/facts/project/impeccable_context_dir.md b/.brv/context-tree/facts/project/impeccable_context_dir.md
new file mode 100644
index 0000000..00b3b4f
--- /dev/null
+++ b/.brv/context-tree/facts/project/impeccable_context_dir.md
@@ -0,0 +1,24 @@
+---
+title: IMPECCABLE CONTEXT DIR
+summary: Facts about IMPECCABLE_CONTEXT_DIR
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.267Z'
+updatedAt: '2026-05-27T19:12:30.267Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.245Z
+
+## Narrative
+### Structure
+Extracted facts for IMPECCABLE_CONTEXT_DIR
+
+## Facts
+- **IMPECCABLE_CONTEXT_DIR**: The context directory can be overridden with IMPECCABLE_CONTEXT_DIR=path/to/dir (absolute or relative to cwd).
diff --git a/.brv/context-tree/facts/project/inactive_integration_panels.md b/.brv/context-tree/facts/project/inactive_integration_panels.md
new file mode 100644
index 0000000..70e8879
--- /dev/null
+++ b/.brv/context-tree/facts/project/inactive_integration_panels.md
@@ -0,0 +1,27 @@
+---
+title: inactive integration panels
+summary: Facts about inactive integration panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.351Z'
+updatedAt: '2026-05-28T13:51:08.351Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about inactive integration panels
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for inactive integration panels
+
+### Highlights
+Removed server-rendered `hidden` from inactive integration panels.
+
+## Facts
+- **inactive integration panels**: Removed server-rendered `hidden` from inactive integration panels.
diff --git a/.brv/context-tree/facts/project/integration_panels.md b/.brv/context-tree/facts/project/integration_panels.md
new file mode 100644
index 0000000..7f7a970
--- /dev/null
+++ b/.brv/context-tree/facts/project/integration_panels.md
@@ -0,0 +1,27 @@
+---
+title: integration panels
+summary: Facts about integration panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.348Z'
+updatedAt: '2026-05-28T13:51:08.348Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about integration panels
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for integration panels
+
+### Highlights
+Implemented progressive enhancement fix for integration panels.
+
+## Facts
+- **integration panels**: Implemented progressive enhancement fix for integration panels.
diff --git a/.brv/context-tree/facts/project/integration_pill.md b/.brv/context-tree/facts/project/integration_pill.md
new file mode 100644
index 0000000..802871a
--- /dev/null
+++ b/.brv/context-tree/facts/project/integration_pill.md
@@ -0,0 +1,27 @@
+---
+title: .integration-pill
+summary: Facts about .integration-pill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.009Z'
+updatedAt: '2026-05-28T13:40:49.009Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **.integration-pill**: `.integration-pill` now has both `min-width: 44px` and existing `min-height: 44px`, preserving current pill styling while meeting minimum touch target sizing.
diff --git a/.brv/context-tree/facts/project/integration_tabs_aria_semantics.md b/.brv/context-tree/facts/project/integration_tabs_aria_semantics.md
new file mode 100644
index 0000000..011d6e6
--- /dev/null
+++ b/.brv/context-tree/facts/project/integration_tabs_aria_semantics.md
@@ -0,0 +1,22 @@
+---
+title: Integration tabs ARIA semantics
+summary: Facts about Integration tabs ARIA semantics
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.013Z'
+updatedAt: '2026-05-28T13:58:26.013Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Integration tabs ARIA semantics
+
+## Narrative
+### Highlights
+Extracted 1 facts for Integration tabs ARIA semantics
+
+## Facts
+- **Integration tabs ARIA semantics**: Integration tabs still have unsafe no-JS SSR ARIA semantics in apps/landing/src/pages/index.astro lines 311-333.
diff --git a/.brv/context-tree/facts/project/interaction_pattern_facts.md b/.brv/context-tree/facts/project/interaction_pattern_facts.md
new file mode 100644
index 0000000..1e94446
--- /dev/null
+++ b/.brv/context-tree/facts/project/interaction_pattern_facts.md
@@ -0,0 +1,24 @@
+---
+title: Interaction pattern facts
+summary: Facts about interaction pattern
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.694Z'
+updatedAt: '2026-05-27T19:11:54.694Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for interaction pattern
+
+## Facts
+- **interaction pattern**: Modals as the first design thought are prohibited.
diff --git a/.brv/context-tree/facts/project/javascript.md b/.brv/context-tree/facts/project/javascript.md
new file mode 100644
index 0000000..652ddac
--- /dev/null
+++ b/.brv/context-tree/facts/project/javascript.md
@@ -0,0 +1,24 @@
+---
+title: javascript
+summary: Facts about javascript
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:48:34.345Z'
+updatedAt: '2026-05-28T13:48:34.345Z'
+---
+## Reason
+Curated factual statements from recent context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-28T13:48:34.339Z
+
+## Narrative
+### Highlights
+Collected 1 facts for javascript
+
+## Facts
+- **javascript**: Existing JS behavior is preserved: click selection, ARIA/tabindex updates, panel hiding, and ArrowLeft/ArrowRight/Home/End keyboard navigation remain at lines 425-476
diff --git a/.brv/context-tree/facts/project/javascript_initialization.md b/.brv/context-tree/facts/project/javascript_initialization.md
new file mode 100644
index 0000000..cd851b7
--- /dev/null
+++ b/.brv/context-tree/facts/project/javascript_initialization.md
@@ -0,0 +1,27 @@
+---
+title: JavaScript initialization
+summary: Facts about JavaScript initialization
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.354Z'
+updatedAt: '2026-05-28T13:51:08.354Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about JavaScript initialization
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for JavaScript initialization
+
+### Highlights
+Existing JS now applies the initial hidden state on initialization via `selectAgentTab(...)`, preserving click and keyboard tab behavior.
+
+## Facts
+- **JavaScript initialization**: Existing JS now applies the initial hidden state on initialization via `selectAgentTab(...)`, preserving click and keyboard tab behavior.
diff --git a/.brv/context-tree/facts/project/kicker_pattern.md b/.brv/context-tree/facts/project/kicker_pattern.md
new file mode 100644
index 0000000..1568da7
--- /dev/null
+++ b/.brv/context-tree/facts/project/kicker_pattern.md
@@ -0,0 +1,24 @@
+---
+title: Kicker pattern
+summary: Facts about kicker pattern
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.272Z'
+updatedAt: '2026-05-28T13:55:17.272Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for kicker pattern
+
+## Facts
+- **kicker pattern**: Audit finding 1: Repeated uppercase kicker pattern appears in hero, problem, proof, trust, integrations, install sections.
diff --git a/.brv/context-tree/facts/project/kicker_scaffolding.md b/.brv/context-tree/facts/project/kicker_scaffolding.md
new file mode 100644
index 0000000..b643ad5
--- /dev/null
+++ b/.brv/context-tree/facts/project/kicker_scaffolding.md
@@ -0,0 +1,24 @@
+---
+title: Kicker scaffolding
+summary: Facts about kicker scaffolding
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.287Z'
+updatedAt: '2026-05-28T13:55:17.287Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for kicker scaffolding
+
+## Facts
+- **kicker scaffolding**: Repeated uppercase kicker scaffolding was reduced to two key kickers: hero and install.
diff --git a/.brv/context-tree/facts/project/landing_app_audit.md b/.brv/context-tree/facts/project/landing_app_audit.md
new file mode 100644
index 0000000..41ddbe8
--- /dev/null
+++ b/.brv/context-tree/facts/project/landing_app_audit.md
@@ -0,0 +1,20 @@
+---
+title: Landing app audit
+summary: Facts about landing app audit
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.532Z'
+updatedAt: '2026-05-28T11:17:59.532Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about landing app audit
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **landing app audit**: APPROVED, no P0/P1/P2 actionable issues remain.
diff --git a/.brv/context-tree/facts/project/landing_build_facts.md b/.brv/context-tree/facts/project/landing_build_facts.md
new file mode 100644
index 0000000..540d56b
--- /dev/null
+++ b/.brv/context-tree/facts/project/landing_build_facts.md
@@ -0,0 +1,24 @@
+---
+title: Landing build facts
+summary: Facts about Landing build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.769Z'
+updatedAt: '2026-05-27T19:11:54.769Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Landing build
+
+## Facts
+- **Landing build**: `pnpm --filter @caplets/landing build` passed without errors.
diff --git a/.brv/context-tree/facts/project/landing_page.md b/.brv/context-tree/facts/project/landing_page.md
new file mode 100644
index 0000000..c2c6088
--- /dev/null
+++ b/.brv/context-tree/facts/project/landing_page.md
@@ -0,0 +1,20 @@
+---
+title: Landing page
+summary: Facts about landing page
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.544Z'
+updatedAt: '2026-05-28T11:17:59.544Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about landing page
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **landing page**: All anti-patterns are resolved: no target blank issue, no inaccessible decorative SVGs, no JS-only critical content, no obvious layout traps, and no secrets exposed.
diff --git a/.brv/context-tree/facts/project/landing_page_animation.md b/.brv/context-tree/facts/project/landing_page_animation.md
new file mode 100644
index 0000000..1f2198c
--- /dev/null
+++ b/.brv/context-tree/facts/project/landing_page_animation.md
@@ -0,0 +1,27 @@
+---
+title: Landing page animation
+summary: Facts about landing page animation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.178Z'
+updatedAt: '2026-05-27T19:18:57.178Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **landing page animation**: The animation of the landing page added hero entrance choreography, scroll‑triggered section reveals, staggered reveal timing, button active feedback, and preserved reduced‑motion behavior.
diff --git a/.brv/context-tree/facts/project/landing_typecheck_facts.md b/.brv/context-tree/facts/project/landing_typecheck_facts.md
new file mode 100644
index 0000000..0dc8685
--- /dev/null
+++ b/.brv/context-tree/facts/project/landing_typecheck_facts.md
@@ -0,0 +1,24 @@
+---
+title: Landing typecheck facts
+summary: Facts about Landing typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.770Z'
+updatedAt: '2026-05-27T19:11:54.770Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Landing typecheck
+
+## Facts
+- **Landing typecheck**: `pnpm --filter @caplets/landing typecheck` passed with 0 errors, 0 warnings, and 0 hints.
diff --git a/.brv/context-tree/facts/project/layout.md b/.brv/context-tree/facts/project/layout.md
new file mode 100644
index 0000000..29537ad
--- /dev/null
+++ b/.brv/context-tree/facts/project/layout.md
@@ -0,0 +1,27 @@
+---
+title: layout
+summary: Facts about layout
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.721Z'
+updatedAt: '2026-05-28T13:40:49.019Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **layout**: Responsiveness appears safe at the 320px minimum viewport; the compact mobile header widths fit the three‑column layout without obvious overflow risk.
diff --git a/.brv/context-tree/facts/project/layout_target_facts.md b/.brv/context-tree/facts/project/layout_target_facts.md
new file mode 100644
index 0000000..bc1bf94
--- /dev/null
+++ b/.brv/context-tree/facts/project/layout_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`layout [target]` facts'
+summary: Facts about `layout [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.743Z'
+updatedAt: '2026-05-27T19:11:54.743Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `layout [target]`
+
+## Facts
+- **`layout [target]`**: The command `layout [target]` belongs to the Enhance category and fixes spacing, rhythm, and visual hierarchy.
diff --git a/.brv/context-tree/facts/project/layout_template_facts.md b/.brv/context-tree/facts/project/layout_template_facts.md
new file mode 100644
index 0000000..2c4951c
--- /dev/null
+++ b/.brv/context-tree/facts/project/layout_template_facts.md
@@ -0,0 +1,24 @@
+---
+title: Layout template facts
+summary: Facts about layout template
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.690Z'
+updatedAt: '2026-05-27T19:11:54.690Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for layout template
+
+## Facts
+- **layout template**: The hero-metric template (big number, small label, supporting stats, gradient accent) is prohibited.
diff --git a/.brv/context-tree/facts/project/line_length.md b/.brv/context-tree/facts/project/line_length.md
new file mode 100644
index 0000000..2e01239
--- /dev/null
+++ b/.brv/context-tree/facts/project/line_length.md
@@ -0,0 +1,24 @@
+---
+title: Line length
+summary: Facts about line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.298Z'
+updatedAt: '2026-05-27T19:12:30.298Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for line length
+
+## Facts
+- **line length**: Body line length should be capped at 65–75 characters.
diff --git a/.brv/context-tree/facts/project/line_length_facts.md b/.brv/context-tree/facts/project/line_length_facts.md
new file mode 100644
index 0000000..6ba8289
--- /dev/null
+++ b/.brv/context-tree/facts/project/line_length_facts.md
@@ -0,0 +1,24 @@
+---
+title: Line length facts
+summary: Facts about line length
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.698Z'
+updatedAt: '2026-05-27T19:11:54.698Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for line length
+
+## Facts
+- **line length**: Cap body line length at 65–75 characters.
diff --git a/.brv/context-tree/facts/project/link_at_line_165.md b/.brv/context-tree/facts/project/link_at_line_165.md
new file mode 100644
index 0000000..8bec4ea
--- /dev/null
+++ b/.brv/context-tree/facts/project/link_at_line_165.md
@@ -0,0 +1,20 @@
+---
+title: Link at line 165
+summary: Facts about link at line 165
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.276Z'
+updatedAt: '2026-05-28T10:20:18.276Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about link at line 165
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **link at line 165**: `apps/landing/src/pages/index.astro:165` links to `#map`, but the old `id="map"` was removed and replaced by `id="trace"` at line 210, creating a broken primary navigation target.
diff --git a/.brv/context-tree/facts/project/live.md b/.brv/context-tree/facts/project/live.md
new file mode 100644
index 0000000..f334aa3
--- /dev/null
+++ b/.brv/context-tree/facts/project/live.md
@@ -0,0 +1,24 @@
+---
+title: Live
+summary: Facts about live
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.756Z'
+updatedAt: '2026-05-27T18:47:50.756Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for live
+
+## Facts
+- **live**: `live` is an Iterate command that provides a visual variant mode for picking elements in the browser and generating alternatives.
diff --git a/.brv/context-tree/facts/project/live_facts.md b/.brv/context-tree/facts/project/live_facts.md
new file mode 100644
index 0000000..419ca5a
--- /dev/null
+++ b/.brv/context-tree/facts/project/live_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`live` facts'
+summary: Facts about `live`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.758Z'
+updatedAt: '2026-05-27T19:11:54.758Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `live`
+
+## Facts
+- **`live`**: The command `live` belongs to the Iterate category and provides a visual variant mode to pick elements in the browser and generate alternatives.
diff --git a/.brv/context-tree/facts/project/load_context_mjs.md b/.brv/context-tree/facts/project/load_context_mjs.md
new file mode 100644
index 0000000..ee200a2
--- /dev/null
+++ b/.brv/context-tree/facts/project/load_context_mjs.md
@@ -0,0 +1,24 @@
+---
+title: Load-context.mjs
+summary: Facts about load-context.mjs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.270Z'
+updatedAt: '2026-05-27T19:12:30.270Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.245Z
+
+## Narrative
+### Structure
+Extracted facts for load-context.mjs
+
+## Facts
+- **load-context.mjs**: Both PRODUCT.md and DESIGN.md can be loaded in one call using node {{scripts_path}}/load-context.mjs.
diff --git a/.brv/context-tree/facts/project/loader_output.md b/.brv/context-tree/facts/project/loader_output.md
new file mode 100644
index 0000000..3a0158b
--- /dev/null
+++ b/.brv/context-tree/facts/project/loader_output.md
@@ -0,0 +1,24 @@
+---
+title: Loader output
+summary: Facts about loader output
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.272Z'
+updatedAt: '2026-05-27T19:12:30.272Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.245Z
+
+## Narrative
+### Structure
+Extracted facts for loader output
+
+## Facts
+- **loader output**: Never pipe the loader output through head, tail, grep, or jq.
diff --git a/.brv/context-tree/facts/project/loader_output_handling.md b/.brv/context-tree/facts/project/loader_output_handling.md
new file mode 100644
index 0000000..b40c7f0
--- /dev/null
+++ b/.brv/context-tree/facts/project/loader_output_handling.md
@@ -0,0 +1,24 @@
+---
+title: Loader output handling
+summary: Facts about loader output handling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.559Z'
+updatedAt: '2026-05-27T18:47:50.559Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for loader output handling
+
+## Facts
+- **loader output handling**: Never pipe the loader output through `head`, `tail`, `grep`, or `jq`.
diff --git a/.brv/context-tree/facts/project/map_labeling.md b/.brv/context-tree/facts/project/map_labeling.md
new file mode 100644
index 0000000..a51c7e9
--- /dev/null
+++ b/.brv/context-tree/facts/project/map_labeling.md
@@ -0,0 +1,20 @@
+---
+title: Map labeling
+summary: Facts about map labeling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.278Z'
+updatedAt: '2026-05-28T10:20:18.278Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about map labeling
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **map labeling**: `apps/landing/src/pages/index.astro:165` still labels the nav item `Map`, and `apps/landing/src/pages/index.astro:355` still says `serve the map.` This undercuts the plan’s brand direction.
diff --git a/.brv/context-tree/facts/project/map_stage_pointer_route_script.md b/.brv/context-tree/facts/project/map_stage_pointer_route_script.md
new file mode 100644
index 0000000..e80b671
--- /dev/null
+++ b/.brv/context-tree/facts/project/map_stage_pointer_route_script.md
@@ -0,0 +1,24 @@
+---
+title: Map-stage/pointer/route script
+summary: Facts about map-stage/pointer/route script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.791Z'
+updatedAt: '2026-05-28T10:26:09.791Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for map-stage/pointer/route script
+
+## Facts
+- **map-stage/pointer/route script**: Remove old inert map-stage/pointer/route script if doing Task 7 subset is necessary to eliminate dead code.
diff --git a/.brv/context-tree/facts/project/mask_image.md b/.brv/context-tree/facts/project/mask_image.md
new file mode 100644
index 0000000..a41ed3a
--- /dev/null
+++ b/.brv/context-tree/facts/project/mask_image.md
@@ -0,0 +1,24 @@
+---
+title: Mask image
+summary: Facts about mask image
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.280Z'
+updatedAt: '2026-05-28T13:55:17.292Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for mask image
+
+## Facts
+- **mask image**: The .tool-noise mask literal `black` was replaced with a token‑compatible OKLCH alpha value.
diff --git a/.brv/context-tree/facts/project/missing_design_md.md b/.brv/context-tree/facts/project/missing_design_md.md
new file mode 100644
index 0000000..5cc4739
--- /dev/null
+++ b/.brv/context-tree/facts/project/missing_design_md.md
@@ -0,0 +1,27 @@
+---
+title: Missing DESIGN.md
+summary: Facts about missing DESIGN.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.588Z'
+updatedAt: '2026-05-27T19:12:30.278Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for missing DESIGN.md
+
+### Highlights
+Extracted 1 facts for missing DESIGN.md
+
+## Facts
+- **missing DESIGN.md**: If DESIGN.md is missing, the assistant should nudge the user once per session to run {{command_prefix}}impeccable document.
diff --git a/.brv/context-tree/facts/project/missing_product_md.md b/.brv/context-tree/facts/project/missing_product_md.md
new file mode 100644
index 0000000..eb5d213
--- /dev/null
+++ b/.brv/context-tree/facts/project/missing_product_md.md
@@ -0,0 +1,27 @@
+---
+title: Missing PRODUCT.md
+summary: Facts about missing PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.563Z'
+updatedAt: '2026-05-27T19:12:30.274Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for missing PRODUCT.md
+
+### Highlights
+Extracted 1 facts for missing PRODUCT.md
+
+## Facts
+- **missing PRODUCT.md**: If PRODUCT.md is missing, empty, or contains placeholder markers (<200 chars), run {{command_prefix}}impeccable teach.
diff --git a/.brv/context-tree/facts/project/missing_register_field.md b/.brv/context-tree/facts/project/missing_register_field.md
new file mode 100644
index 0000000..c39ea64
--- /dev/null
+++ b/.brv/context-tree/facts/project/missing_register_field.md
@@ -0,0 +1,24 @@
+---
+title: Missing register field
+summary: Facts about missing register field
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.290Z'
+updatedAt: '2026-05-27T19:12:30.290Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for missing register field
+
+## Facts
+- **missing register field**: If PRODUCT.md lacks a register field, the assistant should infer it once from the Users and Product Purpose sections and cache it for the session.
diff --git a/.brv/context-tree/facts/project/mobile_nav_facts.md b/.brv/context-tree/facts/project/mobile_nav_facts.md
new file mode 100644
index 0000000..7c89df2
--- /dev/null
+++ b/.brv/context-tree/facts/project/mobile_nav_facts.md
@@ -0,0 +1,24 @@
+---
+title: Mobile nav facts
+summary: Facts about Mobile nav
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.765Z'
+updatedAt: '2026-05-27T19:11:54.765Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Mobile nav
+
+## Facts
+- **Mobile nav**: Mobile navigation now becomes a full compact command‑bar layout instead of hiding section links.
diff --git a/.brv/context-tree/facts/project/modals.md b/.brv/context-tree/facts/project/modals.md
new file mode 100644
index 0000000..2f16e94
--- /dev/null
+++ b/.brv/context-tree/facts/project/modals.md
@@ -0,0 +1,27 @@
+---
+title: Modals
+summary: Facts about modals
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.167Z'
+updatedAt: '2026-05-27T19:18:57.167Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **modals**: Modals as the first design thought are banned.
diff --git a/.brv/context-tree/facts/project/modified_files.md b/.brv/context-tree/facts/project/modified_files.md
index 7015e8e..5a1fbe9 100644
--- a/.brv/context-tree/facts/project/modified_files.md
+++ b/.brv/context-tree/facts/project/modified_files.md
@@ -5,20 +5,23 @@ tags: []
related: []
keywords: []
createdAt: '2026-05-27T11:14:20.336Z'
-updatedAt: '2026-05-27T11:14:20.336Z'
+updatedAt: '2026-05-27T19:18:57.180Z'
---
## Reason
-Curated factual statements extracted from context
+Curated facts extracted from context
## Raw Concept
**Task:**
-Document factual statements
+Document project facts
-**Timestamp:** 2026-05-27T11:14:20.303Z
+**Timestamp:** 2026-05-27T19:18:57.119Z
## Narrative
### Structure
-Collection of facts regarding modified files
+Collected factual statements
+
+### Highlights
+Contains 1 facts
## Facts
-- **modified files**: Files changed include packages/core/src/result-content.ts, packages/core/test/result-content.test.ts, packages/core/test/http-actions.test.ts, and packages/core/test/tools.test.ts.
+- **modified files**: The animation changes modified the files `apps/landing/src/pages/index.astro` and `apps/landing/src/styles/global.css`.
diff --git a/.brv/context-tree/facts/project/motion.md b/.brv/context-tree/facts/project/motion.md
new file mode 100644
index 0000000..c1d0171
--- /dev/null
+++ b/.brv/context-tree/facts/project/motion.md
@@ -0,0 +1,28 @@
+---
+title: Motion
+summary: Facts about motion
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.152Z'
+updatedAt: '2026-05-27T19:18:57.152Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 2 facts
+
+## Facts
+- **motion**: Do not animate CSS layout properties.
+- **motion**: Use ease-out exponential curves for motion, no bounce or elastic.
diff --git a/.brv/context-tree/facts/project/motion_preferences.md b/.brv/context-tree/facts/project/motion_preferences.md
new file mode 100644
index 0000000..6602518
--- /dev/null
+++ b/.brv/context-tree/facts/project/motion_preferences.md
@@ -0,0 +1,22 @@
+---
+title: Motion preferences
+summary: Facts about Motion preferences
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.025Z'
+updatedAt: '2026-05-28T13:58:26.025Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Motion preferences
+
+## Narrative
+### Highlights
+Extracted 1 facts for Motion preferences
+
+## Facts
+- **Motion preferences**: Reduced motion is preserved.
diff --git a/.brv/context-tree/facts/project/nav_links_facts.md b/.brv/context-tree/facts/project/nav_links_facts.md
new file mode 100644
index 0000000..34440dd
--- /dev/null
+++ b/.brv/context-tree/facts/project/nav_links_facts.md
@@ -0,0 +1,24 @@
+---
+title: Nav links facts
+summary: Facts about Nav links
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.762Z'
+updatedAt: '2026-05-27T19:11:54.762Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for Nav links
+
+## Facts
+- **Nav links**: A link to npm was added alongside GitHub as a project link in the navigation.
diff --git a/.brv/context-tree/facts/project/neutral_colors.md b/.brv/context-tree/facts/project/neutral_colors.md
new file mode 100644
index 0000000..2e5e2e7
--- /dev/null
+++ b/.brv/context-tree/facts/project/neutral_colors.md
@@ -0,0 +1,24 @@
+---
+title: Neutral colors
+summary: Facts about neutral colors
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.295Z'
+updatedAt: '2026-05-27T19:12:30.295Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for neutral colors
+
+## Facts
+- **neutral colors**: Never use #000 or #fff; tint every neutral toward the brand hue.
diff --git a/.brv/context-tree/facts/project/next_step.md b/.brv/context-tree/facts/project/next_step.md
new file mode 100644
index 0000000..329ff08
--- /dev/null
+++ b/.brv/context-tree/facts/project/next_step.md
@@ -0,0 +1,24 @@
+---
+title: Next step
+summary: Facts about next step
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.320Z'
+updatedAt: '2026-05-28T13:55:17.320Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for next step
+
+## Facts
+- **next step**: Recommended next step: Review the landing page visually for section rhythm and hover feel.
diff --git a/.brv/context-tree/facts/project/next_step_facts.md b/.brv/context-tree/facts/project/next_step_facts.md
new file mode 100644
index 0000000..be232f1
--- /dev/null
+++ b/.brv/context-tree/facts/project/next_step_facts.md
@@ -0,0 +1,24 @@
+---
+title: Next step facts
+summary: Facts about next step
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:24.005Z'
+updatedAt: '2026-05-28T10:14:24.005Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for next step
+
+## Facts
+- **next step**: Recommended next step: Review the Task 3 diff, then proceed to Task 4 separately.
diff --git a/.brv/context-tree/facts/project/node_deprecation_warning.md b/.brv/context-tree/facts/project/node_deprecation_warning.md
new file mode 100644
index 0000000..8eace70
--- /dev/null
+++ b/.brv/context-tree/facts/project/node_deprecation_warning.md
@@ -0,0 +1,23 @@
+---
+title: Node deprecation warning
+summary: Facts about Node deprecation warning
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.586Z'
+updatedAt: '2026-05-28T10:53:51.586Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Node deprecation warning
+
+**Timestamp:** 2026-05-28T10:53:51.569Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Node deprecation warning**: The deprecation warning "module.register() is deprecated. Use module.registerHooks() instead" appears under Node 26
+- **Node deprecation warning**: The deprecation warning disappears under Node 24
diff --git a/.brv/context-tree/facts/project/node_requirement.md b/.brv/context-tree/facts/project/node_requirement.md
new file mode 100644
index 0000000..ef75ea7
--- /dev/null
+++ b/.brv/context-tree/facts/project/node_requirement.md
@@ -0,0 +1,22 @@
+---
+title: Node requirement
+summary: Facts about Node requirement
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.573Z'
+updatedAt: '2026-05-28T10:53:51.573Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Node requirement
+
+**Timestamp:** 2026-05-28T10:53:51.569Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Node requirement**: The repository's CI/dev target requires Node 24
diff --git a/.brv/context-tree/facts/project/node_version.md b/.brv/context-tree/facts/project/node_version.md
new file mode 100644
index 0000000..5ceed3d
--- /dev/null
+++ b/.brv/context-tree/facts/project/node_version.md
@@ -0,0 +1,22 @@
+---
+title: Node version
+summary: Facts about Node version
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.572Z'
+updatedAt: '2026-05-28T10:53:51.572Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Node version
+
+**Timestamp:** 2026-05-28T10:53:51.569Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Node version**: The command "pnpm alchemy:dev" was run under Node v26.2.0
diff --git a/.brv/context-tree/facts/project/none.md b/.brv/context-tree/facts/project/none.md
new file mode 100644
index 0000000..2fe6749
--- /dev/null
+++ b/.brv/context-tree/facts/project/none.md
@@ -0,0 +1,24 @@
+---
+title: None
+summary: Facts about none
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.316Z'
+updatedAt: '2026-05-28T13:55:17.316Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for none
+
+## Facts
+- **none**: Open risks/questions: None from this task.
diff --git a/.brv/context-tree/facts/project/none_facts.md b/.brv/context-tree/facts/project/none_facts.md
new file mode 100644
index 0000000..c3017c5
--- /dev/null
+++ b/.brv/context-tree/facts/project/none_facts.md
@@ -0,0 +1,24 @@
+---
+title: None facts
+summary: Facts about none
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:24.002Z'
+updatedAt: '2026-05-28T10:14:24.002Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for none
+
+## Facts
+- **none**: Open risks/questions: None.
diff --git a/.brv/context-tree/facts/project/old_route_motion_css.md b/.brv/context-tree/facts/project/old_route_motion_css.md
new file mode 100644
index 0000000..d12ea42
--- /dev/null
+++ b/.brv/context-tree/facts/project/old_route_motion_css.md
@@ -0,0 +1,20 @@
+---
+title: Old route-motion CSS
+summary: Facts about old route-motion CSS
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.279Z'
+updatedAt: '2026-05-28T10:20:18.279Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about old route-motion CSS
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **old route-motion CSS**: Old route-motion CSS is still actively affecting the problem section after the map hero was removed (lines 596 and 600-621 in `apps/landing/src/styles/global.css`).
diff --git a/.brv/context-tree/facts/project/onboard.md b/.brv/context-tree/facts/project/onboard.md
new file mode 100644
index 0000000..62d350f
--- /dev/null
+++ b/.brv/context-tree/facts/project/onboard.md
@@ -0,0 +1,24 @@
+---
+title: Onboard
+summary: Facts about onboard
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.702Z'
+updatedAt: '2026-05-27T18:47:50.702Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for onboard
+
+## Facts
+- **onboard**: `onboard [target]` is a Refine command that designs first‑run flows, empty states, and activation experiences.
diff --git a/.brv/context-tree/facts/project/onboard_target_facts.md b/.brv/context-tree/facts/project/onboard_target_facts.md
new file mode 100644
index 0000000..fbc8498
--- /dev/null
+++ b/.brv/context-tree/facts/project/onboard_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`onboard [target]` facts'
+summary: Facts about `onboard [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.737Z'
+updatedAt: '2026-05-27T19:11:54.737Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `onboard [target]`
+
+## Facts
+- **`onboard [target]`**: The command `onboard [target]` belongs to the Refine category and designs first‑run flows, empty states, and activation experiences.
diff --git a/.brv/context-tree/facts/project/optimize.md b/.brv/context-tree/facts/project/optimize.md
new file mode 100644
index 0000000..bf29a13
--- /dev/null
+++ b/.brv/context-tree/facts/project/optimize.md
@@ -0,0 +1,24 @@
+---
+title: Optimize
+summary: Facts about optimize
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.754Z'
+updatedAt: '2026-05-27T18:47:50.754Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for optimize
+
+## Facts
+- **optimize**: `optimize [target]` is a Fix command that diagnoses and fixes UI performance issues.
diff --git a/.brv/context-tree/facts/project/optimize_target_facts.md b/.brv/context-tree/facts/project/optimize_target_facts.md
new file mode 100644
index 0000000..4ff59f7
--- /dev/null
+++ b/.brv/context-tree/facts/project/optimize_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`optimize [target]` facts'
+summary: Facts about `optimize [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.756Z'
+updatedAt: '2026-05-27T19:11:54.756Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `optimize [target]`
+
+## Facts
+- **`optimize [target]`**: The command `optimize [target]` belongs to the Fix category and diagnoses and fixes UI performance issues.
diff --git a/.brv/context-tree/facts/project/overdrive.md b/.brv/context-tree/facts/project/overdrive.md
new file mode 100644
index 0000000..9e8a780
--- /dev/null
+++ b/.brv/context-tree/facts/project/overdrive.md
@@ -0,0 +1,24 @@
+---
+title: Overdrive
+summary: Facts about overdrive
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.736Z'
+updatedAt: '2026-05-27T18:47:50.736Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for overdrive
+
+## Facts
+- **overdrive**: `overdrive [target]` is an Enhance command that pushes past conventional limits.
diff --git a/.brv/context-tree/facts/project/overdrive_target_facts.md b/.brv/context-tree/facts/project/overdrive_target_facts.md
new file mode 100644
index 0000000..9192c4a
--- /dev/null
+++ b/.brv/context-tree/facts/project/overdrive_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`overdrive [target]` facts'
+summary: Facts about `overdrive [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.748Z'
+updatedAt: '2026-05-27T19:11:54.748Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `overdrive [target]`
+
+## Facts
+- **`overdrive [target]`**: The command `overdrive [target]` belongs to the Enhance category and pushes designs past conventional limits.
diff --git a/.brv/context-tree/facts/project/package_json.md b/.brv/context-tree/facts/project/package_json.md
new file mode 100644
index 0000000..0111bc6
--- /dev/null
+++ b/.brv/context-tree/facts/project/package_json.md
@@ -0,0 +1,20 @@
+---
+title: Package.json
+summary: Facts about package.json
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.161Z'
+updatedAt: '2026-05-28T11:56:15.161Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.126Z
+
+## Facts
+- **package.json**: `package.json` Alchemy scripts now call the runner via `node ./scripts/alchemy-runner.mjs deploy`.
diff --git a/.brv/context-tree/facts/project/page_copy.md b/.brv/context-tree/facts/project/page_copy.md
new file mode 100644
index 0000000..f79719e
--- /dev/null
+++ b/.brv/context-tree/facts/project/page_copy.md
@@ -0,0 +1,20 @@
+---
+title: Page copy
+summary: Facts about page copy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.240Z'
+updatedAt: '2026-05-28T10:20:18.240Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about page copy
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **page copy**: No em dashes found in reviewed page copy.
diff --git a/.brv/context-tree/facts/project/panels.md b/.brv/context-tree/facts/project/panels.md
new file mode 100644
index 0000000..7fda6ab
--- /dev/null
+++ b/.brv/context-tree/facts/project/panels.md
@@ -0,0 +1,24 @@
+---
+title: panels
+summary: Facts about panels
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:48:34.344Z'
+updatedAt: '2026-05-28T13:48:34.344Z'
+---
+## Reason
+Curated factual statements from recent context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-28T13:48:34.339Z
+
+## Narrative
+### Highlights
+Collected 1 facts for panels
+
+## Facts
+- **panels**: Panels render server-side with role="tabpanel", aria-labelledby pointing back to the matching tab, and hidden for all but the first panel at lines 328-335
diff --git a/.brv/context-tree/facts/project/path_filter.md b/.brv/context-tree/facts/project/path_filter.md
new file mode 100644
index 0000000..0ca0ae1
--- /dev/null
+++ b/.brv/context-tree/facts/project/path_filter.md
@@ -0,0 +1,24 @@
+---
+title: Path filter
+summary: Facts about path filter
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.179Z'
+updatedAt: '2026-05-28T10:41:19.179Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for path filter
+
+## Facts
+- **path filter**: A PR that only changes `pnpm-lock.yaml`, `packages/**`, `.github/**`, etc. will not trigger.
diff --git a/.brv/context-tree/facts/project/performance.md b/.brv/context-tree/facts/project/performance.md
new file mode 100644
index 0000000..fe6019a
--- /dev/null
+++ b/.brv/context-tree/facts/project/performance.md
@@ -0,0 +1,21 @@
+---
+title: Performance
+summary: Facts about performance
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.537Z'
+updatedAt: '2026-05-28T11:17:59.537Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about performance
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **performance**: Performance score is 4/4.
+- **performance**: Static Astro page, no external font/runtime fetches visible, icons inline, animation gated by reduced motion and IntersectionObserver fallback.
diff --git a/.brv/context-tree/facts/project/pin.md b/.brv/context-tree/facts/project/pin.md
new file mode 100644
index 0000000..c4cb994
--- /dev/null
+++ b/.brv/context-tree/facts/project/pin.md
@@ -0,0 +1,27 @@
+---
+title: Pin
+summary: Facts about pin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.759Z'
+updatedAt: '2026-05-27T19:18:57.173Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **pin**: `pin ` creates a standalone shortcut so `{{command_prefix}}` invokes `{{command_prefix}}impeccable ` directly.
diff --git a/.brv/context-tree/facts/project/pin_unpin_script.md b/.brv/context-tree/facts/project/pin_unpin_script.md
new file mode 100644
index 0000000..179bf21
--- /dev/null
+++ b/.brv/context-tree/facts/project/pin_unpin_script.md
@@ -0,0 +1,27 @@
+---
+title: Pin/unpin script
+summary: Facts about pin/unpin script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.327Z'
+updatedAt: '2026-05-27T19:18:57.176Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **pin/unpin script**: The pin/unpin script is executed with `node {{scripts_path}}/pin.mjs `.
diff --git a/.brv/context-tree/facts/project/pnpm_filter_caplets_landing.md b/.brv/context-tree/facts/project/pnpm_filter_caplets_landing.md
new file mode 100644
index 0000000..0f166b3
--- /dev/null
+++ b/.brv/context-tree/facts/project/pnpm_filter_caplets_landing.md
@@ -0,0 +1,21 @@
+---
+title: Pnpm --filter @caplets/landing
+summary: Facts about pnpm --filter @caplets/landing
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.546Z'
+updatedAt: '2026-05-28T11:17:59.546Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about pnpm --filter @caplets/landing
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **pnpm --filter @caplets/landing**: Verification run typecheck passed with 0 errors.
+- **pnpm --filter @caplets/landing**: Verification run build passed, building 1 page.
diff --git a/.brv/context-tree/facts/project/polish.md b/.brv/context-tree/facts/project/polish.md
new file mode 100644
index 0000000..ddb1b91
--- /dev/null
+++ b/.brv/context-tree/facts/project/polish.md
@@ -0,0 +1,24 @@
+---
+title: Polish
+summary: Facts about polish
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.678Z'
+updatedAt: '2026-05-27T18:47:50.678Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for polish
+
+## Facts
+- **polish**: `polish [target]` is a Refine command that provides a final quality pass before shipping.
diff --git a/.brv/context-tree/facts/project/polish_target_facts.md b/.brv/context-tree/facts/project/polish_target_facts.md
new file mode 100644
index 0000000..5901e4f
--- /dev/null
+++ b/.brv/context-tree/facts/project/polish_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`polish [target]` facts'
+summary: Facts about `polish [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.724Z'
+updatedAt: '2026-05-27T19:11:54.724Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `polish [target]`
+
+## Facts
+- **`polish [target]`**: The command `polish [target]` belongs to the Refine category and provides a final quality pass before shipping.
diff --git a/.brv/context-tree/facts/project/potential_files.md b/.brv/context-tree/facts/project/potential_files.md
new file mode 100644
index 0000000..02d0014
--- /dev/null
+++ b/.brv/context-tree/facts/project/potential_files.md
@@ -0,0 +1,24 @@
+---
+title: Potential files
+summary: Facts about potential files
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.271Z'
+updatedAt: '2026-05-28T13:55:17.271Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for potential files
+
+## Facts
+- **potential files**: Likely involved files are apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
diff --git a/.brv/context-tree/facts/project/preview.md b/.brv/context-tree/facts/project/preview.md
new file mode 100644
index 0000000..515b500
--- /dev/null
+++ b/.brv/context-tree/facts/project/preview.md
@@ -0,0 +1,24 @@
+---
+title: Preview
+summary: Facts about preview
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.365Z'
+updatedAt: '2026-05-27T18:59:51.365Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for preview
+
+## Facts
+- **preview**: Browser preview checked.
diff --git a/.brv/context-tree/facts/project/primary_navigation.md b/.brv/context-tree/facts/project/primary_navigation.md
new file mode 100644
index 0000000..98a0724
--- /dev/null
+++ b/.brv/context-tree/facts/project/primary_navigation.md
@@ -0,0 +1,24 @@
+---
+title: Primary navigation
+summary: Facts about primary navigation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.787Z'
+updatedAt: '2026-05-28T10:26:09.787Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for primary navigation
+
+## Facts
+- **primary navigation**: Update the primary navigation broken `#map`/`Map` to a valid trace-first target/label.
diff --git a/.brv/context-tree/facts/project/product_md.md b/.brv/context-tree/facts/project/product_md.md
new file mode 100644
index 0000000..21638c3
--- /dev/null
+++ b/.brv/context-tree/facts/project/product_md.md
@@ -0,0 +1,27 @@
+---
+title: PRODUCT.md
+summary: Facts about PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.543Z'
+updatedAt: '2026-05-27T19:18:57.122Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
diff --git a/.brv/context-tree/facts/project/product_md_facts.md b/.brv/context-tree/facts/project/product_md_facts.md
new file mode 100644
index 0000000..5d85106
--- /dev/null
+++ b/.brv/context-tree/facts/project/product_md_facts.md
@@ -0,0 +1,24 @@
+---
+title: PRODUCT.md facts
+summary: Facts about PRODUCT.md
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.671Z'
+updatedAt: '2026-05-27T19:11:54.671Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for PRODUCT.md
+
+## Facts
+- **PRODUCT.md**: PRODUCT.md is required.
diff --git a/.brv/context-tree/facts/project/project.md b/.brv/context-tree/facts/project/project.md
new file mode 100644
index 0000000..5a0cce5
--- /dev/null
+++ b/.brv/context-tree/facts/project/project.md
@@ -0,0 +1,20 @@
+---
+title: Project
+summary: Facts about project
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.547Z'
+updatedAt: '2026-05-28T11:17:59.547Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about project
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **project**: There are no blockers.
diff --git a/.brv/context-tree/facts/project/project_facts.md b/.brv/context-tree/facts/project/project_facts.md
new file mode 100644
index 0000000..89dae3f
--- /dev/null
+++ b/.brv/context-tree/facts/project/project_facts.md
@@ -0,0 +1,46 @@
+---
+title: Project Facts
+summary: Extracted project-related factual statements
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:33:58.630Z'
+updatedAt: '2026-05-27T18:33:58.630Z'
+---
+## Reason
+Curate extracted project facts from context
+
+## Raw Concept
+**Task:**
+Document project facts extracted from context
+
+**Flow:**
+extraction -> dedup -> curate
+
+**Timestamp:** 2026-05-27T18:33:58.628Z
+
+## Narrative
+### Structure
+Facts grouped by subject
+
+### Highlights
+Caplets landing page, index.astro, global.css, astro.config.mjs, hero section
+
+## Facts
+- **Caplets landing page**: Implemented the Caplets landing page in `apps/landing/`.
+- **index.astro**: Modified `apps/landing/src/pages/index.astro`.
+- **global.css**: Modified `apps/landing/src/styles/global.css`.
+- **astro.config.mjs**: Modified `apps/landing/astro.config.mjs`.
+- **hero section**: Added an asymmetric hero with the approved Tool Cartographer direction.
+- **capability-map hero**: Implemented capability-map hero visualization with route lines, scoped operation cards, and selected route panel.
+- **comparison section**: Provided problem/solution comparison for flat tool lists vs progressive disclosure.
+- **proof sections**: Included proof sections for disclosure, lossless routing, and redacted operational safety.
+- **integration strip**: Added integration strip for supported agent clients.
+- **install terminal**: Implemented install terminal with real Caplets commands.
+- **responsive design**: Ensured responsive mobile layout, visible focus states, reduced-motion handling, and no console errors in preview.
+- **build command**: `pnpm --filter @caplets/landing build` passed.
+- **typecheck command**: `pnpm --filter @caplets/landing typecheck` passed with 0 errors, 0 warnings, 0 hints.
+- **browser preview**: Browser preview was checked at desktop and mobile.
+- **browser console**: Browser console was checked with 0 errors and 0 warnings.
+- **desktop screenshot**: Captured screenshot `caplets-landing-desktop-final.png`.
+- **mobile screenshot**: Captured screenshot `caplets-landing-mobile.png`.
diff --git a/.brv/context-tree/facts/project/proof_and_trust_sections.md b/.brv/context-tree/facts/project/proof_and_trust_sections.md
new file mode 100644
index 0000000..42b5cf5
--- /dev/null
+++ b/.brv/context-tree/facts/project/proof_and_trust_sections.md
@@ -0,0 +1,20 @@
+---
+title: Proof and trust sections
+summary: Facts about proof and trust sections
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.239Z'
+updatedAt: '2026-05-28T10:20:18.239Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about proof and trust sections
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **proof and trust sections**: Proof and trust sections are concrete and text-led.
diff --git a/.brv/context-tree/facts/project/pull_request_permissions.md b/.brv/context-tree/facts/project/pull_request_permissions.md
new file mode 100644
index 0000000..5bd99d2
--- /dev/null
+++ b/.brv/context-tree/facts/project/pull_request_permissions.md
@@ -0,0 +1,24 @@
+---
+title: Pull request permissions
+summary: Facts about pull request permissions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.185Z'
+updatedAt: '2026-05-28T10:41:19.185Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for pull request permissions
+
+## Facts
+- **pull request permissions**: `permissions: pull-requests: write` is fine for commenting/updating PRs, but may be restricted on forked PRs depending repo settings.
diff --git a/.brv/context-tree/facts/project/punctuation.md b/.brv/context-tree/facts/project/punctuation.md
new file mode 100644
index 0000000..7d2a1c5
--- /dev/null
+++ b/.brv/context-tree/facts/project/punctuation.md
@@ -0,0 +1,27 @@
+---
+title: Punctuation
+summary: Facts about punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.642Z'
+updatedAt: '2026-05-27T19:18:57.169Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **punctuation**: No em dashes are allowed; use commas, colons, semicolons, periods, or parentheses instead.
diff --git a/.brv/context-tree/facts/project/punctuation_facts.md b/.brv/context-tree/facts/project/punctuation_facts.md
new file mode 100644
index 0000000..42633b4
--- /dev/null
+++ b/.brv/context-tree/facts/project/punctuation_facts.md
@@ -0,0 +1,24 @@
+---
+title: Punctuation facts
+summary: Facts about punctuation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.696Z'
+updatedAt: '2026-05-27T19:11:54.696Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for punctuation
+
+## Facts
+- **punctuation**: No em dashes may be used in copy; use commas, colons, semicolons, periods, or parentheses instead.
diff --git a/.brv/context-tree/facts/project/quieter.md b/.brv/context-tree/facts/project/quieter.md
new file mode 100644
index 0000000..079e1f5
--- /dev/null
+++ b/.brv/context-tree/facts/project/quieter.md
@@ -0,0 +1,24 @@
+---
+title: Quieter
+summary: Facts about quieter
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.695Z'
+updatedAt: '2026-05-27T18:47:50.695Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for quieter
+
+## Facts
+- **quieter**: `quieter [target]` is a Refine command that tones down aggressive or overstimulating designs.
diff --git a/.brv/context-tree/facts/project/quieter_target_facts.md b/.brv/context-tree/facts/project/quieter_target_facts.md
new file mode 100644
index 0000000..70ba1fc
--- /dev/null
+++ b/.brv/context-tree/facts/project/quieter_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`quieter [target]` facts'
+summary: Facts about `quieter [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.728Z'
+updatedAt: '2026-05-27T19:11:54.728Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `quieter [target]`
+
+## Facts
+- **`quieter [target]`**: The command `quieter [target]` belongs to the Refine category and tones down aggressive or overstimulating designs.
diff --git a/.brv/context-tree/facts/project/readability.md b/.brv/context-tree/facts/project/readability.md
new file mode 100644
index 0000000..6e4f809
--- /dev/null
+++ b/.brv/context-tree/facts/project/readability.md
@@ -0,0 +1,24 @@
+---
+title: Readability
+summary: Facts about readability
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.351Z'
+updatedAt: '2026-05-27T18:59:51.351Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for readability
+
+## Facts
+- **readability**: Increased dark-mode label/accent readability without making the page neon or breaking the charred-ink direction.
diff --git a/.brv/context-tree/facts/project/register_identification.md b/.brv/context-tree/facts/project/register_identification.md
new file mode 100644
index 0000000..a28a965
--- /dev/null
+++ b/.brv/context-tree/facts/project/register_identification.md
@@ -0,0 +1,24 @@
+---
+title: Register identification
+summary: Facts about register identification
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.287Z'
+updatedAt: '2026-05-27T19:12:30.287Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for register identification
+
+## Facts
+- **register identification**: The register (brand or product) must be identified before designing, using priority: cue in the task, surface in focus, then register field in PRODUCT.md.
diff --git a/.brv/context-tree/facts/project/repo.md b/.brv/context-tree/facts/project/repo.md
new file mode 100644
index 0000000..e1f9852
--- /dev/null
+++ b/.brv/context-tree/facts/project/repo.md
@@ -0,0 +1,24 @@
+---
+title: Repo
+summary: Facts about repo
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.268Z'
+updatedAt: '2026-05-28T13:55:17.268Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.266Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for repo
+
+## Facts
+- **repo**: The repository is located at /home/ianpascoe/src/caplets.
diff --git a/.brv/context-tree/facts/project/responsive.md b/.brv/context-tree/facts/project/responsive.md
new file mode 100644
index 0000000..fb3053e
--- /dev/null
+++ b/.brv/context-tree/facts/project/responsive.md
@@ -0,0 +1,21 @@
+---
+title: Responsive
+summary: Facts about responsive
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.539Z'
+updatedAt: '2026-05-28T11:17:59.539Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about responsive
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **responsive**: Responsive score is 4/4.
+- **responsive**: Layouts collapse at 980px and 720px, long code wraps, min widths and overflow handling are present.
diff --git a/.brv/context-tree/facts/project/reveal_component.md b/.brv/context-tree/facts/project/reveal_component.md
new file mode 100644
index 0000000..f70bc8c
--- /dev/null
+++ b/.brv/context-tree/facts/project/reveal_component.md
@@ -0,0 +1,22 @@
+---
+title: Reveal component
+summary: Facts about Reveal component
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.022Z'
+updatedAt: '2026-05-28T13:58:26.022Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Reveal component
+
+## Narrative
+### Highlights
+Extracted 1 facts for Reveal component
+
+## Facts
+- **Reveal component**: Reveal content is visible by default.
diff --git a/.brv/context-tree/facts/project/reveal_transitions.md b/.brv/context-tree/facts/project/reveal_transitions.md
new file mode 100644
index 0000000..cf730f4
--- /dev/null
+++ b/.brv/context-tree/facts/project/reveal_transitions.md
@@ -0,0 +1,22 @@
+---
+title: Reveal transitions
+summary: Facts about Reveal transitions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.028Z'
+updatedAt: '2026-05-28T13:58:26.028Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Reveal transitions
+
+## Narrative
+### Highlights
+Extracted 1 facts for Reveal transitions
+
+## Facts
+- **Reveal transitions**: Reveal transitions use opacity/transform only.
diff --git a/.brv/context-tree/facts/project/risks.md b/.brv/context-tree/facts/project/risks.md
new file mode 100644
index 0000000..e734175
--- /dev/null
+++ b/.brv/context-tree/facts/project/risks.md
@@ -0,0 +1,27 @@
+---
+title: risks
+summary: Facts about risks
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.373Z'
+updatedAt: '2026-05-28T13:51:08.373Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about risks
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for risks
+
+### Highlights
+Open risks/questions: None.
+
+## Facts
+- **risks**: Open risks/questions: None.
diff --git a/.brv/context-tree/facts/project/route_motion_css.md b/.brv/context-tree/facts/project/route_motion_css.md
new file mode 100644
index 0000000..9293fbf
--- /dev/null
+++ b/.brv/context-tree/facts/project/route_motion_css.md
@@ -0,0 +1,24 @@
+---
+title: Route-motion CSS
+summary: Facts about route-motion CSS
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.789Z'
+updatedAt: '2026-05-28T10:26:09.789Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for route-motion CSS
+
+## Facts
+- **route-motion CSS**: Remove or neutralize old route-motion CSS currently affecting `.problem`, `.dense-list`, `.ordered-flow`.
diff --git a/.brv/context-tree/facts/project/route_motion_script.md b/.brv/context-tree/facts/project/route_motion_script.md
new file mode 100644
index 0000000..c6e442c
--- /dev/null
+++ b/.brv/context-tree/facts/project/route_motion_script.md
@@ -0,0 +1,20 @@
+---
+title: Route-motion script
+summary: Facts about route-motion script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.280Z'
+updatedAt: '2026-05-28T10:20:18.280Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about route-motion script
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **route-motion script**: Because `.map-stage` no longer exists, the script never updates `--route-resolve`, leaving the section with stale transform, opacity, and margin behavior.
diff --git a/.brv/context-tree/facts/project/rule_1.md b/.brv/context-tree/facts/project/rule_1.md
new file mode 100644
index 0000000..4e0fec7
--- /dev/null
+++ b/.brv/context-tree/facts/project/rule_1.md
@@ -0,0 +1,24 @@
+---
+title: Rule 1
+summary: Facts about Rule 1
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.341Z'
+updatedAt: '2026-05-27T19:12:30.341Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Rule 1
+
+## Facts
+- **Rule 1**: Routing rule 1: No argument renders the table above as the user‑facing command menu, grouped by category.
diff --git a/.brv/context-tree/facts/project/rule_2.md b/.brv/context-tree/facts/project/rule_2.md
new file mode 100644
index 0000000..6c50e82
--- /dev/null
+++ b/.brv/context-tree/facts/project/rule_2.md
@@ -0,0 +1,24 @@
+---
+title: Rule 2
+summary: Facts about Rule 2
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.342Z'
+updatedAt: '2026-05-27T19:12:30.342Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Rule 2
+
+## Facts
+- **Rule 2**: Routing rule 2: First word matches a command loads its reference file and follows its instructions.
diff --git a/.brv/context-tree/facts/project/rule_3.md b/.brv/context-tree/facts/project/rule_3.md
new file mode 100644
index 0000000..182d0ea
--- /dev/null
+++ b/.brv/context-tree/facts/project/rule_3.md
@@ -0,0 +1,24 @@
+---
+title: Rule 3
+summary: Facts about Rule 3
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.347Z'
+updatedAt: '2026-05-27T19:12:30.347Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Rule 3
+
+## Facts
+- **Rule 3**: Routing rule 3: First word doesn't match triggers general design invocation.
diff --git a/.brv/context-tree/facts/project/same_repo_pr_secrets.md b/.brv/context-tree/facts/project/same_repo_pr_secrets.md
new file mode 100644
index 0000000..2e34dd9
--- /dev/null
+++ b/.brv/context-tree/facts/project/same_repo_pr_secrets.md
@@ -0,0 +1,24 @@
+---
+title: Same-repo PR secrets
+summary: Facts about same-repo PR secrets
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.183Z'
+updatedAt: '2026-05-28T10:41:19.183Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for same-repo PR secrets
+
+## Facts
+- **same-repo PR secrets**: For same-repo branches, secrets should be available and the workflow should run.
diff --git a/.brv/context-tree/facts/project/scan_result.md b/.brv/context-tree/facts/project/scan_result.md
new file mode 100644
index 0000000..4c2c2c6
--- /dev/null
+++ b/.brv/context-tree/facts/project/scan_result.md
@@ -0,0 +1,24 @@
+---
+title: Scan result
+summary: Facts about scan result
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.164Z'
+updatedAt: '2026-05-28T09:45:49.164Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for scan result
+
+## Facts
+- **scan result**: No CLI findings.
diff --git a/.brv/context-tree/facts/project/screenshots.md b/.brv/context-tree/facts/project/screenshots.md
new file mode 100644
index 0000000..a70f21e
--- /dev/null
+++ b/.brv/context-tree/facts/project/screenshots.md
@@ -0,0 +1,27 @@
+---
+title: Screenshots
+summary: Facts about screenshots
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.219Z'
+updatedAt: '2026-05-27T19:18:57.219Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **screenshots**: Screenshots: caplets-animated-landing-top.png, caplets-animated-landing-reveals.png
diff --git a/.brv/context-tree/facts/project/script.md b/.brv/context-tree/facts/project/script.md
new file mode 100644
index 0000000..0563d06
--- /dev/null
+++ b/.brv/context-tree/facts/project/script.md
@@ -0,0 +1,24 @@
+---
+title: Script
+summary: Facts about script
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.778Z'
+updatedAt: '2026-05-27T18:47:50.778Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for script
+
+## Facts
+- **script**: Report the script's result concisely.
diff --git a/.brv/context-tree/facts/project/scripts_alchemy_fetch_compat_mjs.md b/.brv/context-tree/facts/project/scripts_alchemy_fetch_compat_mjs.md
new file mode 100644
index 0000000..a9aedce
--- /dev/null
+++ b/.brv/context-tree/facts/project/scripts_alchemy_fetch_compat_mjs.md
@@ -0,0 +1,20 @@
+---
+title: Scripts/alchemy-fetch-compat.mjs
+summary: Facts about scripts/alchemy-fetch-compat.mjs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.167Z'
+updatedAt: '2026-05-28T11:56:15.167Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.127Z
+
+## Facts
+- **scripts/alchemy-fetch-compat.mjs**: Existing fetch shim remains in `scripts/alchemy-fetch-compat.mjs`.
diff --git a/.brv/context-tree/facts/project/scripts_alchemy_runner_mjs.md b/.brv/context-tree/facts/project/scripts_alchemy_runner_mjs.md
new file mode 100644
index 0000000..3a15aec
--- /dev/null
+++ b/.brv/context-tree/facts/project/scripts_alchemy_runner_mjs.md
@@ -0,0 +1,20 @@
+---
+title: Scripts/alchemy-runner.mjs
+summary: Facts about scripts/alchemy-runner.mjs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.141Z'
+updatedAt: '2026-05-28T11:56:15.141Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.126Z
+
+## Facts
+- **scripts/alchemy-runner.mjs**: `scripts/alchemy-runner.mjs` wraps Alchemy and sets `NODE_OPTIONS=--import=`.
diff --git a/.brv/context-tree/facts/project/scripts_alchemy_runner_test_mjs.md b/.brv/context-tree/facts/project/scripts_alchemy_runner_test_mjs.md
new file mode 100644
index 0000000..469990b
--- /dev/null
+++ b/.brv/context-tree/facts/project/scripts_alchemy_runner_test_mjs.md
@@ -0,0 +1,20 @@
+---
+title: Scripts/alchemy-runner.test.mjs
+summary: Facts about scripts/alchemy-runner.test.mjs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.164Z'
+updatedAt: '2026-05-28T11:56:15.164Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.127Z
+
+## Facts
+- **scripts/alchemy-runner.test.mjs**: `scripts/alchemy-runner.test.mjs` verifies the shim is injected through `NODE_OPTIONS`.
diff --git a/.brv/context-tree/facts/project/section_styling.md b/.brv/context-tree/facts/project/section_styling.md
new file mode 100644
index 0000000..31a92af
--- /dev/null
+++ b/.brv/context-tree/facts/project/section_styling.md
@@ -0,0 +1,24 @@
+---
+title: Section styling
+summary: Facts about section styling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.288Z'
+updatedAt: '2026-05-28T13:55:17.288Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for section styling
+
+## Facts
+- **section styling**: A calmer .section-note styling was added for problem, proof, trust, and integrations sections.
diff --git a/.brv/context-tree/facts/project/setup_behavior.md b/.brv/context-tree/facts/project/setup_behavior.md
new file mode 100644
index 0000000..9c1bab7
--- /dev/null
+++ b/.brv/context-tree/facts/project/setup_behavior.md
@@ -0,0 +1,24 @@
+---
+title: Setup behavior
+summary: Facts about Setup behavior
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.349Z'
+updatedAt: '2026-05-27T19:12:30.349Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for Setup behavior
+
+## Facts
+- **Setup behavior**: Setup (context gathering, register) is already loaded by then; sub‑commands don't re‑invoke `{{command_prefix}}impeccable`.
diff --git a/.brv/context-tree/facts/project/shape.md b/.brv/context-tree/facts/project/shape.md
new file mode 100644
index 0000000..8d6d949
--- /dev/null
+++ b/.brv/context-tree/facts/project/shape.md
@@ -0,0 +1,24 @@
+---
+title: Shape
+summary: Facts about shape
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.657Z'
+updatedAt: '2026-05-27T18:47:50.657Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for shape
+
+## Facts
+- **shape**: `shape [feature]` is a Build command that plans UX/UI before writing code.
diff --git a/.brv/context-tree/facts/project/shape_feature_facts.md b/.brv/context-tree/facts/project/shape_feature_facts.md
new file mode 100644
index 0000000..e46bc12
--- /dev/null
+++ b/.brv/context-tree/facts/project/shape_feature_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`shape [feature]` facts'
+summary: Facts about `shape [feature]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.711Z'
+updatedAt: '2026-05-27T19:11:54.711Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `shape [feature]`
+
+## Facts
+- **`shape [feature]`**: The command `shape [feature]` belongs to the Build category and plans UX/UI before writing code.
diff --git a/.brv/context-tree/facts/project/shared_design_laws.md b/.brv/context-tree/facts/project/shared_design_laws.md
new file mode 100644
index 0000000..d17b0de
--- /dev/null
+++ b/.brv/context-tree/facts/project/shared_design_laws.md
@@ -0,0 +1,24 @@
+---
+title: Shared design laws
+summary: Facts about shared design laws
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.291Z'
+updatedAt: '2026-05-27T19:12:30.291Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for shared design laws
+
+## Facts
+- **shared design laws**: Shared design laws apply to both brand and product registers.
diff --git a/.brv/context-tree/facts/project/shortcut.md b/.brv/context-tree/facts/project/shortcut.md
new file mode 100644
index 0000000..ade25ef
--- /dev/null
+++ b/.brv/context-tree/facts/project/shortcut.md
@@ -0,0 +1,24 @@
+---
+title: Shortcut
+summary: Facts about shortcut
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.780Z'
+updatedAt: '2026-05-27T18:47:50.780Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for shortcut
+
+## Facts
+- **shortcut**: Confirm the new shortcut on success, relay stderr verbatim on error.
diff --git a/.brv/context-tree/facts/project/side_stripe_borders.md b/.brv/context-tree/facts/project/side_stripe_borders.md
new file mode 100644
index 0000000..b47e83a
--- /dev/null
+++ b/.brv/context-tree/facts/project/side_stripe_borders.md
@@ -0,0 +1,24 @@
+---
+title: Side‑stripe borders
+summary: Facts about side‑stripe borders
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.303Z'
+updatedAt: '2026-05-27T19:12:30.303Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:12:30.246Z
+
+## Narrative
+### Structure
+Extracted facts for side‑stripe borders
+
+## Facts
+- **side‑stripe borders**: Side‑stripe borders greater than 1 px as colored accents are prohibited.
diff --git a/.brv/context-tree/facts/project/skill.md b/.brv/context-tree/facts/project/skill.md
new file mode 100644
index 0000000..53a12f6
--- /dev/null
+++ b/.brv/context-tree/facts/project/skill.md
@@ -0,0 +1,24 @@
+---
+title: Skill
+summary: Facts about skill
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.133Z'
+updatedAt: '2026-05-28T09:45:49.133Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for skill
+
+## Facts
+- **skill**: The skill is named "critique" and is located at "/home/ianpascoe/.agents/skills/critique/SKILL.md".
diff --git a/.brv/context-tree/facts/project/skillify_facts.md b/.brv/context-tree/facts/project/skillify_facts.md
new file mode 100644
index 0000000..2db27c4
--- /dev/null
+++ b/.brv/context-tree/facts/project/skillify_facts.md
@@ -0,0 +1,24 @@
+---
+title: Skillify facts
+summary: Facts about skillify
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:55:30.683Z'
+updatedAt: '2026-05-28T09:55:30.683Z'
+---
+## Reason
+Curated factual statements extracted from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T09:55:30.675Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for skillify
+
+## Facts
+- **skillify**: Skillify your backends: to skillify a backend is to wrap it as a focused agent capability, discoverable as one card, searchable only when needed, inspectable before calls, and lossless after results return.
diff --git a/.brv/context-tree/facts/project/skillify_implementation_facts.md b/.brv/context-tree/facts/project/skillify_implementation_facts.md
new file mode 100644
index 0000000..a45dc11
--- /dev/null
+++ b/.brv/context-tree/facts/project/skillify_implementation_facts.md
@@ -0,0 +1,24 @@
+---
+title: Skillify implementation facts
+summary: Facts about skillify implementation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:55:30.680Z'
+updatedAt: '2026-05-28T09:55:30.680Z'
+---
+## Reason
+Curated factual statements extracted from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T09:55:30.675Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for skillify implementation
+
+## Facts
+- **skillify implementation**: Treat “skillify” as a durable product concept, but only change the landing page in this pass.
diff --git a/.brv/context-tree/facts/project/skillify_scope_facts.md b/.brv/context-tree/facts/project/skillify_scope_facts.md
new file mode 100644
index 0000000..2015d3a
--- /dev/null
+++ b/.brv/context-tree/facts/project/skillify_scope_facts.md
@@ -0,0 +1,24 @@
+---
+title: Skillify scope facts
+summary: Facts about skillify scope
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:55:30.681Z'
+updatedAt: '2026-05-28T09:55:30.681Z'
+---
+## Reason
+Curated factual statements extracted from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T09:55:30.675Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for skillify scope
+
+## Facts
+- **skillify scope**: “Skillify” should be durable product language, while this fix should only update the landing page for now.
diff --git a/.brv/context-tree/facts/project/status_and_results.md b/.brv/context-tree/facts/project/status_and_results.md
new file mode 100644
index 0000000..f01f20b
--- /dev/null
+++ b/.brv/context-tree/facts/project/status_and_results.md
@@ -0,0 +1,24 @@
+---
+title: Status and results
+summary: Facts about status and results
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.829Z'
+updatedAt: '2026-05-28T10:26:09.829Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for status and results
+
+## Facts
+- **status and results**: Return status and results after running the commands.
diff --git a/.brv/context-tree/facts/project/step_1.md b/.brv/context-tree/facts/project/step_1.md
new file mode 100644
index 0000000..0957312
--- /dev/null
+++ b/.brv/context-tree/facts/project/step_1.md
@@ -0,0 +1,24 @@
+---
+title: Step 1
+summary: Facts about step 1
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.135Z'
+updatedAt: '2026-05-28T09:45:49.135Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for step 1
+
+## Facts
+- **step 1**: Step 1 requires invoking "/impeccable" and, if no design context exists, running "/impeccable teach" first.
diff --git a/.brv/context-tree/facts/project/step_2.md b/.brv/context-tree/facts/project/step_2.md
new file mode 100644
index 0000000..b1c1ace
--- /dev/null
+++ b/.brv/context-tree/facts/project/step_2.md
@@ -0,0 +1,24 @@
+---
+title: Step 2
+summary: Facts about step 2
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.141Z'
+updatedAt: '2026-05-28T09:45:49.141Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for step 2
+
+## Facts
+- **step 2**: Step 2 mandates launching two independent assessments (Assessment A and Assessment B) without sharing outputs between them.
diff --git a/.brv/context-tree/facts/project/step_3.md b/.brv/context-tree/facts/project/step_3.md
new file mode 100644
index 0000000..25c9437
--- /dev/null
+++ b/.brv/context-tree/facts/project/step_3.md
@@ -0,0 +1,24 @@
+---
+title: Step 3
+summary: Facts about step 3
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.159Z'
+updatedAt: '2026-05-28T09:45:49.159Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for step 3
+
+## Facts
+- **step 3**: Step 3 requires synthesizing both assessments into a combined critique report, including a Design Health Score and an Anti‑Patterns Verdict.
diff --git a/.brv/context-tree/facts/project/step_name.md b/.brv/context-tree/facts/project/step_name.md
new file mode 100644
index 0000000..37a6e17
--- /dev/null
+++ b/.brv/context-tree/facts/project/step_name.md
@@ -0,0 +1,24 @@
+---
+title: Step name
+summary: Facts about step name
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.194Z'
+updatedAt: '2026-05-28T10:41:19.194Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for step name
+
+## Facts
+- **step name**: The step name `Run quality gates` is misleading because it deploys via `pnpm run alchemy:deploy`.
diff --git a/.brv/context-tree/facts/project/system.md b/.brv/context-tree/facts/project/system.md
new file mode 100644
index 0000000..616f5a9
--- /dev/null
+++ b/.brv/context-tree/facts/project/system.md
@@ -0,0 +1,24 @@
+---
+title: System
+summary: Facts about system
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.176Z'
+updatedAt: '2026-05-28T09:45:49.176Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for system
+
+## Facts
+- **system**: No false positives.
diff --git a/.brv/context-tree/facts/project/system_facts.md b/.brv/context-tree/facts/project/system_facts.md
new file mode 100644
index 0000000..789b186
--- /dev/null
+++ b/.brv/context-tree/facts/project/system_facts.md
@@ -0,0 +1,24 @@
+---
+title: System facts
+summary: Facts about system
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.774Z'
+updatedAt: '2026-05-27T19:11:54.774Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for system
+
+## Facts
+- **system**: 0 errors, 0 warnings, 0 hints.
diff --git a/.brv/context-tree/facts/project/tab_aria_state.md b/.brv/context-tree/facts/project/tab_aria_state.md
new file mode 100644
index 0000000..6ef6d30
--- /dev/null
+++ b/.brv/context-tree/facts/project/tab_aria_state.md
@@ -0,0 +1,27 @@
+---
+title: tab ARIA state
+summary: Facts about tab ARIA state
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:51:08.353Z'
+updatedAt: '2026-05-28T13:51:08.353Z'
+---
+## Reason
+Curated extracted facts
+
+## Raw Concept
+**Task:**
+Document factual statements about tab ARIA state
+
+**Timestamp:** 2026-05-28T13:51:08.346Z
+
+## Narrative
+### Structure
+Collected facts for tab ARIA state
+
+### Highlights
+Kept server-rendered tab ARIA state and relationships.
+
+## Facts
+- **tab ARIA state**: Kept server-rendered tab ARIA state and relationships.
diff --git a/.brv/context-tree/facts/project/tab_isolation.md b/.brv/context-tree/facts/project/tab_isolation.md
new file mode 100644
index 0000000..ff70b03
--- /dev/null
+++ b/.brv/context-tree/facts/project/tab_isolation.md
@@ -0,0 +1,24 @@
+---
+title: Tab isolation
+summary: Facts about tab isolation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.147Z'
+updatedAt: '2026-05-28T09:45:49.147Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for tab isolation
+
+## Facts
+- **tab isolation**: Each assessment must create a new browser tab and label it by setting the document title ("[LLM] " or "[Human] ") when browser automation is used.
diff --git a/.brv/context-tree/facts/project/tablist.md b/.brv/context-tree/facts/project/tablist.md
new file mode 100644
index 0000000..7abcbe8
--- /dev/null
+++ b/.brv/context-tree/facts/project/tablist.md
@@ -0,0 +1,24 @@
+---
+title: tablist
+summary: Facts about tablist
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:48:34.340Z'
+updatedAt: '2026-05-28T13:48:34.340Z'
+---
+## Reason
+Curated factual statements from recent context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-28T13:48:34.339Z
+
+## Narrative
+### Highlights
+Collected 1 facts for tablist
+
+## Facts
+- **tablist**: Server-rendered tablist has role="tablist" at apps/landing/src/pages/index.astro:311
diff --git a/.brv/context-tree/facts/project/tabs.md b/.brv/context-tree/facts/project/tabs.md
new file mode 100644
index 0000000..5e73250
--- /dev/null
+++ b/.brv/context-tree/facts/project/tabs.md
@@ -0,0 +1,24 @@
+---
+title: tabs
+summary: Facts about tabs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:48:34.342Z'
+updatedAt: '2026-05-28T13:48:34.342Z'
+---
+## Reason
+Curated factual statements from recent context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-28T13:48:34.339Z
+
+## Narrative
+### Highlights
+Collected 1 facts for tabs
+
+## Facts
+- **tabs**: Tabs render server-side with role="tab", first tab aria-selected="true" and tabindex=0, inactive tabs aria-selected="false" and tabindex=-1, plus aria-controls pointing to matching panels at lines 313-321
diff --git a/.brv/context-tree/facts/project/task_3_facts.md b/.brv/context-tree/facts/project/task_3_facts.md
new file mode 100644
index 0000000..e432aae
--- /dev/null
+++ b/.brv/context-tree/facts/project/task_3_facts.md
@@ -0,0 +1,24 @@
+---
+title: Task 3 facts
+summary: Facts about Task 3
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:23.975Z'
+updatedAt: '2026-05-28T10:14:23.975Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for Task 3
+
+## Facts
+- **Task 3**: Implemented Task 3: replaced the proof section with the Skillify proof framework using `skillifyFramework`, with text-led numbered proof items and no icons/decorative card slop.
diff --git a/.brv/context-tree/facts/project/task_5.md b/.brv/context-tree/facts/project/task_5.md
new file mode 100644
index 0000000..f2c2d83
--- /dev/null
+++ b/.brv/context-tree/facts/project/task_5.md
@@ -0,0 +1,24 @@
+---
+title: Task 5
+summary: Facts about Task 5
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.793Z'
+updatedAt: '2026-05-28T10:26:09.793Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Task 5
+
+## Facts
+- **Task 5**: Implement Task 5: copy buttons for integration install/config snippets and terminal steps, script, CSS.
diff --git a/.brv/context-tree/facts/project/task_6.md b/.brv/context-tree/facts/project/task_6.md
new file mode 100644
index 0000000..0786aaf
--- /dev/null
+++ b/.brv/context-tree/facts/project/task_6.md
@@ -0,0 +1,24 @@
+---
+title: Task 6
+summary: Facts about Task 6
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:26:09.812Z'
+updatedAt: '2026-05-28T10:26:09.812Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T10:26:09.781Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Task 6
+
+## Facts
+- **Task 6**: Do not implement Task 6 except if needed for script placement.
diff --git a/.brv/context-tree/facts/project/task_outcome.md b/.brv/context-tree/facts/project/task_outcome.md
new file mode 100644
index 0000000..45a6f93
--- /dev/null
+++ b/.brv/context-tree/facts/project/task_outcome.md
@@ -0,0 +1,24 @@
+---
+title: Task outcome
+summary: Facts about task outcome
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.285Z'
+updatedAt: '2026-05-28T13:55:17.285Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for task outcome
+
+## Facts
+- **task outcome**: The assistant returned status DONE.
diff --git a/.brv/context-tree/facts/project/tasks_1_4.md b/.brv/context-tree/facts/project/tasks_1_4.md
new file mode 100644
index 0000000..3d25f94
--- /dev/null
+++ b/.brv/context-tree/facts/project/tasks_1_4.md
@@ -0,0 +1,20 @@
+---
+title: Tasks 1-4
+summary: Facts about tasks 1-4
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:20:18.228Z'
+updatedAt: '2026-05-28T10:20:18.228Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about tasks 1-4
+
+**Timestamp:** 2026-05-28T10:20:18.222Z
+
+## Facts
+- **tasks 1-4**: Tasks 1-4 are mostly implemented: `heroTrace`, `skillifyFramework`, and `trustMechanics` exist in `apps/landing/src/pages/index.astro`.
diff --git a/.brv/context-tree/facts/project/teach.md b/.brv/context-tree/facts/project/teach.md
new file mode 100644
index 0000000..d2d9516
--- /dev/null
+++ b/.brv/context-tree/facts/project/teach.md
@@ -0,0 +1,24 @@
+---
+title: Teach
+summary: Facts about teach
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.659Z'
+updatedAt: '2026-05-27T18:47:50.659Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for teach
+
+## Facts
+- **teach**: `teach` is a Build command that sets up PRODUCT.md and DESIGN.md context.
diff --git a/.brv/context-tree/facts/project/teach_facts.md b/.brv/context-tree/facts/project/teach_facts.md
new file mode 100644
index 0000000..7d6bb28
--- /dev/null
+++ b/.brv/context-tree/facts/project/teach_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`teach` facts'
+summary: Facts about `teach`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.713Z'
+updatedAt: '2026-05-27T19:11:54.713Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `teach`
+
+## Facts
+- **`teach`**: The command `teach` belongs to the Build category and sets up PRODUCT.md and DESIGN.md context.
diff --git a/.brv/context-tree/facts/project/test_results.md b/.brv/context-tree/facts/project/test_results.md
new file mode 100644
index 0000000..ef4fa15
--- /dev/null
+++ b/.brv/context-tree/facts/project/test_results.md
@@ -0,0 +1,20 @@
+---
+title: Test results
+summary: Facts about test results
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.186Z'
+updatedAt: '2026-05-28T11:56:15.186Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.127Z
+
+## Facts
+- **test results**: `pnpm test` runs 622 Vitest tests plus 3 Node tests, all passed.
diff --git a/.brv/context-tree/facts/project/text_styling_facts.md b/.brv/context-tree/facts/project/text_styling_facts.md
new file mode 100644
index 0000000..e20039f
--- /dev/null
+++ b/.brv/context-tree/facts/project/text_styling_facts.md
@@ -0,0 +1,24 @@
+---
+title: Text styling facts
+summary: Facts about text styling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.679Z'
+updatedAt: '2026-05-27T19:11:54.679Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for text styling
+
+## Facts
+- **text styling**: Gradient text using background-clip: text combined with a gradient background is prohibited.
diff --git a/.brv/context-tree/facts/project/theme_selection.md b/.brv/context-tree/facts/project/theme_selection.md
new file mode 100644
index 0000000..dacd49b
--- /dev/null
+++ b/.brv/context-tree/facts/project/theme_selection.md
@@ -0,0 +1,27 @@
+---
+title: Theme selection
+summary: Facts about theme selection
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:12:30.296Z'
+updatedAt: '2026-05-27T19:18:57.148Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **theme selection**: Dark vs. light theme is never a default; choose based on a physical scene description.
diff --git a/.brv/context-tree/facts/project/theming.md b/.brv/context-tree/facts/project/theming.md
new file mode 100644
index 0000000..58cfcde
--- /dev/null
+++ b/.brv/context-tree/facts/project/theming.md
@@ -0,0 +1,21 @@
+---
+title: Theming
+summary: Facts about theming
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:59.541Z'
+updatedAt: '2026-05-28T11:17:59.541Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about theming
+
+**Timestamp:** 2026-05-28T11:17:59.530Z
+
+## Facts
+- **theming**: Theming score is 4/4.
+- **theming**: Uses Caplets warm light palette, restrained ember accents, mono for machine-facing text, and aligns with PRODUCT/DESIGN direction.
diff --git a/.brv/context-tree/facts/project/tool_noise_mask.md b/.brv/context-tree/facts/project/tool_noise_mask.md
new file mode 100644
index 0000000..2a8f778
--- /dev/null
+++ b/.brv/context-tree/facts/project/tool_noise_mask.md
@@ -0,0 +1,22 @@
+---
+title: Tool-noise mask
+summary: Facts about Tool-noise mask
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.042Z'
+updatedAt: '2026-05-28T13:58:26.042Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Tool-noise mask
+
+## Narrative
+### Highlights
+Extracted 1 facts for Tool-noise mask
+
+## Facts
+- **Tool-noise mask**: Tool-noise mask no longer uses literal black.
diff --git a/.brv/context-tree/facts/project/tooling.md b/.brv/context-tree/facts/project/tooling.md
new file mode 100644
index 0000000..8eb0b16
--- /dev/null
+++ b/.brv/context-tree/facts/project/tooling.md
@@ -0,0 +1,24 @@
+---
+title: Tooling
+summary: Facts about tooling
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:55:17.270Z'
+updatedAt: '2026-05-28T13:55:17.270Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.266Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for tooling
+
+## Facts
+- **tooling**: The task must use pnpm only.
diff --git a/.brv/context-tree/facts/project/top_nav_a_header_action.md b/.brv/context-tree/facts/project/top_nav_a_header_action.md
new file mode 100644
index 0000000..373c8a2
--- /dev/null
+++ b/.brv/context-tree/facts/project/top_nav_a_header_action.md
@@ -0,0 +1,27 @@
+---
+title: .top-nav a, .header-action
+summary: Facts about .top-nav a, .header-action
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:40:49.014Z'
+updatedAt: '2026-05-28T13:40:49.014Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T13:40:49.005Z
+
+## Narrative
+### Structure
+List of factual statements extracted
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **.top-nav a, .header-action**: `.top-nav a` and `.header-action` retain 44px minimum height with reduced padding and font size for fit.
diff --git a/.brv/context-tree/facts/project/touch_target_size.md b/.brv/context-tree/facts/project/touch_target_size.md
new file mode 100644
index 0000000..0f5c14a
--- /dev/null
+++ b/.brv/context-tree/facts/project/touch_target_size.md
@@ -0,0 +1,22 @@
+---
+title: Touch target size
+summary: Facts about Touch target size
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T13:58:26.019Z'
+updatedAt: '2026-05-28T13:58:26.019Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Touch target size
+
+## Narrative
+### Highlights
+Extracted 1 facts for Touch target size
+
+## Facts
+- **Touch target size**: 44px touch targets are present for mobile nav, footer links, copy buttons, and integration pills.
diff --git a/.brv/context-tree/facts/project/trace.md b/.brv/context-tree/facts/project/trace.md
new file mode 100644
index 0000000..e7df936
--- /dev/null
+++ b/.brv/context-tree/facts/project/trace.md
@@ -0,0 +1,18 @@
+---
+title: Trace
+summary: Facts about trace
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:52:02.640Z'
+updatedAt: '2026-05-28T09:52:02.640Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Document facts about trace
+
+## Facts
+- **trace**: The example trace includes caplet: github, source: .caplets/config.json, status: ready, auth: token present, redacted.
diff --git a/.brv/context-tree/facts/project/typecheck.md b/.brv/context-tree/facts/project/typecheck.md
new file mode 100644
index 0000000..cd6ac9b
--- /dev/null
+++ b/.brv/context-tree/facts/project/typecheck.md
@@ -0,0 +1,27 @@
+---
+title: Typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.354Z'
+updatedAt: '2026-05-28T13:55:17.303Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Timestamp:** 2026-05-28T13:55:17.267Z
+
+## Narrative
+### Structure
+Collected facts for typecheck
+
+### Highlights
+Extracted 1 facts for typecheck
+
+## Facts
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed with 0 errors, 0 warnings, and 0 hints.
diff --git a/.brv/context-tree/facts/project/typecheck_facts.md b/.brv/context-tree/facts/project/typecheck_facts.md
new file mode 100644
index 0000000..6784f9f
--- /dev/null
+++ b/.brv/context-tree/facts/project/typecheck_facts.md
@@ -0,0 +1,24 @@
+---
+title: Typecheck facts
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:14:23.987Z'
+updatedAt: '2026-05-28T10:14:23.987Z'
+---
+## Reason
+Curated factual statements from source
+
+## Raw Concept
+**Task:**
+Curate factual statements
+
+**Timestamp:** 2026-05-28T10:14:23.972Z
+
+## Narrative
+### Highlights
+Collected 1 facts for typecheck
+
+## Facts
+- **typecheck**: `pnpm --filter @caplets/landing typecheck` PASS, with existing unused `trustMechanics` hint because Task 4 was not implemented.
diff --git a/.brv/context-tree/facts/project/typeset.md b/.brv/context-tree/facts/project/typeset.md
new file mode 100644
index 0000000..46ed431
--- /dev/null
+++ b/.brv/context-tree/facts/project/typeset.md
@@ -0,0 +1,24 @@
+---
+title: Typeset
+summary: Facts about typeset
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.717Z'
+updatedAt: '2026-05-27T18:47:50.717Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T18:47:50.505Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for typeset
+
+## Facts
+- **typeset**: `typeset [target]` is an Enhance command that improves typography hierarchy and fonts.
diff --git a/.brv/context-tree/facts/project/typeset_target_facts.md b/.brv/context-tree/facts/project/typeset_target_facts.md
new file mode 100644
index 0000000..5200e10
--- /dev/null
+++ b/.brv/context-tree/facts/project/typeset_target_facts.md
@@ -0,0 +1,24 @@
+---
+title: '`typeset [target]` facts'
+summary: Facts about `typeset [target]`
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.741Z'
+updatedAt: '2026-05-27T19:11:54.741Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.664Z
+
+## Narrative
+### Structure
+Collected 1 facts for `typeset [target]`
+
+## Facts
+- **`typeset [target]`**: The command `typeset [target]` belongs to the Enhance category and improves typography hierarchy and fonts.
diff --git a/.brv/context-tree/facts/project/typography.md b/.brv/context-tree/facts/project/typography.md
new file mode 100644
index 0000000..2745f16
--- /dev/null
+++ b/.brv/context-tree/facts/project/typography.md
@@ -0,0 +1,28 @@
+---
+title: Typography
+summary: Facts about typography
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.151Z'
+updatedAt: '2026-05-27T19:18:57.151Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 2 facts
+
+## Facts
+- **typography**: Cap body line length at 65–75 characters.
+- **typography**: Hierarchy should have a scale and weight contrast ratio of at least 1.25 between steps.
diff --git a/.brv/context-tree/facts/project/ui_components.md b/.brv/context-tree/facts/project/ui_components.md
new file mode 100644
index 0000000..0d4de94
--- /dev/null
+++ b/.brv/context-tree/facts/project/ui_components.md
@@ -0,0 +1,24 @@
+---
+title: UI components
+summary: Facts about UI components
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:59:51.349Z'
+updatedAt: '2026-05-27T18:59:51.349Z'
+---
+## Reason
+Curate extracted project facts
+
+## Raw Concept
+**Task:**
+Document project fact
+
+**Timestamp:** 2026-05-27T18:59:51.340Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for UI components
+
+## Facts
+- **UI components**: Updated the selected-route panel, integrations band, integration pills, and install terminal to use brighter text, clearer borders, and stronger dark-surface separation.
diff --git a/.brv/context-tree/facts/project/unpin.md b/.brv/context-tree/facts/project/unpin.md
new file mode 100644
index 0000000..b911f6f
--- /dev/null
+++ b/.brv/context-tree/facts/project/unpin.md
@@ -0,0 +1,27 @@
+---
+title: Unpin
+summary: Facts about unpin
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T18:47:50.769Z'
+updatedAt: '2026-05-27T19:18:57.175Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **unpin**: `unpin ` removes the shortcut created by the pin command.
diff --git a/.brv/context-tree/facts/project/validation.md b/.brv/context-tree/facts/project/validation.md
new file mode 100644
index 0000000..1973231
--- /dev/null
+++ b/.brv/context-tree/facts/project/validation.md
@@ -0,0 +1,27 @@
+---
+title: Validation
+summary: Facts about validation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:18:57.187Z'
+updatedAt: '2026-05-27T19:18:57.187Z'
+---
+## Reason
+Curated facts extracted from context
+
+## Raw Concept
+**Task:**
+Document project facts
+
+**Timestamp:** 2026-05-27T19:18:57.119Z
+
+## Narrative
+### Structure
+Collected factual statements
+
+### Highlights
+Contains 1 facts
+
+## Facts
+- **validation**: errors, 0 warnings, 0 hints.
diff --git a/.brv/context-tree/facts/project/verification_steps.md b/.brv/context-tree/facts/project/verification_steps.md
new file mode 100644
index 0000000..f2dc2a4
--- /dev/null
+++ b/.brv/context-tree/facts/project/verification_steps.md
@@ -0,0 +1,20 @@
+---
+title: Verification steps
+summary: Facts about verification steps
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:56:15.170Z'
+updatedAt: '2026-05-28T11:56:15.170Z'
+---
+## Reason
+Curate extracted facts from source context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T11:56:15.127Z
+
+## Facts
+- **verification steps**: Verification commands now pass, including `pnpm run alchemy:deploy --help` and all test suites.
diff --git a/.brv/context-tree/facts/project/visual_design.md b/.brv/context-tree/facts/project/visual_design.md
new file mode 100644
index 0000000..7adc6a5
--- /dev/null
+++ b/.brv/context-tree/facts/project/visual_design.md
@@ -0,0 +1,24 @@
+---
+title: Visual design
+summary: Facts about visual design
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.167Z'
+updatedAt: '2026-05-28T09:45:49.167Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for visual design
+
+## Facts
+- **visual design**: It risks looking like a very polished AI-made landing page for a developer tool because it spends too much surface area on theatrical motion and metaphor.
diff --git a/.brv/context-tree/facts/project/visual_effect_facts.md b/.brv/context-tree/facts/project/visual_effect_facts.md
new file mode 100644
index 0000000..2286670
--- /dev/null
+++ b/.brv/context-tree/facts/project/visual_effect_facts.md
@@ -0,0 +1,24 @@
+---
+title: Visual effect facts
+summary: Facts about visual effect
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T19:11:54.682Z'
+updatedAt: '2026-05-27T19:11:54.682Z'
+---
+## Reason
+Curated facts from RLM extraction
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-27T19:11:54.663Z
+
+## Narrative
+### Structure
+Collected 1 facts for visual effect
+
+## Facts
+- **visual effect**: Glassmorphism as default, including blurs and glass cards, is prohibited.
diff --git a/.brv/context-tree/facts/project/visual_elements.md b/.brv/context-tree/facts/project/visual_elements.md
new file mode 100644
index 0000000..0f17c65
--- /dev/null
+++ b/.brv/context-tree/facts/project/visual_elements.md
@@ -0,0 +1,24 @@
+---
+title: Visual elements
+summary: Facts about Visual elements
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:50:25.721Z'
+updatedAt: '2026-05-28T13:58:26.046Z'
+---
+## Reason
+Curated facts extraction
+
+## Raw Concept
+**Task:**
+Document facts for Visual elements
+
+**Timestamp:** 2026-05-28T09:50:25.672Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for Visual elements
+
+## Facts
+- **Visual elements**: No em dashes, side-stripe borders, gradient text, or glassmorphism found in the reviewed files.
diff --git a/.brv/context-tree/facts/project/visual_language.md b/.brv/context-tree/facts/project/visual_language.md
new file mode 100644
index 0000000..c9d12db
--- /dev/null
+++ b/.brv/context-tree/facts/project/visual_language.md
@@ -0,0 +1,24 @@
+---
+title: Visual language
+summary: Facts about visual language
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:45:49.172Z'
+updatedAt: '2026-05-28T09:45:49.172Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted facts
+
+**Timestamp:** 2026-05-28T09:45:49.131Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for visual language
+
+## Facts
+- **visual language**: The capability-card metaphor, concrete MCP/client names, tabbed integration snippets, before/after tool-list comparison, and warm map-like visual language all feel more intentional than template output.
diff --git a/.brv/context-tree/facts/project/vite.md b/.brv/context-tree/facts/project/vite.md
new file mode 100644
index 0000000..e2e6a3e
--- /dev/null
+++ b/.brv/context-tree/facts/project/vite.md
@@ -0,0 +1,22 @@
+---
+title: Vite
+summary: Facts about Vite
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:53:51.576Z'
+updatedAt: '2026-05-28T10:53:51.577Z'
+---
+## Reason
+Curated facts extracted from source context
+
+## Raw Concept
+**Task:**
+Document facts about Vite
+
+**Timestamp:** 2026-05-28T10:53:51.569Z
+
+**Author:** ByteRover Context Engineer
+
+## Facts
+- **Vite**: Port 4321 was in use, so Vite tried another port and used 4322
diff --git a/.brv/context-tree/facts/project/workflow_conditions.md b/.brv/context-tree/facts/project/workflow_conditions.md
new file mode 100644
index 0000000..37a5d19
--- /dev/null
+++ b/.brv/context-tree/facts/project/workflow_conditions.md
@@ -0,0 +1,24 @@
+---
+title: Workflow conditions
+summary: Facts about workflow conditions
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.176Z'
+updatedAt: '2026-05-28T10:41:19.176Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for workflow conditions
+
+## Facts
+- **workflow conditions**: The workflow runs for normal `pull_request` events such as opened, reopened, and updated/synchronized PRs where the PR base branch is `main` and the changed file set includes something matching `apps/**`.
diff --git a/.brv/context-tree/facts/project/workflow_reliability.md b/.brv/context-tree/facts/project/workflow_reliability.md
new file mode 100644
index 0000000..f55968f
--- /dev/null
+++ b/.brv/context-tree/facts/project/workflow_reliability.md
@@ -0,0 +1,24 @@
+---
+title: Workflow reliability
+summary: Facts about workflow reliability
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.196Z'
+updatedAt: '2026-05-28T10:41:19.196Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for workflow reliability
+
+## Facts
+- **workflow reliability**: Yes for same-repo PRs to `main` touching `apps/**`; not reliably for fork PR deploys because secrets are unavailable.
diff --git a/.brv/context-tree/facts/project/workflow_trigger.md b/.brv/context-tree/facts/project/workflow_trigger.md
new file mode 100644
index 0000000..9b5e850
--- /dev/null
+++ b/.brv/context-tree/facts/project/workflow_trigger.md
@@ -0,0 +1,24 @@
+---
+title: Workflow trigger
+summary: Facts about workflow trigger
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T10:41:19.169Z'
+updatedAt: '2026-05-28T10:41:19.169Z'
+---
+## Reason
+Curated factual statements extracted from context
+
+## Raw Concept
+**Task:**
+Curate facts
+
+**Timestamp:** 2026-05-28T10:41:19.156Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for workflow trigger
+
+## Facts
+- **workflow trigger**: It will trigger on PRs targeting `main`, but only when the PR changes at least one file under `apps/**`.
diff --git a/.brv/context-tree/facts/project/workflows.md b/.brv/context-tree/facts/project/workflows.md
new file mode 100644
index 0000000..4c3b95a
--- /dev/null
+++ b/.brv/context-tree/facts/project/workflows.md
@@ -0,0 +1,24 @@
+---
+title: Workflows
+summary: Facts about workflows
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T09:30:56.813Z'
+updatedAt: '2026-05-28T09:30:56.813Z'
+---
+## Reason
+Curated factual statements from source context
+
+## Raw Concept
+**Task:**
+Document facts about workflows
+
+**Timestamp:** 2026-05-28T09:30:56.811Z
+
+## Narrative
+### Highlights
+User wants the workflows to only run when changes to apps/ occur.
+
+## Facts
+- **workflows**: User wants the workflows to only run when changes to apps/ occur.
diff --git a/.brv/context-tree/facts/standardized-curation-workflow-as-core-project-infrastructure.md b/.brv/context-tree/facts/standardized-curation-workflow-as-core-project-infrastructure.md
new file mode 100644
index 0000000..a4a690a
--- /dev/null
+++ b/.brv/context-tree/facts/standardized-curation-workflow-as-core-project-infrastructure.md
@@ -0,0 +1,22 @@
+---
+confidence: 0.92
+sources: [facts/_index.md, project/_index.md]
+synthesized_at: '2026-05-27T23:38:23.764Z'
+type: synthesis
+title: Standardized Curation Workflow as Core Project Infrastructure
+summary: The project formalizes a recon‑first, UPSERT‑based curation pipeline used across facts and project domains.
+tags: [curation, workflow, upssert, recon]
+related: []
+keywords: [curation, recon, upssert, extraction, verification, workflow, runtime, infrastructure, knowledge, automation]
+createdAt: '2026-05-27T23:38:23.764Z'
+updatedAt: '2026-05-27T23:38:23.764Z'
+---
+
+# Standardized Curation Workflow as Core Project Infrastructure
+
+Both the facts domain and the project domain describe the same durable curation workflow (recon → extraction → UPSERT → verification), making it a reusable infrastructure component for knowledge management.
+
+## Evidence
+
+- **facts**: Curation/runtime conventions define recon‑first analysis, single‑pass or chunked extraction, and UPSERT with verification.
+- **project**: RLM curation workflow records the canonical process, emphasizing recon‑first, UPSERT, and `result.summary.failed === 0` verification.
diff --git a/.brv/context-tree/integration_pill_padding/integration_pill_padding/integration_pill_padding.md b/.brv/context-tree/integration_pill_padding/integration_pill_padding/integration_pill_padding.md
new file mode 100644
index 0000000..f9b19a0
--- /dev/null
+++ b/.brv/context-tree/integration_pill_padding/integration_pill_padding/integration_pill_padding.md
@@ -0,0 +1,30 @@
+---
+title: .integration-pill padding
+summary: Facts about .integration-pill padding
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.530Z'
+updatedAt: '2026-05-28T11:17:08.530Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under .integration-pill padding
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **.integration-pill padding**: apps/landing/src/styles/global.css:799-808 gives .integration-pill only 10px 12px padding with small text, with no min-height: 44px.
diff --git a/.brv/context-tree/misc/curated/build.md b/.brv/context-tree/misc/curated/build.md
new file mode 100644
index 0000000..3bc46f8
--- /dev/null
+++ b/.brv/context-tree/misc/curated/build.md
@@ -0,0 +1,24 @@
+---
+title: build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.352Z'
+updatedAt: '2026-05-28T14:00:01.352Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for build
+
+## Facts
+- **build**: `pnpm --filter @caplets/landing build` passed
diff --git a/.brv/context-tree/misc/curated/copy.md b/.brv/context-tree/misc/curated/copy.md
new file mode 100644
index 0000000..3f4dd22
--- /dev/null
+++ b/.brv/context-tree/misc/curated/copy.md
@@ -0,0 +1,24 @@
+---
+title: copy
+summary: Facts about copy
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.347Z'
+updatedAt: '2026-05-28T14:00:01.347Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for copy
+
+## Facts
+- **copy**: No user-visible copy/content changed
diff --git a/.brv/context-tree/misc/curated/implementation.md b/.brv/context-tree/misc/curated/implementation.md
new file mode 100644
index 0000000..89c68ac
--- /dev/null
+++ b/.brv/context-tree/misc/curated/implementation.md
@@ -0,0 +1,24 @@
+---
+title: implementation
+summary: Facts about implementation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.304Z'
+updatedAt: '2026-05-28T14:00:01.304Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for implementation
+
+## Facts
+- **implementation**: Implemented integration tab SSR ARIA fix.
diff --git a/.brv/context-tree/misc/curated/index_astro.md b/.brv/context-tree/misc/curated/index_astro.md
new file mode 100644
index 0000000..a67a156
--- /dev/null
+++ b/.brv/context-tree/misc/curated/index_astro.md
@@ -0,0 +1,24 @@
+---
+title: index.astro
+summary: Facts about index.astro
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.307Z'
+updatedAt: '2026-05-28T14:00:01.307Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for index.astro
+
+## Facts
+- **index.astro**: Changed file apps/landing/src/pages/index.astro
diff --git a/.brv/context-tree/misc/curated/js_initialization.md b/.brv/context-tree/misc/curated/js_initialization.md
new file mode 100644
index 0000000..dfc7868
--- /dev/null
+++ b/.brv/context-tree/misc/curated/js_initialization.md
@@ -0,0 +1,24 @@
+---
+title: JS initialization
+summary: Facts about JS initialization
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.314Z'
+updatedAt: '2026-05-28T14:00:01.314Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for JS initialization
+
+## Facts
+- **JS initialization**: JS adds tablist/tab/panel roles and ARIA state through selectAgentTab
diff --git a/.brv/context-tree/misc/curated/navigation.md b/.brv/context-tree/misc/curated/navigation.md
new file mode 100644
index 0000000..0e7196d
--- /dev/null
+++ b/.brv/context-tree/misc/curated/navigation.md
@@ -0,0 +1,24 @@
+---
+title: navigation
+summary: Facts about navigation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.341Z'
+updatedAt: '2026-05-28T14:00:01.342Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for navigation
+
+## Facts
+- **navigation**: Click and keyboard navigation remain intact
diff --git a/.brv/context-tree/misc/curated/none.md b/.brv/context-tree/misc/curated/none.md
new file mode 100644
index 0000000..9ec3410
--- /dev/null
+++ b/.brv/context-tree/misc/curated/none.md
@@ -0,0 +1,24 @@
+---
+title: none
+summary: Facts about none
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.354Z'
+updatedAt: '2026-05-28T14:00:01.354Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for none
+
+## Facts
+- **none**: Open risks/questions: None
diff --git a/.brv/context-tree/misc/curated/panel_visibility.md b/.brv/context-tree/misc/curated/panel_visibility.md
new file mode 100644
index 0000000..cafdbab
--- /dev/null
+++ b/.brv/context-tree/misc/curated/panel_visibility.md
@@ -0,0 +1,24 @@
+---
+title: panel visibility
+summary: Facts about panel visibility
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.330Z'
+updatedAt: '2026-05-28T14:00:01.330Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for panel visibility
+
+## Facts
+- **panel visibility**: Inactive panels are hidden after initialization
diff --git a/.brv/context-tree/misc/curated/ssr_semantics.md b/.brv/context-tree/misc/curated/ssr_semantics.md
new file mode 100644
index 0000000..e1dc47b
--- /dev/null
+++ b/.brv/context-tree/misc/curated/ssr_semantics.md
@@ -0,0 +1,24 @@
+---
+title: SSR semantics
+summary: Facts about SSR semantics
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.310Z'
+updatedAt: '2026-05-28T14:00:01.310Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for SSR semantics
+
+## Facts
+- **SSR semantics**: Removed SSR tab pattern semantics from integration controls and panels: no role="tablist", no role="tab", no aria-selected, no aria-controls for tabs, no roving tabindex, no role="tabpanel", no aria-labelledby on panels
diff --git a/.brv/context-tree/misc/curated/task.md b/.brv/context-tree/misc/curated/task.md
new file mode 100644
index 0000000..f6a6c21
--- /dev/null
+++ b/.brv/context-tree/misc/curated/task.md
@@ -0,0 +1,24 @@
+---
+title: task
+summary: Facts about task
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.297Z'
+updatedAt: '2026-05-28T14:00:01.297Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for task
+
+## Facts
+- **task**: Status: DONE
diff --git a/.brv/context-tree/misc/curated/typecheck.md b/.brv/context-tree/misc/curated/typecheck.md
new file mode 100644
index 0000000..ecc3a50
--- /dev/null
+++ b/.brv/context-tree/misc/curated/typecheck.md
@@ -0,0 +1,24 @@
+---
+title: typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T14:00:01.349Z'
+updatedAt: '2026-05-28T14:00:01.349Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Curate extracted facts
+
+**Timestamp:** 2026-05-28T14:00:01.291Z
+
+## Narrative
+### Highlights
+Extracted 1 facts for typecheck
+
+## Facts
+- **typecheck**: `pnpm --filter @caplets/landing typecheck` passed
diff --git a/.brv/context-tree/mobile_copy_button_height/mobile_copy_button_height/mobile_copy_button_height.md b/.brv/context-tree/mobile_copy_button_height/mobile_copy_button_height/mobile_copy_button_height.md
new file mode 100644
index 0000000..3f4ad18
--- /dev/null
+++ b/.brv/context-tree/mobile_copy_button_height/mobile_copy_button_height/mobile_copy_button_height.md
@@ -0,0 +1,30 @@
+---
+title: mobile .copy-button height
+summary: Facts about mobile .copy-button height
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.524Z'
+updatedAt: '2026-05-28T11:17:08.524Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under mobile .copy-button height
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **mobile .copy-button height**: apps/landing/src/styles/global.css:1191-1193 raises mobile .copy-button only to 40px, still below 44px.
diff --git a/.brv/context-tree/oklch_token_consolidation/oklch_token_consolidation/oklch_token_consolidation.md b/.brv/context-tree/oklch_token_consolidation/oklch_token_consolidation/oklch_token_consolidation.md
new file mode 100644
index 0000000..a1d1515
--- /dev/null
+++ b/.brv/context-tree/oklch_token_consolidation/oklch_token_consolidation/oklch_token_consolidation.md
@@ -0,0 +1,30 @@
+---
+title: OKLCH token consolidation
+summary: Facts about OKLCH token consolidation
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.532Z'
+updatedAt: '2026-05-28T11:17:08.532Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under OKLCH token consolidation
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **OKLCH token consolidation**: Direct OKLCH consolidation appears incomplete.
diff --git a/.brv/context-tree/progressive_js_tabs/progressive_js_tabs/progressive_js_tabs.md b/.brv/context-tree/progressive_js_tabs/progressive_js_tabs/progressive_js_tabs.md
new file mode 100644
index 0000000..bb468f0
--- /dev/null
+++ b/.brv/context-tree/progressive_js_tabs/progressive_js_tabs/progressive_js_tabs.md
@@ -0,0 +1,30 @@
+---
+title: progressive JS tabs
+summary: Facts about progressive JS tabs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.536Z'
+updatedAt: '2026-05-28T11:17:08.536Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under progressive JS tabs
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **progressive JS tabs**: Progressive JS tabs and no-JS visible panels are implemented: panels are not hidden in markup, JS adds roles/ARIA and hides inactive panels at index.astro:417-437.
diff --git a/.brv/context-tree/project/verification-first-as-a-cross-domain-safety-model.md b/.brv/context-tree/project/verification-first-as-a-cross-domain-safety-model.md
new file mode 100644
index 0000000..9e62f27
--- /dev/null
+++ b/.brv/context-tree/project/verification-first-as-a-cross-domain-safety-model.md
@@ -0,0 +1,24 @@
+---
+confidence: 0.97
+sources: [architecture/_index.md, docs/_index.md, facts/_index.md, project/_index.md]
+synthesized_at: '2026-05-27T23:38:23.761Z'
+type: synthesis
+title: Verification‑First as a Cross‑Domain Safety Model
+summary: All major project areas treat explicit verification as the true completion signal, not just workflow success.
+tags: [verification, safety, ci-cd]
+related: []
+keywords: [verification, compliance, testing, release, curation, workflow, safety, automation, policy, validation]
+createdAt: '2026-05-27T23:38:23.761Z'
+updatedAt: '2026-05-27T23:38:23.761Z'
+---
+
+# Verification‑First as a Cross‑Domain Safety Model
+
+The project enforces a verification‑first policy that spans architecture, documentation, facts, and project workflows, ensuring changes are only considered complete after passing automated verification tests and review outcomes.
+
+## Evidence
+
+- **architecture**: Verification and compliance are listed as a core pillar ("Task 1 Spec Compliance Review").
+- **docs**: Release automation and completion pipelines are gated by verified publish state, not merely successful workflow runs.
+- **facts**: Curation/runtime conventions require recon → extraction → curate with UPSERT and verification that `result.summary.failed === 0`.
+- **project**: The shared safety model explicitly states that verification is the real completion signal across the project.
diff --git a/.brv/context-tree/reveal_failsafe/reveal_failsafe/reveal_failsafe.md b/.brv/context-tree/reveal_failsafe/reveal_failsafe/reveal_failsafe.md
new file mode 100644
index 0000000..b3805b3
--- /dev/null
+++ b/.brv/context-tree/reveal_failsafe/reveal_failsafe/reveal_failsafe.md
@@ -0,0 +1,30 @@
+---
+title: reveal failsafe
+summary: Facts about reveal failsafe
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.560Z'
+updatedAt: '2026-05-28T11:17:08.560Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under reveal failsafe
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **reveal failsafe**: Reveal failsafe implemented: non-IntersectionObserver path and timeout failsafe at index.astro:527-533.
diff --git a/.brv/context-tree/src/caplets/agent_setup_tabs.md b/.brv/context-tree/src/caplets/agent_setup_tabs.md
new file mode 100644
index 0000000..13b1bf0
--- /dev/null
+++ b/.brv/context-tree/src/caplets/agent_setup_tabs.md
@@ -0,0 +1,22 @@
+---
+title: agent setup tabs
+summary: Facts about agent setup tabs
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.724Z'
+updatedAt: '2026-05-27T23:46:33.724Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about agent setup tabs
+
+## Narrative
+### Highlights
+Implemented agent setup tabs for the landing integrations card.
+
+## Facts
+- **agent setup tabs**: Implemented agent setup tabs for the landing integrations card.
diff --git a/.brv/context-tree/src/caplets/build.md b/.brv/context-tree/src/caplets/build.md
new file mode 100644
index 0000000..049c1e2
--- /dev/null
+++ b/.brv/context-tree/src/caplets/build.md
@@ -0,0 +1,22 @@
+---
+title: build
+summary: Facts about build
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.751Z'
+updatedAt: '2026-05-27T23:46:33.751Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about build
+
+## Narrative
+### Highlights
+pnpm --filter @caplets/landing build passed.
+
+## Facts
+- **build**: pnpm --filter @caplets/landing build passed.
diff --git a/.brv/context-tree/src/caplets/caplets_module.md b/.brv/context-tree/src/caplets/caplets_module.md
new file mode 100644
index 0000000..98c74e0
--- /dev/null
+++ b/.brv/context-tree/src/caplets/caplets_module.md
@@ -0,0 +1,39 @@
+---
+title: Caplets Module
+summary: Extracted factual statements about caplets implementation and usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:54:41.417Z'
+updatedAt: '2026-05-27T23:54:41.417Z'
+---
+## Reason
+Curate extracted facts from caplets source context
+
+## Raw Concept
+**Task:**
+Document caplets module knowledge
+
+**Timestamp:** 2026-05-27T23:54:41.412Z
+
+## Facts
+- **commit_range_0e56e8f..HEAD**: Reviewed committed changes only for `0e56e8f^..HEAD` covering `apps/landing/src/pages/index.astro`, `apps/landing/src/styles/global.css`, and `docs/plans/2026-05-27-agent-card-setup-tabs.md`.
+- **file_selection**: Ignored unrelated unstaged/untracked files shown by `git status`.
+- **OpenCode**: Previous misinformation blockers are fixed: OpenCode setup now uses native plugin install/config with `npm install -g @caplets/opencode` and plugin configuration in `apps/landing/src/pages/index.astro:51-57` as confirmed by `packages/opencode/README.md`.
+- **Pi**: Previous misinformation blockers are fixed: Pi setup now uses Pi extension install/settings with `pi install npm:@caplets/pi` and package registration in `apps/landing/src/pages/index.astro:60-66` as confirmed by `packages/pi/README.md`.
+- **tab_interface**: Accessibility implementation uses proper `role="tablist"`, `role="tab"`, `role="tabpanel"`, `aria-selected`, `aria-controls`, and `aria-labelledby` at `apps/landing/src/pages/index.astro:260-284`.
+- **apps/landing/src/pages/index.astro:260-284**: Uses proper role="tablist", role="tab", role="tabpanel", aria-selected, aria-controls, and aria-labelledby
+- **apps/landing/src/pages/index.astro:359-380**: Keyboard navigation supports ArrowLeft/ArrowRight/Home/End and moves focus/selection
+- **apps/landing/src/pages/index.astro:284**: Hidden inactive panels use the native hidden attribute
+- **apps/landing/src/styles/global.css:993-995**: CSS reinforces display behavior for hidden panels
+- **Astro/TypeScript code**: Inline script types are valid
+- **pnpm typecheck**: pnpm --filter @caplets/landing typecheck passed with 0 errors/warnings/hints
+- **pnpm build**: pnpm --filter @caplets/landing build passed
+- **apps/landing/src/styles/global.css:953-1019**: Styling reuses existing design tokens and visual language (--night-*, --font-mono, --ease-out)
+- **apps/landing/src/styles/global.css:1256-1258**: Responsive behavior collapses setup grid cleanly
+- **apps/landing/src/styles/global.css:1326-1333**: Reduced-motion fallback includes new tab/panel elements
+- **apps/landing/src/pages/index.astro:26-78**: agentSetups centralizes tab labels, commands, snippets, and notes
+- **apps/landing/src/pages/index.astro:80**: integrations derives from agentSetups, avoiding duplicated client names
+- **Project status**: Blocker: None
+- **Build warning**: Build emits a Node deprecation warning from tooling (module.register()), but the landing typecheck/build both pass and this is unrelated to the committed tab changes
+- **blocker**: Blocker: None.
diff --git a/.brv/context-tree/src/caplets/caplets_source_extraction.md b/.brv/context-tree/src/caplets/caplets_source_extraction.md
new file mode 100644
index 0000000..b8adea5
--- /dev/null
+++ b/.brv/context-tree/src/caplets/caplets_source_extraction.md
@@ -0,0 +1,59 @@
+---
+title: Caplets Source Extraction
+summary: Extracted factual statements from caplets source
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:23:36.823Z'
+updatedAt: '2026-05-28T11:23:36.823Z'
+---
+## Reason
+Curate extracted facts from caplets source context
+
+## Raw Concept
+**Task:**
+Document extracted facts from caplets source context
+
+**Flow:**
+extraction -> dedup -> curation
+
+**Timestamp:** 2026-05-28T11:23:36.821Z
+
+## Narrative
+### Structure
+Aggregated extracted factual statements from provided context
+
+### Highlights
+interactive controls, header/nav links, hero buttons, integration tabs, copy buttons
+
+### Examples
+[
+ {
+ "statement": "All interactive controls meet the 44px minimum",
+ "subject": "interactive controls"
+ },
+ {
+ "statement": "Header/nav links meet the 44px minimum",
+ "subject": "header/nav links"
+ },
+ {
+ "statement": "Hero buttons meet the 44px minimum",
+ "subject": "hero buttons"
+ }
+]
+
+## Facts
+- **interactive controls**: All interactive controls meet the 44px minimum
+- **header/nav links**: Header/nav links meet the 44px minimum
+- **hero buttons**: Hero buttons meet the 44px minimum
+- **integration tabs**: Integration tabs meet the 44px minimum
+- **copy buttons**: Copy buttons meet the 44px minimum
+- **JS tabs**: Progressive JS tabs avoid misleading no-JS roles
+- **tab markup**: Static markup has no tab roles and JavaScript adds appropriate ARIA attributes after initialization
+- **clipboard fallback**: Clipboard fallback focuses and selects the snippet target, with a textarea fallback when no target exists
+- **reveal animation**: Reveal animation includes failsafes for missing IntersectionObserver, reduced motion, and delayed reveal fallback
+- **terminal chrome**: Terminal chrome is hidden from assistive technology
+- **token cleanup**: Token cleanup is complete; reused values are promoted to CSS variables and no removed token references remain
+- **punctuation**: No em dashes or en dashes were found in the inspected files
+- **audit issues**: No P0/P1/P2 audit issues were found
+- **overall**: Review result: APPROVED
diff --git a/.brv/context-tree/src/caplets/changed_files.md b/.brv/context-tree/src/caplets/changed_files.md
new file mode 100644
index 0000000..ed2108b
--- /dev/null
+++ b/.brv/context-tree/src/caplets/changed_files.md
@@ -0,0 +1,22 @@
+---
+title: changed files
+summary: Facts about changed files
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.727Z'
+updatedAt: '2026-05-27T23:46:33.727Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about changed files
+
+## Narrative
+### Highlights
+Changed files: apps/landing/src/pages/index.astro, apps/landing/src/styles/global.css, docs/plans/2026-05-27-agent-card-setup-tabs.md.
+
+## Facts
+- **changed files**: Changed files: apps/landing/src/pages/index.astro, apps/landing/src/styles/global.css, docs/plans/2026-05-27-agent-card-setup-tabs.md.
diff --git a/.brv/context-tree/src/caplets/commit_0e56e8f.md b/.brv/context-tree/src/caplets/commit_0e56e8f.md
new file mode 100644
index 0000000..0b44d12
--- /dev/null
+++ b/.brv/context-tree/src/caplets/commit_0e56e8f.md
@@ -0,0 +1,22 @@
+---
+title: commit 0e56e8f
+summary: Facts about commit 0e56e8f
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.733Z'
+updatedAt: '2026-05-27T23:46:33.733Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about commit 0e56e8f
+
+## Narrative
+### Highlights
+Commit 0e56e8f with message "feat(landing): add agent setup tabs" was created.
+
+## Facts
+- **commit 0e56e8f**: Commit 0e56e8f with message "feat(landing): add agent setup tabs" was created.
diff --git a/.brv/context-tree/src/caplets/format_check.md b/.brv/context-tree/src/caplets/format_check.md
new file mode 100644
index 0000000..a8609d3
--- /dev/null
+++ b/.brv/context-tree/src/caplets/format_check.md
@@ -0,0 +1,22 @@
+---
+title: format check
+summary: Facts about format check
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.735Z'
+updatedAt: '2026-05-27T23:46:33.735Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about format check
+
+## Narrative
+### Highlights
+pnpm format:check passed.
+
+## Facts
+- **format check**: pnpm format:check passed.
diff --git a/.brv/context-tree/src/caplets/lint.md b/.brv/context-tree/src/caplets/lint.md
new file mode 100644
index 0000000..9296fff
--- /dev/null
+++ b/.brv/context-tree/src/caplets/lint.md
@@ -0,0 +1,22 @@
+---
+title: lint
+summary: Facts about lint
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.737Z'
+updatedAt: '2026-05-27T23:46:33.737Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about lint
+
+## Narrative
+### Highlights
+pnpm lint passed.
+
+## Facts
+- **lint**: pnpm lint passed.
diff --git a/.brv/context-tree/src/caplets/pre_commit_hook.md b/.brv/context-tree/src/caplets/pre_commit_hook.md
new file mode 100644
index 0000000..99c7368
--- /dev/null
+++ b/.brv/context-tree/src/caplets/pre_commit_hook.md
@@ -0,0 +1,22 @@
+---
+title: pre-commit hook
+summary: Facts about pre-commit hook
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.753Z'
+updatedAt: '2026-05-27T23:46:33.753Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about pre-commit hook
+
+## Narrative
+### Highlights
+Pre-commit hook ran broader format/lint/typecheck successfully.
+
+## Facts
+- **pre-commit hook**: Pre-commit hook ran broader format/lint/typecheck successfully.
diff --git a/.brv/context-tree/src/caplets/typecheck.md b/.brv/context-tree/src/caplets/typecheck.md
new file mode 100644
index 0000000..6b9e658
--- /dev/null
+++ b/.brv/context-tree/src/caplets/typecheck.md
@@ -0,0 +1,22 @@
+---
+title: typecheck
+summary: Facts about typecheck
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.740Z'
+updatedAt: '2026-05-27T23:46:33.740Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about typecheck
+
+## Narrative
+### Highlights
+pnpm --filter @caplets/landing typecheck passed.
+
+## Facts
+- **typecheck**: pnpm --filter @caplets/landing typecheck passed.
diff --git a/.brv/context-tree/src/caplets/working_tree.md b/.brv/context-tree/src/caplets/working_tree.md
new file mode 100644
index 0000000..02081dd
--- /dev/null
+++ b/.brv/context-tree/src/caplets/working_tree.md
@@ -0,0 +1,22 @@
+---
+title: working tree
+summary: Facts about working tree
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:46:33.759Z'
+updatedAt: '2026-05-27T23:46:33.759Z'
+---
+## Reason
+Curate extracted facts from context
+
+## Raw Concept
+**Task:**
+Document facts about working tree
+
+## Narrative
+### Highlights
+Working tree still has unrelated pre-existing changes after the commit, including .brv/*, deleted apps/landing/.vscode/*, screenshots, and unstaged modifications to apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
+
+## Facts
+- **working tree**: Working tree still has unrelated pre-existing changes after the commit, including .brv/*, deleted apps/landing/.vscode/*, screenshots, and unstaged modifications to apps/landing/src/pages/index.astro and apps/landing/src/styles/global.css.
diff --git a/.brv/context-tree/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden.md b/.brv/context-tree/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden.md
new file mode 100644
index 0000000..003a044
--- /dev/null
+++ b/.brv/context-tree/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden/terminal_chrome_aria_hidden.md
@@ -0,0 +1,30 @@
+---
+title: terminal chrome aria-hidden
+summary: Facts about terminal chrome aria-hidden
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.561Z'
+updatedAt: '2026-05-28T11:17:08.562Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under terminal chrome aria-hidden
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **terminal chrome aria-hidden**: Terminal chrome is hidden from AT at index.astro:377-379.
diff --git a/.brv/context-tree/theme_color_usage/theme_color_usage/theme_color_usage.md b/.brv/context-tree/theme_color_usage/theme_color_usage/theme_color_usage.md
new file mode 100644
index 0000000..b03db93
--- /dev/null
+++ b/.brv/context-tree/theme_color_usage/theme_color_usage/theme_color_usage.md
@@ -0,0 +1,30 @@
+---
+title: theme color usage
+summary: Facts about theme color usage
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-28T11:17:08.534Z'
+updatedAt: '2026-05-28T11:17:08.534Z'
+---
+## Reason
+Curated extracted facts from context
+
+## Raw Concept
+**Task:**
+Document extracted factual statements
+
+**Flow:**
+extraction -> curation
+
+**Timestamp:** 2026-05-28T11:17:08.519Z
+
+## Narrative
+### Structure
+Facts grouped under theme color usage
+
+### Highlights
+Contains 1 factual statements
+
+## Facts
+- **theme color usage**: apps/landing/src/pages/index.astro:154 still has a direct oklch(97% 0.012 85) theme color instead of a consolidated token/source equivalent.
diff --git a/.brv/context-tree/ui/agent_card_tabs/agent_card_tabs.md b/.brv/context-tree/ui/agent_card_tabs/agent_card_tabs.md
new file mode 100644
index 0000000..074de04
--- /dev/null
+++ b/.brv/context-tree/ui/agent_card_tabs/agent_card_tabs.md
@@ -0,0 +1,45 @@
+---
+title: Agent Card Tabs
+summary: Design for turning agent pills into configurable tabs with commands and settings
+tags: []
+related: []
+keywords: []
+createdAt: '2026-05-27T23:18:59.168Z'
+updatedAt: '2026-05-27T23:18:59.168Z'
+---
+## Reason
+Document design decision for agent pills as tabs
+
+## Raw Concept
+**Task:**
+Design UI where each agent pill acts as a tab showing configuration/commands
+
+**Changes:**
+- Agent pills become tab triggers
+- Detail area shows install command, config snippet, usage note
+- Data modeled per agent for extensibility
+- Tests added for tab functionality
+
+**Flow:**
+User selects pill -> UI swaps detail area to show agent-specific info
+
+**Timestamp:** 2026-05-27T23:18:59.161Z
+
+## Narrative
+### Structure
+Agents card layout unchanged; pills act as tabs triggering detail pane
+
+### Highlights
+Preserves existing layout, adds configurability, supports future agents
+
+### Examples
+Click on "Agent A" pill to view its install command and config snippet
+
+## Facts
+- **card and agent pills**: I want it to be the card as it currently is, but each agent's pill is a tab showing the configuration/commands.
+- **agents card layout**: Keep the agents card layout exactly as-is structurally.
+- **agent pill behavior**: Treat each existing agent pill as a tab trigger.
+- **pill interaction**: Selecting a pill swaps the detail area below/near the pills to show that agent’s install command, configuration snippet, and short usage note if needed.
+- **active pill appearance**: The active pill should be visually distinct but still look like the existing pill style, not a new heavy tab component.
+- **data modeling**: Data should be modeled per agent so future agents can add setup content without changing rendering logic.
+- **test cases**: Tests should verify tab labels render, default selected agent content appears, and switching pills reveals the matching commands/configuration.
diff --git a/.brv/context-tree/ui/agent_card_tabs/context.md b/.brv/context-tree/ui/agent_card_tabs/context.md
new file mode 100644
index 0000000..7e6bfa3
--- /dev/null
+++ b/.brv/context-tree/ui/agent_card_tabs/context.md
@@ -0,0 +1,10 @@
+# Topic: agent_card_tabs
+
+## Overview
+Design for converting agent pills into tabs to show configuration/commands
+
+## Key Concepts
+- agent pill
+- tab trigger
+- configuration snippet
+- install command
diff --git a/.brv/context-tree/ui/context.md b/.brv/context-tree/ui/context.md
new file mode 100644
index 0000000..60ca6e5
--- /dev/null
+++ b/.brv/context-tree/ui/context.md
@@ -0,0 +1,9 @@
+# Domain: ui
+
+## Purpose
+UI component designs for caplets interface
+
+## Scope
+Included in this domain:
+- Agent card modifications
+- Tab interactions
diff --git a/.changeset/major-moose-listen.md b/.changeset/major-moose-listen.md
new file mode 100644
index 0000000..3fe4b10
--- /dev/null
+++ b/.changeset/major-moose-listen.md
@@ -0,0 +1,9 @@
+---
+"@caplets/landing": minor
+"@caplets/opencode": patch
+"@caplets/core": patch
+"caplets": patch
+"@caplets/pi": patch
+---
+
+Add landing page and bump dependencies
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..0246cf9
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,6 @@
+ALCHEMY_PASSWORD=
+ALCHEMY_STATE_TOKEN=
+
+CLOUDFLARE_API_TOKEN=
+CLOUDFLARE_ACCOUNT_ID=
+CLOUDFLARE_EMAIL=
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..7337bc0
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,45 @@
+name: Deploy
+
+on:
+ release:
+ types: [published]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+concurrency:
+ group: deploy-${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ deploy:
+ name: Deploy
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v6
+
+ - name: Setup Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: 24
+ cache: pnpm
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Run quality gates
+ run: pnpm run alchemy:deploy
+ env:
+ ALCHEMY_STAGE: prod
+ ALCHEMY_PASSWORD: ${{ secrets.ALCHEMY_PASSWORD }}
+ ALCHEMY_STATE_TOKEN: ${{ secrets.ALCHEMY_STATE_TOKEN }}
+ CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }}
diff --git a/.github/workflows/pr-preview-deploy.yml b/.github/workflows/pr-preview-deploy.yml
new file mode 100644
index 0000000..b3278b2
--- /dev/null
+++ b/.github/workflows/pr-preview-deploy.yml
@@ -0,0 +1,49 @@
+name: PR Preview Deploy
+
+on:
+ pull_request:
+ branches:
+ - main
+
+permissions:
+ contents: read
+ issues: write
+ pull-requests: write
+
+concurrency:
+ group: pr-preview-${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ deploy:
+ name: Deploy
+ if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v6
+
+ - name: Setup Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: 24
+ cache: pnpm
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Deploy preview
+ run: pnpm run alchemy:deploy
+ env:
+ ALCHEMY_STAGE: pr-${{ github.event.pull_request.number }}
+ ALCHEMY_PASSWORD: ${{ secrets.ALCHEMY_PASSWORD }}
+ ALCHEMY_STATE_TOKEN: ${{ secrets.ALCHEMY_STATE_TOKEN }}
+ CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }}
+ GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
+ GITHUB_TOKEN: ${{ github.token }}
+ PULL_REQUEST: ${{ github.event.pull_request.number }}
diff --git a/.gitignore b/.gitignore
index 0e60e9c..6a7c5eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,9 @@ benchmark-results/
# Playwright
.playwright-mcp/
.playwright-cli/
+
+# alchemy
+.alchemy
+
+.env*
+!.env.example
diff --git a/.impeccable/design.json b/.impeccable/design.json
new file mode 100644
index 0000000..275aac4
--- /dev/null
+++ b/.impeccable/design.json
@@ -0,0 +1,269 @@
+{
+ "schemaVersion": 2,
+ "generatedAt": "2026-05-27T00:00:00.000Z",
+ "title": "Design System: Caplets",
+ "extensions": {
+ "colorMeta": {
+ "ember": {
+ "role": "primary",
+ "displayName": "Ember Signal",
+ "canonical": "#E0582F",
+ "tonalRamp": [
+ "oklch(18% 0.055 35)",
+ "oklch(28% 0.085 35)",
+ "oklch(40% 0.12 35)",
+ "oklch(52% 0.15 35)",
+ "oklch(62% 0.155 35)",
+ "oklch(74% 0.11 35)",
+ "oklch(86% 0.06 35)",
+ "oklch(95% 0.025 35)"
+ ]
+ },
+ "parchment": {
+ "role": "tertiary",
+ "displayName": "Parchment Surface",
+ "canonical": "#F6E8C8",
+ "tonalRamp": [
+ "oklch(18% 0.018 82)",
+ "oklch(29% 0.025 82)",
+ "oklch(41% 0.03 82)",
+ "oklch(55% 0.035 82)",
+ "oklch(68% 0.04 82)",
+ "oklch(80% 0.045 82)",
+ "oklch(89% 0.035 82)",
+ "oklch(96% 0.02 82)"
+ ]
+ },
+ "charred-ink": {
+ "role": "primary",
+ "displayName": "Charred Ink",
+ "canonical": "#1F2018",
+ "tonalRamp": [
+ "oklch(14% 0.012 100)",
+ "oklch(22% 0.014 100)",
+ "oklch(32% 0.016 100)",
+ "oklch(44% 0.018 100)",
+ "oklch(58% 0.018 100)",
+ "oklch(72% 0.014 100)",
+ "oklch(86% 0.01 100)",
+ "oklch(95% 0.006 100)"
+ ]
+ },
+ "linen": {
+ "role": "neutral",
+ "displayName": "Linen Field",
+ "canonical": "#FBF7EC",
+ "tonalRamp": [
+ "oklch(16% 0.01 85)",
+ "oklch(27% 0.012 85)",
+ "oklch(40% 0.014 85)",
+ "oklch(54% 0.016 85)",
+ "oklch(68% 0.018 85)",
+ "oklch(82% 0.018 85)",
+ "oklch(91% 0.014 85)",
+ "oklch(98% 0.008 85)"
+ ]
+ },
+ "paper": {
+ "role": "neutral",
+ "displayName": "Paper Panel",
+ "canonical": "#FFF8EA",
+ "tonalRamp": [
+ "oklch(17% 0.01 82)",
+ "oklch(30% 0.012 82)",
+ "oklch(44% 0.014 82)",
+ "oklch(58% 0.016 82)",
+ "oklch(72% 0.018 82)",
+ "oklch(85% 0.018 82)",
+ "oklch(93% 0.014 82)",
+ "oklch(98% 0.008 82)"
+ ]
+ },
+ "ash": {
+ "role": "neutral",
+ "displayName": "Ash Rule",
+ "canonical": "#E3D8C0",
+ "tonalRamp": [
+ "oklch(17% 0.01 78)",
+ "oklch(29% 0.012 78)",
+ "oklch(42% 0.014 78)",
+ "oklch(56% 0.016 78)",
+ "oklch(70% 0.018 78)",
+ "oklch(82% 0.018 78)",
+ "oklch(91% 0.012 78)",
+ "oklch(96% 0.006 78)"
+ ]
+ },
+ "muted-olive": {
+ "role": "secondary",
+ "displayName": "Muted Olive",
+ "canonical": "#686B4E",
+ "tonalRamp": [
+ "oklch(17% 0.025 110)",
+ "oklch(27% 0.035 110)",
+ "oklch(38% 0.045 110)",
+ "oklch(50% 0.05 110)",
+ "oklch(62% 0.045 110)",
+ "oklch(74% 0.035 110)",
+ "oklch(86% 0.022 110)",
+ "oklch(95% 0.01 110)"
+ ]
+ }
+ },
+ "typographyMeta": {
+ "display": {
+ "displayName": "Display",
+ "purpose": "Page titles, onboarding headings, and major empty-state statements."
+ },
+ "headline": {
+ "displayName": "Headline",
+ "purpose": "Section introductions and major panel headings."
+ },
+ "title": {
+ "displayName": "Title",
+ "purpose": "Card titles, form groups, toolbar headings, and table group labels."
+ },
+ "body": {
+ "displayName": "Body",
+ "purpose": "Explanatory text, descriptions, and documentation-adjacent prose."
+ },
+ "label": {
+ "displayName": "Label",
+ "purpose": "Buttons, chips, capability IDs, state labels, and terse navigation labels."
+ }
+ },
+ "shadows": [
+ {
+ "name": "overlay-low",
+ "value": "0 18px 50px rgba(31, 32, 24, 0.14)",
+ "purpose": "Only for popovers, command palettes, and disclosure panels that must float above the map."
+ }
+ ],
+ "motion": [
+ {
+ "name": "ease-out-quart",
+ "value": "cubic-bezier(0.25, 1, 0.5, 1)",
+ "purpose": "Default easing for hover, focus, and disclosure state changes."
+ },
+ { "name": "state-fast", "value": "150ms", "purpose": "Fast control feedback." },
+ {
+ "name": "state-standard",
+ "value": "200ms",
+ "purpose": "Disclosure and panel state changes."
+ }
+ ],
+ "breakpoints": [
+ { "name": "sm", "value": "640px" },
+ { "name": "md", "value": "768px" },
+ { "name": "lg", "value": "1024px" },
+ { "name": "xl", "value": "1280px" }
+ ]
+ },
+ "components": [
+ {
+ "name": "Primary Button",
+ "kind": "button",
+ "refersTo": "button-primary",
+ "description": "Primary action control with rare ember hover state and visible keyboard focus.",
+ "html": "",
+ "css": ".ds-btn-primary { background: #1F2018; color: #F6E8C8; border: 1px solid #1F2018; border-radius: 10px; padding: 10px 14px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.035em; transition: background-color 180ms cubic-bezier(0.25, 1, 0.5, 1), color 180ms cubic-bezier(0.25, 1, 0.5, 1), transform 180ms cubic-bezier(0.25, 1, 0.5, 1); } .ds-btn-primary:hover { background: #E0582F; color: #FFF8EA; transform: translateY(-1px); } .ds-btn-primary:focus-visible { outline: 2px solid #E0582F; outline-offset: 2px; } .ds-btn-primary:active { transform: translateY(0); }"
+ },
+ {
+ "name": "Secondary Button",
+ "kind": "button",
+ "refersTo": "button-secondary",
+ "description": "Inspection and navigation action for lower-risk product flows.",
+ "html": "",
+ "css": ".ds-btn-secondary { background: #FFF8EA; color: #1F2018; border: 1px solid #E3D8C0; border-radius: 10px; padding: 10px 14px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.035em; transition: background-color 180ms cubic-bezier(0.25, 1, 0.5, 1), border-color 180ms cubic-bezier(0.25, 1, 0.5, 1); } .ds-btn-secondary:hover { background: #F6E8C8; border-color: #1F2018; } .ds-btn-secondary:focus-visible { outline: 2px solid #E0582F; outline-offset: 2px; }"
+ },
+ {
+ "name": "Capability Chip",
+ "kind": "chip",
+ "refersTo": "chip-neutral",
+ "description": "Compact backend, operation, or status label.",
+ "html": "MCP",
+ "css": ".ds-chip { display: inline-flex; align-items: center; gap: 6px; background: #F6E8C8; color: #1F2018; border: 1px solid #E3D8C0; border-radius: 14px; padding: 5px 9px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.035em; } .ds-chip::before { content: ''; width: 6px; height: 6px; border-radius: 999px; background: #E0582F; }"
+ },
+ {
+ "name": "Capability Card",
+ "kind": "card",
+ "refersTo": "capability-card",
+ "description": "Signature bounded region for one capability domain and its next inspection steps.",
+ "html": "
caplets_context7
Context7 Documentation
Fetch current library and framework documentation before using version-sensitive APIs.
search_toolsget_toolcall_tool
",
+ "css": ".ds-capability-card { background: #FFF8EA; color: #1F2018; border: 1px solid #E3D8C0; border-radius: 14px; padding: 18px; max-width: 360px; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; } .ds-capability-card h3 { margin: 8px 0 6px; font-size: 16px; line-height: 1.3; letter-spacing: -0.01em; } .ds-capability-card p { margin: 0; color: #686B4E; font-size: 14px; line-height: 1.5; } .ds-card-kicker, .ds-card-actions span { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.035em; } .ds-card-kicker { color: #E0582F; } .ds-card-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; } .ds-card-actions span { border: 1px solid #E3D8C0; border-radius: 999px; padding: 4px 7px; background: #F6E8C8; }"
+ },
+ {
+ "name": "Search Input",
+ "kind": "input",
+ "refersTo": "input-search",
+ "description": "Focused inspection field for searching tools, resources, and operation names.",
+ "html": "",
+ "css": ".ds-search-label { display: grid; gap: 6px; color: #686B4E; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.035em; } .ds-search-input { width: 260px; background: #FFF8EA; color: #1F2018; border: 1px solid #E3D8C0; border-radius: 10px; padding: 10px 12px; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; font-size: 15px; line-height: 1.4; transition: border-color 180ms cubic-bezier(0.25, 1, 0.5, 1), background-color 180ms cubic-bezier(0.25, 1, 0.5, 1); } .ds-search-input::placeholder { color: #686B4E; } .ds-search-input:focus-visible { outline: 2px solid #E0582F; outline-offset: 2px; border-color: #1F2018; background: #FBF7EC; }"
+ },
+ {
+ "name": "Top Navigation",
+ "kind": "nav",
+ "refersTo": "nav-top",
+ "description": "Compact map wayfinding for docs, plugins, and capability setup sections.",
+ "html": "",
+ "css": ".ds-nav { display: inline-flex; align-items: center; gap: 6px; background: #FFF8EA; border: 1px solid #E3D8C0; border-radius: 14px; padding: 5px; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; } .ds-nav a { color: #686B4E; text-decoration: none; border-radius: 10px; padding: 8px 10px; font-size: 14px; font-weight: 600; transition: background-color 180ms cubic-bezier(0.25, 1, 0.5, 1), color 180ms cubic-bezier(0.25, 1, 0.5, 1); } .ds-nav a:hover { background: #F6E8C8; color: #1F2018; } .ds-nav a:focus-visible { outline: 2px solid #E0582F; outline-offset: 2px; } .ds-nav .ds-nav-active { background: #1F2018; color: #F6E8C8; }"
+ }
+ ],
+ "narrative": {
+ "northStar": "The Tool Cartographer",
+ "overview": "Caplets is a map for agent capability space. The interface should make many backends feel legible without flattening their differences. It uses warm technical surfaces, compact labels, and restrained ember accents to help users orient, inspect, and act.\n\nThe system is product-first: precise, calm, capable. It should feel like an expert tool that has already sorted the sprawl into useful regions. Avoid theatrical intelligence. Avoid visual fog. Every surface should answer one of three questions: what capability is this, what can I inspect next, and what is safe to call.\n\nThe physical scene is a developer reviewing an agent setup at a desk during focused work, with docs, terminal output, and a browser open side by side. The theme stays light and warm because this surface is read for long stretches, compared with documentation, and used during configuration rather than incident response.",
+ "keyCharacteristics": [
+ "Warm light surfaces with ink-like text and a rare ember accent.",
+ "Tonal layering instead of decorative shadows.",
+ "Compact product typography with monospace reserved for labels, tool names, command fragments, and schema snippets.",
+ "Capability cards that feel like map regions and audited records, not marketing cards.",
+ "State-rich interactions with visible focus, non-color-only status cues, and reduced-motion-safe transitions."
+ ],
+ "rules": [
+ {
+ "name": "The Rare Ember Rule",
+ "body": "Ember is a signal, not atmosphere. Keep it below 10% of any product surface; if everything glows orange, nothing is selected.",
+ "section": "colors"
+ },
+ {
+ "name": "The No Pure Extremes Rule",
+ "body": "Never use pure black or pure white. All neutrals must carry a warm tint so product screens remain readable and owned by Caplets.",
+ "section": "colors"
+ },
+ {
+ "name": "The Machine-Text Rule",
+ "body": "Monospace is reserved for things a user might copy, inspect, or route through an agent. Never use monospace as a vibe.",
+ "section": "typography"
+ },
+ {
+ "name": "The Compact Confidence Rule",
+ "body": "Product text should be smaller and denser than a marketing page, but never cramped. If a line needs more than two clauses, rewrite it.",
+ "section": "typography"
+ },
+ {
+ "name": "The Flat Map Rule",
+ "body": "Surfaces are flat at rest. A capability card earns attention through hierarchy, content, and state, not a drop shadow.",
+ "section": "elevation"
+ },
+ {
+ "name": "The Border As Structure Rule",
+ "body": "Borders separate scan regions and focus areas. They are never colored side stripes, and they never become decoration.",
+ "section": "elevation"
+ }
+ ],
+ "dos": [
+ "Do use ember as a rare signal for selected states, primary actions, and important status markers.",
+ "Do keep capability cards flat at rest with paper surfaces, ash borders, and precise content hierarchy.",
+ "Do reserve monospace for tool names, command fragments, schemas, operation names, and IDs.",
+ "Do make every state accessible through text, icon, shape, or focus treatment in addition to color.",
+ "Do write compact UI copy that helps the next decision: inspect, search, list, call, configure, or fix."
+ ],
+ "donts": [
+ "Don't use generic SaaS cream: beige landing pages, vague AI productivity promises, identical rounded card grids, hero metrics, or decorative gradients.",
+ "Don't use neon devtool dark: hacker-dashboard cosplay, glowing terminal aesthetics, saturated cyber palettes, or default dark-mode theatrics.",
+ "Don't use raw configuration documentation as the interface. Config details are inspectable, not the whole product surface.",
+ "Don't use colored side-stripe borders on cards, callouts, alerts, or list items. Use full borders, background tone, icons, or labels instead.",
+ "Don't use gradient text, decorative glassmorphism, bounce motion, or orchestrated page-load choreography."
+ ]
+ }
+}
diff --git a/DESIGN.md b/DESIGN.md
new file mode 100644
index 0000000..25b3682
--- /dev/null
+++ b/DESIGN.md
@@ -0,0 +1,223 @@
+---
+name: Caplets
+description: Capability cards for coding agents, precise progressive disclosure for sprawling tool stacks.
+colors:
+ ember: "#E0582F"
+ parchment: "#F6E8C8"
+ charred-ink: "#1F2018"
+ linen: "#FBF7EC"
+ paper: "#FFF8EA"
+ ash: "#E3D8C0"
+ muted-olive: "#686B4E"
+ danger: "#B33A2E"
+ success: "#3F7A52"
+typography:
+ display:
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
+ fontSize: "2rem"
+ fontWeight: 650
+ lineHeight: 1.08
+ letterSpacing: "-0.035em"
+ headline:
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
+ fontSize: "1.5rem"
+ fontWeight: 650
+ lineHeight: 1.15
+ letterSpacing: "-0.025em"
+ title:
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
+ fontSize: "1rem"
+ fontWeight: 620
+ lineHeight: 1.3
+ letterSpacing: "-0.01em"
+ body:
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
+ fontSize: "0.9375rem"
+ fontWeight: 450
+ lineHeight: 1.55
+ letterSpacing: "normal"
+ label:
+ fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace"
+ fontSize: "0.75rem"
+ fontWeight: 600
+ lineHeight: 1.25
+ letterSpacing: "0.035em"
+rounded:
+ xs: "4px"
+ sm: "6px"
+ md: "10px"
+ lg: "14px"
+spacing:
+ xs: "4px"
+ sm: "8px"
+ md: "12px"
+ lg: "18px"
+ xl: "28px"
+components:
+ button-primary:
+ backgroundColor: "{colors.charred-ink}"
+ textColor: "{colors.parchment}"
+ typography: "{typography.label}"
+ rounded: "{rounded.md}"
+ padding: "10px 14px"
+ button-primary-hover:
+ backgroundColor: "{colors.ember}"
+ textColor: "{colors.paper}"
+ typography: "{typography.label}"
+ rounded: "{rounded.md}"
+ padding: "10px 14px"
+ button-secondary:
+ backgroundColor: "{colors.paper}"
+ textColor: "{colors.charred-ink}"
+ typography: "{typography.label}"
+ rounded: "{rounded.md}"
+ padding: "10px 14px"
+ chip-neutral:
+ backgroundColor: "{colors.parchment}"
+ textColor: "{colors.charred-ink}"
+ typography: "{typography.label}"
+ rounded: "{rounded.lg}"
+ padding: "5px 9px"
+ capability-card:
+ backgroundColor: "{colors.paper}"
+ textColor: "{colors.charred-ink}"
+ rounded: "{rounded.lg}"
+ padding: "18px"
+---
+
+# Design System: Caplets
+
+## 1. Overview
+
+**Creative North Star: "The Tool Cartographer"**
+
+Caplets is a map for agent capability space. The interface should make many backends feel legible without flattening their differences. It uses warm technical surfaces, compact labels, and restrained ember accents to help users orient, inspect, and act.
+
+The system is product-first: precise, calm, capable. It should feel like an expert tool that has already sorted the sprawl into useful regions. Avoid theatrical intelligence. Avoid visual fog. Every surface should answer one of three questions: what capability is this, what can I inspect next, and what is safe to call.
+
+The physical scene is a developer reviewing an agent setup at a desk during focused work, with docs, terminal output, and a browser open side by side. The theme stays light and warm because this surface is read for long stretches, compared with documentation, and used during configuration rather than incident response.
+
+**Key Characteristics:**
+
+- Warm light surfaces with ink-like text and a rare ember accent.
+- Tonal layering instead of decorative shadows.
+- Compact product typography with monospace reserved for labels, tool names, command fragments, and schema snippets.
+- Capability cards that feel like map regions and audited records, not marketing cards.
+- State-rich interactions with visible focus, non-color-only status cues, and reduced-motion-safe transitions.
+
+## 2. Colors
+
+The palette is charred ink, parchment, and ember: warm enough to avoid default developer grayscale, restrained enough to preserve product trust.
+
+### Primary
+
+- **Ember Signal**: The primary accent from existing README badges. Use it for primary action emphasis, selected states, important status markers, and the smallest wayfinding details. It must stay rare.
+- **Charred Ink**: The main text and high-emphasis control color. Use it instead of pure black so dense UI stays warm and less brittle.
+
+### Secondary
+
+- **Muted Olive**: A quiet secondary cue for metadata, inactive map regions, and neutral categorization. Use it when ember would imply action or urgency.
+
+### Tertiary
+
+- **Parchment Surface**: The brand-tinted neutral used for chips, badges, secondary panels, and documentation-adjacent blocks.
+
+### Neutral
+
+- **Linen Field**: The main application background, a tinted neutral for long reading and configuration work.
+- **Paper Panel**: The raised tonal surface for cards, inputs, popovers, and focused content blocks.
+- **Ash Rule**: The border and divider color. Use it as a quiet structural line, never as decoration.
+
+### Named Rules
+
+**The Rare Ember Rule.** Ember is a signal, not atmosphere. Keep it below 10% of any product surface; if everything glows orange, nothing is selected.
+
+**The No Pure Extremes Rule.** Never use pure black or pure white. All neutrals must carry a warm tint so product screens remain readable and owned by Caplets.
+
+## 3. Typography
+
+**Display Font:** Inter, with system sans fallbacks
+**Body Font:** Inter, with system sans fallbacks
+**Label/Mono Font:** System monospace stack
+
+**Character:** The type system is practical and exact. Sans-serif carries the product surface; monospace appears only where the content is machine-facing: tool names, command snippets, schema keys, capability IDs, and compact labels.
+
+### Hierarchy
+
+- **Display** (650, 2rem, 1.08): Page titles, onboarding headings, and major empty-state statements. Use sparingly.
+- **Headline** (650, 1.5rem, 1.15): Section introductions and major panel headings.
+- **Title** (620, 1rem, 1.3): Card titles, form groups, toolbar headings, and table group labels.
+- **Body** (450, 0.9375rem, 1.55): Explanatory text, descriptions, and documentation-adjacent prose. Cap prose at 65 to 75 characters per line.
+- **Label** (600, 0.75rem, 0.035em): Buttons, chips, capability IDs, state labels, and terse navigation labels.
+
+### Named Rules
+
+**The Machine-Text Rule.** Monospace is reserved for things a user might copy, inspect, or route through an agent. Never use monospace as a vibe.
+
+**The Compact Confidence Rule.** Product text should be smaller and denser than a marketing page, but never cramped. If a line needs more than two clauses, rewrite it.
+
+## 4. Elevation
+
+Caplets uses tonal layering, not ambient shadow. Depth is conveyed through background shifts, thin ash borders, spacing, and state changes. Shadows are reserved for overlays that must float above the map, such as command palettes, popovers, and focused disclosure panels.
+
+### Named Rules
+
+**The Flat Map Rule.** Surfaces are flat at rest. A capability card earns attention through hierarchy, content, and state, not a drop shadow.
+
+**The Border As Structure Rule.** Borders separate scan regions and focus areas. They are never colored side stripes, and they never become decoration.
+
+## 5. Components
+
+### Buttons
+
+- **Shape:** Tactile and calm, with a medium curve (10px radius).
+- **Primary:** Charred ink background with parchment text, compact monospace label, and 10px 14px padding. Ember appears on hover or selected action states, not as the default fill everywhere.
+- **Hover / Focus:** Use 150 to 200 ms color and transform transitions with an ease-out curve. Focus uses a visible ember outline plus offset, never color alone.
+- **Secondary / Ghost:** Paper or transparent backgrounds with ash borders. Use secondary buttons for inspection and navigation actions.
+
+### Chips
+
+- **Style:** Parchment background, charred ink text, compact monospace label, and a 14px pill radius.
+- **State:** Selected chips may use ember text or a charred ink fill. Disabled chips must lower contrast through tone and include text or icon state, not color alone.
+
+### Cards / Containers
+
+- **Corner Style:** Calm rounded panels (14px radius) for capability cards and content blocks.
+- **Background:** Paper panels on a linen field. Parchment panels are reserved for secondary context, examples, and metadata blocks.
+- **Shadow Strategy:** No shadow at rest. Use tonal separation and ash borders.
+- **Border:** One-pixel ash border. Side-stripe borders are prohibited.
+- **Internal Padding:** Use 18px for standard cards, 28px for explanatory panels, and 12px for dense inspection rows.
+
+### Inputs / Fields
+
+- **Style:** Paper background, ash border, charred ink text, 10px radius, and body typography.
+- **Focus:** Ember outline with 2px offset and a subtle paper-to-linen tonal shift.
+- **Error / Disabled:** Errors use danger plus text labels. Disabled fields use parchment surface, muted olive text, and no pointer affordance.
+
+### Navigation
+
+- **Style:** Compact labels with clear active state, using charred ink for current location and muted olive for inactive items. Top-level nav should feel like map wayfinding, not a marketing navbar.
+- **Hover / Active:** Hover may shift text to charred ink and add a parchment background. Active states combine tone, text weight, and an accessible label or icon.
+- **Mobile Treatment:** Collapse navigation structurally into grouped sections or a command palette. Do not hide core actions behind decorative menus.
+
+### Capability Card
+
+A capability card is the signature component. It should lead with the capability name, a compact type or backend chip, and a concise description. Disclosure actions such as `search_tools`, `list_tools`, and `get_tool` should appear as ordered next steps. The card should feel like a region on a map: bounded, labeled, and easy to inspect.
+
+## 6. Do's and Don'ts
+
+### Do:
+
+- **Do** use ember as a rare signal for selected states, primary actions, and important status markers.
+- **Do** keep capability cards flat at rest with paper surfaces, ash borders, and precise content hierarchy.
+- **Do** reserve monospace for tool names, command fragments, schemas, operation names, and IDs.
+- **Do** make every state accessible through text, icon, shape, or focus treatment in addition to color.
+- **Do** write compact UI copy that helps the next decision: inspect, search, list, call, configure, or fix.
+
+### Don't:
+
+- **Don't** use generic SaaS cream: beige landing pages, vague AI productivity promises, identical rounded card grids, hero metrics, or decorative gradients.
+- **Don't** use neon devtool dark: hacker-dashboard cosplay, glowing terminal aesthetics, saturated cyber palettes, or default dark-mode theatrics.
+- **Don't** use raw configuration documentation as the interface. Config details are inspectable, not the whole product surface.
+- **Don't** use colored side-stripe borders on cards, callouts, alerts, or list items. Use full borders, background tone, icons, or labels instead.
+- **Don't** use gradient text, decorative glassmorphism, bounce motion, or orchestrated page-load choreography.
diff --git a/PRODUCT.md b/PRODUCT.md
new file mode 100644
index 0000000..59663aa
--- /dev/null
+++ b/PRODUCT.md
@@ -0,0 +1,33 @@
+# Product
+
+## Register
+
+product
+
+## Users
+
+Caplets serves developers working with coding agents and tool ecosystems. The primary audience is split between agent power users who run many MCP servers, APIs, and local tools, and tool builders who package focused capability domains for agents or teams. Users are usually in a technical workflow: configuring integrations, inspecting available capabilities, debugging setup, or helping an agent choose the right tool without flooding context.
+
+## Product Purpose
+
+Caplets turns sprawling tool stacks into focused capability cards for coding agents. It exists to reduce context bloat, improve tool discovery, preserve downstream capability fidelity, and make heterogeneous backends feel like one coherent progressive-disclosure interface. Success looks like agents choosing the right capability quickly, users trusting what is exposed and hidden, and builders being able to package tools without writing bespoke agent integration code.
+
+## Brand Personality
+
+Precise, calm, capable. Caplets should feel like an expert developer tool that has already done the hard sorting work. The voice is compact, direct, and technically credible. It can be clever about the capability-card metaphor, but it should never become cute at the expense of clarity.
+
+## Anti-references
+
+Avoid generic SaaS cream: beige landing pages, vague AI productivity promises, identical rounded card grids, hero metrics, and decorative gradients. Also avoid neon devtool dark: hacker-dashboard cosplay, glowing terminal aesthetics, saturated cyber palettes, and default dark-mode theatrics. Caplets should not look like raw configuration documentation pasted into a UI, but it also should not hide important mechanics behind marketing fog.
+
+## Design Principles
+
+1. Progressive disclosure is the product: show the capability first, then reveal detail only when it helps the next decision.
+2. Earn trust through exactness: names, schemas, statuses, errors, and source metadata should feel stable, inspectable, and unsurprising.
+3. Reduce cognitive load without reducing truth: simplify navigation and scanning while preserving complete downstream semantics when users need them.
+4. Familiar patterns are leverage: use standard developer-tool affordances so users can stay focused on the agent workflow.
+5. Quiet confidence beats spectacle: visual polish should clarify structure and state, not perform intelligence.
+
+## Accessibility & Inclusion
+
+Use a pragmatic developer-tool accessibility baseline: full keyboard navigation, visible focus states, screen-reader-friendly labels, non-color-only status cues, readable contrast, and reduced-motion support. Interfaces should remain usable for color-blind users and for developers scanning dense technical output under time pressure.
diff --git a/alchemy.run.ts b/alchemy.run.ts
new file mode 100644
index 0000000..9d767fd
--- /dev/null
+++ b/alchemy.run.ts
@@ -0,0 +1,56 @@
+import alchemy from "alchemy";
+import { Astro } from "alchemy/cloudflare";
+import { GitHubComment } from "alchemy/github";
+import { CloudflareStateStore } from "alchemy/state";
+
+const baseDomain = "caplets.dev";
+
+const app = await alchemy("caplets", {
+ stateStore: (scope) => new CloudflareStateStore(scope),
+ password: process.env.ALCHEMY_PASSWORD!,
+});
+
+const landingPageDomain = app.stage === "prod" ? baseDomain : `${app.stage}.preview.${baseDomain}`;
+const [repositoryOwnerFromSlug, repositoryNameFromSlug] =
+ process.env.GITHUB_REPOSITORY?.split("/") ?? [];
+const repositoryOwner = process.env.GITHUB_REPOSITORY_OWNER ?? repositoryOwnerFromSlug;
+const repositoryName = process.env.GITHUB_REPOSITORY_NAME ?? repositoryNameFromSlug;
+const pullRequestNumber = process.env.PULL_REQUEST
+ ? Number.parseInt(process.env.PULL_REQUEST, 10)
+ : undefined;
+
+export const landingPage = await Astro("landing-page", {
+ cwd: "apps/landing",
+ dev: {
+ command: "pnpm run dev" + (process.env.SSH_CONNECTION ? " --host 0.0.0.0" : ""),
+ },
+ domains: [landingPageDomain],
+});
+
+console.log({
+ "Landing Page URL": landingPage.url,
+});
+
+if (pullRequestNumber) {
+ if (!repositoryOwner || !repositoryName) {
+ throw new Error("Missing GitHub repository metadata for preview comment.");
+ }
+
+ await GitHubComment("preview-comment", {
+ owner: repositoryOwner,
+ repository: repositoryName,
+ issueNumber: pullRequestNumber,
+ body: `## 🚀 Preview Deployed
+
+Your changes have been deployed to a preview environment:
+
+**🌐 Landing Page:** ${landingPage.url}
+
+Built from commit ${process.env.GITHUB_SHA?.slice(0, 7) ?? "unknown"}
+
+---
+🤖 This comment updates automatically with each push.`,
+ });
+}
+
+await app.finalize();
diff --git a/apps/landing/.gitignore b/apps/landing/.gitignore
new file mode 100644
index 0000000..16d54bb
--- /dev/null
+++ b/apps/landing/.gitignore
@@ -0,0 +1,24 @@
+# build output
+dist/
+# generated types
+.astro/
+
+# dependencies
+node_modules/
+
+# logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+
+# environment variables
+.env
+.env.production
+
+# macOS-specific files
+.DS_Store
+
+# jetbrains setting folder
+.idea/
diff --git a/apps/landing/README.md b/apps/landing/README.md
new file mode 100644
index 0000000..692b11c
--- /dev/null
+++ b/apps/landing/README.md
@@ -0,0 +1,43 @@
+# Astro Starter Kit: Minimal
+
+```sh
+pnpm create astro@latest -- --template minimal
+```
+
+> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
+
+## 🚀 Project Structure
+
+Inside of your Astro project, you'll see the following folders and files:
+
+```text
+/
+├── public/
+├── src/
+│ └── pages/
+│ └── index.astro
+└── package.json
+```
+
+Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+
+There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+
+Any static assets, like images, can be placed in the `public/` directory.
+
+## 🧞 Commands
+
+All commands are run from the root of the project, from a terminal:
+
+| Command | Action |
+| :--------------------- | :----------------------------------------------- |
+| `pnpm install` | Installs dependencies |
+| `pnpm dev` | Starts local dev server at `localhost:4321` |
+| `pnpm build` | Build your production site to `./dist/` |
+| `pnpm preview` | Preview your build locally, before deploying |
+| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
+| `pnpm astro -- --help` | Get help using the Astro CLI |
+
+## 👀 Want to learn more?
+
+Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
diff --git a/apps/landing/astro.config.mjs b/apps/landing/astro.config.mjs
new file mode 100644
index 0000000..c904e10
--- /dev/null
+++ b/apps/landing/astro.config.mjs
@@ -0,0 +1,14 @@
+// @ts-check
+import { defineConfig } from "astro/config";
+
+import tailwindcss from "@tailwindcss/vite";
+
+// https://astro.build/config
+export default defineConfig({
+ devToolbar: {
+ enabled: false,
+ },
+ vite: {
+ plugins: [tailwindcss()],
+ },
+});
diff --git a/apps/landing/package.json b/apps/landing/package.json
new file mode 100644
index 0000000..c350624
--- /dev/null
+++ b/apps/landing/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "@caplets/landing",
+ "version": "0.0.1",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "astro": "astro",
+ "build": "astro build",
+ "dev": "astro dev",
+ "preview": "astro preview",
+ "typecheck": "astro check"
+ },
+ "dependencies": {
+ "@astrojs/check": "^0.9.9",
+ "@tailwindcss/vite": "^4.3.0",
+ "astro": "^6.3.8",
+ "tailwindcss": "^4.3.0",
+ "typescript": "^6.0.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ }
+}
diff --git a/apps/landing/public/favicon.ico b/apps/landing/public/favicon.ico
new file mode 100644
index 0000000..7f48a94
Binary files /dev/null and b/apps/landing/public/favicon.ico differ
diff --git a/apps/landing/public/favicon.svg b/apps/landing/public/favicon.svg
new file mode 100644
index 0000000..f157bd1
--- /dev/null
+++ b/apps/landing/public/favicon.svg
@@ -0,0 +1,9 @@
+
diff --git a/apps/landing/public/icon.png b/apps/landing/public/icon.png
new file mode 100644
index 0000000..4eebda4
Binary files /dev/null and b/apps/landing/public/icon.png differ
diff --git a/apps/landing/src/pages/index.astro b/apps/landing/src/pages/index.astro
new file mode 100644
index 0000000..fa30677
--- /dev/null
+++ b/apps/landing/src/pages/index.astro
@@ -0,0 +1,563 @@
+---
+import "../styles/global.css";
+
+const heroTrace = {
+ capability: "github",
+ source: ".caplets/config.json",
+ status: "ready",
+ auth: "token present, redacted",
+ steps: [
+ {
+ label: "get_caplet",
+ detail: "Expose one card before any downstream tool list enters context.",
+ result: "search_tools · get_tool · call_tool",
+ },
+ {
+ label: 'search_tools("pull request")',
+ detail: "Find matching operations inside the selected capability only.",
+ result: "create_pull_request · list_pull_requests · request_review",
+ },
+ {
+ label: 'get_tool("create_pull_request")',
+ detail: "Inspect the preserved schema before an agent can invoke the operation.",
+ result: "title · body · base · head · reviewers?",
+ },
+ {
+ label: "call_tool(arguments)",
+ detail: "Forward the call and keep downstream content, structured data, and errors intact.",
+ result: "structuredContent + content",
+ },
+ ],
+};
+
+const skillifyFramework = [
+ {
+ title: "Discoverable as one capability",
+ copy: "A backend enters the agent context as a focused card with source, status, and next actions, not a flat wall of operations.",
+ },
+ {
+ title: "Inspectable before invocation",
+ copy: "Agents search inside the selected capability, then inspect exact tool schemas before any call is made.",
+ },
+ {
+ title: "Lossless after the call",
+ copy: "Caplets preserves structured content, resource links, images, and downstream error state instead of flattening results away.",
+ },
+];
+
+const trustMechanics = [
+ {
+ label: "Source",
+ value: ".caplets/config.json",
+ copy: "Users can see where the capability came from before trusting it.",
+ },
+ {
+ label: "Auth",
+ value: "GITHUB_TOKEN: redacted",
+ copy: "Secrets stay hidden while auth state remains inspectable.",
+ },
+ {
+ label: "Timeout",
+ value: "30s boundary",
+ copy: "Slow or stuck backends fail visibly instead of disappearing into agent context.",
+ },
+ {
+ label: "Error",
+ value: "safe message + raw detail scoped",
+ copy: "Recovery information stays useful without leaking sensitive configuration.",
+ },
+];
+
+const backends = ["MCP", "OpenAPI", "GraphQL", "HTTP", "CLI"];
+const agentSetups = [
+ {
+ id: "claude-code",
+ name: "Claude Code",
+ installCommand: `claude plugin marketplace add spiritledsoftware/caplets
+claude plugin install caplets@caplets`,
+ configSnippet: `{
+ "mcpServers": {
+ "caplets": {
+ "command": "caplets",
+ "args": ["serve"]
+ }
+ }
+}`,
+ note: "Install the Claude Code plugin from the Caplets marketplace entry; the bundled MCP config runs caplets serve.",
+ },
+ {
+ id: "codex",
+ name: "Codex",
+ installCommand: "codex plugin marketplace add spiritledsoftware/caplets",
+ configSnippet: `{
+ "mcpServers": {
+ "caplets": {
+ "command": "caplets",
+ "args": ["serve"]
+ }
+ }
+}`,
+ note: "After adding the marketplace, install caplets from Codex plugins; the bundled MCP config runs caplets serve.",
+ },
+ {
+ id: "opencode",
+ name: "OpenCode",
+ installCommand: "npm install -g caplets",
+ configSnippet: `{
+ "plugin": ["@caplets/opencode"]
+}`,
+ note: "Use the native @caplets/opencode plugin; it reads Caplets config and does not start the MCP server.",
+ },
+ {
+ id: "pi",
+ name: "Pi",
+ installCommand: `npm install -g caplets
+pi install npm:@caplets/pi`,
+ configSnippet: `{
+ "packages": ["npm:@caplets/pi"]
+}`,
+ note: "The extension reads existing Caplets config; this Pi settings snippet registers the package.",
+ },
+ {
+ id: "mcp-client",
+ name: "Any MCP client",
+ installCommand: "npm install -g caplets",
+ configSnippet: `{
+ "command": "caplets",
+ "args": ["serve"]
+}`,
+ note: "Any MCP-compatible client can launch Caplets over stdio.",
+ },
+];
+
+const integrations = agentSetups.map((agent) => agent.name);
+const themeColor = "oklch(97% 0.012 85)";
+
+const installSteps = [
+ "npm install -g caplets",
+ "caplets init",
+ "caplets add mcp docs --command npx --arg -y --arg @upstash/context7-mcp",
+ "caplets serve",
+];
+---
+
+
+
+
+
+
+
+
+
+
+ Caplets, capability cards for coding agents
+
+
+ Skip to content
+
+
+
+ Caplets
+
+
+
+ If a backend fails, Caplets keeps the error scoped to the capability, preserves useful
+ recovery detail, and redacts sensitive configuration before it reaches the agent.
+
+
+
+
+
+
+
Native where it helps
+
Use Caplets from the agent you already run.
+
+
+
+ {agentSetups.map((agent) => (
+
+ ))}
+
+
+ {agentSetups.map((agent) => (
+
+
{agent.note}
+
+
+
+ Install
+
+
+
{agent.installCommand}
+
+
+
+ Configuration
+
+
+
{agent.configSnippet}
+
+
+
+ ))}
+
+
+
+
+
+
+
Start with one capability
+
Install, add a backend, serve capabilities.
+
+ Caplets can run as a universal MCP server, a native Pi or OpenCode tool layer, or a remote
+ HTTP service for shared environments.
+