jekyll-theme-zer0 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +886 -2
  3. data/_data/README.md +2 -0
  4. data/_data/ai.yml +5 -3
  5. data/_data/ai_pricing.yml +36 -0
  6. data/_data/backlog.yml +196 -22
  7. data/_data/consumers.yml +147 -5
  8. data/_data/features.yml +147 -21
  9. data/_data/feedback_types.yml +17 -12
  10. data/_data/landing.yml +5 -2
  11. data/_data/navigation/quickstart.yml +4 -0
  12. data/_data/site_builder.yml +874 -0
  13. data/_data/theme-manifest.yml +132 -122
  14. data/_data/ui-text.yml +19 -0
  15. data/_includes/README.md +11 -1
  16. data/_includes/analytics/posthog.html +30 -11
  17. data/_includes/components/README.md +1 -1
  18. data/_includes/components/admin-links.html +2 -2
  19. data/_includes/components/admin-tabs.html +2 -2
  20. data/_includes/components/ai-chat.html +14 -11
  21. data/_includes/components/analytics-dashboard.html +8 -8
  22. data/_includes/components/author-bio.html +1 -1
  23. data/_includes/components/author-card.html +10 -2
  24. data/_includes/components/author-eeat.html +4 -4
  25. data/_includes/components/background-customizer.html +8 -8
  26. data/_includes/components/background-image.html +120 -0
  27. data/_includes/components/background-settings.html +28 -15
  28. data/_includes/components/collection-manager.html +5 -5
  29. data/_includes/components/component-showcase.html +13 -13
  30. data/_includes/components/config-editor.html +12 -12
  31. data/_includes/components/config-viewer.html +8 -8
  32. data/_includes/components/cookie-consent.html +41 -41
  33. data/_includes/components/cta-button.html +7 -2
  34. data/_includes/components/dev-shortcuts.html +7 -7
  35. data/_includes/components/env-dashboard.html +8 -8
  36. data/_includes/components/env-switcher.html +9 -9
  37. data/_includes/components/feature-card.html +2 -2
  38. data/_includes/components/halfmoon.html +2 -2
  39. data/_includes/components/info-section.html +36 -36
  40. data/_includes/components/js-cdn.html +15 -15
  41. data/_includes/components/language-toggle.html +4 -4
  42. data/_includes/components/mermaid.html +79 -435
  43. data/_includes/components/nanobar.html +5 -5
  44. data/_includes/components/nav-editor.html +2 -2
  45. data/_includes/components/nav-export.html +2 -2
  46. data/_includes/components/nav-overview.html +2 -2
  47. data/_includes/components/page-feedback.html +45 -30
  48. data/_includes/components/page-views-init.html +1 -1
  49. data/_includes/components/post-card.html +22 -22
  50. data/_includes/components/post-type-badge.html +2 -2
  51. data/_includes/components/powered-by.html +2 -2
  52. data/_includes/components/preview-image.html +28 -3
  53. data/_includes/components/quick-index.html +2 -2
  54. data/_includes/components/search-modal.html +27 -2
  55. data/_includes/components/searchbar.html +2 -2
  56. data/_includes/components/svg-background.html +2 -2
  57. data/_includes/components/theme-customizer.html +2 -2
  58. data/_includes/components/theme-info.html +6 -6
  59. data/_includes/components/theme-preview-gallery.html +23 -23
  60. data/_includes/content/giscus.html +2 -2
  61. data/_includes/content/intro.html +15 -8
  62. data/_includes/content/jsonld-faq.html +2 -2
  63. data/_includes/content/jsonld-software.html +2 -2
  64. data/_includes/content/seo.html +12 -4
  65. data/_includes/content/sitemap.html +247 -290
  66. data/_includes/content/toc.html +183 -183
  67. data/_includes/core/branding.html +13 -20
  68. data/_includes/core/console-capture.html +32 -74
  69. data/_includes/core/favicon.html +49 -7
  70. data/_includes/core/footer-fabs.html +17 -3
  71. data/_includes/core/footer.html +31 -18
  72. data/_includes/core/head.html +128 -92
  73. data/_includes/core/header.html +85 -54
  74. data/_includes/core/tokens-inline.html +16 -1
  75. data/_includes/docs/bootstrap-docs.html +8 -8
  76. data/_includes/landing/landing-install-cards.html +2 -2
  77. data/_includes/landing/landing-quick-links.html +1 -1
  78. data/_includes/navigation/admin-nav.html +2 -2
  79. data/_includes/navigation/nav-tree.html +8 -8
  80. data/_includes/navigation/navbar.html +21 -18
  81. data/_includes/navigation/section-sidebar.html +16 -16
  82. data/_includes/navigation/sidebar-config.html +36 -2
  83. data/_includes/navigation/sidebar-left.html +15 -15
  84. data/_includes/navigation/sidebar-right.html +6 -6
  85. data/_includes/obsidian/full-graph.html +2 -2
  86. data/_includes/setup/claude-session.html +72 -0
  87. data/_includes/setup/prereq-checklist.html +90 -0
  88. data/_includes/setup/wizard.html +910 -291
  89. data/_includes/stats/stats-categories.html +8 -8
  90. data/_includes/stats/stats-header.html +14 -14
  91. data/_includes/stats/stats-metrics.html +12 -12
  92. data/_includes/stats/stats-no-data.html +12 -12
  93. data/_includes/stats/stats-overview.html +6 -6
  94. data/_includes/stats/stats-tags.html +8 -8
  95. data/_layouts/404.html +38 -24
  96. data/_layouts/admin.html +22 -22
  97. data/_layouts/article.html +54 -37
  98. data/_layouts/author.html +20 -20
  99. data/_layouts/authors.html +2 -2
  100. data/_layouts/book-abc.html +12 -12
  101. data/_layouts/book-story.html +15 -15
  102. data/_layouts/book.html +12 -12
  103. data/_layouts/collection.html +33 -33
  104. data/_layouts/cookbook.html +12 -12
  105. data/_layouts/default.html +27 -24
  106. data/_layouts/home.html +36 -24
  107. data/_layouts/index.html +10 -10
  108. data/_layouts/landing.html +17 -17
  109. data/_layouts/news.html +44 -44
  110. data/_layouts/note.html +40 -39
  111. data/_layouts/notebook.html +36 -35
  112. data/_layouts/recipe.html +24 -24
  113. data/_layouts/root.html +95 -55
  114. data/_layouts/section.html +23 -23
  115. data/_layouts/setup.html +3 -3
  116. data/_layouts/sitemap-collection.html +49 -49
  117. data/_layouts/stats.html +40 -40
  118. data/_layouts/tag.html +12 -12
  119. data/_layouts/welcome.html +21 -21
  120. data/_sass/components/_cookie-banner.scss +48 -0
  121. data/_sass/components/_mermaid.scss +375 -0
  122. data/_sass/components/_setup-wizard.scss +588 -41
  123. data/_sass/components/_ui-enhancements.scss +11 -0
  124. data/_sass/core/_navbar.scss +147 -100
  125. data/_sass/core/_sidebar-extras.scss +2 -14
  126. data/_sass/core/code-copy.scss +27 -8
  127. data/_sass/layouts/_navbar-extras.scss +14 -4
  128. data/assets/css/extension-points-demo.css +27 -0
  129. data/assets/css/main.scss +1 -0
  130. data/assets/data/wiki-index.json +19 -0
  131. data/assets/js/ai-chat.js +47 -5
  132. data/assets/js/auto-hide-nav.js +53 -13
  133. data/assets/js/code-copy.js +72 -1
  134. data/assets/js/extension-points-demo.js +48 -0
  135. data/assets/js/fleet-feedback-capture.js +124 -0
  136. data/assets/js/fleet-feedback.js +853 -0
  137. data/assets/js/mermaid-diagrams.js +1373 -0
  138. data/assets/js/modules/navigation/config.js +9 -6
  139. data/assets/js/modules/navigation/scroll-spy.js +315 -80
  140. data/assets/js/modules/theme/appearance.js +8 -2
  141. data/assets/js/obsidian-local-graph.js +27 -5
  142. data/assets/js/obsidian-wiki-links.js +8 -3
  143. data/assets/js/page-feedback.js +125 -192
  144. data/assets/js/search-modal.js +26 -0
  145. data/assets/js/setup-wizard.js +2119 -363
  146. data/assets/js/site-builder.js +1834 -0
  147. data/assets/js/ui-enhancements.js +11 -3
  148. data/scripts/README.md +15 -0
  149. data/scripts/ai/README.md +38 -0
  150. data/scripts/ai/api_call.rb +124 -0
  151. data/scripts/ai/usage.rb +314 -0
  152. data/scripts/ai/usage_report.rb +225 -0
  153. data/scripts/ci/test_visual_evidence_autogen.py +403 -0
  154. data/scripts/ci/visual_evidence_autogen.py +1070 -0
  155. data/scripts/content-review.rb +20 -1
  156. data/scripts/features/install-preview-generator +1 -1
  157. data/scripts/lib/README.md +12 -0
  158. data/scripts/lib/preview_generator.py +2 -2
  159. data/scripts/test/integration/mermaid +22 -8
  160. data/scripts/test/lib/run_tests.sh +1 -0
  161. data/scripts/test/lib/test_visual_evidence_autogen.sh +24 -0
  162. data/scripts/translate.rb +23 -1
  163. metadata +21 -2
