jekyll-theme-zer0 1.25.0 → 1.27.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +201 -0
  3. data/README.md +11 -28
  4. data/_data/authors.yml +4 -3
  5. data/_data/backlog.yml +54 -1
  6. data/_data/features.yml +101 -61
  7. data/_data/feedback_types.yml +148 -0
  8. data/_data/i18n/languages.yml +36 -0
  9. data/_data/navigation/README.md +1 -1
  10. data/_data/theme-manifest.yml +0 -2
  11. data/_data/ui-text.yml +36 -246
  12. data/_includes/README.md +4 -0
  13. data/_includes/components/README.md +1 -0
  14. data/_includes/components/author-avatar-url.html +4 -2
  15. data/_includes/components/env-switcher.html +3 -1
  16. data/_includes/components/language-toggle.html +81 -0
  17. data/_includes/components/page-feedback.html +252 -0
  18. data/_includes/components/search-modal.html +2 -2
  19. data/_includes/components/shortcuts-modal.html +1 -1
  20. data/_includes/components/translation-notice.html +27 -0
  21. data/_includes/content/intro.html +35 -76
  22. data/_includes/core/console-capture.html +89 -0
  23. data/_includes/core/footer.html +9 -4
  24. data/_includes/core/head.html +13 -0
  25. data/_includes/core/header.html +9 -4
  26. data/_includes/core/hreflang.html +33 -0
  27. data/_includes/core/i18n.html +36 -0
  28. data/_includes/navigation/breadcrumbs.html +1 -1
  29. data/_includes/navigation/navbar.html +5 -4
  30. data/_includes/navigation/sidebar-right.html +3 -2
  31. data/_includes/navigation/unified-drawer.html +1 -1
  32. data/_layouts/article.html +7 -1
  33. data/_layouts/default.html +5 -3
  34. data/_layouts/news.html +4 -2
  35. data/_layouts/root.html +17 -8
  36. data/_layouts/section.html +4 -2
  37. data/_sass/components/_page-feedback.scss +276 -0
  38. data/_sass/core/_docs-layout.scss +2 -78
  39. data/_sass/core/_obsidian.scss +9 -1
  40. data/_sass/layouts/_navbar-extras.scss +6 -1
  41. data/_sass/tokens/_layers.scss +4 -0
  42. data/assets/css/main.scss +1 -0
  43. data/assets/js/obsidian-graph.js +5 -1
  44. data/assets/js/page-feedback.js +660 -0
  45. data/scripts/README.md +20 -26
  46. data/scripts/bin/audit-consumer +1 -1
  47. data/scripts/bin/manifest +0 -1
  48. data/scripts/bin/sync-plugins +0 -1
  49. data/scripts/dev/rasterize-svg.js +65 -0
  50. data/scripts/features/generate-preview-images +49 -1390
  51. data/scripts/features/install-preview-generator +55 -33
  52. data/scripts/install/README.md +9 -20
  53. data/scripts/install/ai/prompts/wizard.system.md +8 -17
  54. data/scripts/lib/README.md +1 -5
  55. data/scripts/lib/install/deploy/README.md +3 -9
  56. data/scripts/lib/preview_generator.py +2261 -1341
  57. data/scripts/translate.rb +1114 -0
  58. metadata +14 -4
  59. data/_data/prompts.yml +0 -302
  60. data/_plugins/preview_image_generator.rb +0 -351
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.24.0
4
- # Last Updated: 2026-06-30
3
+ # Version: 1.26.0
4
+ # Last Updated: 2026-07-17
5
5
 
6
6
  features:
7
7
  # ============================================================================
@@ -23,8 +23,8 @@ features:
23
23
  commit: "a8426a5"
24
24
  issue: null
25
25
  tests:
26
- - "test/visual/component-showcase.spec.js"
27
- - "test/visual/styling.spec.js"
26
+ - "test/visual/features/component-showcase.spec.js"
27
+ - "test/visual/core/styling.spec.js"
28
28
  references:
29
29
  layouts: ["_layouts/root.html", "_layouts/default.html"]
30
30
  includes: ["_includes/core/head.html"]
@@ -80,7 +80,7 @@ features:
80
80
  issue: null
81
81
  tests:
82
82
  - "test/test_installer.sh"
83
- - "test/test_installation.sh"
83
+ - "test/test_install_legacy_flags.sh"
84
84
  references:
85
85
  script: "install.sh"
86
86
  cli: "scripts/bin/install"
@@ -106,13 +106,13 @@ features:
106
106
 
107
107
  - id: ZER0-004
108
108
  title: "AI Preview Image Generator"
109
- description: "AI-powered automatic preview image generation for posts using OpenAI gpt-image-2 / DALL-E, Stability AI, xAI, or local placeholders. Configurable assets prefix, retro pixel art defaults, batch regeneration"
109
+ description: "Claude-orchestrated preview-image engine: Claude analyzes each article into an art brief and vision-reviews the render (one corrective regeneration), while OpenAI gpt-image-2 / DALL-E (default), xAI, Stability AI, Google Gemini, or a deterministic local template renders. Per-author styles, batch regeneration"
110
110
  implemented: true
111
- version: "1.5.0"
111
+ version: "1.27.0"
112
112
  link: "/docs/features/preview-image-generator/"
113
113
  docs: "/docs/features/preview-image-generator/"
114
- tags: [ai, images, automation, openai, content]
115
- date: 2025-01-28
114
+ tags: [ai, images, automation, claude, openai, content]
115
+ date: 2026-07-12
116
116
  provenance:
117
117
  introduced_in: "1.5.0"
118
118
  pr: 83
@@ -120,9 +120,11 @@ features:
120
120
  issue: null
121
121
  tests:
122
122
  - "test/test_core.sh"
123
+ - "test/test_preview_generator.py"
123
124
  references:
124
- plugin: "_plugins/preview_image_generator.rb"
125
+ engine: "scripts/lib/preview_generator.py"
125
126
  script: "scripts/generate-preview-images.sh"
127
+ rasterizer: "scripts/dev/rasterize-svg.js"
126
128
  install: "scripts/install-preview-generator.sh"
127
129
  config: "_config.yml"
128
130
  include: "_includes/components/preview-image.html"
@@ -130,25 +132,33 @@ features:
130
132
  script: "scripts/install-preview-generator.sh"
131
133
  config_section: "preview_images"
132
134
  dependencies:
133
- required: [curl, jq]
134
- optional: [yq, python3]
135
+ required: [python3, pyyaml]
136
+ optional: [librsvg, inkscape, imagemagick, node]
137
+ orchestration:
138
+ name: claude
139
+ description: "Claude analyzes articles into art briefs and vision-reviews renders (prompt_engine/review_engine)"
140
+ env_var: CLAUDE_CODE_OAUTH_TOKEN
135
141
  providers:
136
142
  - name: openai
137
- description: "OpenAI gpt-image-2 / DALL-E 3 image generation"
143
+ description: "OpenAI gpt-image-2 / DALL-E 3 image generation (default renderer; + --enhance edits)"
138
144
  env_var: OPENAI_API_KEY
139
- - name: stability
140
- description: "Stability AI Stable Diffusion"
141
- env_var: STABILITY_API_KEY
142
145
  - name: xai
143
146
  description: "xAI Grok image generation"
144
147
  env_var: XAI_API_KEY
148
+ - name: stability
149
+ description: "Stability AI Stable Diffusion"
150
+ env_var: STABILITY_API_KEY
151
+ - name: gemini
152
+ description: "Google Gemini image generation"
153
+ env_var: GEMINI_API_KEY
145
154
  - name: local
146
- description: "Local placeholder (no API needed)"
155
+ description: "Deterministic template SVG/PNG (no API needed)"
147
156
  env_var: null
148
157
  features:
149
- - "Multiple AI provider support"
150
- - "Automatic image optimization"
151
- - "Retro pixel art default style"
158
+ - "Claude orchestration: article analysis into art briefs + vision review with one corrective regeneration"
159
+ - "Five-renderer framework with per-vendor model validation"
160
+ - "Graceful degradation to template prompts without a Claude credential"
161
+ - "Retro pixel art default style with per-author overrides"
152
162
  - "Front matter integration"
153
163
  - "Batch processing"
154
164
 
@@ -216,7 +226,7 @@ features:
216
226
  issue: null
217
227
  tests:
218
228
  - "test/test_quality.sh"
219
- - "test/visual/security.spec.js"
229
+ - "test/visual/core/security.spec.js"
220
230
  references:
221
231
  include: "_includes/analytics/posthog.html"
222
232
  config: "_config.yml"
@@ -277,7 +287,7 @@ features:
277
287
  commit: "0ea51c6"
278
288
  issue: null
279
289
  tests:
280
- - "test/visual/interactions.spec.js"
290
+ - "test/visual/features/sidebar-navigation.spec.js"
281
291
  references:
282
292
  javascript:
283
293
  - "assets/js/modules/navigation/sidebar-state.js"
@@ -317,8 +327,8 @@ features:
317
327
  commit: "0ea51c6"
318
328
  issue: null
319
329
  tests:
320
- - "test/visual/feature-coverage.spec.js"
321
- - "test/visual/accessibility.spec.js"
330
+ - "test/visual/features/layouts.spec.js"
331
+ - "test/visual/core/accessibility.spec.js"
322
332
  references:
323
333
  javascript:
324
334
  - "assets/js/modules/navigation/keyboard.js"
@@ -351,8 +361,7 @@ features:
351
361
  commit: "0ea51c6"
352
362
  issue: null
353
363
  tests:
354
- - "test/visual/feature-coverage.spec.js"
355
- - "test/visual/ui-refresh.spec.js"
364
+ - "test/visual/features/content-enhancements.spec.js"
356
365
  references:
357
366
  include: "_includes/navigation/sidebar-right.html"
358
367
  styles: "_sass/custom.scss"
@@ -379,7 +388,7 @@ features:
379
388
  commit: "0ea51c6"
380
389
  issue: null
381
390
  tests:
382
- - "test/visual/accessibility.spec.js"
391
+ - "test/visual/core/accessibility.spec.js"
383
392
  references:
384
393
  include: "_includes/core/header.html"
385
394
  styles: "_sass/custom.scss"
@@ -621,7 +630,7 @@ features:
621
630
  commit: "a8426a5"
622
631
  issue: null
623
632
  tests:
624
- - "test/visual/layouts.spec.js"
633
+ - "test/visual/features/layouts.spec.js"
625
634
  references:
626
635
  layouts:
627
636
  - "_layouts/root.html"
@@ -667,7 +676,7 @@ features:
667
676
  commit: "a8426a5"
668
677
  issue: null
669
678
  tests:
670
- - "test/visual/component-showcase.spec.js"
679
+ - "test/visual/features/component-showcase.spec.js"
671
680
  references:
672
681
  includes:
673
682
  - "_includes/core/"
@@ -932,7 +941,7 @@ features:
932
941
  commit: "a8426a5"
933
942
  issue: null
934
943
  tests:
935
- - "test/visual/feature-coverage.spec.js"
944
+ - "test/visual/features/content-enhancements.spec.js"
936
945
  references:
937
946
  scripts:
938
947
  - "assets/js/back-to-top.js"
@@ -957,7 +966,7 @@ features:
957
966
  commit: "a8426a5"
958
967
  issue: null
959
968
  tests:
960
- - "test/visual/feature-coverage.spec.js"
969
+ - "test/visual/features/content-enhancements.spec.js"
961
970
  references:
962
971
  scripts:
963
972
  - "assets/js/code-copy.js"
@@ -983,7 +992,7 @@ features:
983
992
  commit: "55bee97"
984
993
  issue: null
985
994
  tests:
986
- - "test/visual/color-mode-default.spec.js"
995
+ - "test/visual/features/appearance.spec.js"
987
996
  references:
988
997
  scripts:
989
998
  - "assets/js/modules/theme/appearance.js"
@@ -1015,8 +1024,7 @@ features:
1015
1024
  commit: "21eb458"
1016
1025
  issue: null
1017
1026
  tests:
1018
- - "test/visual/search.spec.js"
1019
- - "test/visual/search-degradation.spec.js"
1027
+ - "test/visual/features/search.spec.js"
1020
1028
  references:
1021
1029
  scripts:
1022
1030
  - "assets/js/search-modal.js"
@@ -1048,7 +1056,7 @@ features:
1048
1056
  commit: "a8426a5"
1049
1057
  issue: null
1050
1058
  tests:
1051
- - "test/visual/feature-coverage.spec.js"
1059
+ - "test/visual/features/navbar.spec.js"
1052
1060
  references:
1053
1061
  scripts:
1054
1062
  - "assets/js/auto-hide-nav.js"
@@ -1073,7 +1081,7 @@ features:
1073
1081
  commit: "a8426a5"
1074
1082
  issue: null
1075
1083
  tests:
1076
- - "test/visual/backgrounds.spec.js"
1084
+ - "test/visual/features/appearance.spec.js"
1077
1085
  references:
1078
1086
  scripts:
1079
1087
  - "assets/js/particles.js"
@@ -1105,7 +1113,7 @@ features:
1105
1113
  commit: "a8426a5"
1106
1114
  issue: null
1107
1115
  tests:
1108
- - "test/visual/giscus-comments.spec.js"
1116
+ - "test/visual/features/comments.spec.js"
1109
1117
  references:
1110
1118
  includes:
1111
1119
  - "_includes/content/giscus.html"
@@ -1140,7 +1148,7 @@ features:
1140
1148
  commit: "31f827e"
1141
1149
  issue: null
1142
1150
  tests:
1143
- - "test/visual/feature-coverage.spec.js"
1151
+ - "test/visual/features/content-enhancements.spec.js"
1144
1152
  references:
1145
1153
  docs:
1146
1154
  - "pages/_docs/features/mathjax-math.md"
@@ -1165,8 +1173,7 @@ features:
1165
1173
  commit: "a8426a5"
1166
1174
  issue: null
1167
1175
  tests:
1168
- - "test/visual/feature-coverage.spec.js"
1169
- - "test/visual/ui-refresh.spec.js"
1176
+ - "test/visual/features/content-enhancements.spec.js"
1170
1177
  references:
1171
1178
  includes:
1172
1179
  - "_includes/content/toc.html"
@@ -1251,8 +1258,8 @@ features:
1251
1258
  commit: "a8426a5"
1252
1259
  issue: null
1253
1260
  tests:
1254
- - "test/visual/layouts.spec.js"
1255
- - "test/visual/authors-breadcrumb-degradation.spec.js"
1261
+ - "test/visual/features/layouts.spec.js"
1262
+ - "test/visual/features/authors.spec.js"
1256
1263
  references:
1257
1264
  includes:
1258
1265
  - "_includes/navigation/breadcrumbs.html"
@@ -1421,7 +1428,7 @@ features:
1421
1428
  issue: null
1422
1429
  tests:
1423
1430
  - "test/test_obsidian.sh"
1424
- - "test/visual/obsidian-callouts.spec.js"
1431
+ - "test/visual/features/obsidian-callouts.spec.js"
1425
1432
  references:
1426
1433
  includes:
1427
1434
  - "_includes/obsidian/full-graph.html"
@@ -1471,7 +1478,7 @@ features:
1471
1478
  issue: null
1472
1479
  tests:
1473
1480
  - "test/test_core.sh"
1474
- - "test/visual/layouts.spec.js"
1481
+ - "test/visual/features/layouts.spec.js"
1475
1482
  references:
1476
1483
  page: "404.html"
1477
1484
  docs: "pages/_docs/features/smart-404.md"
