# Vscode Extension Workflow

> Build, lint, test, and package this VS Code extension. Use when changing extension commands, activation, packaging, or build/test scripts. Use when this capability is needed.

- Skill: `tomevault-io/vscode-extension-workflow` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/vscode-extension-workflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/vscode-extension-workflow/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/vscode-extension-workflow

---


Use this skill when working on workflows or commands for this repo's VS Code extension.

Shared conventions
- Follow [`AGENTS.md`](../../../AGENTS.md) for coding style, TypeScript/lint rules, testing conventions, and shared engineering constraints.
- Keep this skill focused on workflow/packaging/command concerns.

Key files
- [`package.json`](../../../package.json) for scripts, activation events, and contributions.
- [`src/extension.ts`](../../../src/extension.ts) for activation and command wiring.
- [`src/integratedTreeProvider.ts`](../../../src/integratedTreeProvider.ts) for Filter/View controls tree UI.
- [`src/searchViewProvider.ts`](../../../src/searchViewProvider.ts) for webview-side filter/search/history interactions.
- [`README.md`](../../../README.md) for user-visible docs and command lists.
- [`eslint.config.js`](../../../eslint.config.js) for ESLint 9 flat-config rules.

Commands
- Install deps: `npm install`
- Bundle (dev): `npm run esbuild`
- Bundle (minified): `npm run vscode:prepublish`
- Type check: `npm run compile`
- Lint: `npm run lint`
- Tests: `npm test`

Single test
- Prefer VS Code Testing view; tests are discovered in [`src/test/`](../../../src/test/) (`*.test.ts`).
- CLI: `npm test -- --grep "<test name substring>"`.

Workflow checklist
1. Update [`package.json`](../../../package.json) commands or contributions as needed.
2. Keep [`README.md`](../../../README.md) in sync with new commands or settings.
3. Avoid editing generated output in `out/` or `dist/`.
4. Match existing TypeScript style and ESLint rules.
5. Run `npm run compile`, `npm run lint`, and `npm test` after changes when feasible.
6. Keep docs DRY: reference [`package.json`](../../../package.json) as command/settings source of truth.
7. Follow [`AGENTS.md`](../../../AGENTS.md) for design-first, SOLID/DRY, and minimal-change guidance when changing scripts/contributions.
8. Avoid unnecessary refactors of scripts/contributions; keep workflow edits minimal and focused.

Feature/workflow hotspots
- Filter controls now support per-field modes (Contains/Regex/Glob) and recent-filter operations.
- Custom view flows include select/apply/toggle/import/export plus workspace/global storage scope (see [`custom-views.md`](../arxml-tree-domain/references/custom-views.md) for schema and constraints).
- Performance behavior includes `refreshMode`, `debounceDelay`, and `adaptiveDebounce` settings.
- Search and saved filters use persistent stores (`SearchHistoryStore`, `SavedFiltersStore`).

Gotchas
- The extension activates on `onLanguage:arxml`.
- Additional activation occurs for views (`arxml-integrated-view`, `bookmark-tree-view`).
- ESLint uses flat config ([`eslint.config.js`](../../../eslint.config.js)), not legacy eslintrc files.
- Tests are Mocha-based and executed via the VS Code test runner.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/robinbreast) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