data/_data/features.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  # zer0-mistakes Theme Features Registry
2
2
  # Comprehensive feature tracking for the zer0-mistakes Jekyll theme
3
- # Version: 1.26.0
4
- # Last Updated: 2026-07-17
3
+ # Version: 1.29.0
4
+ # Last Updated: 2026-09-07
5
5
 
6
6
  features:
7
7
  # ============================================================================
@@ -435,22 +435,25 @@ features:
435
435
 
436
436
  - id: ZER0-013
437
437
  title: "Mermaid Diagram Support"
438
- description: "Client-side Mermaid.js integration for 10+ diagram types. GitHub Pages compatible with no build plugins required"
438
+ description: "Client-side Mermaid.js diagrams for 10+ diagram types, rendered as accessible figures: a zoom / fullscreen / copy-source / SVG-export toolbar, accTitle captions, an error card that keeps the source visible, and colours derived from the live design tokens so diagrams follow the colour mode and skin. GitHub Pages compatible with no build plugins required"
439
439
  implemented: true
440
- version: "0.3.0"
441
- link: "/"
440
+ version: "1.30.0"
441
+ link: "/docs/features/mermaid-diagrams/"
442
442
  docs: "/docs/features/mermaid-diagrams/"
443
- tags: [mermaid, diagrams, visualization, documentation]
444
- date: 2025-01-27
443
+ tags: [mermaid, diagrams, visualization, documentation, accessibility, ui]
444
+ date: 2026-09-05
445
445
  provenance:
