Skip to content

feat(vscode/docs): unified mustache generation pipeline, dynamic AI skills routes & table directories#481

Open
rodydavis wants to merge 9 commits into
mainfrom
update-vscode-signals-extension
Open

feat(vscode/docs): unified mustache generation pipeline, dynamic AI skills routes & table directories#481
rodydavis wants to merge 9 commits into
mainfrom
update-vscode-signals-extension

Conversation

@rodydavis

@rodydavis rodydavis commented May 29, 2026

Copy link
Copy Markdown
Owner

📝 Description

This PR introduces a comprehensive upgrade to the VS Code Reactivity Snippets extension and establishes a single-source-of-truth generation pipeline. By utilizing YAML-driven configurations and Mustache templates, we have unified framework APIs, editor auto-completes, visual cheat-sheets, and AI developer skills across the repository without code duplication or drift.

🌟 Key Changes

1. Zero-Drift Mustache Generation Pipeline

  • Unified Schema (snippets_data.yaml): Consolidated all reactive primitives into a central configuration schema defining categories, visual examples, and behaviors.
  • Dynamic Compilation (scripts/generate_docs.dart): Overhauled the documentation script to load and compile Mustache templates:
    • vscode_snippets.json.mustache: Generates VS Code snippets with type-safe generic bindings.
    • extension.ts.mustache: Compiles dynamic visual cards for the extension's Webview panel, resolving Node/TS backtick dollar sign interpolation cleanly.
    • skill_definition.md.mustache: Generates high-fidelity AI Developer Skills (SKILL.md) integrated with extracted AST declarations.

2. Table-Based Directories & Modular Skills Layout

  • Table Directory (SKILL.md): Replaced the long monolithic list of APIs inside signals-dart, signals-flutter, and signals-preact-dart with a clean index table (matching the style of signals-hooks).
  • Isolated Subfiles: Moved primitive definitions to modular /primitives/*.md subfiles and class declarations to /api/*.md subfiles.
  • Legacy Cleanup: Cleaned up manual legacy directories (such as core/) to maintain structural consistency across the repository.
  • Stripped Prefix Suffixes: Removed editor autocomplete prefixes (e.g. (prefix: asig)) from skill documentation to keep references purely focused on reactive primitives.

3. Interactive Jaspr Docs AI Skills Routes

  • Automated Routes: The documentation site now dynamically renders dedicated pages for all 6 AI developer skills under docs/content/skills/.
  • Formatting Protection: Wrapped SKILL.md preview bodies inside four-backtick plaintext wrappers to prevent nested Markdown tables or blocks from breaking the Jaspr site's layout.
  • Dynamic Contributors: Added automatic contributions to docs/lib/components/navigation.dart to list all active AI Skills dynamically in the sidebar.

📦 Generation Architecture Flow

graph TD
    YAML[scripts/snippets_data.yaml] -->|Source Schema| Generator[scripts/generate_docs.dart]
    Analyzer[Dart Analyzer Code Extractor] -->|Source AST| Generator
    
    Templates[scripts/templates/] --> Generator
    
    Generator -->|Render Autocomplete| Snippets[editors/vscode/snippets/signals.json]
    Generator -->|Render TypeScript Webview| Extension[editors/vscode/src/web/extension.ts]
    
    Generator -->|Generate Subfiles| Primitives[skills/*/primitives/*.md]
    Generator -->|Generate Subfiles| APIs[skills/*/api/*.md]
    Generator -->|Generate Index Table| Skills[skills/*/SKILL.md]
    
    Generator -->|Generate Plaintext Previews| SkillDocs[docs/content/skills/*.md]
    Generator -->|Inject Sidebar Navigation| Nav[docs/lib/components/navigation.dart]
Loading

@rodydavis rodydavis linked an issue May 29, 2026 that may be closed by this pull request
@rodydavis rodydavis changed the title feat: unify vscode extension and ai developer skills via mustache-driven generator` feat(vscode/docs): unified mustache generation pipeline, dynamic AI skills routes & table directories May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VS-Code Extension update

1 participant