@@ -1512,8 +1519,7 @@ features:
1512
1519
  commit: "a8426a5"
1513
1520
  issue: null
1514
1521
  tests:
1515
- - "test/visual/ui-refresh.spec.js"
1516
- - "test/visual/navbar-responsive.spec.js"
1522
+ - "test/visual/features/navbar.spec.js"
1517
1523
  references:
1518
1524
  includes:
1519
1525
  - "_includes/navigation/navbar.html"
@@ -1533,8 +1539,7 @@ features:
1533
1539
  commit: "27550da"
1534
1540
  issue: null
1535
1541
  tests:
1536
- - "test/visual/admin-layout.spec.js"
1537
- - "test/visual/admin-nav.spec.js"
1542
+ - "test/visual/features/admin.spec.js"
1538
1543
  references:
1539
1544
  layout: "_layouts/admin.html"
1540
1545
  includes:
@@ -1645,8 +1650,7 @@ features:
1645
1650
  commit: "5533f34"
1646
1651
  issue: null
1647
1652
  tests:
1648
- - "test/visual/navbar-responsive.spec.js"
1649
- - "test/visual/ui-refresh.spec.js"
1653
+ - "test/visual/features/navbar.spec.js"
1650
1654
  references:
1651
1655
  scripts:
1652
1656
  - "assets/js/modules/"
@@ -1753,7 +1757,7 @@ features:
1753
1757
  commit: "341cc67"
1754
1758
  issue: null
1755
1759
  tests:
1756
- - "test/visual/ai-chat.spec.js"
1760
+ - "test/visual/features/ai-chat.spec.js"
1757
1761
  references:
1758
1762
  includes: ["_includes/components/ai-chat.html"]
1759
1763
  layouts: ["_layouts/root.html"]
@@ -1780,7 +1784,7 @@ features:
1780
1784
  commit: "a6db3042"
1781
1785
  issue: null
1782
1786
  tests:
1783
- - "test/visual/authors-breadcrumb-degradation.spec.js"
1787
+ - "test/visual/features/authors.spec.js"
1784
1788
  references:
1785
1789
  plugin: "_plugins/author_pages_generator.rb"
1786
1790
  layouts:
@@ -1805,7 +1809,7 @@ features:
1805
1809
  commit: "53132416"
1806
1810
  issue: null
1807
1811
  tests:
1808
- - "test/visual/layouts.spec.js"
1812
+ - "test/visual/features/layouts.spec.js"
1809
1813
  references:
1810
1814
  layout: "_layouts/news.html"
1811
1815
 
@@ -1824,8 +1828,8 @@ features:
1824
1828
  commit: "06691f93"
1825
1829
  issue: null
1826
1830
  tests:
1827
- - "test/visual/section-sidebar-tags-gate.spec.js"
1828
- - "test/visual/layouts.spec.js"
1831
+ - "test/visual/features/sidebar-navigation.spec.js"
1832
+ - "test/visual/features/layouts.spec.js"
1829
1833
  references:
1830
1834
  layout: "_layouts/section.html"
1831
1835
 
@@ -1844,7 +1848,7 @@ features:
1844
1848
  commit: "06691f93"
1845
1849
  issue: null
1846
1850
  tests:
1847
- - "test/visual/layouts.spec.js"
1851
+ - "test/visual/features/layouts.spec.js"
1848
1852
  references:
1849
1853
  layout: "_layouts/article.html"
1850
1854
  include: "_includes/components/post-type-badge.html"
@@ -1864,9 +1868,8 @@ features:
1864
1868
  commit: "27550dac"
1865
1869
  issue: null
1866
1870
  tests:
1867
- - "test/visual/skins.spec.js"
1868
- - "test/visual/backgrounds.spec.js"
1869
- - "test/visual/theme-colors.spec.js"
1871
+ - "test/visual/features/appearance.spec.js"
1872
+ - "test/visual/features/appearance-snapshot.spec.js"
1870
1873
  references:
1871
1874
  scripts:
1872
1875
  - "assets/js/background-customizer.js"
@@ -1999,7 +2002,7 @@ features:
1999
2002
  commit: "7ba0f834"
2000
2003
  issue: null
2001
2004
  tests:
2002
- - "test/visual/component-showcase.spec.js"
2005
+ - "test/visual/features/component-showcase.spec.js"
2003
2006
  references:
2004
2007
  include: "_includes/components/component-showcase.html"
2005
2008
 
@@ -2125,7 +2128,7 @@ features:
2125
2128
  commit: "3b951604"
2126
2129
  issue: null
2127
2130
  tests:
2128
- - "test/visual/settings-panel.spec.js"
2131
+ - "test/visual/features/settings-panel.spec.js"
2129
2132
  references:
2130
2133
  includes:
2131
2134
  - "_includes/components/info-section.html"
@@ -2144,3 +2147,40 @@ features:
2144
2147
  - "Appearance tab: one-click color mode, 9 theme skins, background layer opacity, primary color"
2145
2148
  - "Site tab: environment badge, copyable page URL, quick links, theme & build info, admin links"
2146
2149
  - "Developer tab: breadcrumb page location, page metadata, source-code shortcuts"
2150
+
2151
+ - id: ZER0-078
2152
+ title: "AI-Generated Multilingual Translations"
2153
+ description: "Build-time translation pipeline: English stays the only human-maintained language while scripts/translate.rb (Claude Code OAuth) generates alternate-language pages, UI strings, and the manifest behind the language toggle"
2154
+ implemented: true
2155
+ version: "1.27.0"
2156
+ link: "/"
2157
+ docs: "https://github.com/bamr87/zer0-mistakes/blob/main/docs/systems/multilingual-translation.md"
2158
+ tags: [i18n, ai, automation, content, ui]
2159
+ date: 2026-07-17
2160
+ provenance:
2161
+ introduced_in: "1.27.0"
2162
+ pr: 316
2163
+ commit: "01dc8fa"
2164
+ issue: null
2165
+ tests:
2166
+ - "test/test_i18n.sh"
2167
+ - "test/visual/features/language-toggle.spec.js"
2168
+ references:
2169
+ includes:
2170
+ - "_includes/core/i18n.html"
2171
+ - "_includes/core/hreflang.html"
2172
+ - "_includes/components/language-toggle.html"
2173
+ - "_includes/components/translation-notice.html"
2174
+ scripts:
2175
+ - "scripts/translate.rb"
2176
+ workflows:
2177
+ - ".github/workflows/translate.yml"
2178
+ data:
2179
+ - "_data/ui-text.yml"
2180
+ - "_data/i18n/languages.yml"
2181
+ docs: "docs/systems/multilingual-translation.md"
2182
+ features:
2183
+ - "One large full-translation job (workflow_dispatch) plus bounded incremental runs when English content changes"
2184
+ - "Manifest-driven SHA change detection, pruning of deleted sources, and generated /fr<en-url> permalinks (GitHub Pages safe-mode friendly)"
2185
+ - "Markdown-safe segment translation: code, Liquid, wiki-links and URLs masked as placeholders and validated"
2186
+ - "Navbar language toggle with availability states, hreflang alternates, per-page html lang, machine-translation notice"
@@ -0,0 +1,148 @@
1
+ # _data/feedback_types.yml
2
+ #
3
+ # Request types for the page-feedback capture widget:
4
+ # _includes/components/page-feedback.html + assets/js/page-feedback.js
5
+ #
6
+ # This REPLACES the build-time "Copilot Agent" dropdown that baked
7
+ # _data/prompts.yml into every <a href> at build time. The widget now injects
8
+ # this list as JSON and assembles the GitHub issue at RUNTIME, so it can also
9
+ # attach live page context and a captured console-log buffer — things a
10
+ # build-time Liquid link can never see.
11
+ #
12
+ # ─── Schema (per entry) ──────────────────────────────────────────────────────
13
+ # id unique slug — used in the issue title tag ([id]) and analytics
14
+ # label short text shown in the type selector
15
+ # icon Bootstrap Icons class (https://icons.getbootstrap.com/)
16
+ # group section header in the selector ("This page" | "The site")
17
+ # scope page | site — targets this page, or the theme as a whole
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.
24
+ # agent true → assign @copilot and attach `directive` for autonomous work
25
+ # false → human triage only (no assignee, no directive)
26
+ # directive compact agent instruction. Kept SHORT on purpose — it rides in
27
+ # the prefilled issue URL, and long bodies blow the URL-length
28
+ # budget. The full context table + logs are added by the widget.
29
+ # placeholder textarea placeholder tailored to this request type
30
+ # ─────────────────────────────────────────────────────────────────────────────
31
+
32
+ # ─── This page — scoped to the page the widget was opened from ───────────────
33
+
34
+ - id: fix-page
35
+ label: Report a problem
36
+ icon: bi-bug
37
+ group: This page
38
+ scope: page
39
+ description: A typo, broken link, wrong information, or something rendering badly
40
+ labels: [bug]
41
+ agent: true
42
+ directive: >-
43
+ Reproduce and fix the reported defect on the page identified in Page
44
+ Context. Keep the change minimal and surgical; verify with a Jekyll build.
45
+ placeholder: What is wrong, where on the page, and what did you expect instead?
46
+
47
+ - id: improve-page
48
+ label: Improve this page
49
+ icon: bi-stars
50
+ group: This page
51
+ scope: page
52
+ description: Polish the copy, structure, or presentation
53
+ labels: [enhancement, "area:docs"]
54
+ agent: true
55
+ directive: >-
56
+ Act as a content editor for the page in Page Context. Tighten copy, fix
57
+ grammar, improve heading hierarchy and visual rhythm — without changing the
58
+ core message or breaking links.
59
+ placeholder: What would make this page clearer, tighter, or more useful?
60
+
61
+ - id: expand-page
62
+ label: Add missing detail
63
+ icon: bi-arrows-angle-expand
64
+ group: This page
65
+ scope: page
66
+ description: Add depth, examples, or a section a reader would expect
67
+ labels: [enhancement, "area:docs"]
68
+ agent: true
69
+ directive: >-
70
+ Expand the page in Page Context with concrete examples, prerequisites, and
71
+ any expected-but-missing sections. Preserve tone and front matter.
72
+ placeholder: What is missing? Which examples or sections would help?
73
+
74
+ - id: update-page
75
+ label: Flag outdated content
76
+ icon: bi-arrow-clockwise
77
+ group: This page
78
+ scope: page
79
+ description: Stale versions, dead links, or old screenshots
80
+ labels: [documentation, "area:docs"]
81
+ agent: true
82
+ directive: >-
83
+ Audit the page in Page Context for stale versions, dead links, and outdated
84
+ screenshots; refresh them and bump `lastmod`.
85
+ placeholder: What is out of date? Paste the stale value or link if you can.
86
+
87
+ - id: accessibility
88
+ label: Accessibility issue
89
+ icon: bi-universal-access
90
+ group: This page
91
+ scope: page
92
+ description: Contrast, keyboard, screen-reader, or focus problems
93
+ labels: ["area:a11y"]
94
+ agent: true
95
+ directive: >-
96
+ Audit the page in Page Context against WCAG 2.1 AA for the reported barrier
97
+ (contrast, keyboard, focus, ARIA, alt text) and propose concrete fixes.
98
+ placeholder: What barrier did you hit? Which assistive tech or input method?
99
+
100
+ # ─── The site — theme-wide UI, components, features, performance ──────────────
101
+
102
+ - id: ui-ux
103
+ label: UI / UX improvement
104
+ icon: bi-palette
105
+ group: The site
106
+ scope: site
107
+ description: A design or usability refinement for the theme
108
+ labels: [enhancement, "area:feat"]
109
+ agent: true
110
+ directive: >-
111
+ Propose a Bootstrap-first UI/UX refinement, using the page in Page Context
112
+ as the starting example. Cover responsive behaviour, dark mode, and a11y.
113
+ placeholder: What feels off, and how might it look or behave instead?
114
+
115
+ - id: performance
116
+ label: Performance
117
+ icon: bi-speedometer2
118
+ group: The site
119
+ scope: site
120
+ description: Slow load, layout shift, or heavy assets
121
+ labels: ["area:perf"]
122
+ agent: true
123
+ directive: >-
124
+ Profile the page in Page Context (LCP, CLS, INP), identify the bottleneck,
125
+ and propose GitHub Pages-safe fixes.
126
+ placeholder: What felt slow? On what device / connection?
127
+
128
+ - id: feature
129
+ label: Feature request
130
+ icon: bi-lightbulb
131
+ group: The site
132
+ scope: site
133
+ description: Propose a new site-wide capability
134
+ labels: [enhancement, "area:feat"]
135
+ agent: false
136
+ directive: ""
137
+ placeholder: What should it do, and who benefits?
138
+
139
+ - id: question
140
+ label: Ask a question
141
+ icon: bi-question-circle
142
+ group: The site
143
+ scope: site
144
+ description: Something unclear — not necessarily a bug
145
+ labels: [question]
146
+ agent: false
147
+ directive: ""
148
+ placeholder: What are you trying to do, and where did you get stuck?
@@ -0,0 +1,36 @@
1
+ # Feature: ZER0-078
2
+ # Language display metadata for the language toggle
3
+ # (_includes/components/language-toggle.html).
4
+ #
5
+ # This file is CONFIGURATION, not translated content: a language's native
6
+ # name is a fixed fact, not something the translation pipeline generates.
7
+ # Add an entry here when adding a language to `translation.languages` in
8
+ # _config.yml. Everything else under _data/i18n/ (<lang>.yml, manifest.yml)
9
+ # is GENERATED by scripts/translate.rb — never hand-edited.
10
+ en:
11
+ name: English
12
+ native: English
13
+ fr:
14
+ name: French
15
+ native: Français
16
+ es:
17
+ name: Spanish
18
+ native: Español
19
+ de:
20
+ name: German
21
+ native: Deutsch
22
+ pt:
23
+ name: Portuguese
24
+ native: Português
25
+ it:
26
+ name: Italian
27
+ native: Italiano
28
+ ja:
29
+ name: Japanese
30
+ native: 日本語
31
+ zh:
32
+ name: Chinese
33
+ native: 中文
34
+ ar:
35
+ name: Arabic
36
+ native: العربية
@@ -74,7 +74,7 @@
74
74
  # - The theme also clips stray horizontal page overflow at the root, so an
75
75
  # over-stuffed nav or wide content can never make the fixed navbar look "cut
76
76
  # off". Wide tables/code keep their own local scroll. Regression-guarded by
77
- # test/visual/navbar-responsive.spec.js.
77
+ # test/visual/features/navbar.spec.js.
78
78
  #
79
79
  # ## Schema Validation
80
80
  #
@@ -26,7 +26,6 @@ theme_data_paths:
26
26
  # Plugin files that consumers using remote_theme MUST vendor locally.
27
27
  # GitHub Pages does not load plugins from a remote_theme source.
28
28
  required_plugin_paths:
29
- - _plugins/preview_image_generator.rb
30
29
  - _plugins/obsidian_links.rb
31
30
  # Optional plugins consumers can vendor for enhanced functionality.
32
31
  optional_plugin_paths:
@@ -36,7 +35,6 @@ optional_plugin_paths:
36
35
 
37
36
  # Legacy alias — all plugin paths combined (kept for backward compatibility).
38
37
  plugin_paths:
39
- - _plugins/preview_image_generator.rb
40
38
  - _plugins/obsidian_links.rb
41
39
  - _plugins/admin_page_urls.rb
42
40
  - _plugins/content_statistics_generator.rb