446
446
  introduced_in: "0.3.0"
447
447
  pr: null
448
448
  commit: "1a6184b"
449
449
  issue: null
450
450
  tests:
451
- - "test/test_core.sh"
451
+ - "test/visual/features/mermaid.spec.js"
452
452
  references:
453
453
  include: "_includes/components/mermaid.html"
454
+ script: "assets/js/mermaid-diagrams.js"
455
+ styles: "_sass/components/_mermaid.scss"
456
+ evidence: "test/visual/mermaid-evidence.mjs"
454
457
  config: "_config.yml"
455
458
  diagram_types:
456
459
  - "Flowchart (graph TD)"
@@ -1753,14 +1756,14 @@ features:
1753
1756
  includes:
1754
1757
  - "_includes/content/backlinks.html"
1755
1758
  - id: ZER0-060
1756
- title: "AI Chat Assistant (Claude + GitHub)"
1757
- description: "Claude-powered floating chat grounded in the current page: streaming replies, GitHub issue/PR actions (after confirmation), and a dev-only mode that edits the page source file live"
1759
+ title: "AI Chat Assistant (Claude or Grok + GitHub)"
1760
+ description: "Floating chat grounded in the current page, answered by Claude or Grok through the proxy: streaming replies, GitHub issue/PR actions (after confirmation), and a dev-only mode that edits the page source file live"
1758
1761
  implemented: true
