feat(vscode/docs): unified mustache generation pipeline, dynamic AI skills routes & table directories#481
Open
rodydavis wants to merge 9 commits into
Open
feat(vscode/docs): unified mustache generation pipeline, dynamic AI skills routes & table directories#481rodydavis wants to merge 9 commits into
rodydavis wants to merge 9 commits into
Conversation
…reserve site formatting
…skills to use clean directory tables and isolated subfiles
…rom autocomplete snippets file
…rated skills, preserving them in migration guides
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 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
snippets_data.yaml): Consolidated all reactive primitives into a central configuration schema defining categories, visual examples, and behaviors.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
SKILL.md): Replaced the long monolithic list of APIs insidesignals-dart,signals-flutter, andsignals-preact-dartwith a clean index table (matching the style ofsignals-hooks)./primitives/*.mdsubfiles and class declarations to/api/*.mdsubfiles.core/) to maintain structural consistency across the repository.(prefix: asig)) from skill documentation to keep references purely focused on reactive primitives.3. Interactive Jaspr Docs AI Skills Routes
docs/content/skills/.SKILL.mdpreview bodies inside four-backtickplaintextwrappers to prevent nested Markdown tables or blocks from breaking the Jaspr site's layout.docs/lib/components/navigation.dartto 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]