From ad832ff73a37c25d83c9f23f39af1994dcbe39f0 Mon Sep 17 00:00:00 2001 From: "Calvin A. Allen" Date: Sat, 3 Jan 2026 12:33:10 -0500 Subject: [PATCH 1/2] docs: add CLAUDE.md for Claude Code guidance --- CLAUDE.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..abcf1d9 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,85 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Critical Rules + +**These rules override all other instructions:** + +1. **NEVER commit directly to main** - Always create a feature branch and submit a pull request +2. **Conventional commits** - Format: `type(scope): description` +3. **GitHub Issues for TODOs** - Use `gh` CLI to manage issues, no local TODO files. Use conventional commit format for issue titles +4. **Pull Request titles** - Use conventional commit format (same as commits) +5. **Branch naming** - Use format: `type/short-description` (e.g., `feat/settings-dialog`) +6. **Working an issue** - Always create a new branch from an updated main branch +7. **Check branch status before pushing** - Verify the remote tracking branch still exists. If a PR was merged/deleted, create a new branch from main instead + +--- + +### GitHub CLI Commands + +```bash +gh issue list # List open issues +gh issue view # View details +gh issue create --title "type(scope): description" --body "..." +gh issue close +``` + +### Conventional Commit Types + +| Type | Description | +|------|-------------| +| `feat` | New feature | +| `fix` | Bug fix | +| `docs` | Documentation only | +| `refactor` | Code change that neither fixes a bug nor adds a feature | +| `test` | Adding or updating tests | +| `chore` | Maintenance tasks | +| `perf` | Performance improvement | +| `ci` | CI/CD changes | + +--- + +## Project Overview + +GitHub Action to publish Visual Studio extensions to the Visual Studio Marketplace. This action only runs on Windows-based runners. + +## Commands + +```bash +# Install dependencies +npm ci + +# Run all checks (format, lint, test, package) +npm run all + +# Individual commands +npm run format:check # Check formatting +npm run format:write # Fix formatting +npm run lint # Run ESLint +npm run test # Run tests +npm run ci-test # Run tests (CI mode) +npm run package # Bundle with ncc to dist/ +npm run bundle # Format + package +``` + +## Architecture + +This is a single-file TypeScript GitHub Action: + +- `src/index.ts` - The entire action logic: + 1. Validates Windows platform requirement + 2. Resolves paths for publish manifest and VSIX file + 3. Locates Visual Studio installation via `vswhere.exe` + 4. Runs `VsixPublisher.exe` to publish the extension + +- `action.yml` - Action metadata defining inputs (`marketplace-pat`, `publish-manifest-path`, `vsix-path`, `vs-version`, `vs-prerelease`) +- `dist/index.js` - Bundled output (committed, built with `@vercel/ncc`) +- `__tests__/index.test.ts` - Jest tests + +## Key Details + +- Node.js 21+ required (see `.node-version`) +- ESLint config at `.github/linters/.eslintrc.yml` +- The bundled `dist/` directory must be committed after changes to source +- TypeScript strict mode enabled From d56875c44d9280e59bb1e7dba5192f04034634e3 Mon Sep 17 00:00:00 2001 From: "Calvin A. Allen" Date: Sat, 3 Jan 2026 17:54:11 -0500 Subject: [PATCH 2/2] chore(docs): add co-author rules and standardize branch naming - Add critical rules 8-9 prohibiting co-author information and generated-by statements on commits and pull requests - Standardize branch naming to 3-part format: type/scope/short-description --- CLAUDE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index abcf1d9..f149288 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,9 +10,11 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co 2. **Conventional commits** - Format: `type(scope): description` 3. **GitHub Issues for TODOs** - Use `gh` CLI to manage issues, no local TODO files. Use conventional commit format for issue titles 4. **Pull Request titles** - Use conventional commit format (same as commits) -5. **Branch naming** - Use format: `type/short-description` (e.g., `feat/settings-dialog`) +5. **Branch naming** - Use format: `type/scope/short-description` (e.g., `feat/action/new-input`) 6. **Working an issue** - Always create a new branch from an updated main branch 7. **Check branch status before pushing** - Verify the remote tracking branch still exists. If a PR was merged/deleted, create a new branch from main instead +8. **No co-authors** - Do not add co-author information on commits or pull requests +9. **No "generated by" statements** - Do not add generated-by statements on pull requests ---