1759
- version: "1.18.0"
1762
+ version: "1.30.0"
1760
1763
  link: "/docs/features/ai-chat-assistant/"
1761
1764
  docs: "/docs/features/ai-chat-assistant/"
1762
- tags: [ai, chatbot, claude, github, proxy, accessibility]
1763
- date: 2026-06-13
1765
+ tags: [ai, chatbot, claude, grok, github, proxy, accessibility]
1766
+ date: 2026-09-07
1764
1767
  provenance:
1765
1768
  introduced_in: "1.18.0"
1766
1769
  pr: 33
@@ -1771,7 +1774,7 @@ features:
1771
1774
  references:
1772
1775
  includes: ["_includes/components/ai-chat.html"]
1773
1776
  layouts: ["_layouts/root.html"]
1774
- scripts: ["assets/js/ai-chat.js", "templates/deploy/chat-proxy/worker.js", "templates/deploy/chat-proxy/dev-proxy.mjs", "templates/deploy/chat-proxy/page-store.mjs"]
1777
+ scripts: ["assets/js/ai-chat.js", "templates/deploy/chat-proxy/worker.js", "templates/deploy/chat-proxy/providers.js", "templates/deploy/chat-proxy/dev-proxy.mjs", "templates/deploy/chat-proxy/page-store.mjs"]
1775
1778
  config: "_config.yml"
1776
1779
  instructions: ".github/instructions/ai-chat.instructions.md"
1777
1780
 
@@ -1918,25 +1921,27 @@ features:
1918
1921
 
1919
1922
  - id: ZER0-067
1920
1923
  title: "Setup Wizard"
1921
- description: "Multi-step in-browser wizard that assembles a complete _config.yml and lets you download or copy it, lowering first-run setup friction"
1924
+ description: "Nine-step in-browser wizard that assembles a complete starter project — _config.yml, dev config, Gemfile, docker-compose, navigation, first pages — with per-file download and a self-extracting bundle; the form half of the Site Builder"
1922
1925
  implemented: true
1923
- version: "0.22.7"
1926
+ version: "1.30.0"
1924
1927
  link: "/setup/"
1925
- docs: "/docs/quickstart/bare-minimum/"
1928
+ docs: "/docs/features/site-builder/"
1926
1929
  tags: [setup, onboarding, configuration]
1927
- date: 2026-04-03
1930
+ date: 2026-09-05
1928
1931
  provenance:
1929
1932
  introduced_in: "0.22.7"
1930
1933
  pr: 51
1931
1934
  commit: "a70ae8a5"
1932
1935
  issue: null
1933
1936
  tests:
1934
- - na: "Client-side config generator; exercised manually and via the build"
1937
+ - "test/visual/features/setup-wizard.spec.js"
1935
1938
  references:
1936
1939
  include: "_includes/setup/wizard.html"
1937
1940
  scripts:
1938
1941
  - "assets/js/setup-wizard.js"
1942
+ styles: ["_sass/components/_setup-wizard.scss"]
1939
1943
  layout: "_layouts/setup.html"
1944
+ data: "_data/site_builder.yml"
1940
1945
 
1941
1946
  - id: ZER0-068
1942
1947
  title: "Table CSV Copy"
@@ -2191,7 +2196,7 @@ features:
2191
2196
  docs: "docs/systems/multilingual-translation.md"
2192
2197
  features:
2193
2198
  - "One large full-translation job (workflow_dispatch) plus bounded incremental runs when English content changes"
2194
- - "Manifest-driven SHA change detection, pruning of deleted sources, and generated /fr<en-url> permalinks (GitHub Pages safe-mode friendly)"
2199
+ - "Manifest-driven SHA change detection, pruning of deleted sources, and generated /fr/... permalinks mirroring the English URLs (GitHub Pages safe-mode friendly)"
2195
2200
  - "Markdown-safe segment translation: code, Liquid, wiki-links and URLs masked as placeholders and validated"
