jekyll-theme-zer0 1.23.0 → 1.24.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/_data/features.yml +847 -34
- data/_includes/components/feature-card.html +15 -0
- data/_includes/components/zer0-env-var.html +7 -1
- data/scripts/bin/validate +17 -1
- data/scripts/validate-features.rb +142 -0
- metadata +3 -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.
|
|
4
|
-
# Last Updated: 2026-06-
|
|
3
|
+
# Version: 1.23.0
|
|
4
|
+
# Last Updated: 2026-06-30
|
|
5
5
|
|
|
6
6
|
features:
|
|
7
7
|
# ============================================================================
|
|
@@ -17,6 +17,14 @@ features:
|
|
|
17
17
|
docs: "/docs/bootstrap/"
|
|
18
18
|
tags: [jekyll, theme, bootstrap, ui, responsive]
|
|
19
19
|
date: 2025-01-27
|
|
20
|
+
provenance:
|
|
21
|
+
introduced_in: "0.1.0"
|
|
22
|
+
pr: null
|
|
23
|
+
commit: "a8426a5"
|
|
24
|
+
issue: null
|
|
25
|
+
tests:
|
|
26
|
+
- "test/visual/component-showcase.spec.js"
|
|
27
|
+
- "test/visual/styling.spec.js"
|
|
20
28
|
references:
|
|
21
29
|
layouts: ["_layouts/root.html", "_layouts/default.html"]
|
|
22
30
|
includes: ["_includes/core/head.html"]
|
|
@@ -38,8 +46,15 @@ features:
|
|
|
38
46
|
docs: "/docs/docker/"
|
|
39
47
|
tags: [docker, devops, development, cross-platform]
|
|
40
48
|
date: 2025-01-27
|
|
49
|
+
provenance:
|
|
50
|
+
introduced_in: "0.1.0"
|
|
51
|
+
pr: null
|
|
52
|
+
commit: "4ff71bc"
|
|
53
|
+
issue: null
|
|
54
|
+
tests:
|
|
55
|
+
- "test/test_deployment.sh"
|
|
41
56
|
references:
|
|
42
|
-
config: ["docker-compose.yml", "docker-compose.
|
|
57
|
+
config: ["docker-compose.yml", "docker-compose.test.yml"]
|
|
43
58
|
dockerfile: "docker/Dockerfile"
|
|
44
59
|
scripts: ["scripts/setup.sh"]
|
|
45
60
|
features:
|
|
@@ -58,6 +73,14 @@ features:
|
|
|
58
73
|
docs: "/docs/installation/"
|
|
59
74
|
tags: [ai, automation, installation, error-handling, bash, installer]
|
|
60
75
|
date: 2026-02-15
|
|
76
|
+
provenance:
|
|
77
|
+
introduced_in: "1.0.0"
|
|
78
|
+
pr: 76
|
|
79
|
+
commit: "36cd015"
|
|
80
|
+
issue: null
|
|
81
|
+
tests:
|
|
82
|
+
- "test/test_installer.sh"
|
|
83
|
+
- "test/test_installation.sh"
|
|
61
84
|
references:
|
|
62
85
|
script: "install.sh"
|
|
63
86
|
cli: "scripts/bin/install"
|
|
@@ -90,6 +113,13 @@ features:
|
|
|
90
113
|
docs: "/docs/features/preview-image-generator/"
|
|
91
114
|
tags: [ai, images, automation, openai, content]
|
|
92
115
|
date: 2025-01-28
|
|
116
|
+
provenance:
|
|
117
|
+
introduced_in: "1.5.0"
|
|
118
|
+
pr: 83
|
|
119
|
+
commit: "ffdc1eb"
|
|
120
|
+
issue: null
|
|
121
|
+
tests:
|
|
122
|
+
- "test/test_core.sh"
|
|
93
123
|
references:
|
|
94
124
|
plugin: "_plugins/preview_image_generator.rb"
|
|
95
125
|
script: "scripts/generate-preview-images.sh"
|
|
@@ -131,6 +161,13 @@ features:
|
|
|
131
161
|
docs: "/docs/features/copilot-integration/"
|
|
132
162
|
tags: [ai, copilot, agents, development, documentation]
|
|
133
163
|
date: 2026-04-18
|
|
164
|
+
provenance:
|
|
165
|
+
introduced_in: "1.6.0"
|
|
166
|
+
pr: 70
|
|
167
|
+
commit: "bc41b0d"
|
|
168
|
+
issue: null
|
|
169
|
+
tests:
|
|
170
|
+
- na: "Process/docs feature (AGENTS.md + .github/instructions/*); no runtime test"
|
|
134
171
|
references:
|
|
135
172
|
entry_point: "AGENTS.md"
|
|
136
173
|
main: ".github/copilot-instructions.md"
|
|
@@ -172,6 +209,14 @@ features:
|
|
|
172
209
|
docs: "/docs/features/posthog-analytics/"
|
|
173
210
|
tags: [analytics, privacy, gdpr, ccpa, posthog]
|
|
174
211
|
date: 2025-11-15
|
|
212
|
+
provenance:
|
|
213
|
+
introduced_in: "0.6.0"
|
|
214
|
+
pr: null
|
|
215
|
+
commit: "76f4508"
|
|
216
|
+
issue: null
|
|
217
|
+
tests:
|
|
218
|
+
- "test/test_quality.sh"
|
|
219
|
+
- "test/visual/security.spec.js"
|
|
175
220
|
references:
|
|
176
221
|
include: "_includes/analytics/posthog.html"
|
|
177
222
|
config: "_config.yml"
|
|
@@ -195,6 +240,13 @@ features:
|
|
|
195
240
|
docs: "/docs/features/cookie-consent/"
|
|
196
241
|
tags: [privacy, gdpr, ccpa, cookies, consent]
|
|
197
242
|
date: 2025-11-15
|
|
243
|
+
provenance:
|
|
244
|
+
introduced_in: "0.6.0"
|
|
245
|
+
pr: null
|
|
246
|
+
commit: "76f4508"
|
|
247
|
+
issue: null
|
|
248
|
+
tests:
|
|
249
|
+
- "test/test_quality.sh"
|
|
198
250
|
references:
|
|
199
251
|
include: "_includes/components/cookie-consent.html"
|
|
200
252
|
config: "_config.yml"
|
|
@@ -219,8 +271,19 @@ features:
|
|
|
219
271
|
docs: "/docs/features/sidebar-navigation/"
|
|
220
272
|
tags: [navigation, ui, accessibility, performance, sidebar]
|
|
221
273
|
date: 2025-12-01
|
|
274
|
+
provenance:
|
|
275
|
+
introduced_in: "0.14.0"
|
|
276
|
+
pr: null
|
|
277
|
+
commit: "0ea51c6"
|
|
278
|
+
issue: null
|
|
279
|
+
tests:
|
|
280
|
+
- "test/visual/interactions.spec.js"
|
|
222
281
|
references:
|
|
223
|
-
javascript:
|
|
282
|
+
javascript:
|
|
283
|
+
- "assets/js/modules/navigation/sidebar-state.js"
|
|
284
|
+
- "assets/js/modules/navigation/sidebar-visibility.js"
|
|
285
|
+
- "assets/js/modules/navigation/scroll-spy.js"
|
|
286
|
+
- "assets/js/modules/navigation/smooth-scroll.js"
|
|
224
287
|
layouts: ["_layouts/default.html"]
|
|
225
288
|
includes:
|
|
226
289
|
- "_includes/navigation/sidebar-left.html"
|
|
@@ -228,7 +291,7 @@ features:
|
|
|
228
291
|
- "_includes/navigation/sidebar-categories.html"
|
|
229
292
|
- "_includes/navigation/sidebar-folders.html"
|
|
230
293
|
styles: ["_sass/core/_docs-layout.scss", "_sass/custom.scss"]
|
|
231
|
-
docs: "
|
|
294
|
+
docs: "pages/_docs/features/sidebar-navigation.md"
|
|
232
295
|
features:
|
|
233
296
|
- "Intersection Observer scroll spy"
|
|
234
297
|
- "Smooth scrolling with offset"
|
|
@@ -248,9 +311,21 @@ features:
|
|
|
248
311
|
docs: "/docs/features/keyboard-navigation/"
|
|
249
312
|
tags: [accessibility, keyboard, navigation, ux]
|
|
250
313
|
date: 2025-12-01
|
|
314
|
+
provenance:
|
|
315
|
+
introduced_in: "0.14.0"
|
|
316
|
+
pr: null
|
|
317
|
+
commit: "0ea51c6"
|
|
318
|
+
issue: null
|
|
319
|
+
tests:
|
|
320
|
+
- "test/visual/feature-coverage.spec.js"
|
|
321
|
+
- "test/visual/accessibility.spec.js"
|
|
251
322
|
references:
|
|
252
|
-
javascript:
|
|
253
|
-
|
|
323
|
+
javascript:
|
|
324
|
+
- "assets/js/modules/navigation/keyboard.js"
|
|
325
|
+
- "assets/js/modules/navigation/gestures.js"
|
|
326
|
+
includes:
|
|
327
|
+
- "_includes/components/shortcuts-modal.html"
|
|
328
|
+
docs: "pages/_docs/features/keyboard-navigation.md"
|
|
254
329
|
shortcuts:
|
|
255
330
|
- key: "["
|
|
256
331
|
action: "Previous section"
|
|
@@ -270,6 +345,14 @@ features:
|
|
|
270
345
|
docs: "/docs/features/mobile-toc/"
|
|
271
346
|
tags: [mobile, navigation, ui, toc, fab]
|
|
272
347
|
date: 2025-12-01
|
|
348
|
+
provenance:
|
|
349
|
+
introduced_in: "0.14.0"
|
|
350
|
+
pr: null
|
|
351
|
+
commit: "0ea51c6"
|
|
352
|
+
issue: null
|
|
353
|
+
tests:
|
|
354
|
+
- "test/visual/feature-coverage.spec.js"
|
|
355
|
+
- "test/visual/ui-refresh.spec.js"
|
|
273
356
|
references:
|
|
274
357
|
include: "_includes/navigation/sidebar-right.html"
|
|
275
358
|
styles: "_sass/custom.scss"
|
|
@@ -290,6 +373,13 @@ features:
|
|
|
290
373
|
docs: "/docs/features/skip-to-content/"
|
|
291
374
|
tags: [accessibility, wcag, navigation, a11y]
|
|
292
375
|
date: 2025-12-01
|
|
376
|
+
provenance:
|
|
377
|
+
introduced_in: "0.14.0"
|
|
378
|
+
pr: null
|
|
379
|
+
commit: "0ea51c6"
|
|
380
|
+
issue: null
|
|
381
|
+
tests:
|
|
382
|
+
- "test/visual/accessibility.spec.js"
|
|
293
383
|
references:
|
|
294
384
|
include: "_includes/core/header.html"
|
|
295
385
|
styles: "_sass/custom.scss"
|
|
@@ -307,6 +397,13 @@ features:
|
|
|
307
397
|
docs: "/docs/features/jupyter-notebooks/"
|
|
308
398
|
tags: [jupyter, notebooks, python, data-science, content]
|
|
309
399
|
date: 2025-11-29
|
|
400
|
+
provenance:
|
|
401
|
+
introduced_in: "0.13.0"
|
|
402
|
+
pr: null
|
|
403
|
+
commit: "8bf80ad"
|
|
404
|
+
issue: null
|
|
405
|
+
tests:
|
|
406
|
+
- "test/test_core.sh"
|
|
310
407
|
references:
|
|
311
408
|
script: "scripts/convert-notebooks.sh"
|
|
312
409
|
layout: "_layouts/notebook.html"
|
|
@@ -314,7 +411,7 @@ features:
|
|
|
314
411
|
workflow: ".github/workflows/convert-notebooks.yml"
|
|
315
412
|
config: "_config.yml"
|
|
316
413
|
collection: "pages/_notebooks/"
|
|
317
|
-
docs: "docs/
|
|
414
|
+
docs: "docs/features/jupyter-notebooks.md"
|
|
318
415
|
makefile: "Makefile"
|
|
319
416
|
features:
|
|
320
417
|
- "Automatic .ipynb to Markdown conversion"
|
|
@@ -336,6 +433,13 @@ features:
|
|
|
336
433
|
docs: "/docs/features/mermaid-diagrams/"
|
|
337
434
|
tags: [mermaid, diagrams, visualization, documentation]
|
|
338
435
|
date: 2025-01-27
|
|
436
|
+
provenance:
|
|
437
|
+
introduced_in: "0.3.0"
|
|
438
|
+
pr: null
|
|
439
|
+
commit: "1a6184b"
|
|
440
|
+
issue: null
|
|
441
|
+
tests:
|
|
442
|
+
- "test/test_core.sh"
|
|
339
443
|
references:
|
|
340
444
|
include: "_includes/components/mermaid.html"
|
|
341
445
|
config: "_config.yml"
|
|
@@ -360,6 +464,13 @@ features:
|
|
|
360
464
|
docs: "/docs/jekyll/collections/"
|
|
361
465
|
tags: [jekyll, collections, content, organization]
|
|
362
466
|
date: 2025-01-27
|
|
467
|
+
provenance:
|
|
468
|
+
introduced_in: "0.1.0"
|
|
469
|
+
pr: null
|
|
470
|
+
commit: "a8426a5"
|
|
471
|
+
issue: null
|
|
472
|
+
tests:
|
|
473
|
+
- "test/test_site_generation.sh"
|
|
363
474
|
references:
|
|
364
475
|
config: "_config.yml"
|
|
365
476
|
collections:
|
|
@@ -387,6 +498,13 @@ features:
|
|
|
387
498
|
docs: "/docs/development/release-management/"
|
|
388
499
|
tags: [release, automation, semver, ci-cd, versioning]
|
|
389
500
|
date: 2025-11-15
|
|
501
|
+
provenance:
|
|
502
|
+
introduced_in: "0.5.0"
|
|
503
|
+
pr: null
|
|
504
|
+
commit: "81ef2d7"
|
|
505
|
+
issue: null
|
|
506
|
+
tests:
|
|
507
|
+
- na: "Release tooling — exercised by scripts/bin/test integration (auto-version) + .github/workflows/release.yml"
|
|
390
508
|
references:
|
|
391
509
|
scripts:
|
|
392
510
|
- "scripts/release"
|
|
@@ -412,12 +530,17 @@ features:
|
|
|
412
530
|
docs: "/docs/development/testing/"
|
|
413
531
|
tags: [testing, quality, ci-cd, automation]
|
|
414
532
|
date: 2025-11-15
|
|
533
|
+
provenance:
|
|
534
|
+
introduced_in: "0.10.0"
|
|
535
|
+
pr: null
|
|
536
|
+
commit: "e527464"
|
|
537
|
+
issue: null
|
|
538
|
+
tests:
|
|
539
|
+
- "test/test_runner.sh"
|
|
540
|
+
- "test/test_core.sh"
|
|
541
|
+
- "test/test_deployment.sh"
|
|
542
|
+
- "test/test_quality.sh"
|
|
415
543
|
references:
|
|
416
|
-
tests:
|
|
417
|
-
- "test/test_runner.sh"
|
|
418
|
-
- "test/test_core.sh"
|
|
419
|
-
- "test/test_deployment.sh"
|
|
420
|
-
- "test/test_quality.sh"
|
|
421
544
|
workflow: ".github/workflows/ci.yml"
|
|
422
545
|
features:
|
|
423
546
|
- "Core functionality tests"
|
|
@@ -430,13 +553,20 @@ features:
|
|
|
430
553
|
|
|
431
554
|
- id: ZER0-017
|
|
432
555
|
title: "Automated Version Bump Workflow"
|
|
433
|
-
description: "GitHub Actions workflow
|
|
434
|
-
implemented:
|
|
556
|
+
description: "Removed in v1.20.0 — the manual version-bump GitHub Actions workflow was superseded by the release-please pipeline (see ZER0-015). Kept for ID stability and historical reference"
|
|
557
|
+
implemented: false
|
|
558
|
+
removed_in: "1.20.0"
|
|
559
|
+
superseded_by: "ZER0-015"
|
|
435
560
|
version: "0.14.2"
|
|
436
561
|
link: "/"
|
|
437
562
|
docs: "/docs/development/version-bump/"
|
|
438
563
|
tags: [github-actions, automation, versioning, ci-cd]
|
|
439
564
|
date: 2025-12-07
|
|
565
|
+
provenance:
|
|
566
|
+
introduced_in: "0.14.2"
|
|
567
|
+
pr: null
|
|
568
|
+
commit: "1ba6994"
|
|
569
|
+
issue: null
|
|
440
570
|
references:
|
|
441
571
|
workflow: ".github/workflows/version-bump.yml"
|
|
442
572
|
version: "lib/jekyll-theme-zer0/version.rb"
|
|
@@ -457,6 +587,13 @@ features:
|
|
|
457
587
|
docs: "/docs/development/security/"
|
|
458
588
|
tags: [security, codeql, scanning, ci-cd]
|
|
459
589
|
date: 2025-11-15
|
|
590
|
+
provenance:
|
|
591
|
+
introduced_in: "0.10.0"
|
|
592
|
+
pr: null
|
|
593
|
+
commit: "5053589"
|
|
594
|
+
issue: null
|
|
595
|
+
tests:
|
|
596
|
+
- na: "Security scanning — .github/workflows/codeql.yml; no unit test applicable"
|
|
460
597
|
references:
|
|
461
598
|
workflow: ".github/workflows/codeql.yml"
|
|
462
599
|
features:
|
|
@@ -478,26 +615,40 @@ features:
|
|
|
478
615
|
docs: "/docs/customization/layouts/"
|
|
479
616
|
tags: [layouts, templates, jekyll, bootstrap]
|
|
480
617
|
date: 2025-01-27
|
|
618
|
+
provenance:
|
|
619
|
+
introduced_in: "0.1.0"
|
|
620
|
+
pr: null
|
|
621
|
+
commit: "a8426a5"
|
|
622
|
+
issue: null
|
|
623
|
+
tests:
|
|
624
|
+
- "test/visual/layouts.spec.js"
|
|
481
625
|
references:
|
|
482
626
|
layouts:
|
|
483
627
|
- "_layouts/root.html"
|
|
484
628
|
- "_layouts/default.html"
|
|
485
|
-
- "_layouts/journals.html"
|
|
486
629
|
- "_layouts/home.html"
|
|
487
630
|
- "_layouts/landing.html"
|
|
631
|
+
- "_layouts/article.html"
|
|
632
|
+
- "_layouts/news.html"
|
|
633
|
+
- "_layouts/section.html"
|
|
634
|
+
- "_layouts/note.html"
|
|
488
635
|
- "_layouts/notebook.html"
|
|
489
|
-
- "_layouts/blog.html"
|
|
490
|
-
- "_layouts/category.html"
|
|
491
636
|
- "_layouts/collection.html"
|
|
492
637
|
- "_layouts/index.html"
|
|
493
638
|
- "_layouts/sitemap-collection.html"
|
|
494
639
|
- "_layouts/stats.html"
|
|
495
640
|
- "_layouts/tag.html"
|
|
641
|
+
- "_layouts/author.html"
|
|
642
|
+
- "_layouts/authors.html"
|
|
643
|
+
- "_layouts/admin.html"
|
|
644
|
+
- "_layouts/search.html"
|
|
645
|
+
- "_layouts/setup.html"
|
|
646
|
+
- "_layouts/welcome.html"
|
|
496
647
|
docs: ".github/instructions/layouts.instructions.md"
|
|
497
648
|
layout_hierarchy:
|
|
498
649
|
- "root.html (base HTML structure)"
|
|
499
650
|
- "default.html (main content wrapper)"
|
|
500
|
-
- "
|
|
651
|
+
- "article.html (blog posts)"
|
|
501
652
|
- "notebook.html (Jupyter notebooks)"
|
|
502
653
|
- "landing.html (homepage)"
|
|
503
654
|
|
|
@@ -510,6 +661,13 @@ features:
|
|
|
510
661
|
docs: "/docs/customization/includes/"
|
|
511
662
|
tags: [includes, components, modular, jekyll]
|
|
512
663
|
date: 2025-01-27
|
|
664
|
+
provenance:
|
|
665
|
+
introduced_in: "0.1.0"
|
|
666
|
+
pr: null
|
|
667
|
+
commit: "a8426a5"
|
|
668
|
+
issue: null
|
|
669
|
+
tests:
|
|
670
|
+
- "test/visual/component-showcase.spec.js"
|
|
513
671
|
references:
|
|
514
672
|
includes:
|
|
515
673
|
- "_includes/core/"
|
|
@@ -540,10 +698,17 @@ features:
|
|
|
540
698
|
docs: "/docs/features/theme-version/"
|
|
541
699
|
tags: [plugin, version, jekyll, metadata]
|
|
542
700
|
date: 2025-11-20
|
|
701
|
+
provenance:
|
|
702
|
+
introduced_in: "0.11.0"
|
|
703
|
+
pr: null
|
|
704
|
+
commit: "fbc767b"
|
|
705
|
+
issue: null
|
|
706
|
+
tests:
|
|
707
|
+
- "test/test_plugins.rb"
|
|
543
708
|
references:
|
|
544
709
|
plugin: "_plugins/theme_version.rb"
|
|
545
710
|
include: "_includes/components/theme-info.html"
|
|
546
|
-
docs: "docs/
|
|
711
|
+
docs: "docs/features/theme-version.md"
|
|
547
712
|
features:
|
|
548
713
|
- "Gem specification parsing"
|
|
549
714
|
- "Remote theme support"
|
|
@@ -564,6 +729,13 @@ features:
|
|
|
564
729
|
docs: "/privacy-policy/"
|
|
565
730
|
tags: [legal, privacy, gdpr, ccpa, compliance]
|
|
566
731
|
date: 2025-12-11
|
|
732
|
+
provenance:
|
|
733
|
+
introduced_in: "0.15.0"
|
|
734
|
+
pr: null
|
|
735
|
+
commit: "1bd9a2c"
|
|
736
|
+
issue: null
|
|
737
|
+
tests:
|
|
738
|
+
- "test/test_quality.sh"
|
|
567
739
|
references:
|
|
568
740
|
page: "pages/privacy-policy.md"
|
|
569
741
|
features:
|
|
@@ -582,6 +754,13 @@ features:
|
|
|
582
754
|
docs: "/terms-of-service/"
|
|
583
755
|
tags: [legal, terms, compliance]
|
|
584
756
|
date: 2025-12-11
|
|
757
|
+
provenance:
|
|
758
|
+
introduced_in: "0.15.0"
|
|
759
|
+
pr: null
|
|
760
|
+
commit: "1bd9a2c"
|
|
761
|
+
issue: null
|
|
762
|
+
tests:
|
|
763
|
+
- "test/test_quality.sh"
|
|
585
764
|
references:
|
|
586
765
|
page: "pages/terms-of-service.md"
|
|
587
766
|
|
|
@@ -598,8 +777,17 @@ features:
|
|
|
598
777
|
docs: "/docs/development/prd/"
|
|
599
778
|
tags: [documentation, prd, product, planning]
|
|
600
779
|
date: 2025-11-25
|
|
780
|
+
provenance:
|
|
781
|
+
introduced_in: "0.15.0"
|
|
782
|
+
pr: null
|
|
783
|
+
commit: "b7ad237"
|
|
784
|
+
issue: null
|
|
785
|
+
tests:
|
|
786
|
+
- na: "Documentation artifact (docs/architecture/prd-*.md); no runtime test"
|
|
601
787
|
references:
|
|
602
|
-
doc:
|
|
788
|
+
doc:
|
|
789
|
+
- "docs/architecture/prd-requirements.md"
|
|
790
|
+
- "docs/architecture/prd-roadmap.md"
|
|
603
791
|
features:
|
|
604
792
|
- "Vision statement"
|
|
605
793
|
- "Target personas"
|
|
@@ -616,6 +804,13 @@ features:
|
|
|
616
804
|
docs: "/docs/development/documentation/"
|
|
617
805
|
tags: [documentation, mdx, markdown, workflow]
|
|
618
806
|
date: 2025-11-16
|
|
807
|
+
provenance:
|
|
808
|
+
introduced_in: "0.15.0"
|
|
809
|
+
pr: null
|
|
810
|
+
commit: "ceb4962"
|
|
811
|
+
issue: null
|
|
812
|
+
tests:
|
|
813
|
+
- na: "Documentation architecture; no runtime test"
|
|
619
814
|
references:
|
|
620
815
|
technical: "docs/"
|
|
621
816
|
public: "pages/_docs/"
|
|
@@ -640,6 +835,13 @@ features:
|
|
|
640
835
|
docs: "/docs/development/dependency-updates/"
|
|
641
836
|
tags: [automation, dependencies, github-actions, maintenance]
|
|
642
837
|
date: 2025-12-07
|
|
838
|
+
provenance:
|
|
839
|
+
introduced_in: "0.14.2"
|
|
840
|
+
pr: null
|
|
841
|
+
commit: "3b55b60"
|
|
842
|
+
issue: null
|
|
843
|
+
tests:
|
|
844
|
+
- na: "Automation — .github/workflows/update-dependencies.yml; no unit test"
|
|
643
845
|
references:
|
|
644
846
|
workflow: ".github/workflows/update-dependencies.yml"
|
|
645
847
|
features:
|
|
@@ -657,6 +859,13 @@ features:
|
|
|
657
859
|
docs: "/docs/development/ci-cd/"
|
|
658
860
|
tags: [ci-cd, testing, automation, github-actions]
|
|
659
861
|
date: 2025-11-15
|
|
862
|
+
provenance:
|
|
863
|
+
introduced_in: "0.10.0"
|
|
864
|
+
pr: null
|
|
865
|
+
commit: "1ba6994"
|
|
866
|
+
issue: null
|
|
867
|
+
tests:
|
|
868
|
+
- na: "CI pipeline — .github/workflows/ci.yml; self-validating"
|
|
660
869
|
references:
|
|
661
870
|
workflow: ".github/workflows/ci.yml"
|
|
662
871
|
features:
|
|
@@ -679,6 +888,13 @@ features:
|
|
|
679
888
|
docs: "/docs/development/scripts/"
|
|
680
889
|
tags: [scripts, automation, bash, utilities]
|
|
681
890
|
date: 2025-11-15
|
|
891
|
+
provenance:
|
|
892
|
+
introduced_in: "0.5.0"
|
|
893
|
+
pr: null
|
|
894
|
+
commit: "32755cd"
|
|
895
|
+
issue: null
|
|
896
|
+
tests:
|
|
897
|
+
- na: "Shell tooling — exercised by scripts/bin/test (lib + theme + integration)"
|
|
682
898
|
references:
|
|
683
899
|
scripts:
|
|
684
900
|
- "scripts/build"
|
|
@@ -710,6 +926,13 @@ features:
|
|
|
710
926
|
docs: "/docs/features/back-to-top/"
|
|
711
927
|
tags: [ui, navigation, scroll, accessibility]
|
|
712
928
|
date: 2025-01-01
|
|
929
|
+
provenance:
|
|
930
|
+
introduced_in: "0.1.0"
|
|
931
|
+
pr: null
|
|
932
|
+
commit: "a8426a5"
|
|
933
|
+
issue: null
|
|
934
|
+
tests:
|
|
935
|
+
- "test/visual/feature-coverage.spec.js"
|
|
713
936
|
references:
|
|
714
937
|
scripts:
|
|
715
938
|
- "assets/js/back-to-top.js"
|
|
@@ -728,6 +951,13 @@ features:
|
|
|
728
951
|
docs: "/docs/features/code-copy/"
|
|
729
952
|
tags: [ui, code, clipboard, developer-experience]
|
|
730
953
|
date: 2025-01-01
|
|
954
|
+
provenance:
|
|
955
|
+
introduced_in: "0.1.0"
|
|
956
|
+
pr: null
|
|
957
|
+
commit: "a8426a5"
|
|
958
|
+
issue: null
|
|
959
|
+
tests:
|
|
960
|
+
- "test/visual/feature-coverage.spec.js"
|
|
731
961
|
references:
|
|
732
962
|
scripts:
|
|
733
963
|
- "assets/js/code-copy.js"
|
|
@@ -740,21 +970,34 @@ features:
|
|
|
740
970
|
|
|
741
971
|
- id: ZER0-031
|
|
742
972
|
title: "Dark/Light Mode Toggle"
|
|
743
|
-
description: "Theme color mode switcher supporting light, dark, and auto modes with system preference detection and
|
|
973
|
+
description: "Theme color mode switcher supporting light, dark, and auto modes with system preference detection, localStorage persistence, and a server+client color_mode_default config knob with FOUC prevention"
|
|
744
974
|
implemented: true
|
|
745
|
-
version: "
|
|
975
|
+
version: "1.23.0"
|
|
746
976
|
link: "/"
|
|
747
977
|
docs: "/docs/features/color-modes/"
|
|
748
978
|
tags: [ui, theme, dark-mode, accessibility]
|
|
749
|
-
date:
|
|
979
|
+
date: 2026-06-30
|
|
980
|
+
provenance:
|
|
981
|
+
introduced_in: "1.23.0"
|
|
982
|
+
pr: 253
|
|
983
|
+
commit: "55bee97"
|
|
984
|
+
issue: null
|
|
985
|
+
tests:
|
|
986
|
+
- "test/visual/color-mode-default.spec.js"
|
|
750
987
|
references:
|
|
751
988
|
scripts:
|
|
752
|
-
- "assets/js/
|
|
989
|
+
- "assets/js/modules/theme/appearance.js"
|
|
990
|
+
includes:
|
|
991
|
+
- "_includes/core/color-mode-init.html"
|
|
992
|
+
layouts:
|
|
993
|
+
- "_layouts/root.html"
|
|
994
|
+
config: "_config.yml"
|
|
753
995
|
features:
|
|
754
996
|
- "Light, dark, and auto modes"
|
|
755
997
|
- "System preference detection"
|
|
756
998
|
- "LocalStorage persistence"
|
|
757
999
|
- "Bootstrap 5.3 data-bs-theme integration"
|
|
1000
|
+
- "color_mode_default config knob with FOUC prevention"
|
|
758
1001
|
- "Smooth theme transitions"
|
|
759
1002
|
|
|
760
1003
|
- id: ZER0-032
|
|
@@ -766,6 +1009,14 @@ features:
|
|
|
766
1009
|
docs: "/docs/features/site-search/"
|
|
767
1010
|
tags: [search, navigation, modal, keyboard]
|
|
768
1011
|
date: 2026-04-10
|
|
1012
|
+
provenance:
|
|
1013
|
+
introduced_in: "1.5.1"
|
|
1014
|
+
pr: 86
|
|
1015
|
+
commit: "21eb458"
|
|
1016
|
+
issue: null
|
|
1017
|
+
tests:
|
|
1018
|
+
- "test/visual/search.spec.js"
|
|
1019
|
+
- "test/visual/search-degradation.spec.js"
|
|
769
1020
|
references:
|
|
770
1021
|
scripts:
|
|
771
1022
|
- "assets/js/search-modal.js"
|
|
@@ -791,6 +1042,13 @@ features:
|
|
|
791
1042
|
docs: "/docs/features/auto-hide-nav/"
|
|
792
1043
|
tags: [ui, navigation, scroll, mobile]
|
|
793
1044
|
date: 2025-01-01
|
|
1045
|
+
provenance:
|
|
1046
|
+
introduced_in: "0.1.0"
|
|
1047
|
+
pr: null
|
|
1048
|
+
commit: "a8426a5"
|
|
1049
|
+
issue: null
|
|
1050
|
+
tests:
|
|
1051
|
+
- "test/visual/feature-coverage.spec.js"
|
|
794
1052
|
references:
|
|
795
1053
|
scripts:
|
|
796
1054
|
- "assets/js/auto-hide-nav.js"
|
|
@@ -809,6 +1067,13 @@ features:
|
|
|
809
1067
|
docs: "/docs/features/particles-background/"
|
|
810
1068
|
tags: [ui, animation, visual, landing]
|
|
811
1069
|
date: 2025-01-01
|
|
1070
|
+
provenance:
|
|
1071
|
+
introduced_in: "0.1.0"
|
|
1072
|
+
pr: null
|
|
1073
|
+
commit: "a8426a5"
|
|
1074
|
+
issue: null
|
|
1075
|
+
tests:
|
|
1076
|
+
- "test/visual/backgrounds.spec.js"
|
|
812
1077
|
references:
|
|
813
1078
|
scripts:
|
|
814
1079
|
- "assets/js/particles.js"
|
|
@@ -827,16 +1092,28 @@ features:
|
|
|
827
1092
|
|
|
828
1093
|
- id: ZER0-035
|
|
829
1094
|
title: "Giscus Comments"
|
|
830
|
-
description: "GitHub Discussions-powered comment system with theme-aware styling and
|
|
1095
|
+
description: "GitHub Discussions-powered comment system with theme-aware styling, reaction support, and Claude-Code-driven conversation building"
|
|
831
1096
|
implemented: true
|
|
832
1097
|
version: "0.1.0"
|
|
833
1098
|
link: "/"
|
|
834
1099
|
docs: "/docs/features/giscus-comments/"
|
|
835
|
-
tags: [comments, github, discussions, engagement]
|
|
1100
|
+
tags: [comments, github, discussions, engagement, claude-code]
|
|
836
1101
|
date: 2025-01-01
|
|
1102
|
+
provenance:
|
|
1103
|
+
introduced_in: "0.1.0"
|
|
1104
|
+
pr: null
|
|
1105
|
+
commit: "a8426a5"
|
|
1106
|
+
issue: null
|
|
1107
|
+
tests:
|
|
1108
|
+
- "test/visual/giscus-comments.spec.js"
|
|
837
1109
|
references:
|
|
838
1110
|
includes:
|
|
839
1111
|
- "_includes/content/giscus.html"
|
|
1112
|
+
layouts: ["_layouts/article.html", "_layouts/note.html", "_layouts/notebook.html"]
|
|
1113
|
+
config: "_config.yml"
|
|
1114
|
+
script: "scripts/bin/giscus-discussions"
|
|
1115
|
+
skill: ".github/skills/giscus-conversation/SKILL.md"
|
|
1116
|
+
workflow: ".github/workflows/giscus-digest.yml"
|
|
840
1117
|
docs:
|
|
841
1118
|
- "pages/_docs/features/giscus-comments.md"
|
|
842
1119
|
features:
|
|
@@ -845,6 +1122,8 @@ features:
|
|
|
845
1122
|
- "Pathname-based mapping"
|
|
846
1123
|
- "Reaction support"
|
|
847
1124
|
- "Top-positioned input"
|
|
1125
|
+
- "Consistent site.giscus.enabled gating across layouts"
|
|
1126
|
+
- "Claude Code conversation building (read/draft/seed/post via gh)"
|
|
848
1127
|
|
|
849
1128
|
- id: ZER0-036
|
|
850
1129
|
title: "MathJax Math Rendering"
|
|
@@ -855,6 +1134,13 @@ features:
|
|
|
855
1134
|
docs: "/docs/features/mathjax-math/"
|
|
856
1135
|
tags: [math, latex, equations, documentation]
|
|
857
1136
|
date: 2025-01-01
|
|
1137
|
+
provenance:
|
|
1138
|
+
introduced_in: "0.1.0"
|
|
1139
|
+
pr: null
|
|
1140
|
+
commit: "31f827e"
|
|
1141
|
+
issue: null
|
|
1142
|
+
tests:
|
|
1143
|
+
- "test/visual/feature-coverage.spec.js"
|
|
858
1144
|
references:
|
|
859
1145
|
docs:
|
|
860
1146
|
- "pages/_docs/features/mathjax-math.md"
|
|
@@ -873,6 +1159,14 @@ features:
|
|
|
873
1159
|
docs: "/docs/features/toc/"
|
|
874
1160
|
tags: [navigation, toc, headings, documentation]
|
|
875
1161
|
date: 2025-01-01
|
|
1162
|
+
provenance:
|
|
1163
|
+
introduced_in: "0.1.0"
|
|
1164
|
+
pr: null
|
|
1165
|
+
commit: "a8426a5"
|
|
1166
|
+
issue: null
|
|
1167
|
+
tests:
|
|
1168
|
+
- "test/visual/feature-coverage.spec.js"
|
|
1169
|
+
- "test/visual/ui-refresh.spec.js"
|
|
876
1170
|
references:
|
|
877
1171
|
includes:
|
|
878
1172
|
- "_includes/content/toc.html"
|
|
@@ -896,6 +1190,13 @@ features:
|
|
|
896
1190
|
docs: "/docs/analytics/google-analytics/"
|
|
897
1191
|
tags: [analytics, google, tracking, metrics]
|
|
898
1192
|
date: 2025-01-01
|
|
1193
|
+
provenance:
|
|
1194
|
+
introduced_in: "0.1.0"
|
|
1195
|
+
pr: null
|
|
1196
|
+
commit: "a8426a5"
|
|
1197
|
+
issue: null
|
|
1198
|
+
tests:
|
|
1199
|
+
- "test/test_quality.sh"
|
|
899
1200
|
references:
|
|
900
1201
|
includes:
|
|
901
1202
|
- "_includes/analytics/google-analytics.html"
|
|
@@ -914,6 +1215,13 @@ features:
|
|
|
914
1215
|
docs: "/docs/analytics/google-tag-manager/"
|
|
915
1216
|
tags: [analytics, gtm, tracking, marketing]
|
|
916
1217
|
date: 2025-01-01
|
|
1218
|
+
provenance:
|
|
1219
|
+
introduced_in: "0.1.0"
|
|
1220
|
+
pr: null
|
|
1221
|
+
commit: "a8426a5"
|
|
1222
|
+
issue: null
|
|
1223
|
+
tests:
|
|
1224
|
+
- "test/test_quality.sh"
|
|
917
1225
|
references:
|
|
918
1226
|
includes:
|
|
919
1227
|
- "_includes/analytics/google-tag-manager-head.html"
|
|
@@ -937,6 +1245,14 @@ features:
|
|
|
937
1245
|
docs: "/docs/features/breadcrumbs/"
|
|
938
1246
|
tags: [navigation, breadcrumbs, seo, accessibility]
|
|
939
1247
|
date: 2025-01-01
|
|
1248
|
+
provenance:
|
|
1249
|
+
introduced_in: "0.1.0"
|
|
1250
|
+
pr: null
|
|
1251
|
+
commit: "a8426a5"
|
|
1252
|
+
issue: null
|
|
1253
|
+
tests:
|
|
1254
|
+
- "test/visual/layouts.spec.js"
|
|
1255
|
+
- "test/visual/authors-breadcrumb-degradation.spec.js"
|
|
940
1256
|
references:
|
|
941
1257
|
includes:
|
|
942
1258
|
- "_includes/navigation/breadcrumbs.html"
|
|
@@ -960,6 +1276,13 @@ features:
|
|
|
960
1276
|
docs: "/docs/seo/meta-tags/"
|
|
961
1277
|
tags: [seo, meta, opengraph, twitter-cards]
|
|
962
1278
|
date: 2025-01-01
|
|
1279
|
+
provenance:
|
|
1280
|
+
introduced_in: "0.1.0"
|
|
1281
|
+
pr: null
|
|
1282
|
+
commit: "a8426a5"
|
|
1283
|
+
issue: null
|
|
1284
|
+
tests:
|
|
1285
|
+
- "test/test_quality.sh"
|
|
963
1286
|
references:
|
|
964
1287
|
includes:
|
|
965
1288
|
- "_includes/content/seo.html"
|
|
@@ -980,12 +1303,23 @@ features:
|
|
|
980
1303
|
docs: "/docs/seo/sitemap/"
|
|
981
1304
|
tags: [seo, sitemap, search, indexing]
|
|
982
1305
|
date: 2025-01-01
|
|
1306
|
+
provenance:
|
|
1307
|
+
introduced_in: "0.1.0"
|
|
1308
|
+
pr: null
|
|
1309
|
+
commit: "a8426a5"
|
|
1310
|
+
issue: null
|
|
1311
|
+
tests:
|
|
1312
|
+
- "test/test_core.sh"
|
|
1313
|
+
- "test/test_deployment.sh"
|
|
983
1314
|
references:
|
|
984
1315
|
includes:
|
|
985
1316
|
- "_includes/content/sitemap.html"
|
|
1317
|
+
plugin: "_plugins/search_and_sitemap_generator.rb"
|
|
1318
|
+
layouts:
|
|
1319
|
+
- "_layouts/sitemap-collection.html"
|
|
1320
|
+
- "_layouts/search.html"
|
|
986
1321
|
files:
|
|
987
1322
|
- "search.json"
|
|
988
|
-
- "sitemap.xml"
|
|
989
1323
|
features:
|
|
990
1324
|
- "XML sitemap for search engines"
|
|
991
1325
|
- "JSON search index for site search"
|
|
@@ -1005,6 +1339,14 @@ features:
|
|
|
1005
1339
|
docs: "/docs/features/statistics-dashboard/"
|
|
1006
1340
|
tags: [dashboard, statistics, metrics, visualization]
|
|
1007
1341
|
date: 2025-01-01
|
|
1342
|
+
provenance:
|
|
1343
|
+
introduced_in: "0.1.0"
|
|
1344
|
+
pr: null
|
|
1345
|
+
commit: "8986a02"
|
|
1346
|
+
issue: null
|
|
1347
|
+
tests:
|
|
1348
|
+
- "test/test_plugins.rb"
|
|
1349
|
+
- "test/test_core.sh"
|
|
1008
1350
|
references:
|
|
1009
1351
|
layouts:
|
|
1010
1352
|
- "_layouts/stats.html"
|
|
@@ -1034,6 +1376,15 @@ features:
|
|
|
1034
1376
|
docs: "/docs/obsidian/"
|
|
1035
1377
|
tags: [obsidian, content, wiki-links, knowledge-base, jekyll]
|
|
1036
1378
|
date: 2026-03-12
|
|
1379
|
+
provenance:
|
|
1380
|
+
introduced_in: "1.3.0"
|
|
1381
|
+
pr: 73
|
|
1382
|
+
commit: "31e042c"
|
|
1383
|
+
issue: null
|
|
1384
|
+
tests:
|
|
1385
|
+
- "test/test_obsidian.sh"
|
|
1386
|
+
- "test/test_ruby_converter.rb"
|
|
1387
|
+
- "test/test_resolver.js"
|
|
1037
1388
|
references:
|
|
1038
1389
|
plugin: "_plugins/obsidian_links.rb"
|
|
1039
1390
|
scripts:
|
|
@@ -1044,10 +1395,6 @@ features:
|
|
|
1044
1395
|
- "_includes/content/backlinks.html"
|
|
1045
1396
|
- "_includes/obsidian/full-graph.html"
|
|
1046
1397
|
docs: "pages/_docs/obsidian/"
|
|
1047
|
-
tests:
|
|
1048
|
-
- "test/test_obsidian.sh"
|
|
1049
|
-
- "test/test_ruby_converter.rb"
|
|
1050
|
-
- "test/test_resolver.js"
|
|
1051
1398
|
instructions: ".github/instructions/obsidian.instructions.md"
|
|
1052
1399
|
features:
|
|
1053
1400
|
- "[[Wiki-links]] resolution"
|
|
@@ -1067,6 +1414,14 @@ features:
|
|
|
1067
1414
|
docs: "/docs/obsidian/graph/"
|
|
1068
1415
|
tags: [obsidian, graph, visualization, navigation]
|
|
1069
1416
|
date: 2026-03-25
|
|
1417
|
+
provenance:
|
|
1418
|
+
introduced_in: "1.4.0"
|
|
1419
|
+
pr: 77
|
|
1420
|
+
commit: "d39dfa9"
|
|
1421
|
+
issue: null
|
|
1422
|
+
tests:
|
|
1423
|
+
- "test/test_obsidian.sh"
|
|
1424
|
+
- "test/visual/obsidian-callouts.spec.js"
|
|
1070
1425
|
references:
|
|
1071
1426
|
includes:
|
|
1072
1427
|
- "_includes/obsidian/full-graph.html"
|
|
@@ -1087,6 +1442,13 @@ features:
|
|
|
1087
1442
|
docs: "/docs/quickstart/bare-minimum/"
|
|
1088
1443
|
tags: [setup, quickstart, remote-theme, github-pages]
|
|
1089
1444
|
date: 2026-02-25
|
|
1445
|
+
provenance:
|
|
1446
|
+
introduced_in: "1.2.0"
|
|
1447
|
+
pr: null
|
|
1448
|
+
commit: "4bd3e36"
|
|
1449
|
+
issue: null
|
|
1450
|
+
tests:
|
|
1451
|
+
- "test/test_site_generation.sh"
|
|
1090
1452
|
references:
|
|
1091
1453
|
includes:
|
|
1092
1454
|
- "_includes/components/info-section.html"
|
|
@@ -1102,6 +1464,14 @@ features:
|
|
|
1102
1464
|
docs: "/docs/features/smart-404/"
|
|
1103
1465
|
tags: [setup, 404, configuration, ux]
|
|
1104
1466
|
date: 2026-01-30
|
|
1467
|
+
provenance:
|
|
1468
|
+
introduced_in: "0.22.18"
|
|
1469
|
+
pr: 58
|
|
1470
|
+
commit: "02d0295"
|
|
1471
|
+
issue: null
|
|
1472
|
+
tests:
|
|
1473
|
+
- "test/test_core.sh"
|
|
1474
|
+
- "test/visual/layouts.spec.js"
|
|
1105
1475
|
references:
|
|
1106
1476
|
page: "404.html"
|
|
1107
1477
|
docs: "pages/_docs/features/smart-404.md"
|
|
@@ -1115,6 +1485,13 @@ features:
|
|
|
1115
1485
|
docs: "/docs/development/frontmatter-validation/"
|
|
1116
1486
|
tags: [validation, frontmatter, content, ci-cd, automation]
|
|
1117
1487
|
date: 2026-01-25
|
|
1488
|
+
provenance:
|
|
1489
|
+
introduced_in: "0.22.17"
|
|
1490
|
+
pr: 34
|
|
1491
|
+
commit: "10ba722"
|
|
1492
|
+
issue: null
|
|
1493
|
+
tests:
|
|
1494
|
+
- na: "Build-time validation — scripts/bin/validate; CI fast-checks job"
|
|
1118
1495
|
references:
|
|
1119
1496
|
script: "scripts/bin/validate"
|
|
1120
1497
|
config: ".github/config/frontmatter_schema.yml"
|
|
@@ -1129,6 +1506,14 @@ features:
|
|
|
1129
1506
|
docs: "/docs/features/dynamic-navigation/"
|
|
1130
1507
|
tags: [navigation, ui, zero-config, jekyll]
|
|
1131
1508
|
date: 2026-01-15
|
|
1509
|
+
provenance:
|
|
1510
|
+
introduced_in: "0.22.15"
|
|
1511
|
+
pr: null
|
|
1512
|
+
commit: "a8426a5"
|
|
1513
|
+
issue: null
|
|
1514
|
+
tests:
|
|
1515
|
+
- "test/visual/ui-refresh.spec.js"
|
|
1516
|
+
- "test/visual/navbar-responsive.spec.js"
|
|
1132
1517
|
references:
|
|
1133
1518
|
includes:
|
|
1134
1519
|
- "_includes/navigation/navbar.html"
|
|
@@ -1142,6 +1527,14 @@ features:
|
|
|
1142
1527
|
docs: "/docs/features/admin-dashboard/"
|
|
1143
1528
|
tags: [admin, dashboard, ui, configuration]
|
|
1144
1529
|
date: 2025-12-28
|
|
1530
|
+
provenance:
|
|
1531
|
+
introduced_in: "0.21.4"
|
|
1532
|
+
pr: 57
|
|
1533
|
+
commit: "27550da"
|
|
1534
|
+
issue: null
|
|
1535
|
+
tests:
|
|
1536
|
+
- "test/visual/admin-layout.spec.js"
|
|
1537
|
+
- "test/visual/admin-nav.spec.js"
|
|
1145
1538
|
references:
|
|
1146
1539
|
layout: "_layouts/admin.html"
|
|
1147
1540
|
includes:
|
|
@@ -1157,6 +1550,13 @@ features:
|
|
|
1157
1550
|
docs: "/docs/development/agents/"
|
|
1158
1551
|
tags: [ai, agents, documentation, copilot, cursor]
|
|
1159
1552
|
date: 2026-01-20
|
|
1553
|
+
provenance:
|
|
1554
|
+
introduced_in: "0.22.16"
|
|
1555
|
+
pr: 70
|
|
1556
|
+
commit: "bc41b0d"
|
|
1557
|
+
issue: null
|
|
1558
|
+
tests:
|
|
1559
|
+
- na: "Documentation entry point (AGENTS.md); no runtime test"
|
|
1160
1560
|
references:
|
|
1161
1561
|
file: "AGENTS.md"
|
|
1162
1562
|
instructions_index: ".github/instructions/README.md"
|
|
@@ -1170,6 +1570,13 @@ features:
|
|
|
1170
1570
|
docs: "/roadmap/"
|
|
1171
1571
|
tags: [roadmap, documentation, mermaid, automation]
|
|
1172
1572
|
date: 2026-02-08
|
|
1573
|
+
provenance:
|
|
1574
|
+
introduced_in: "0.22.21"
|
|
1575
|
+
pr: 71
|
|
1576
|
+
commit: "7f00e4d"
|
|
1577
|
+
issue: null
|
|
1578
|
+
tests:
|
|
1579
|
+
- "test/test_core.sh"
|
|
1173
1580
|
references:
|
|
1174
1581
|
data: "_data/roadmap.yml"
|
|
1175
1582
|
page: "pages/roadmap.md"
|
|
@@ -1184,6 +1591,13 @@ features:
|
|
|
1184
1591
|
docs: "/docs/features/vendored-assets/"
|
|
1185
1592
|
tags: [bootstrap, assets, vendor, github-pages, performance]
|
|
1186
1593
|
date: 2025-12-20
|
|
1594
|
+
provenance:
|
|
1595
|
+
introduced_in: "0.21.3"
|
|
1596
|
+
pr: 39
|
|
1597
|
+
commit: "3c96620"
|
|
1598
|
+
issue: null
|
|
1599
|
+
tests:
|
|
1600
|
+
- "test/test_core.sh"
|
|
1187
1601
|
references:
|
|
1188
1602
|
script: "scripts/vendor-install.sh"
|
|
1189
1603
|
manifest: "vendor-manifest.json"
|
|
@@ -1200,6 +1614,13 @@ features:
|
|
|
1200
1614
|
docs: "/docs/seo/aieo/"
|
|
1201
1615
|
tags: [seo, aieo, structured-data, faq, glossary, ai]
|
|
1202
1616
|
date: 2025-12-30
|
|
1617
|
+
provenance:
|
|
1618
|
+
introduced_in: "0.21.5"
|
|
1619
|
+
pr: 38
|
|
1620
|
+
commit: "9a27ad7"
|
|
1621
|
+
issue: null
|
|
1622
|
+
tests:
|
|
1623
|
+
- "test/test_quality.sh"
|
|
1203
1624
|
references:
|
|
1204
1625
|
includes:
|
|
1205
1626
|
- "_includes/content/seo.html"
|
|
@@ -1218,6 +1639,14 @@ features:
|
|
|
1218
1639
|
docs: "/docs/features/navigation-architecture/"
|
|
1219
1640
|
tags: [navigation, javascript, es6, ui, performance]
|
|
1220
1641
|
date: 2025-12-12
|
|
1642
|
+
provenance:
|
|
1643
|
+
introduced_in: "0.18.0"
|
|
1644
|
+
pr: null
|
|
1645
|
+
commit: "5533f34"
|
|
1646
|
+
issue: null
|
|
1647
|
+
tests:
|
|
1648
|
+
- "test/visual/navbar-responsive.spec.js"
|
|
1649
|
+
- "test/visual/ui-refresh.spec.js"
|
|
1221
1650
|
references:
|
|
1222
1651
|
scripts:
|
|
1223
1652
|
- "assets/js/modules/"
|
|
@@ -1234,19 +1663,33 @@ features:
|
|
|
1234
1663
|
docs: "/docs/development/devcontainer/"
|
|
1235
1664
|
tags: [devcontainer, codespaces, development, docker]
|
|
1236
1665
|
date: 2025-12-10
|
|
1666
|
+
provenance:
|
|
1667
|
+
introduced_in: "0.17.0"
|
|
1668
|
+
pr: null
|
|
1669
|
+
commit: "0ef86c2"
|
|
1670
|
+
issue: null
|
|
1671
|
+
tests:
|
|
1672
|
+
- na: "DevContainer config (.devcontainer/devcontainer.json); validated by Codespaces, no unit test"
|
|
1237
1673
|
references:
|
|
1238
1674
|
config:
|
|
1239
1675
|
- ".devcontainer/devcontainer.json"
|
|
1240
1676
|
|
|
1241
1677
|
- id: ZER0-057
|
|
1242
1678
|
title: "Local Docker Publishing Pipeline"
|
|
1243
|
-
description: "
|
|
1244
|
-
implemented:
|
|
1679
|
+
description: "Removed in v1.8.1 — the dedicated docker-compose.publish.yml / docker-compose.prod.yml local-publish path was retired; gem publishing now runs through the release-please CI pipeline (see ZER0-015) and scripts/bin/release. Kept for ID stability"
|
|
1680
|
+
implemented: false
|
|
1681
|
+
removed_in: "1.8.1"
|
|
1682
|
+
superseded_by: "ZER0-015"
|
|
1245
1683
|
version: "0.21.1"
|
|
1246
1684
|
link: "/"
|
|
1247
1685
|
docs: "/docs/development/docker-publishing/"
|
|
1248
1686
|
tags: [docker, release, ci-cd, gem, automation]
|
|
1249
1687
|
date: 2025-12-22
|
|
1688
|
+
provenance:
|
|
1689
|
+
introduced_in: "0.21.1"
|
|
1690
|
+
pr: null
|
|
1691
|
+
commit: "32755cd"
|
|
1692
|
+
issue: null
|
|
1250
1693
|
references:
|
|
1251
1694
|
compose:
|
|
1252
1695
|
- "docker-compose.publish.yml"
|
|
@@ -1262,6 +1705,13 @@ features:
|
|
|
1262
1705
|
docs: "/notes/"
|
|
1263
1706
|
tags: [content, collections, notes, jekyll]
|
|
1264
1707
|
date: 2025-12-15
|
|
1708
|
+
provenance:
|
|
1709
|
+
introduced_in: "0.20.0"
|
|
1710
|
+
pr: null
|
|
1711
|
+
commit: "06691f9"
|
|
1712
|
+
issue: null
|
|
1713
|
+
tests:
|
|
1714
|
+
- "test/test_site_generation.sh"
|
|
1265
1715
|
references:
|
|
1266
1716
|
collection: "pages/_notes/"
|
|
1267
1717
|
layouts:
|
|
@@ -1277,6 +1727,13 @@ features:
|
|
|
1277
1727
|
docs: "/docs/obsidian/performance/"
|
|
1278
1728
|
tags: [obsidian, performance, jekyll, optimization]
|
|
1279
1729
|
date: 2026-04-30
|
|
1730
|
+
provenance:
|
|
1731
|
+
introduced_in: "1.6.0"
|
|
1732
|
+
pr: 73
|
|
1733
|
+
commit: "31e042c"
|
|
1734
|
+
issue: null
|
|
1735
|
+
tests:
|
|
1736
|
+
- "test/test_obsidian.sh"
|
|
1280
1737
|
references:
|
|
1281
1738
|
plugin: "_plugins/obsidian_links.rb"
|
|
1282
1739
|
includes:
|
|
@@ -1290,9 +1747,365 @@ features:
|
|
|
1290
1747
|
docs: "/docs/features/ai-chat-assistant/"
|
|
1291
1748
|
tags: [ai, chatbot, claude, github, proxy, accessibility]
|
|
1292
1749
|
date: 2026-06-13
|
|
1750
|
+
provenance:
|
|
1751
|
+
introduced_in: "1.18.0"
|
|
1752
|
+
pr: 33
|
|
1753
|
+
commit: "341cc67"
|
|
1754
|
+
issue: null
|
|
1755
|
+
tests:
|
|
1756
|
+
- "test/visual/ai-chat.spec.js"
|
|
1293
1757
|
references:
|
|
1294
1758
|
includes: ["_includes/components/ai-chat.html"]
|
|
1295
1759
|
layouts: ["_layouts/root.html"]
|
|
1296
1760
|
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"]
|
|
1297
1761
|
config: "_config.yml"
|
|
1298
1762
|
instructions: ".github/instructions/ai-chat.instructions.md"
|
|
1763
|
+
|
|
1764
|
+
# ============================================================================
|
|
1765
|
+
# DISCOVERED FEATURES (v1.24+) — registry coverage reconciliation
|
|
1766
|
+
# ============================================================================
|
|
1767
|
+
|
|
1768
|
+
- id: ZER0-061
|
|
1769
|
+
title: "Author Profiles System"
|
|
1770
|
+
description: "Auto-generated author profile pages and a searchable author directory from _data/authors.yml — each author gets a /authors/<key>/ hub with bio, stats, and a filterable grid of their content across collections"
|
|
1771
|
+
implemented: true
|
|
1772
|
+
version: "1.20.0"
|
|
1773
|
+
link: "/authors/"
|
|
1774
|
+
docs: "/authors/"
|
|
1775
|
+
tags: [content, authors, profiles, jekyll]
|
|
1776
|
+
date: 2026-06-22
|
|
1777
|
+
provenance:
|
|
1778
|
+
introduced_in: "1.20.0"
|
|
1779
|
+
pr: 193
|
|
1780
|
+
commit: "a6db3042"
|
|
1781
|
+
issue: null
|
|
1782
|
+
tests:
|
|
1783
|
+
- "test/visual/authors-breadcrumb-degradation.spec.js"
|
|
1784
|
+
references:
|
|
1785
|
+
plugin: "_plugins/author_pages_generator.rb"
|
|
1786
|
+
layouts:
|
|
1787
|
+
- "_layouts/author.html"
|
|
1788
|
+
- "_layouts/authors.html"
|
|
1789
|
+
scripts:
|
|
1790
|
+
- "assets/js/author-profile.js"
|
|
1791
|
+
data: "_data/authors.yml"
|
|
1792
|
+
|
|
1793
|
+
- id: ZER0-062
|
|
1794
|
+
title: "News Homepage Layout"
|
|
1795
|
+
description: "Magazine-style news homepage layout with configurable section styles (magazine, grid, list) and full-width content sections"
|
|
1796
|
+
implemented: true
|
|
1797
|
+
version: "0.1.5"
|
|
1798
|
+
link: "/"
|
|
1799
|
+
docs: "/docs/customization/layouts/"
|
|
1800
|
+
tags: [layouts, news, homepage, content]
|
|
1801
|
+
date: 2024-06-15
|
|
1802
|
+
provenance:
|
|
1803
|
+
introduced_in: "0.1.5"
|
|
1804
|
+
pr: null
|
|
1805
|
+
commit: "53132416"
|
|
1806
|
+
issue: null
|
|
1807
|
+
tests:
|
|
1808
|
+
- "test/visual/layouts.spec.js"
|
|
1809
|
+
references:
|
|
1810
|
+
layout: "_layouts/news.html"
|
|
1811
|
+
|
|
1812
|
+
- id: ZER0-063
|
|
1813
|
+
title: "Section Layout"
|
|
1814
|
+
description: "News section layout with a collapsible sub-category sidebar, section styles, and a featured hero card for organizing posts by section"
|
|
1815
|
+
implemented: true
|
|
1816
|
+
version: "0.20.3"
|
|
1817
|
+
link: "/"
|
|
1818
|
+
docs: "/docs/customization/layouts/"
|
|
1819
|
+
tags: [layouts, navigation, content]
|
|
1820
|
+
date: 2026-02-01
|
|
1821
|
+
provenance:
|
|
1822
|
+
introduced_in: "0.20.3"
|
|
1823
|
+
pr: null
|
|
1824
|
+
commit: "06691f93"
|
|
1825
|
+
issue: null
|
|
1826
|
+
tests:
|
|
1827
|
+
- "test/visual/section-sidebar-tags-gate.spec.js"
|
|
1828
|
+
- "test/visual/layouts.spec.js"
|
|
1829
|
+
references:
|
|
1830
|
+
layout: "_layouts/section.html"
|
|
1831
|
+
|
|
1832
|
+
- id: ZER0-064
|
|
1833
|
+
title: "Article Layout & Post Types"
|
|
1834
|
+
description: "Article layout for blog posts with post-type variations (standard, featured, breaking, opinion, review, tutorial, listicle, interview) surfaced via a post-type badge"
|
|
1835
|
+
implemented: true
|
|
1836
|
+
version: "0.20.3"
|
|
1837
|
+
link: "/"
|
|
1838
|
+
docs: "/docs/customization/layouts/"
|
|
1839
|
+
tags: [layouts, content, posts]
|
|
1840
|
+
date: 2026-02-01
|
|
1841
|
+
provenance:
|
|
1842
|
+
introduced_in: "0.20.3"
|
|
1843
|
+
pr: null
|
|
1844
|
+
commit: "06691f93"
|
|
1845
|
+
issue: null
|
|
1846
|
+
tests:
|
|
1847
|
+
- "test/visual/layouts.spec.js"
|
|
1848
|
+
references:
|
|
1849
|
+
layout: "_layouts/article.html"
|
|
1850
|
+
include: "_includes/components/post-type-badge.html"
|
|
1851
|
+
|
|
1852
|
+
- id: ZER0-065
|
|
1853
|
+
title: "Theme Skins & Background Customizer"
|
|
1854
|
+
description: "Nine switchable theme skins with fffuel-style SVG backgrounds, a runtime customizer (skin + opacity), a palette generator, and a skin editor — all persisted to localStorage"
|
|
1855
|
+
implemented: true
|
|
1856
|
+
version: "0.22.10"
|
|
1857
|
+
link: "/"
|
|
1858
|
+
docs: "/docs/features/color-modes/"
|
|
1859
|
+
tags: [ui, theme, skins, customization]
|
|
1860
|
+
date: 2026-04-06
|
|
1861
|
+
provenance:
|
|
1862
|
+
introduced_in: "0.22.10"
|
|
1863
|
+
pr: 57
|
|
1864
|
+
commit: "27550dac"
|
|
1865
|
+
issue: null
|
|
1866
|
+
tests:
|
|
1867
|
+
- "test/visual/skins.spec.js"
|
|
1868
|
+
- "test/visual/backgrounds.spec.js"
|
|
1869
|
+
- "test/visual/theme-colors.spec.js"
|
|
1870
|
+
references:
|
|
1871
|
+
scripts:
|
|
1872
|
+
- "assets/js/background-customizer.js"
|
|
1873
|
+
- "assets/js/palette-generator.js"
|
|
1874
|
+
- "assets/js/skin-editor.js"
|
|
1875
|
+
- "assets/js/theme-customizer.js"
|
|
1876
|
+
includes:
|
|
1877
|
+
- "_includes/components/background-customizer.html"
|
|
1878
|
+
- "_includes/components/theme-preview-gallery.html"
|
|
1879
|
+
styles:
|
|
1880
|
+
- "_sass/theme/_backgrounds.scss"
|
|
1881
|
+
|
|
1882
|
+
- id: ZER0-066
|
|
1883
|
+
title: "Nanobar Progress Bar"
|
|
1884
|
+
description: "Config-driven page-loading progress bar (color, height, position, z-index, step timing) driven by site.nanobar and injected via a thin include"
|
|
1885
|
+
implemented: true
|
|
1886
|
+
version: "0.22.20"
|
|
1887
|
+
link: "/"
|
|
1888
|
+
docs: "/docs/features/"
|
|
1889
|
+
tags: [ui, performance, loading]
|
|
1890
|
+
date: 2026-04-19
|
|
1891
|
+
provenance:
|
|
1892
|
+
introduced_in: "0.22.20"
|
|
1893
|
+
pr: 72
|
|
1894
|
+
commit: "f5d5e974"
|
|
1895
|
+
issue: null
|
|
1896
|
+
tests:
|
|
1897
|
+
- na: "Config-driven loading bar; presence verified in the Jekyll build (test/test_core.sh)"
|
|
1898
|
+
references:
|
|
1899
|
+
include: "_includes/components/nanobar.html"
|
|
1900
|
+
scripts:
|
|
1901
|
+
- "assets/js/nanobar.min.js"
|
|
1902
|
+
- "assets/js/nanobar-init.js"
|
|
1903
|
+
config: "_config.yml"
|
|
1904
|
+
docs: "docs/features/nanobar-component.md"
|
|
1905
|
+
|
|
1906
|
+
- id: ZER0-067
|
|
1907
|
+
title: "Setup Wizard"
|
|
1908
|
+
description: "Multi-step in-browser wizard that assembles a complete _config.yml and lets you download or copy it, lowering first-run setup friction"
|
|
1909
|
+
implemented: true
|
|
1910
|
+
version: "0.22.7"
|
|
1911
|
+
link: "/setup/"
|
|
1912
|
+
docs: "/docs/quickstart/bare-minimum/"
|
|
1913
|
+
tags: [setup, onboarding, configuration]
|
|
1914
|
+
date: 2026-04-03
|
|
1915
|
+
provenance:
|
|
1916
|
+
introduced_in: "0.22.7"
|
|
1917
|
+
pr: 51
|
|
1918
|
+
commit: "a70ae8a5"
|
|
1919
|
+
issue: null
|
|
1920
|
+
tests:
|
|
1921
|
+
- na: "Client-side config generator; exercised manually and via the build"
|
|
1922
|
+
references:
|
|
1923
|
+
include: "_includes/setup/wizard.html"
|
|
1924
|
+
scripts:
|
|
1925
|
+
- "assets/js/setup-wizard.js"
|
|
1926
|
+
layout: "_layouts/setup.html"
|
|
1927
|
+
|
|
1928
|
+
- id: ZER0-068
|
|
1929
|
+
title: "Table CSV Copy"
|
|
1930
|
+
description: "One-click CSV copy control injected onto content tables, scoped to article/content wrappers (skips admin and sitemap tables)"
|
|
1931
|
+
implemented: true
|
|
1932
|
+
version: "1.8.0"
|
|
1933
|
+
link: "/"
|
|
1934
|
+
docs: "/docs/features/"
|
|
1935
|
+
tags: [ui, content, clipboard, developer-experience]
|
|
1936
|
+
date: 2026-05-25
|
|
1937
|
+
provenance:
|
|
1938
|
+
introduced_in: "1.8.0"
|
|
1939
|
+
pr: 108
|
|
1940
|
+
commit: "f62849fd"
|
|
1941
|
+
issue: null
|
|
1942
|
+
tests:
|
|
1943
|
+
- na: "Client-side table-export helper; no dedicated spec"
|
|
1944
|
+
references:
|
|
1945
|
+
scripts:
|
|
1946
|
+
- "assets/js/table-copy.js"
|
|
1947
|
+
|
|
1948
|
+
- id: ZER0-069
|
|
1949
|
+
title: "Social Share Actions"
|
|
1950
|
+
description: "Helper that builds normalized social-share text and URLs (whitespace-collapsed, deduped, length-truncated) for sharing posts"
|
|
1951
|
+
implemented: true
|
|
1952
|
+
version: "1.14.0"
|
|
1953
|
+
link: "/"
|
|
1954
|
+
docs: "/docs/features/"
|
|
1955
|
+
tags: [ui, social, content, engagement]
|
|
1956
|
+
date: 2026-06-11
|
|
1957
|
+
provenance:
|
|
1958
|
+
introduced_in: "1.14.0"
|
|
1959
|
+
pr: 99
|
|
1960
|
+
commit: "89e21988"
|
|
1961
|
+
issue: null
|
|
1962
|
+
tests:
|
|
1963
|
+
- na: "Share-text utility; pure string helper, no dedicated spec"
|
|
1964
|
+
references:
|
|
1965
|
+
scripts:
|
|
1966
|
+
- "assets/js/share-actions.js"
|
|
1967
|
+
|
|
1968
|
+
- id: ZER0-070
|
|
1969
|
+
title: "Monthly Archives Page"
|
|
1970
|
+
description: "Date-grouped archive of all posts with anchor-linked month sections for chronological browsing"
|
|
1971
|
+
implemented: true
|
|
1972
|
+
version: "0.16.1"
|
|
1973
|
+
link: "/archives/"
|
|
1974
|
+
docs: "/archives/"
|
|
1975
|
+
tags: [content, navigation, archive]
|
|
1976
|
+
date: 2025-12-20
|
|
1977
|
+
provenance:
|
|
1978
|
+
introduced_in: "0.16.1"
|
|
1979
|
+
pr: null
|
|
1980
|
+
commit: "ac141b47"
|
|
1981
|
+
issue: null
|
|
1982
|
+
tests:
|
|
1983
|
+
- na: "Content page; rendered and link-checked in the build"
|
|
1984
|
+
references:
|
|
1985
|
+
page: "pages/archives.md"
|
|
1986
|
+
|
|
1987
|
+
- id: ZER0-071
|
|
1988
|
+
title: "Live Component Showcase"
|
|
1989
|
+
description: "Interactive gallery of Bootstrap 5.3 and theme components (alerts, buttons, cards, accordions, tabs, …) for visual reference and design QA"
|
|
1990
|
+
implemented: true
|
|
1991
|
+
version: "0.22.12"
|
|
1992
|
+
link: "/"
|
|
1993
|
+
docs: "/docs/customization/includes/"
|
|
1994
|
+
tags: [ui, documentation, components, bootstrap]
|
|
1995
|
+
date: 2026-04-10
|
|
1996
|
+
provenance:
|
|
1997
|
+
introduced_in: "0.22.12"
|
|
1998
|
+
pr: 54
|
|
1999
|
+
commit: "7ba0f834"
|
|
2000
|
+
issue: null
|
|
2001
|
+
tests:
|
|
2002
|
+
- "test/visual/component-showcase.spec.js"
|
|
2003
|
+
references:
|
|
2004
|
+
include: "_includes/components/component-showcase.html"
|
|
2005
|
+
|
|
2006
|
+
- id: ZER0-072
|
|
2007
|
+
title: "AI Content Review Workflow"
|
|
2008
|
+
description: "PR workflow that reviews changed Markdown for SEO and quality via a deterministic scorer plus a Claude Code editorial agent, with docs and front-matter validation"
|
|
2009
|
+
implemented: true
|
|
2010
|
+
version: "1.18.0"
|
|
2011
|
+
link: "/"
|
|
2012
|
+
docs: "/docs/"
|
|
2013
|
+
tags: [ci-cd, ai, content, automation]
|
|
2014
|
+
date: 2026-06-13
|
|
2015
|
+
provenance:
|
|
2016
|
+
introduced_in: "1.18.0"
|
|
2017
|
+
pr: 153
|
|
2018
|
+
commit: "e7c8e33c"
|
|
2019
|
+
issue: null
|
|
2020
|
+
tests:
|
|
2021
|
+
- na: "CI workflow — .github/workflows/ai-content-review.yml; runs scripts/content-review.rb on PRs"
|
|
2022
|
+
references:
|
|
2023
|
+
workflow: ".github/workflows/ai-content-review.yml"
|
|
2024
|
+
script: "scripts/content-review.rb"
|
|
2025
|
+
agent: ".claude/agents/content-reviewer.md"
|
|
2026
|
+
config: ".github/config/content_review.yml"
|
|
2027
|
+
|
|
2028
|
+
- id: ZER0-073
|
|
2029
|
+
title: "Giscus Digest Workflow"
|
|
2030
|
+
description: "Scheduled read-only workflow that surfaces new Giscus (GitHub Discussions) comments to maintainers as a job-summary digest"
|
|
2031
|
+
implemented: true
|
|
2032
|
+
version: "1.22.0"
|
|
2033
|
+
link: "/"
|
|
2034
|
+
docs: "/docs/features/giscus-comments/"
|
|
2035
|
+
tags: [ci-cd, comments, community, automation]
|
|
2036
|
+
date: 2026-06-26
|
|
2037
|
+
provenance:
|
|
2038
|
+
introduced_in: "1.22.0"
|
|
2039
|
+
pr: 214
|
|
2040
|
+
commit: "fef60a5c"
|
|
2041
|
+
issue: null
|
|
2042
|
+
tests:
|
|
2043
|
+
- na: "Scheduled read-only CI digest — .github/workflows/giscus-digest.yml"
|
|
2044
|
+
references:
|
|
2045
|
+
workflow: ".github/workflows/giscus-digest.yml"
|
|
2046
|
+
script: "scripts/bin/giscus-discussions"
|
|
2047
|
+
skill: ".github/skills/giscus-conversation/SKILL.md"
|
|
2048
|
+
|
|
2049
|
+
- id: ZER0-074
|
|
2050
|
+
title: "Visual Evidence Gate"
|
|
2051
|
+
description: "CI gate that requires a regression test plus before/after evidence for any UI or behavioural PR (or an explicit opt-out label), enforcing the visual-evidence standard"
|
|
2052
|
+
implemented: true
|
|
2053
|
+
version: "1.20.2"
|
|
2054
|
+
link: "/"
|
|
2055
|
+
docs: "/docs/development/testing/"
|
|
2056
|
+
tags: [ci-cd, testing, quality, automation]
|
|
2057
|
+
date: 2026-06-25
|
|
2058
|
+
provenance:
|
|
2059
|
+
introduced_in: "1.20.2"
|
|
2060
|
+
pr: 221
|
|
2061
|
+
commit: "9a132651"
|
|
2062
|
+
issue: null
|
|
2063
|
+
tests:
|
|
2064
|
+
- na: "CI gate — .github/workflows/evidence-gate.yml; self-validating on every PR"
|
|
2065
|
+
references:
|
|
2066
|
+
workflow: ".github/workflows/evidence-gate.yml"
|
|
2067
|
+
skill: ".github/skills/visual-evidence/SKILL.md"
|
|
2068
|
+
kit: "test/visual/evidence-kit.mjs"
|
|
2069
|
+
|
|
2070
|
+
- id: ZER0-075
|
|
2071
|
+
title: "Autonomous Issue & CI Pipeline"
|
|
2072
|
+
description: "Issue-triage to resolve-to-PR autopilot plus a CI self-repair loop and auto-merge, extending the continuous-evolution system (off by default)"
|
|
2073
|
+
implemented: true
|
|
2074
|
+
version: "1.23.0"
|
|
2075
|
+
link: "/"
|
|
2076
|
+
docs: "/docs/development/ci-cd/"
|
|
2077
|
+
tags: [ci-cd, automation, ai, issues]
|
|
2078
|
+
date: 2026-06-29
|
|
2079
|
+
provenance:
|
|
2080
|
+
introduced_in: "1.23.0"
|
|
2081
|
+
pr: 243
|
|
2082
|
+
commit: "229e0765"
|
|
2083
|
+
issue: null
|
|
2084
|
+
tests:
|
|
2085
|
+
- na: "CI automation — .github/workflows/{issue-autopilot,ci-self-repair,auto-merge}.yml; off by default"
|
|
2086
|
+
references:
|
|
2087
|
+
workflows:
|
|
2088
|
+
- ".github/workflows/issue-autopilot.yml"
|
|
2089
|
+
- ".github/workflows/ci-self-repair.yml"
|
|
2090
|
+
- ".github/workflows/auto-merge.yml"
|
|
2091
|
+
- ".github/workflows/issue-pr-auto-merge.yml"
|
|
2092
|
+
doc: "docs/systems/continuous-evolution.md"
|
|
2093
|
+
|
|
2094
|
+
- id: ZER0-076
|
|
2095
|
+
title: "Secret Scanning Workflow"
|
|
2096
|
+
description: "CI workflow that scans pushes and pull requests for leaked secrets, complementing CodeQL static analysis"
|
|
2097
|
+
implemented: true
|
|
2098
|
+
version: "1.21.0"
|
|
2099
|
+
link: "/"
|
|
2100
|
+
docs: "/docs/development/security/"
|
|
2101
|
+
tags: [ci-cd, security, automation]
|
|
2102
|
+
date: 2026-06-26
|
|
2103
|
+
provenance:
|
|
2104
|
+
introduced_in: "1.21.0"
|
|
2105
|
+
pr: 223
|
|
2106
|
+
commit: "5329ffb5"
|
|
2107
|
+
issue: null
|
|
2108
|
+
tests:
|
|
2109
|
+
- na: "CI security scan — .github/workflows/secret-scan.yml"
|
|
2110
|
+
references:
|
|
2111
|
+
workflow: ".github/workflows/secret-scan.yml"
|