Skip to content

Release dev to main: modules docs portal overhaul#126

Merged
djm81 merged 3 commits intomainfrom
dev
Mar 28, 2026
Merged

Release dev to main: modules docs portal overhaul#126
djm81 merged 3 commits intomainfrom
dev

Conversation

@djm81
Copy link
Copy Markdown
Contributor

@djm81 djm81 commented Mar 28, 2026

Summary

Promote the merged docs-13-nav-search-theme-roles work from dev to main.

This release updates the modules documentation portal with the new shared shell and discoverability layer: data-driven navigation, client-side search, expertise filtering, theme toggle, updated header/footer, and refreshed overview/getting-started docs. It also includes the docs command-validation follow-up that keeps navigation targets and command examples coherent.

Refs:

Scope

  • Bundle source changes under packages/
  • Registry/manifest changes (registry/index.json, packages/*/module-package.yaml)
  • CI/workflow changes (.github/workflows/*)
  • Documentation changes (docs/*, README.md, AGENTS.md)
  • Security/signing changes (scripts/sign-modules.py, scripts/verify-modules-signature.py)

Bundle Impact

List impacted bundles and version updates:

  • nold-ai/specfact-project: no change
  • nold-ai/specfact-backlog: no change
  • nold-ai/specfact-codebase: no change
  • nold-ai/specfact-spec: no change
  • nold-ai/specfact-govern: no change

Validation Evidence

Promotion is based on merged PR #125, which passed the required docs/local validation before merge.

Required local gates

  • hatch run format
  • hatch run type-check
  • hatch run lint
  • hatch run yaml-lint
  • hatch run check-bundle-imports
  • hatch run contract-test
  • hatch run smart-test (or hatch run test)

Signature + version integrity (required)

  • hatch run verify-modules-signature --require-signature --payload-from-filesystem --enforce-version-bump
  • Changed bundle versions were bumped before signing
  • Manifests re-signed after bundle content changes

CI and Branch Protection

  • PR orchestrator jobs expected:
    • verify-module-signatures
    • quality (3.11)
    • quality (3.12)
    • quality (3.13)
  • Branch protection required checks are aligned with the above

Docs / Pages

  • Bundle/module docs updated in this repo (docs/)
  • Pages workflow impact reviewed (docs-pages.yml, if changed)
  • Cross-links from specfact-cli docs updated (if applicable)

Checklist

  • Self-review completed
  • No unrelated files or generated artifacts included
  • Backward-compatibility/rollout notes documented (if needed)

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 28, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3bde7b8f-e409-4755-9974-15f91d7d0dac

📥 Commits

Reviewing files that changed from the base of the PR and between 2a9b6a7 and ba96f98.

📒 Files selected for processing (138)
  • docs/_data/nav.yml
  • docs/_includes/breadcrumbs.html
  • docs/_includes/expertise-filter.html
  • docs/_includes/search.html
  • docs/_includes/sidebar-nav.html
  • docs/_includes/theme-toggle.html
  • docs/_layouts/default.html
  • docs/adapters/azuredevops.md
  • docs/adapters/backlog-adapter-patterns.md
  • docs/adapters/github.md
  • docs/assets/js/filters.js
  • docs/assets/js/search-index.json
  • docs/assets/js/search.js
  • docs/assets/js/theme.js
  • docs/assets/main.scss
  • docs/authoring/adapter-development.md
  • docs/authoring/creating-custom-bridges.md
  • docs/authoring/custom-registries.md
  • docs/authoring/extending-projectbundle.md
  • docs/authoring/module-development.md
  • docs/authoring/module-signing.md
  • docs/authoring/publishing-modules.md
  • docs/bundles/backlog/delta.md
  • docs/bundles/backlog/dependency-analysis.md
  • docs/bundles/backlog/overview.md
  • docs/bundles/backlog/policy-engine.md
  • docs/bundles/backlog/refinement.md
  • docs/bundles/code-review/ledger.md
  • docs/bundles/code-review/overview.md
  • docs/bundles/code-review/rules.md
  • docs/bundles/code-review/run.md
  • docs/bundles/codebase/analyze.md
  • docs/bundles/codebase/drift.md
  • docs/bundles/codebase/overview.md
  • docs/bundles/codebase/repro.md
  • docs/bundles/codebase/sidecar-validation.md
  • docs/bundles/govern/enforce.md
  • docs/bundles/govern/overview.md
  • docs/bundles/govern/patch.md
  • docs/bundles/project/devops-flow.md
  • docs/bundles/project/import-migration.md
  • docs/bundles/project/overview.md
  • docs/bundles/spec/generate-tests.md
  • docs/bundles/spec/mock.md
  • docs/bundles/spec/overview.md
  • docs/bundles/spec/validate.md
  • docs/getting-started/choose-your-modules.md
  • docs/getting-started/first-steps.md
  • docs/getting-started/installation.md
  • docs/getting-started/module-bootstrap-checklist.md
  • docs/getting-started/tutorial-backlog-quickstart-demo.md
  • docs/getting-started/tutorial-backlog-refine-ai-ide.md
  • docs/getting-started/tutorial-daily-standup-sprint-review.md
  • docs/getting-started/tutorial-openspec-speckit.md
  • docs/guides/agile-scrum-workflows.md
  • docs/guides/ai-ide-workflow.md
  • docs/guides/brownfield-engineer.md
  • docs/guides/brownfield-examples.md
  • docs/guides/brownfield-faq-and-roi.md
  • docs/guides/brownfield-faq.md
  • docs/guides/brownfield-journey.md
  • docs/guides/brownfield-modernization.md
  • docs/guides/brownfield-roi.md
  • docs/guides/ci-cd-pipeline.md
  • docs/guides/command-chains.md
  • docs/guides/common-tasks.md
  • docs/guides/competitive-analysis.md
  • docs/guides/contract-testing-workflow.md
  • docs/guides/copilot-mode.md
  • docs/guides/cross-module-chains.md
  • docs/guides/custom-field-mapping.md
  • docs/guides/daily-devops-routine.md
  • docs/guides/dual-stack-enrichment.md
  • docs/guides/ide-integration.md
  • docs/guides/installation.md
  • docs/guides/installing-modules.md
  • docs/guides/integrations-overview.md
  • docs/guides/marketplace.md
  • docs/guides/migration-0.16-to-0.19.md
  • docs/guides/migration-cli-reorganization.md
  • docs/guides/migration-guide.md
  • docs/guides/module-marketplace.md
  • docs/guides/openspec-journey.md
  • docs/guides/speckit-comparison.md
  • docs/guides/speckit-journey.md
  • docs/guides/specmatic-integration.md
  • docs/guides/team-collaboration-workflow.md
  • docs/guides/template-customization.md
  • docs/guides/testing-terminal-output.md
  • docs/guides/troubleshooting.md
  • docs/guides/use-cases.md
  • docs/guides/using-module-security-and-extensions.md
  • docs/guides/ux-features.md
  • docs/guides/workflows.md
  • docs/index.md
  • docs/integrations/devops-adapter-overview.md
  • docs/module-publishing-guide.md
  • docs/modules/code-review.md
  • docs/reference/README.md
  • docs/reference/architecture.md
  • docs/reference/authentication.md
  • docs/reference/bridge-registry.md
  • docs/reference/command-syntax-policy.md
  • docs/reference/commands.md
  • docs/reference/debug-logging.md
  • docs/reference/dependency-resolution.md
  • docs/reference/directory-structure.md
  • docs/reference/documentation-url-contract.md
  • docs/reference/feature-keys.md
  • docs/reference/modes.md
  • docs/reference/module-categories.md
  • docs/reference/module-contracts.md
  • docs/reference/module-security.md
  • docs/reference/parameter-standard.md
  • docs/reference/projectbundle-schema.md
  • docs/reference/schema-versioning.md
  • docs/reference/specmatic.md
  • docs/reference/telemetry.md
  • docs/reference/thorough-codebase-validation.md
  • docs/team-and-enterprise/agile-scrum-setup.md
  • docs/team-and-enterprise/enterprise-config.md
  • docs/team-and-enterprise/multi-repo.md
  • docs/team-and-enterprise/team-collaboration.md
  • openspec/CHANGE_ORDER.md
  • openspec/changes/docs-13-nav-search-theme-roles/.openspec.yaml
  • openspec/changes/docs-13-nav-search-theme-roles/TDD_EVIDENCE.md
  • openspec/changes/docs-13-nav-search-theme-roles/design.md
  • openspec/changes/docs-13-nav-search-theme-roles/proposal.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/bundle-overview-pages/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/cross-module-workflow-docs/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/docs-client-search/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/docs-nav-data-driven/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/docs-role-expertise-nav/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/docs-theme-toggle/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/modules-docs-command-validation/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/specs/team-setup-docs/spec.md
  • openspec/changes/docs-13-nav-search-theme-roles/tasks.md
  • scripts/check-docs-commands.py

📝 Walkthrough

Summary by CodeRabbit

Release Notes

  • New Features

    • Added data-driven sidebar navigation for improved consistency and maintainability.
    • Introduced light/dark theme toggle with persistent user preference.
    • Implemented client-side documentation search with metadata filtering.
    • Added expertise-level filter to help users find content matching their skill level.
    • Added breadcrumb navigation for better page orientation.
  • Documentation

    • New "Choose Your Modules" guide explaining module-based installation.
    • Revamped "First Steps" guide with step-by-step CLI onboarding.
    • Enhanced all documentation pages with searchable metadata (keywords, audience, expertise level).
    • Removed outdated legacy workflow pages.
  • Style

    • Updated visual theme with improved color schemes for both light and dark modes.

Walkthrough

This PR restructures the Jekyll documentation site's navigation and UX by introducing data-driven sidebar navigation, client-side search using Lunr.js, light/dark theming with persistence, expertise-level filtering, and breadcrumb navigation. It enriches documentation front matter across 100+ pages with metadata fields (keywords, audience, expertise_level), removes outdated legacy pages, and extends the docs validation script to verify navigation URLs.

Changes

Cohort / File(s) Summary
Navigation Data Structure
docs/_data/nav.yml
New data-driven navigation configuration with sections (Getting Started, Bundles, Workflows, Integrations, Team & Enterprise, Authoring, Reference) and nested bundle groups, replacing hardcoded HTML navigation.
Navigation & Layout Includes
docs/_includes/sidebar-nav.html, docs/_includes/breadcrumbs.html
New Liquid templates for rendering sidebar navigation from nav.yml with active-page highlighting and <details>-based bundle collapsibles; breadcrumb navigation built from URL segments with proper labeling and fallback to page titles.
Search & Filter UI
docs/_includes/search.html, docs/_includes/expertise-filter.html, docs/_includes/theme-toggle.html
New UI control fragments: search input with Ctrl+K indicator and results dropdown; expertise-level filter pills with active state; theme toggle button with sun/moon icons.
Main Layout
docs/_layouts/default.html
Refactored to load theme.js early (preventing FOUC), include search/expertise-filter/sidebar-nav/breadcrumbs/theme-toggle partials, replace hardcoded nav with includes, update header with GitHub link, add footer restructuring, and load Lunr.js plus search/filters scripts.
Theme System
docs/assets/js/theme.js
New module implementing light/dark theme toggle with localStorage persistence (specfact-theme), early initialization to prevent flash, dynamic Mermaid re-rendering on theme change, and toggle button icon updates.
Search Functionality
docs/assets/js/search.js
Client-side search implementation using Lunr.js with lazy index loading, debounced queries (≥2 characters), field boosting for title/keywords, 10-result limit, snippet generation, metadata tags (audience/expertise), keyboard navigation (arrows, Enter, Escape), and click-outside hiding.
Expertise Filtering
docs/assets/js/filters.js
Client-side expertise level filter persisting selection via localStorage (specfact-expertise), dynamically hiding/showing nav items by matching data-expertise attributes, hiding empty bundle sections, and updating visible-count indicator.
Search Index Generation
docs/assets/js/search-index.json
Jekyll Liquid template generating a JSON index with all titled pages, including url, title, keywords, audience, expertise_level, and HTML-stripped content truncated to 200 words.
Styling Overhaul
docs/assets/main.scss
Major SCSS refactoring: replaced single dark-teal color with comprehensive theme CSS variables, added [data-theme="dark"]/[data-theme="light"] blocks with prefers-color-scheme fallback, themed scrollbars, transitioned body background/color, updated header/footer/sidebar/content layout and typography, added new .docs-breadcrumbs, .docs-search, .docs-expertise-filter, .path-cards styling, reworked nav highlighting/bundle collapsibles, separated light/dark Rouge syntax blocks, and adjusted print behavior.
Documentation Metadata Enrichment
docs/adapters/*, docs/authoring/*, docs/bundles/*, docs/getting-started/*, docs/guides/*, docs/integrations/*, docs/modules/*, docs/reference/*, docs/team-and-enterprise/*
Front-matter additions across 100+ markdown files adding optional keywords (array of search/discovery terms), audience (targeting: solo/team/enterprise), and expertise_level (beginner/intermediate/advanced) metadata for navigation filtering and search relevance.
New Documentation Pages
docs/getting-started/choose-your-modules.md, docs/getting-started/first-steps.md (major revision)
New "Choose Your Modules" guide comparing six modules with comparison table, install profiles, and Mermaid flow diagram; "First Steps" replaced with structured step-by-step CLI onboarding including module installation, command exploration, running code review, ledger checks, backlog/GitHub auth, refinement, IDE setup, and house rules configuration.
Deleted Legacy Pages
(removed) docs/getting-started/tutorial-openspec-speckit.md, docs/guides/using-module-security-and-extensions.md, docs/reference/debug-logging.md, docs/reference/directory-structure.md, docs/reference/feature-keys.md, docs/reference/parameter-standard.md
Removed outdated/mismatched documentation pages with legacy workflow notes that described non-current CLI commands; replaced some with redirect notices pointing to current guides (e.g., "First Steps", "Choose Your Modules").
Redirected/Deprecated Pages
docs/guides/brownfield-engineer.md, docs/guides/brownfield-faq.md, docs/guides/brownfield-journey.md, docs/guides/brownfield-roi.md, docs/guides/ide-integration.md, docs/guides/common-tasks.md, docs/guides/competitive-analysis.md, docs/guides/copilot-mode.md, docs/guides/dual-stack-enrichment.md, docs/guides/migration-*.md, docs/guides/troubleshooting.md, docs/guides/use-cases.md, docs/guides/ux-features.md
Removed title/content from legacy pages and replaced with concise redirect notices or replacement notices pointing to current guides (Choose Your Modules, First Steps, specific bundle/workflow pages); retained front-matter structure with redirect_to when applicable.
Homepage Updates
docs/index.md
Added "New here? Start with Choose Your Modules" callout, introduced "Find Your Path" section with four audience-segmented entry cards (Solo Developer, Small Team/Startup, Corporate Team, Enterprise), expanded "Official Bundles" deep-dive links with additional command/guide pages per bundle, added new Getting Started/Workflows items, and normalized casing in section headings.
Documentation Links Updates
docs/integrations/devops-adapter-overview.md, docs/bundles/project/import-migration.md
Updated "Related Examples"/"Related Documentation" sections with correct cross-references (e.g., replacing missing ../examples/ placeholder with Daily DevOps Routine guide).
Docs Validation Script
scripts/check-docs-commands.py
Extended validation to parse Jekyll front matter for permalink, normalize docs routes (with special handling for index.md and README.md), aggregate valid routes, parse docs/_data/nav.yml to extract all url entries, and emit findings when nav links do not resolve to existing docs pages.
OpenSpec Change Specification
openspec/CHANGE_ORDER.md, openspec/changes/docs-13-nav-search-theme-roles/*
Added change tracking for docs-13: includes .openspec.yaml manifest, proposal.md (high-level change summary), design.md (detailed design decisions and file structure), tasks.md (implementation steps), TDD_EVIDENCE.md (validation trail with build logs, tests, quality gates), and six new specification files (bundle-overview-pages, cross-module-workflow-docs, docs-client-search, docs-nav-data-driven, docs-role-expertise-nav, docs-theme-toggle, modules-docs-command-validation, team-setup-docs) defining requirements for the feature changes.

Sequence Diagram(s)

sequenceDiagram
    participant Browser
    participant theme.js
    participant localStorage
    participant CSS
    participant User
    participant Mermaid
    
    Browser->>theme.js: Page load, execute before body render
    theme.js->>localStorage: Read 'specfact-theme'
    alt Theme found
        theme.js->>CSS: Set data-theme from storage
    else Theme not found
        theme.js->>Browser: Check prefers-color-scheme
        theme.js->>CSS: Set data-theme from system preference
    end
    theme.js->>Browser: Apply to document.documentElement
    Browser->>CSS: Apply [data-theme] variable overrides
    CSS->>Browser: Paint with correct colors
    
    Browser->>Mermaid: Initialize with current theme
    Mermaid->>Browser: Render diagrams with theme variables
    
    User->>Browser: Click theme-toggle button
    Browser->>theme.js: toggleTheme() function
    theme.js->>localStorage: Persist new theme value
    theme.js->>CSS: Flip data-theme attribute
    CSS->>Browser: Re-paint with new theme colors
    theme.js->>Mermaid: Call rerenderMermaid(newTheme)
    Mermaid->>Browser: Remove SVGs, re-render with new theme
Loading
sequenceDiagram
    participant User
    participant Browser/DOM
    participant search.js
    participant search-index.json
    participant Lunr.js
    participant Results Display
    
    User->>Browser/DOM: Focus search input
    Browser/DOM->>search.js: On focus event
    alt Index not cached
        search.js->>search-index.json: Fetch lazy-load request
        search-index.json-->>search.js: Return JSON page array
        search.js->>Lunr.js: Build index with title/keywords boosted
        Lunr.js-->>search.js: Return initialized index
    end
    
    User->>search.js: Type query (≥2 chars)
    search.js->>Lunr.js: Execute search with debounce (150ms)
    Lunr.js->>Lunr.js: Match against indexed fields
    Lunr.js-->>search.js: Return results array
    search.js->>Results Display: Render ≤10 results with title/snippet/tags
    Results Display-->>Browser/DOM: Update results dropdown
    
    User->>Browser/DOM: ArrowDown to highlight result
    Browser/DOM->>Results Display: Toggle .highlighted class
    
    User->>Browser/DOM: Press Enter on highlighted result
    Browser/DOM->>Browser: Navigate to result URL
    
    User->>Browser/DOM: Press Escape
    search.js->>Results Display: Clear/hide results
    search.js->>Browser/DOM: Blur input
Loading
sequenceDiagram
    participant User
    participant Browser/DOM
    participant filters.js
    participant localStorage
    participant Navigation
    participant Count Indicator
    
    Browser/DOM->>filters.js: Page load, initialize expertise filter
    filters.js->>localStorage: Read 'specfact-expertise'
    alt Stored value exists
        filters.js->>filters.js: Use stored level
    else Not found
        filters.js->>filters.js: Default to 'all'
    end
    filters.js->>Browser/DOM: Apply initial filter
    
    User->>Browser/DOM: Click expertise pill (e.g., 'Intermediate')
    Browser/DOM->>filters.js: applyFilter(level) called
    filters.js->>Navigation: Iterate .docs-nav li[data-expertise]
    Navigation->>Navigation: Match data-expertise against level
    Navigation->>Navigation: Show/hide items (add hidden-by-filter class)
    filters.js->>Navigation: Hide empty .docs-nav-bundle sections
    filters.js->>Count Indicator: Update count (visible of total)
    filters.js->>localStorage: Persist selected level ('specfact-expertise')
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

  • #123: This PR directly implements the docs-13 change set specified in that issue, including all components (nav.yml, sidebar/search/theme includes, theme.js, search.js, filters.js, breadcrumbs, validation script updates).
  • #96: The PR creates/links bundle overview pages for six official bundles (Backlog, Project, Codebase, Code Review, Spec, Govern) with proper navigation structure and expertise metadata, aligning with that issue's goal.
  • #100: The PR extends scripts/check-docs-commands.py to validate docs/_data/nav.yml URL resolution against existing pages, overlapping with that issue's docs validation enhancement objectives.
  • #97: The PR adds/updates bundle command documentation pages (spec/validate, generate-tests, mock, govern/enforce/patch, code-review/run/ledger/rules, codebase/analyze/drift/repro) with metadata and proper navigation, directly supporting that issue's scope.

Possibly related PRs

  • #125: Both PRs implement the identical docs-13 feature set with the same file modifications (nav.yml, sidebar/search/theme includes, theme.js, search.js, filters.js, SCSS, default.html layout, validation script).
  • #118: Both PRs extend scripts/check-docs-commands.py with docs/_data/nav.yml validation and URL route resolution, directly overlapping at the tooling level.
  • #115: Both PRs add/update the same guide pages (daily-devops-routine, cross-module-chains, CI/CD pipeline, brownfield guides) and reorganize workflow documentation with linked overviews.

Suggested labels

documentation, enhancement

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

@djm81 djm81 self-assigned this Mar 28, 2026
@djm81 djm81 added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 28, 2026
@djm81 djm81 moved this from Todo to In Progress in SpecFact CLI Mar 28, 2026
@djm81 djm81 merged commit 8665cca into main Mar 28, 2026
21 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in SpecFact CLI Mar 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Change] docs-13: Fix navigation, add search, theme toggle & role-based navigation

1 participant