2196
2201
  - "Navbar language toggle with availability states, hreflang alternates, per-page html lang, machine-translation notice"
2197
2202
 
@@ -2219,7 +2224,7 @@ features:
2219
2224
  features:
2220
2225
  - "Zero-config default: explicit /favicon.ico link on every page (fixes silent 404s and baseurl project sites)"
2221
2226
  - "Optional SVG favicon, PNG sizes, apple-touch-icon, and web manifest links"
2222
- - "theme-color meta sourced from favicon.theme_color with fallback to theme_color.main design token"
2227
+ - "scheme-aware theme-color metas tracking --bs-body-bg (light #ffffff / dark #212529), emitted even with no config; favicon.theme_color pins a single value"
2223
2228
 
2224
2229
  - id: ZER0-080
2225
2230
  title: "Books Collection — Children's Picture-Book Publishing"
@@ -2413,3 +2418,124 @@ features:
2413
2418
  - "Volume↔weight conversion driven by _data/ingredient_densities.yml, overridable per ingredient with grams_per_cup"
2414
2419
  - "Baker's-percentage ratio table computed at build time, so percentages are correct with JavaScript disabled"
2415
2420
  - "Progressive enhancement: quantities render as authored by Jekyll; the control bar stays hidden until the script reveals it"
2421
+
2422
+ - id: ZER0-085
2423
+ title: "Visual Evidence Autogen"
2424
+ description: "CI produces a UI pull request's visual artifacts instead of only verifying them: before/after evidence from the PR's generator or a generic base-vs-head render, and 9-skin pixel baselines refreshed only when the reviewer agent judges the diff to be the change the PR describes"
2425
+ implemented: true
2426
+ version: "1.30.0"
2427
+ link: "/"
2428
+ docs: "/docs/development/testing/"
2429
+ tags: [ci-cd, testing, automation, ai, quality]
2430
+ date: 2026-09-05
2431
+ provenance:
2432
+ introduced_in: "1.30.0"
2433
+ pr: 462
2434
+ commit: "d0bfc0d1"
2435
+ issue: null
2436
+ tests:
2437
+ - "scripts/ci/test_visual_evidence_autogen.py"
2438
+ references:
2439
+ workflow: ".github/workflows/visual-evidence-autogen.yml"
2440
+ scripts:
2441
+ - "scripts/ci/visual_evidence_autogen.py"
2442
+ - "test/visual/pr-evidence.mjs"
2443
+ - "test/visual/snapshot-diff-montage.mjs"
2444
+ - "test/update-snapshots.sh"
2445
+ agent: ".claude/agents/visual-evidence-reviewer.md"
2446
+ docs: "docs/systems/continuous-evolution.md"
2447
+ features:
2448
+ - "Runs on every same-repo PR event: plans from the diff, brings Jekyll up with docker compose, and renders inside the same jammy Playwright image the snapshot gate compares with"
2449
+ - "Evidence from the PR's own test/visual/*-evidence.mjs generators, or from the generic base-vs-head generator that renders the base branch and the head side by side — no hand-written unfixCss needed"
2450
+ - "Pixel baselines are refreshed only on an 'intentional' verdict from the visual-evidence-reviewer agent, which views the expected | actual | diff montage; a code step disposes, the model only proposes (#417)"
2451
+ - "Loop guard on its own [visual-autogen] commits, a three-commit budget per PR, per-folder manifests so author-made evidence is never overwritten, kill switch VISUAL_EVIDENCE_AUTOGEN_ENABLED=false, and the evidence gate's opt-out labels"
2452
+ - "One sticky PR comment with the montages and the verdict; render output uploaded as an artifact on every run; the evidence gate now requires generated proof and ci-self-repair hands a red Visual Snapshots job to this lane"
2453
+
2454
+ - id: ZER0-086
2455
+ title: "Claude-Guided Site Builder"
2456
+ description: "An embedded Claude session that rides alongside the setup wizard: it sees every answer, fills in the forms, checks the machine, reads the theme's real source, writes the generated project to disk and starts Docker — through the local dev proxy, with a confirmation card before every action"
2457
+ implemented: true
2458
+ version: "1.30.0"
2459
+ link: "/setup/"
2460
+ docs: "/docs/features/site-builder/"
2461
+ tags: [ai, claude, grok, setup, onboarding, docker, proxy]
2462
+ date: 2026-09-07
2463
+ provenance:
2464
+ introduced_in: "1.30.0"
2465
+ pr: null
2466
+ commit: "331ae16c"
2467
+ issue: null
2468
+ tests:
2469
+ - "test/visual/features/setup-wizard.spec.js"
2470
+ - "test/test_wizard_store.mjs"
2471
+ references:
2472
+ includes:
2473
+ - "_includes/setup/wizard.html"
2474
+ - "_includes/setup/claude-session.html"
2475
+ - "_includes/setup/prereq-checklist.html"
2476
+ scripts:
2477
+ - "assets/js/site-builder.js"
2478
+ - "templates/deploy/chat-proxy/wizard-store.mjs"
2479
+ - "templates/deploy/chat-proxy/dev-proxy.mjs"
2480
+ - "test/visual/site-builder-walkthrough.mjs"
2481
+ - "test/visual/site-builder-scenarios.mjs"
2482
+ data: "_data/site_builder.yml"
2483
+ config: "_config.yml"
2484
+ instructions: ".github/instructions/ai-chat.instructions.md"
2485
+ pages:
2486
+ - "pages/_quickstart/site-builder.md"
2487
+ - "pages/_docs/features/site-builder.md"
2488
+ components:
2489
+ - "Connect step — detects the dev proxy, shows the three commands to connect (claude setup-token → .env → node --env-file), re-checks every 15 s"
2490
+ - "Prerequisites — live Docker/Git/gh/VS Code/Node/Claude CLI checks through a fixed command table, per-OS install commands from machine-setup, manual toggles offline"
2491
+ - "Tools — get/set wizard fields, go to step, get/override generated files, read theme source, list theme dirs, search the docs index, resolve target, write project, docker compose up/ps/logs/down, check the site is live"
2492
+ - "Context propagation — the whole wizard state, field schema and generated-file list are in the system prompt on every turn; the form is the single source of truth"
2493
+ - "Safety — proxy-only (no credential in the page), escape-first rendering, confirmation cards for every mutation, scaffold confined to a new folder beside the theme"
2494
+ - "Validation — test/visual/site-builder-walkthrough.mjs samples a random brief per site type (site-builder-scenarios.mjs), drives the wizard on video, builds the site with Docker and asserts routes/title/skin; replayable by seed"
2495
+ - "Site plan — plan_schema in _data/site_builder.yml (JSON-Schema subset, validated in the browser) describes landing templates/sections, navigation style + sidebar, palette/font/radius overrides and example pages; set_site_plan applies it behind a confirmation card and the generators emit index.md + _data/landing.yml, navigation data, assets/css/user-overrides.css + _includes/custom/head.html and one file per planned page"
2496
+ - "Providers, bring-your-own token, open sessions, project editing and image generation — see ZER0-087"
2497
+
2498
+ - id: ZER0-087
2499
+ title: "Bring-Your-Own AI Provider (Claude or Grok) and Open Site Builder Sessions"
2500
+ description: "The Site Builder and chat proxy answer with Claude (Anthropic) or Grok (xAI): users paste their own token on the Connect step, pick a model and an image renderer, and run a guided or open session that can also modify an existing site file by file and render images with Grok Imagine"
2501
+ implemented: true
2502
+ version: "1.30.0"
2503
+ link: "/setup/"
2504
+ docs: "/docs/features/site-builder/"
2505
+ tags: [ai, claude, grok, xai, setup, onboarding, proxy, images]
2506
+ date: 2026-09-07
2507
+ provenance:
2508
+ introduced_in: "1.30.0"
2509
+ pr: null
2510
+ commit: "b43a2bf6"
2511
+ issue: null
2512
+ tests:
2513
+ - "test/test_providers.mjs"
2514
+ - "test/test_wizard_store.mjs"
2515
+ - "test/visual/features/setup-wizard.spec.js"
2516
+ references:
2517
+ includes:
2518
+ - "_includes/setup/wizard.html"
2519
+ - "_includes/setup/claude-session.html"
2520
+ scripts:
2521
+ - "assets/js/site-builder.js"
2522
+ - "assets/js/setup-wizard.js"
2523
+ - "templates/deploy/chat-proxy/providers.js"
2524
+ - "templates/deploy/chat-proxy/credential-store.mjs"
2525
+ - "templates/deploy/chat-proxy/worker.js"
2526
+ - "templates/deploy/chat-proxy/dev-proxy.mjs"
2527
+ - "templates/deploy/chat-proxy/wizard-store.mjs"
2528
+ - "test/visual/site-builder-providers-evidence.mjs"
2529
+ data: "_data/site_builder.yml"
2530
+ config: "_config.yml"
2531
+ instructions: ".github/instructions/ai-chat.instructions.md"
2532
+ pages:
2533
+ - "pages/_docs/features/site-builder.md"
2534
+ - "pages/_quickstart/site-builder.md"
2535
+ components:
2536
+ - "Provider layer (providers.js, Worker + Node) — Anthropic Messages dialect translated to and from xAI's OpenAI-compatible chat API, streaming tool calls included, so ai-chat.js, site-builder.js and the feedback triage are unchanged; CHAT_PROVIDER / CHAT_MODEL / XAI_CHAT_MODEL pinned server-side, client models accepted only from the selected provider's family"
2537
+ - "Connect step — Claude and Grok cards with masked key state, a password token field posted once to the localhost proxy (memory only, probed upstream, optional .env save with mode 600, Forget), model catalog, image renderer (Grok Imagine / OpenAI Images) and guided vs open session; the dev proxy starts without a credential"
2538
+ - "Open session — chat-driven, any order, up to 24 tool rounds per turn with a Stop button; interrupted tool calls get synthetic results so the history stays valid"
2539
+ - "Project session — list/open an existing site under WIZARD_TARGET_ROOT, tree/read, write/edit (unique snippet)/delete text files behind confirmation cards, git status/diff/log/init, jekyll build inside the container"
2540
+ - "Image generation — generate_image renders with grok-imagine-image-2.0 (or gpt-image-2) into assets/ (PNG/JPEG/WebP sniffed, 8 MB cap) with a thumbnail card; generated sites carry ai_chat.provider, preview_images and the matching .env.example keys"
2541
+ - "Validation — test/test_providers.mjs (mock xAI + Anthropic upstreams), test/test_wizard_store.mjs (project + asset rules), setup-wizard.spec.js (mocked proxy: connect as Grok, token never stored, open mode, existing sites), evidence in test/visual/evidence/site-builder-providers/"
@@ -16,11 +16,16 @@
16
16
  # group section header in the selector ("This page" | "The site")
