Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
265 commits
Select commit Hold shift + click to select a range
74c1946
chore(commands): rename palette command titles to be self-describing
ElecTreeFrying May 9, 2026
2ab27c6
chore(marketplace): rewrite description, refine keywords, trim catego…
ElecTreeFrying May 9, 2026
009df11
chore(settings): rewrite configuration prose, add enumDescriptions
ElecTreeFrying May 9, 2026
f2deaa7
docs: rewrite README, DEMO, SUPPORT for marketplace polish
ElecTreeFrying May 9, 2026
9a85f18
chore: remove vsc-extension-quickstart.md scaffold artifact
ElecTreeFrying May 9, 2026
66629c3
test: add manual-QA checklist suite under src/test/manual-qa/
ElecTreeFrying May 9, 2026
539ede3
docs(changelog): expand 0.7.0 release notes
ElecTreeFrying May 9, 2026
1c83c5d
test: add pre-built manual-QA fixture workspace under src/test/manual…
ElecTreeFrying May 10, 2026
c11beb2
docs(test): flag manual-qa/ and manual-qa-workspace/ as out-of-scope …
ElecTreeFrying May 10, 2026
cdbedfe
docs(types): correct NotificationType count after 0.7.0 expansion
ElecTreeFrying May 10, 2026
c828db5
docs(manual-qa): rewrite checklists for pre-built workspace and 0.7.0…
ElecTreeFrying May 10, 2026
9f63102
refactor(config): nest AUTO_IMPORT_CONFIG settings, unify preserve alias
ElecTreeFrying May 10, 2026
b9084d9
docs(readme): reformat ToC and widen donations table
ElecTreeFrying May 10, 2026
e374bb6
docs(snippets): qualify preserveScriptFileExtension as user setting i…
ElecTreeFrying May 10, 2026
80f0d90
feat(snippets,commands): scaffold paste-import-with-style command
ElecTreeFrying May 10, 2026
44b0878
feat(notification): add View Supported Files and Paste Now toast actions
ElecTreeFrying May 10, 2026
4634406
feat(notification): add Paste with Style action to copy-success toast
ElecTreeFrying May 10, 2026
d6de36b
feat(config): add setAutoImportSetting writer
ElecTreeFrying May 10, 2026
7146920
feat(notification): add no-configurable-style and default-style-saved…
ElecTreeFrying May 10, 2026
a1fec80
feat(snippets): attach setting metadata to styled variants
ElecTreeFrying May 10, 2026
059c401
feat(commands): add setDefaultImportStyle command
ElecTreeFrying May 10, 2026
9daf2c6
test: cover five-command registration and add style-pickers manual-QA
ElecTreeFrying May 10, 2026
8308b6b
docs: reflect setDefaultImportStyle across CLAUDE.md and READMEs
ElecTreeFrying May 10, 2026
25c0544
feat(snippets): render picker labels as basename, keep insertion path…
ElecTreeFrying May 10, 2026
d51aca1
docs: add IMPORT-STATEMENTS-AUDIT.md and exclude from VSIX bundle
ElecTreeFrying May 11, 2026
e0162d9
docs(changelog): expand 0.7.0 notes with style-picker entries and 202…
ElecTreeFrying May 11, 2026
faf01c5
docs: refresh README/DEMO/SUPPORT for 5-command surface and style pic…
ElecTreeFrying May 11, 2026
2d41d71
docs: align nested guides with 5 commands, 9 notifications, and new w…
ElecTreeFrying May 11, 2026
f27b239
docs(test): add CLAUDE.md guides for manual-qa and manual-qa-workspace
ElecTreeFrying May 11, 2026
9d0c60d
chore(package): refresh marketplace badge URL and pin @types/node
ElecTreeFrying May 11, 2026
8c18307
docs(src): tighten TSDoc on extension, constants, and snippet wrappers
ElecTreeFrying May 11, 2026
a052bf5
docs: add COMMENT-CRITERIA.md to govern TSDoc, CLAUDE.md, and README.…
ElecTreeFrying May 23, 2026
02b8030
docs(src): apply COMMENT-CRITERIA — strip pure-WHAT TSDoc across src …
ElecTreeFrying May 23, 2026
528a2fb
chore: relocate IMPORT-STATEMENTS-AUDIT.md under .claude/import-design/
ElecTreeFrying May 23, 2026
216f2eb
feat(snippets): add MDX destination support
ElecTreeFrying May 23, 2026
f38dfda
docs: refine COMMENT-CRITERIA — opt-in TSDoc on private helpers / uni…
ElecTreeFrying May 23, 2026
049a0a4
refactor(snippets): reframe TS Angular auto-naming as legacy back-compat
ElecTreeFrying May 23, 2026
f8f615c
docs(snippets): reframe Angular auto-naming as legacy back-compat
ElecTreeFrying May 23, 2026
d3f0769
docs: propagate generateImportName rename across standards + manual-QA
ElecTreeFrying May 23, 2026
68a0166
docs(src): strip all TSDocs ahead of comment-criteria audit
ElecTreeFrying May 23, 2026
78c9e67
docs: add .mdx to CROSS_IMPORT_DESTINATIONS list + guard test dir as …
ElecTreeFrying May 24, 2026
0cf7ef6
refactor(snippets): modernize TS picker — add type-only, mixed, dynam…
ElecTreeFrying May 24, 2026
2522a0d
refactor(snippets): modernize JS picker — add mixed/await-import, dro…
ElecTreeFrying May 24, 2026
c757fa7
feat(snippets): add .svg, .avif, .pdf to JSX/TSX/MDX source dispatch
ElecTreeFrying May 24, 2026
0d63588
refactor(snippets): overhaul Markdown image picker — add bare inline …
ElecTreeFrying May 24, 2026
0370456
refactor(snippets): overhaul SCSS picker — add @use-as/@forward, flip…
ElecTreeFrying May 24, 2026
81e3105
refactor(snippets): overhaul HTML script picker — add defer/module/as…
ElecTreeFrying May 24, 2026
8807537
refactor(snippets): overhaul HTML image picker — add lazy-load/CLS-di…
ElecTreeFrying May 24, 2026
7b4bc85
fix(snippets): emit default import for CSS Modules in JSX/TSX/MDX
ElecTreeFrying May 24, 2026
90fac54
feat(types): add media/text-track file extensions, gating tables, and…
ElecTreeFrying May 24, 2026
4bde972
feat(snippets): add media import support for JSX/TSX/MDX and HTML vid…
ElecTreeFrying May 24, 2026
1f4f07d
refactor(snippets): move per-language builders into languages/ subdir…
ElecTreeFrying May 24, 2026
b6c33c0
feat(snippets): add Vue single-file component support (Phase 1)
ElecTreeFrying May 24, 2026
3b84347
docs: fix 27 stale claims across CLAUDE.md and README.md guides
ElecTreeFrying May 24, 2026
ed0ecc3
feat(snippets): add Svelte single-file component support (Phase 2)
ElecTreeFrying May 24, 2026
16f6864
feat(snippets): add Astro single-file component support (Phase 3)
ElecTreeFrying May 24, 2026
9508c69
docs: fix 25 stale claims across CLAUDE.md and README.md guides (Step…
ElecTreeFrying May 24, 2026
42bd4df
docs: fix 13 stale claims across CLAUDE.md and README.md guides
ElecTreeFrying May 24, 2026
a6bf6e9
refactor(snippets): remove duplicate mdx.ts, merge into tsx dispatch
ElecTreeFrying May 24, 2026
53c2f29
refactor(snippets): consolidate vue/svelte/astro into framework-compo…
ElecTreeFrying May 25, 2026
981dbdd
refactor(snippets): rename _shared.ts to _react.ts
ElecTreeFrying May 25, 2026
2f39a3b
docs: fix stale MEDIA/TEXT_TRACK/IMAGE consumer lists in guides
ElecTreeFrying May 25, 2026
b2a7235
docs: fix stale _shared.ts refs, add variants.ts sync point across gu…
ElecTreeFrying May 25, 2026
db31a19
fix(snippets): add tabstop placeholders to markdown image hover-text
ElecTreeFrying May 25, 2026
bcdf53b
refactor(config): type-narrow setting keys per namespace
ElecTreeFrying May 25, 2026
9c4803f
refactor(editor): generalize stylesheet cursor repositioning
ElecTreeFrying May 25, 2026
e548f73
docs: update config, snippets, and test directory guides
ElecTreeFrying May 25, 2026
2568353
test: add media, framework-component, and extended fixture files
ElecTreeFrying May 25, 2026
69de4ab
docs(manual-qa): update checklists for new styles, fixtures, and gati…
ElecTreeFrying May 25, 2026
0c06229
feat(editor): respect placement setting inside Astro frontmatter
ElecTreeFrying May 25, 2026
f644484
fix(editor): insert CSS/SCSS image url() inline at exact cursor position
ElecTreeFrying May 25, 2026
b01185b
refactor(editor): remove three dead import indicators
ElecTreeFrying May 25, 2026
34d5304
feat(editor): constrain Vue/Svelte placement to <script> block
ElecTreeFrying May 25, 2026
e3503c5
fix(editor): skip comment lines in Bottom placement indicator scan
ElecTreeFrying May 25, 2026
df76eea
fix(editor): align placement default fallback with package.json default
ElecTreeFrying May 25, 2026
533e69a
docs(manual-qa): update placement checklist for audit fixes
ElecTreeFrying May 25, 2026
041e5a0
test(path): add computeRelative test suite
ElecTreeFrying May 25, 2026
2ff3390
test(path): add extractFileExtension and removeFileExtension test suite
ElecTreeFrying May 25, 2026
f735309
test(path): add extractFileExtension and removeFileExtension test suite
ElecTreeFrying May 25, 2026
7ddc2fa
test(path): add determineImportType test suite
ElecTreeFrying May 25, 2026
d123309
test(constants): add extension gating table test suite
ElecTreeFrying May 25, 2026
7714a36
test(snippets): add style tables and resolveStyleIndex test suite
ElecTreeFrying May 25, 2026
a6d5139
test: add demo workspace for integration testing
ElecTreeFrying May 25, 2026
3e8b8c3
fix(commands): prefix floating promise with void in copy-file-path
ElecTreeFrying May 25, 2026
9384360
test: remove superseded by-style and class-name test files
ElecTreeFrying May 25, 2026
4c59739
docs(test): clear test directory guides and update manual-QA docs
ElecTreeFrying May 25, 2026
82b2e6a
docs: update subdirectory guides for class-name module and accuracy
ElecTreeFrying May 25, 2026
9d43375
docs: update root CLAUDE.md for class-name detection and four-site sync
ElecTreeFrying May 25, 2026
c34b762
chore: update package-lock.json
ElecTreeFrying May 25, 2026
07af0a8
test(snippets): add class-name detection test suite
ElecTreeFrying May 25, 2026
13626b8
test(snippets): add JavaScript import style test suite
ElecTreeFrying May 25, 2026
340ae43
test: clean up placeholder imports in demo workspace files
ElecTreeFrying May 25, 2026
a101adb
test(snippets): add CSS import style test suite
ElecTreeFrying May 25, 2026
14d620b
test(snippets): add SCSS import style test suite
ElecTreeFrying May 25, 2026
8afbf7c
feat(editor): add indentation-aware insertion for Astro frontmatter a…
ElecTreeFrying May 25, 2026
0ca7f16
feat(commands): add no-extension notification for extensionless files
ElecTreeFrying May 25, 2026
d5a2493
docs: update subdirectory guides for no-extension notification
ElecTreeFrying May 25, 2026
fff639e
test(snippets): add TypeScript import style test suite
ElecTreeFrying May 25, 2026
8258617
docs: add extension specification document
ElecTreeFrying May 25, 2026
09e54cc
docs: add README draft and demo animation
ElecTreeFrying May 25, 2026
12d43b4
test(snippets): add HTML import style test suite
ElecTreeFrying May 25, 2026
c596d74
test(snippets): add Markdown import style test suite
ElecTreeFrying May 25, 2026
02b79c0
test(snippets): add JSX import test suite
ElecTreeFrying May 25, 2026
83c1f18
test(snippets): add TSX import test suite
ElecTreeFrying May 25, 2026
3cc1536
test(snippets): add framework-component import test suite
ElecTreeFrying May 25, 2026
e53f0d5
test(snippets): add dispatch routing test suite
ElecTreeFrying May 25, 2026
da49cb4
test(snippets): add variants style-picker test suite
ElecTreeFrying May 25, 2026
214be34
test(editor): add insertImportSnippet placement test suite
ElecTreeFrying May 25, 2026
927269b
test(commands): add executePasteImport test suite
ElecTreeFrying May 25, 2026
bdadc49
fix(commands): add framework-component gating to picker commands
ElecTreeFrying May 25, 2026
c536a12
fix(snippets): add .jsx fallback for TSX destinations
ElecTreeFrying May 25, 2026
df4f0d3
test: add @forward indicators and Astro frontmatter QA coverage
ElecTreeFrying May 25, 2026
4e7fae2
docs: update subdirectory guides
ElecTreeFrying May 25, 2026
19cda76
docs: fix SPEC wording for clipboard validation and toasts
ElecTreeFrying May 25, 2026
81b296a
docs: rewrite README for 1.0
ElecTreeFrying May 25, 2026
81855b6
docs: rewrite SUPPORT for 1.0
ElecTreeFrying May 25, 2026
82480cd
docs: remove obsolete development artifacts
ElecTreeFrying May 25, 2026
5bc17ef
docs: rewrite CHANGELOG for 1.0 release
ElecTreeFrying May 25, 2026
e746e1c
chore: expand .gitignore and update marketplace metadata
ElecTreeFrying May 25, 2026
d553650
refactor: relocate QA directories from src/test/ to top-level qa/
ElecTreeFrying May 25, 2026
b40e0e0
fix(test): update FIXTURE_ROOT paths after QA directory relocation
ElecTreeFrying May 25, 2026
9ba7d41
chore: update tsconfig and eslint config after QA directory relocation
ElecTreeFrying May 25, 2026
1e3c450
docs: update paths in QA and project documentation after relocation t…
ElecTreeFrying May 25, 2026
0728400
test(constants): add content and negative assertions for gating tables
ElecTreeFrying May 25, 2026
1bda5ad
test(commands): add cross-import rejection and acceptance pairs
ElecTreeFrying May 25, 2026
72474f2
test(snippets): add preserveStylesheetFileExtension coverage
ElecTreeFrying May 25, 2026
f54c8e7
docs: add README and CLAUDE guides to qa/
ElecTreeFrying May 25, 2026
eca8830
chore: exclude dev and internal files from VSIX package
ElecTreeFrying May 25, 2026
27fe9e8
chore: lower VS Code engine minimum to ^1.115.0
ElecTreeFrying May 25, 2026
3019e64
docs: update CHANGELOG release date and engine version
ElecTreeFrying May 25, 2026
9896a25
docs: condense root guide and fix commands clause count
ElecTreeFrying May 25, 2026
2e8d8c6
refactor: parameterize snippet pipeline and extract shared modules
ElecTreeFrying May 26, 2026
5a653a9
feat: add drag-and-drop import from Explorer
ElecTreeFrying May 26, 2026
b128760
test: add gating and placement test suites
ElecTreeFrying May 26, 2026
01e9194
docs: update subdirectory guides for refactoring and DnD
ElecTreeFrying May 26, 2026
6d2df25
docs: update public docs and changelog for v1.0.0
ElecTreeFrying May 26, 2026
e83bcda
docs: update QA checklists and workspace guides
ElecTreeFrying May 26, 2026
f4565cd
chore: add drag-and-drop demo GIF and update extension icon
ElecTreeFrying May 26, 2026
bb757d1
chore: exclude dev files from VSIX and use remote image URLs
ElecTreeFrying May 26, 2026
fd4752b
fix(editor): prefer instance script over module script in SFC placement
ElecTreeFrying May 26, 2026
423cb0d
fix(drop): use proper edit kind and MIME type filter for drop provider
ElecTreeFrying May 26, 2026
94aba74
docs(qa): add hyperlinks to checklist file references
ElecTreeFrying May 26, 2026
1c539b4
docs(qa): add hyperlinks to checklist references in QA guides
ElecTreeFrying May 26, 2026
fa4213d
docs: add hyperlinks to cross-references across all guides
ElecTreeFrying May 26, 2026
a0ddffa
docs: fix VS Code engine version badge and references in README
ElecTreeFrying May 26, 2026
db6af5c
docs: update taglines to mention drag-and-drop
ElecTreeFrying May 26, 2026
bd235b4
docs(qa): rewrite setup and onboarding for external testers
ElecTreeFrying May 26, 2026
d87732c
docs(qa): update checklist range references and add CSS Module fixture
ElecTreeFrying May 26, 2026
19bc98c
docs(qa): add CSS Module and exported-class detection test cases
ElecTreeFrying May 26, 2026
9d63800
docs(qa): fix expected import shapes, paths, and toast messages
ElecTreeFrying May 26, 2026
0de4302
fix(editor): update supported-pairs URL anchor to match README heading
ElecTreeFrying May 27, 2026
6744b60
fix(test): use actual Unicode character in café-menu path fixture
ElecTreeFrying May 27, 2026
0de981f
test: add placement edge cases and TSX class-detection skip coverage
ElecTreeFrying May 27, 2026
cd742db
docs(qa): scaffold qa.new/ with restructured checklists and workspace…
ElecTreeFrying May 27, 2026
f369326
docs(qa): fix stale source pointer, placement line numbers, and rejec…
ElecTreeFrying May 29, 2026
efc1424
fix(placement): treat Markdown '*' lines as content, not comment cont…
ElecTreeFrying May 30, 2026
2247983
test(styles): assert package.json ↔ _styles.ts enum byte-equality
ElecTreeFrying May 30, 2026
a165bed
test(drop): cover provider gating, same-file, empty-snippet, happy paths
ElecTreeFrying May 30, 2026
bf9fd43
test(notification): pin copy-success button labels to copy-file-path …
ElecTreeFrying May 30, 2026
905d851
test: assert .ts/.tsx → .jsx hits the not-supported backstop
ElecTreeFrying May 30, 2026
a86d81d
test(constants): add MEDIA-excludes-.vtt and category disjointness ch…
ElecTreeFrying May 31, 2026
19deee1
test(snippets): cover .json same-ext backstop and variant value round…
ElecTreeFrying May 31, 2026
f056134
test(placement): characterize SFC bound edge cases + Cursor-on-fence …
ElecTreeFrying May 31, 2026
cdf4e93
test(notification): pin not-supported self-handler label + empty-clip…
ElecTreeFrying May 31, 2026
bebd22c
refactor(gating): drop redundant .html→.html clause (covered by HTML-…
ElecTreeFrying May 31, 2026
ea53f18
fix(path): drop redundant ./ prefix on ../ paths (case-only-differing…
ElecTreeFrying May 31, 2026
71eeeab
docs(snippets): add languages/ subdirectory guides
ElecTreeFrying May 31, 2026
c3adb2f
Revert "refactor(gating): drop redundant .html→.html clause (covered …
ElecTreeFrying May 31, 2026
e87ee80
docs(changelog): mark 1.0.0 unreleased and correct bundle size
ElecTreeFrying May 31, 2026
699aaeb
docs(readme): update bundle size to ~8 KB gzipped
ElecTreeFrying May 31, 2026
e043e80
docs(support): correct engine version, notification wording, and bund…
ElecTreeFrying May 31, 2026
f1744bf
docs: refresh CLAUDE.md subdirectory table and mirror-sync rule
ElecTreeFrying May 31, 2026
0f2da32
docs(qa): concretize general checklist with named fixtures
ElecTreeFrying May 31, 2026
ed2f2b2
docs(qa): add spec-driven checklist codegen pipeline spec
ElecTreeFrying May 31, 2026
a7e1061
chore: ignore .mov assets and .DS_Store, exclude qa-pipeline from VSIX
ElecTreeFrying May 31, 2026
91178b4
docs: sync src/ subdirectory CLAUDE.md and README.md guides with code
ElecTreeFrying May 31, 2026
b7e51c2
chore(vscode): nest workflow spec docs under their .js scripts
ElecTreeFrying May 31, 2026
3cbe017
chore(license): extend copyright range to 2020-2026
ElecTreeFrying May 31, 2026
a8a7277
docs(spec): sync behavioral detail with current code
ElecTreeFrying May 31, 2026
7b40358
docs(support): add CSS Modules FAQ, indentation + .mdx notes
ElecTreeFrying May 31, 2026
fdb2745
docs(changelog): record placement and import-routing fixes
ElecTreeFrying May 31, 2026
08759c0
docs: refine src/ subdirectory guides to match code
ElecTreeFrying May 31, 2026
0b3dfa4
docs(spec): close 23 qa-coverage gaps so RECIPE/PROFILE can regenerat…
ElecTreeFrying Jun 1, 2026
88ad8f8
chore: tidy .gitignore — fix the assets/*.mov line, ignore generated …
ElecTreeFrying Jun 1, 2026
382e1fc
docs(qa-pipeline): scaffold qa.new/_authoring (RECIPE, LOOP-PROMPT, P…
ElecTreeFrying Jun 1, 2026
e4c8240
docs(qa-pipeline): populate PROFILE.md — 12 source-verified destinati…
ElecTreeFrying Jun 1, 2026
a2756c2
docs(qa-pipeline): regenerate typescript.md through the codegen pipel…
ElecTreeFrying Jun 1, 2026
cdef52b
docs(qa-pipeline): generate javascript.md checklist (session 4a, Phas…
ElecTreeFrying Jun 1, 2026
eb32a28
docs(qa-pipeline): build javascript workspace + propagate (session 4b…
ElecTreeFrying Jun 1, 2026
05e2e19
docs(qa-pipeline): generate css.md + build css workspace + propagate …
ElecTreeFrying Jun 1, 2026
c9c727b
docs(qa-pipeline): make edge-cases general-owned — drop typescript/ed…
ElecTreeFrying Jun 1, 2026
f5d7bde
docs(qa-pipeline): add session-prompts driver for sessions 4–25
ElecTreeFrying Jun 1, 2026
9fa09b6
chore: nest qa-coverage.md under qa-coverage.js in the explorer
ElecTreeFrying Jun 1, 2026
15cd8b5
docs(qa-pipeline): generate scss.md + build scss workspace + propagat…
ElecTreeFrying Jun 2, 2026
83f8bde
docs(qa-pipeline): generate html.md + build html workspace + propagat…
ElecTreeFrying Jun 2, 2026
e591017
chore(qa): copy demo-workspace into qa.new + wire docs and eslint
ElecTreeFrying Jun 2, 2026
c0f39fd
docs(qa-pipeline): generate markdown.md checklist (session 8a, Phase A)
ElecTreeFrying Jun 2, 2026
e108427
docs(qa-pipeline): build markdown workspace + propagate (session 8b, …
ElecTreeFrying Jun 2, 2026
62b737a
test(snippets): guard JSX/TSX/MDX source-switch parity (_react ↔ vari…
ElecTreeFrying Jun 2, 2026
c849151
test(drop,editor): pin DROP_LANGUAGE_SELECTORS + getFilePathInfoFromP…
ElecTreeFrying Jun 2, 2026
3b57d1c
test(config,commands): settings round-trip, copy-file-path success, c…
ElecTreeFrying Jun 2, 2026
ce2c0ee
test(drop): cover resolveSourcePath text/plain fallback + null branches
ElecTreeFrying Jun 2, 2026
fbca0d4
test(commands): cover paste-import-with-style + set-default-import-st…
ElecTreeFrying Jun 2, 2026
f95a998
test(editor): assert placement parity between command and drop flows
ElecTreeFrying Jun 2, 2026
0c65290
docs(qa-pipeline): generate jsx.md + build jsx workspace + propagate …
ElecTreeFrying Jun 2, 2026
3c027ba
chore(test): add code coverage via @vscode/test-cli --coverage
ElecTreeFrying Jun 2, 2026
52c13f4
test(commands): cover guard branches across the command surface
ElecTreeFrying Jun 2, 2026
9655586
test(snippets,config,extension): pin cross-cutting sync invariants
ElecTreeFrying Jun 2, 2026
087cbe0
test(snippets): assert buildSnippet dispatch + variant snippet/label …
ElecTreeFrying Jun 2, 2026
b9073a8
test(editor,drop): cursor-inside placement + drop framework placement
ElecTreeFrying Jun 2, 2026
2dcaf6f
test(gating): allow-list accept/reject boundaries per destination
ElecTreeFrying Jun 2, 2026
6089cf1
docs(test): sync src/test guides with the expanded suite + coverage
ElecTreeFrying Jun 2, 2026
842b950
docs: document the test:coverage script + sourceMap
ElecTreeFrying Jun 2, 2026
d0a20e5
docs(qa): correct FIXTURE_ROOT test count (8 -> 15)
ElecTreeFrying Jun 2, 2026
2c27ba6
docs(qa): sync checklist setting labels to package.json titles
ElecTreeFrying Jun 2, 2026
424c278
docs(qa): resync general.md labels + fix Default-style-saved toast
ElecTreeFrying Jun 2, 2026
2001b3b
refactor(snippets): extract buildAssetImportStatement shared asset sw…
ElecTreeFrying Jun 2, 2026
a85af78
fix(snippets): assets into Vue/Svelte/Astro emit correct default imports
ElecTreeFrying Jun 2, 2026
b0a2505
fix(snippets): guard Angular-legacy import name against invalid ident…
ElecTreeFrying Jun 2, 2026
e978631
docs(qa-pipeline): generate tsx.md + build tsx workspace + propagate …
ElecTreeFrying Jun 2, 2026
219a6cd
docs(snippets,types): sync guides with the buildAssetImportStatement …
ElecTreeFrying Jun 2, 2026
eea7c41
docs: correct framework-asset behavior in README/SPEC/SUPPORT + chang…
ElecTreeFrying Jun 3, 2026
47bef9b
docs(qa-pipeline): generate mdx.md + build mdx workspace + propagate …
ElecTreeFrying Jun 3, 2026
0a00850
docs(qa-pipeline): resync PROFILE + RECIPE with framework-asset + Ang…
ElecTreeFrying Jun 3, 2026
6e0e73e
docs(qa-pipeline): resync session-prompts + spec + add freeze-refresh…
ElecTreeFrying Jun 3, 2026
95c51be
docs(qa): fix stale source provenance in jsx + scss checklists
ElecTreeFrying Jun 3, 2026
045d898
docs(qa): add Angular invalid-identifier guard case to ts/tsx/mdx che…
ElecTreeFrying Jun 3, 2026
54afc42
docs(qa-pipeline): fix faithfulness-check findings (framework gating …
ElecTreeFrying Jun 3, 2026
04e55a4
docs(qa-pipeline): generate vue.md + build vue workspace + propagate …
ElecTreeFrying Jun 3, 2026
e386c6d
docs(qa-pipeline): generate svelte.md + build svelte workspace + prop…
ElecTreeFrying Jun 3, 2026
56d8975
chore(vscode): remove workflow-spec file-nesting rules
ElecTreeFrying Jun 3, 2026
03a2237
test: decouple suite from qa/ via co-located src/test/fixtures
ElecTreeFrying Jun 3, 2026
b025307
docs(qa-pipeline): generate astro.md + build astro workspace + propag…
ElecTreeFrying Jun 4, 2026
ebdfbdb
refactor: restructure docs + QA trees — archive qa-pipeline, open doc…
ElecTreeFrying Jun 4, 2026
2be3f59
docs(qa): pin Pick-Style QuickPick description tags in script/framewo…
ElecTreeFrying Jun 4, 2026
d666b44
docs(qa): pin byte-exact created-on-drop wrapper in framework §9.10
ElecTreeFrying Jun 4, 2026
0f0fda8
docs: resync src guides + SPEC with code; simplify empty-clipboard toast
ElecTreeFrying Jun 5, 2026
f2cfbb7
docs: explain why drag-and-drop intentionally skips clearNotifications()
ElecTreeFrying Jun 5, 2026
0e7020f
feat: add settings commands (placement, toggle preserve-ext, reset st…
ElecTreeFrying Jun 6, 2026
4ba0e7b
docs(qa): add settings-command cases, sync drop/isImportLine/Angular …
ElecTreeFrying Jun 6, 2026
4230d4e
chore: track shared .claude/ tooling + .codex config; drop stale _che…
ElecTreeFrying Jun 6, 2026
c0d393c
fix(drop): match .mdx by file pattern so the drop fires when it opens…
ElecTreeFrying Jun 21, 2026
2d85748
chore(release): prep v1.0.0 — marketplace metadata + wider compatibility
ElecTreeFrying Jun 21, 2026
319a244
docs(changelog): reconstruct full release history from git
ElecTreeFrying Jun 21, 2026
6d4b6d3
feat(latex): add LaTeX (.tex) as the 13th import destination
ElecTreeFrying Jun 21, 2026
05c7ea2
docs: add ROADMAP.md, link from README, exclude from VSIX
ElecTreeFrying Jun 23, 2026
60e0a97
test(latex): cover forced-cursor + cursor-column placement for .tex
ElecTreeFrying Jun 23, 2026
dacf12f
docs: resync src guides + SUPPORT FAQ with current code
ElecTreeFrying Jun 23, 2026
20369ba
docs(changelog): correct v1.0.0 notes to match shipped behavior
ElecTreeFrying Jun 23, 2026
e3f9399
chore(workflows): refine two-site button-label + four-site extension …
ElecTreeFrying Jun 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 48 additions & 0 deletions .claude/agents/changelog-drafter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: changelog-drafter
description: Use before publishing a release — or any time after a batch of commits — to draft and incrementally update the Unreleased section of CHANGELOG.md from commits since the last release tag. Triages to user-facing changes (feat/fix/perf + breaking), reads their diffs, and writes grouped Keep-a-Changelog entries. Idempotent — merges new changes into the existing Unreleased section without duplicating entries, and never touches published versions or code.
tools: Bash, Read, Grep, Glob, Edit, Write
model: opus
color: green
---

You draft and maintain the **Unreleased** section of `CHANGELOG.md` for this VS Code extension, from the commits made since the last published release. You produce a reviewable DRAFT — you never publish, never commit, and never edit code.

## Operating principle
Incremental and idempotent. You are meant to be run repeatedly as commits accumulate before a release. Each run you MERGE any new user-facing changes into the existing Unreleased section — you do not duplicate entries already there, and you never alter already-published version sections. Scope: committed work only (commits since the last release tag); ignore uncommitted working-tree changes.

## Step 1 — Find the baseline (last release)
Run `git describe --tags --abbrev=0` to get the latest release tag (e.g. `v0.6.1`). Call it BASE. Use the tag, NOT `package.json`'s `version` — the version field can lag behind the tag. If there are no tags, report that and ask the user for a baseline commit before proceeding.

## Step 2 — Collect user-facing candidates (commits since BASE)
List commits with `git log BASE..HEAD --pretty=format:'%h %s'`. Triage:
- **Include**: `feat`, `fix`, `perf`, and anything marked breaking (`feat!`, `fix!`, or a `BREAKING CHANGE:` footer).
- **Exclude by default**: `docs`, `test`, `chore`, `refactor`, `ci`, `style`, `build` — UNLESS the diff shows a user-visible behaviour change.
- **Don't trust subjects blindly**: for commits with vague or junk subjects (e.g. `adsf`), look at the diff and judge by user impact, not the message.
Most commits will not be changelog material — that's expected; keep only what a user would notice.

## Step 3 — Understand each candidate from its diff
For each kept commit, read enough of the diff (`git show <hash>`, or `git log -p BASE..HEAD -- <path>`) to write a **user-facing** line — what the user can now do or what changed for them — not a restatement of the commit subject. Example: `feat(snippets): add MDX destination support` → "MDX (`.mdx`) is now a supported import destination." Group related commits into one entry (e.g. several "Vue/Svelte/Astro Phase 1/2/3" commits → a single framework-component entry; multiple toast/notification commits → one entry).

## Step 4 — Classify into Keep-a-Changelog groups
- **Breaking Changes** — anything that changes behaviour, defaults, settings, or the minimum VS Code version that users rely on. Detect these from the diffs (removed/reordered setting enums, changed defaults, raised engine version). Include a short migration note.
- **Added** — new features, commands, languages, settings.
- **Changed** — non-breaking behaviour/UX changes.
- **Fixed** — bug fixes a user would notice.
Drop internal-only changes even when `feat`/`fix`-prefixed (e.g. `fix(test): …`, internal scaffolding with no user effect). Judge by user impact, not prefix.

## Step 5 — Merge into the Unreleased section (idempotent)
1. Read `CHANGELOG.md`. Find the top Unreleased section — a heading like `## [Unreleased]` or `## [x.y.z] - Unreleased`. If none exists, create one directly under the `# Changelog` title and above the most recent published version.
2. For each entry you produced: if an equivalent bullet already exists in the Unreleased section, **skip it** (or lightly refine only if a newer commit changed the story) — never duplicate. Add only genuinely-new entries, under the correct group (create the group subheading if missing).
3. Preserve **byte-for-byte**: every existing Unreleased entry you are not refining, and every already-published version section. Only the Unreleased section may grow.
4. Match the file's existing voice exactly — bold lead-ins, bullet phrasing, migration-note style. Use the existing entries as your exemplar.
5. Leave the version number/date as the human set it (e.g. keep `## [1.0.0] - Unreleased`; don't invent a number or date). The release version + date are chosen at publish time.

## Step 6 — Report
Output: the BASE tag used; commits scanned vs. user-facing kept; which entries you ADDED this run vs. which already existed (skipped); and the resulting Unreleased section. End by reminding the user this is a draft to review before `vsce publish`, and that the version number + date are finalized at release.

## HARD RULES — never violate
- Edit ONLY `CHANGELOG.md`, and within it ONLY the Unreleased section. Never modify published version sections; never touch code, tests, `package.json`, `.claude/`, or `process/`.
- Use git for READS only — never commit, tag, push, or run `vsce publish`.
- Every bullet must trace to a real commit/diff. Never invent changes.
- Draft only. The human reviews and publishes.
114 changes: 114 additions & 0 deletions .claude/agents/doc-sync-auditor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
name: doc-sync-auditor
description: "Use after changing code under src/ (or before committing) to verify each affected directory's CLAUDE.md and README.md are still in sync with the code. Incremental and change-scoped — audits ONLY the directories changed since the last reviewed commit (tracked in a watermark file), never the whole tree. Handles file relocations (audits both the old and new dir) and the registration tables + cross-doc links that adds/removes/renames break (root CLAUDE.md is report-only). Aligns with the repo's /_rot taxonomy: stales, drifts, gaps, orphans, broken invariants."
tools: Bash, Read, Grep, Glob, Edit, Write
model: opus
color: yellow
---

You are the doc-sync auditor for this VS Code extension. Every directory under `src/` (and `src/` itself)
ships a `CLAUDE.md` (working/editing guidance: conventions, the cross-cutting sync rules, gotchas,
dependency-direction constraints) paired with a `README.md` (navigation/onboarding: file inventory,
public exports, "where to add code"). Your job: when code under `src/` changes, keep those two files
truthful — WITHOUT reading the whole tree.

## Operating principle
Incremental and change-scoped. Inspect only the directories whose code changed since the last reviewed
commit. Never scan all of `src/`. The watermark file is your ONLY memory across runs — you remember
nothing else, so you MUST read it at the start and write it at the end.

Two triggers, both change-scoped: (1) a file's *content* changed → audit its owning dir's pair; (2) the
change is *structural* (a file added / deleted / renamed, or a dir appeared / disappeared) → also audit the
**interconnection layer** that structural change touches — the affected dirs' README inventories and the
registration tables (`src/README.md`, `src/CLAUDE.md`; root `CLAUDE.md` report-only). Still never scan the
whole tree — only the sites the change implicates.

## Step 1 — Resolve the review range
Watermark file: `.claude/agents/state/doc-sync-watermark.txt` (one line: a commit SHA).
1. If the task message gives an explicit base ref/hash, use it as BASE (one-off override); skip to Step 2.
2. Read the watermark file.
- If it holds a SHA that is a real, reachable ancestor of HEAD — verify with
`git cat-file -e <sha>^{commit}` AND `git merge-base --is-ancestor <sha> HEAD` — set BASE=<sha>.
- If the file is missing/empty, or the SHA is invalid/unreachable (e.g. after a rebase or amend),
set BASE=HEAD (this run reviews only uncommitted work) and note you are seeding fresh. Never audit
the whole history automatically; for a wider backfill the user seeds the watermark or passes an override.

## Step 2 — Compute the changed file set (run git; never guess)
Collect changed paths under `src/` for BASE..HEAD plus the working tree:
- `git diff --name-status -M --find-renames BASE HEAD -- src/` # committed-but-unreviewed; `R` lines = moves
- `git status --porcelain -- src/` # uncommitted: staged, unstaged, untracked
Union them. (When BASE=HEAD the first command is empty and only uncommitted work is in scope.)
**Relocations:** an `R` line is a moved file — map it to BOTH its old owning dir (→ Orphan check) and its
new owning dir (→ Gap check), and flag any registration-table row or cross-doc link that named the old path.
(Uncommitted moves may surface as a `D` + untracked `??` pair rather than `R` — treat a delete + add of the
same basename across dirs as a likely move.)

## Step 3 — Map changed files to owning doc-directories
For each changed path under `src/`:
- Walk up its directory chain; take the nearest ancestor (itself or above) containing BOTH
`CLAUDE.md` and `README.md`. That is its owning doc-dir.
- Files directly in `src/` (e.g. `extension.ts`, `gating.ts`) map to `src/`.
- Files under `src/snippets/languages/` have no local pair → map up to `src/snippets/`.
- SKIP everything under `src/test/**` (no doc pairs) and skip the doc files themselves.
- A **renamed/moved** file (status `R`, or a delete+add pair) contributes BOTH its old and new owning dir
to AFFECTED DIRS — the old dir for the Orphan it leaves behind, the new dir for the Gap it creates.
Dedupe into a set of AFFECTED DIRS. If empty: report "no code changes under src/ since BASE — nothing
to audit" and go to Step 6 (still advance the watermark).

**Structural changes pull in the interconnection sites.** If the change set added, deleted, or renamed any
file — or a whole dir appeared/disappeared — also put the **registration sites** in scope: `src/README.md`
+ `src/CLAUDE.md` (editable) and root `CLAUDE.md` (report-only), since a dir-level add/remove/rename rots
their tables. Pure in-place content edits do NOT trigger this. This is the only time you read outside the
changed dirs, and you read just those three files — never the whole tree.

## Step 4 — Audit each affected dir
For each affected dir, read (a) its in-scope code changes — `git diff BASE -- <dir>` plus uncommitted —
and (b) that dir's `CLAUDE.md` and `README.md`. Read ONLY these; do not wander the rest of the tree.
Judge against the /_rot taxonomy:
- Stale — a statement no longer true.
- Drift — doc and code diverged; watch byte-exact contracts and the cross-cutting sync tables
(four-site extension sync, three-site config sync, two-site button labels, runtime-type mirrors).
- Gap — the change added something the docs don't cover.
- Orphan — docs reference a file/symbol/path that was renamed or deleted.
- Broken invariant — a documented invariant or sync contract is now violated (dependency-direction
rule, the "no `vscode` import in path/" rule, etc.).
Lens per file: CLAUDE.md → conventions, sync rules, gotchas, dependency direction. README.md → file
inventory, public exports, "where to add code". Cite `file:line` for both the doc claim and the code
change behind each finding.
**Interconnection (when a dir is added/removed/renamed):** the registration tables (root `CLAUDE.md`'s
subdirectory-guides table, `src/README.md`, `src/CLAUDE.md`) and relative cross-doc links rot too. Fix the
`src/README.md` / `src/CLAUDE.md` tables when `src/` is in scope; **flag root `CLAUDE.md` drift in the
report — never edit it** (per the Step 5 "never touch root" rule).
When a file or dir was **renamed or deleted**, you already know the old path from Step 2 — run ONE targeted
grep for inbound references to it (`grep -rn "<old-path>" --include=*.md src CLAUDE.md`) and flag each
surviving reference as an Orphan. That single bounded grep is the change-scoped link check — not a tree
walk. Curation guard: the registration tables are *curated*, so a newly-added dir may legitimately be
unlisted (e.g. `src/test/fixtures/`) — a **dead row** (points at a gone dir) is high-confidence; a
**missing row** is advisory, flag only a dir that clearly belongs.

## Step 5 — Fix (default mode: docs-only)
Edit ONLY `CLAUDE.md` / `README.md` in affected dirs to correct findings. Keep edits minimal and match
the existing doc voice/structure.
HARD RULES — never violate:
- Never edit code, tests, config, package.json, or any file other than those two doc files in affected dirs.
- Never touch the root `README.md` or root `CLAUDE.md`, anything under `.claude/` (except your watermark file), or `process/`.
- Registration-table fixes land in `src/README.md` / `src/CLAUDE.md` (both live in `src/`, an affected dir, so they're editable); root `CLAUDE.md` table drift is **reported, never edited**.
- Use git for READS only; never run a mutating git command (no add/commit/checkout/reset/tag/stash).
(If the task says "report only", skip edits and list the exact change you'd make per finding instead.)

## Step 6 — Advance the watermark
Write `git rev-parse HEAD` to `.claude/agents/state/doc-sync-watermark.txt`, creating the dir/file if
needed. Uncommitted changes have no SHA and are intentionally re-checked each run until committed; a
freshly committed change may be re-reviewed once — acceptable and safe.

## Output
Return a concise report:
1. Review range: BASE..HEAD (+ uncommitted), or "seeded fresh".
2. Affected dirs (or "none").
3. Per dir: findings grouped by category (Stale / Drift / Gap / Orphan / Broken invariant) with
`file:line`, and what you changed (or proposed).
- Plus: relocations reconciled (old-dir Orphan + new-dir Gap) and interconnection findings (registration
tables / cross-doc links), with root `CLAUDE.md` items marked **report-only**.
4. New watermark SHA written.
5. One-line verdict.
Stop and ask only if a finding implies a CODE bug (not a doc fix) or the right doc fix is genuinely ambiguous.
Loading