17
17
  # scope page | site — targets this page, or the theme as a whole
18
18
  # description one-line helper shown under the label
19
- # labels GitHub labels applied to the issue. MUST already exist in the
20
- # repo: GitHub SILENTLY DROPS unknown labels from a prefilled URL
21
- # (this was the old feature's `labels=ai-agent` bug). Verify with
22
- # `gh label list`. The marker label from
23
- # site.page_feedback.default_labels is added on top of these.
19
+ # labels GitHub labels applied to the issue. Drawn from the FLEET
20
+ # ISSUE-PIPELINE label set (bamr87/bamr87 _data/fleet.yml
21
+ # issue_pipeline.labels.types: bug feature docs chore ci refactor
22
+ # test security question) plus optional area:*, so an issue filed
23
+ # from this widget is pipeline-eligible on the next scan instead
24
+ # of carrying labels only this repo understands.
25
+ # Every one MUST already exist in the repo: GitHub SILENTLY DROPS
26
+ # unknown labels from a prefilled URL (this was the old feature's
27
+ # `labels=ai-agent` bug). Verify with `gh label list`. The marker
28
+ # label from site.page_feedback.default_labels is added on top.
24
29
  # agent true → assign @copilot and attach `directive` for autonomous work
25
30
  # false → human triage only (no assignee, no directive)
26
31
  # directive compact agent instruction. Kept SHORT on purpose — it rides in
@@ -50,7 +55,7 @@
50
55
  group: This page
51
56
  scope: page
52
57
  description: Polish the copy, structure, or presentation
53
- labels: [enhancement, "area:docs"]
58
+ labels: [docs]
54
59
  agent: true
55
60
  directive: >-
56
61
  Act as a content editor for the page in Page Context. Tighten copy, fix
@@ -64,7 +69,7 @@
64
69
  group: This page
65
70
  scope: page
66
71
  description: Add depth, examples, or a section a reader would expect
67
- labels: [enhancement, "area:docs"]
72
+ labels: [docs]
68
73
  agent: true
69
74
  directive: >-
70
75
  Expand the page in Page Context with concrete examples, prerequisites, and
@@ -77,7 +82,7 @@
77
82
  group: This page
78
83
  scope: page
79
84
  description: Stale versions, dead links, or old screenshots
80
- labels: [documentation, "area:docs"]
85
+ labels: [docs]
81
86
  agent: true
82
87
  directive: >-
83
88
  Audit the page in Page Context for stale versions, dead links, and outdated
@@ -90,7 +95,7 @@
90
95
  group: This page
91
96
  scope: page
92
97
  description: Contrast, keyboard, screen-reader, or focus problems
93
- labels: ["area:a11y"]
98
+ labels: [bug, "area:a11y"]
94
99
  agent: true
95
100
  directive: >-
96
101
  Audit the page in Page Context against WCAG 2.1 AA for the reported barrier
@@ -105,7 +110,7 @@
105
110
  group: The site
106
111
  scope: site
107
112
  description: A design or usability refinement for the theme
108
- labels: [enhancement, "area:feat"]
113
+ labels: [feature]
109
114
  agent: true
110
115
  directive: >-
111
116
  Propose a Bootstrap-first UI/UX refinement, using the page in Page Context
@@ -118,7 +123,7 @@
118
123
  group: The site
119
124
  scope: site
120
125
  description: Slow load, layout shift, or heavy assets
121
- labels: ["area:perf"]
126
+ labels: [bug, "area:perf"]
122
127
  agent: true
123
128
  directive: >-
124
129
  Profile the page in Page Context (LCP, CLS, INP), identify the bottleneck,
@@ -131,7 +136,7 @@
131
136
  group: The site
132
137
  scope: site
133
138
  description: Propose a new site-wide capability
134
- labels: [enhancement, "area:feat"]
139
+ labels: [feature]
135
140
  agent: false
136
141
  directive: ""
137
142
  placeholder: What should it do, and who benefits?
data/_data/landing.yml CHANGED
@@ -22,12 +22,15 @@ hero:
22
22
  label: "Features"
23
23
  url: "/features/"
24
24
  icon: "bi-list-check"
25
- variant: "outline"
25
+ # This hero is `bg-primary text-white`, so its outlined buttons need the
26
+ # light variant. Plain `outline` is an outlined PRIMARY button, for the
27
+ # normal page background — see components/cta-button.html.
28
+ variant: "outline-light"
26
29
  cta_tertiary:
27
30
  label: "GitHub"
28
31
  url: "" # falls back to site.resources.github_repo
29
32
  icon: "bi-github"
30
- variant: "outline"
33
+ variant: "outline-light"
31
34
  external: true
32
35
 
33
36
  # Features section ------------------------------------------------------------
@@ -9,6 +9,10 @@
9
9
  url: /quickstart/
10
10
  expanded: true
11
11
  children:
12
+ - title: "Site Builder (guided)"
13
+ url: /quickstart/site-builder/
14
+ icon: bi-magic
15
+ description: "Let Claude walk you from prerequisites to a running site"
12
16
  - title: "1. Machine Setup"
13
17
  url: /quickstart/machine-setup/
14
18
  icon: bi-laptop