agentsclimarketplace

Release process

Skill fabioc-aloha/Alex_Skill_Mall/plugins/supervisor-fleet/release-process

284 curated plugins for AI assistants across 16 categories: security, Azure, documentation, code quality, cloud infrastructure, and more. Works with GitHub Copilot. Drop into .github/skills/local/ and go.

Install
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill release-process

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Complete release automation for VS Code Marketplace publishing

SKILL.md

15.7 KB, as published. Nobody here has run it

Release Process Skill

Inheritance: master-only (contains PAT handling, marketplace credentials)


Purpose

Comprehensive knowledge for releasing Alex Cognitive Architecture to VS Code Marketplace and managing version lifecycle.


Quick Reference

Release Commands

# From repo root
node scripts/release-vscode.cjs                           # Stable release
node scripts/release-vscode.cjs --pre-release              # Pre-release
node scripts/release-vscode.cjs --dry-run                  # Test without publishing

Manual Publishing

cd platforms/vscode-extension
npx vsce publish --pre-release  # Pre-release
npx vsce publish                # Stable release

PAT (Personal Access Token) Setup

⚠️ IMPORTANT: PATs expire frequently and may only work for a single publish session. Always create a fresh PAT before each release to avoid 401 errors.

Creating a New PAT

  1. Via Marketplace (Recommended):

  2. Via Azure DevOps:

    • Go to: https://dev.azure.com/
    • Click User Settings (gear icon) → Personal Access Tokens
    • Click "New Token"
    • Name: vsce-marketplace (or similar)
    • Organization: All accessible organizations
    • Expiration: Set appropriate duration (max 1 year)
    • Scopes: Select MarketplaceManage
    • Click Create, copy token

Storing the PAT

Option 1: Environment Variable (Session only)

$env:VSCE_PAT = "your-token-here"

Option 2: .env File (Persistent, gitignored)

# Root .env (AlexMaster/.env)
VSCE_PAT=your-token-here

The release scripts read VSCE_PAT from the environment or from root .env.

Option 3: System Environment (Persistent)

[Environment]::SetEnvironmentVariable("VSCE_PAT", "your-token", "User")

PAT Troubleshooting

ErrorCauseSolution
401 UnauthorizedPAT expired or invalidCreate new PAT
401 UnauthorizedWrong scopeEnsure "Marketplace (Manage)" scope
401 Unauthorized.env not foundEnsure root .env has the token
403 ForbiddenNot publisher ownerCheck publisher membership
Token not found.env not loadedCheck file path, run preflight

Retry After PAT Fix

When publish fails with 401 and you've already built a valid .vsix, skip the full prepublish cycle:

# Set new PAT and publish pre-built package (skips sync/quality-gate/compile)
$env:VSCE_PAT = "new-token"; npx vsce publish --packagePath alex-cognitive-architecture-X.Y.Z.vsix

This saves ~2 minutes vs a full npx vsce publish which re-runs the entire prepublish pipeline.


Version Strategy

Semantic Versioning

MAJOR.MINOR.PATCH
  │     │     └── Bug fixes, docs
  │     └──────── New features, non-breaking
  └────────────── Breaking changes

Pre-Release vs Stable

TypeFlagVisibilityUse Case
Pre-release--pre-releaseOpt-in onlyBeta testing
Stable(none)EveryoneProduction ready

VS Code Marketplace Rule: Pre-release versions must use the --pre-release flag, NOT semver suffixes like -beta.1.

Version Files to Update

When bumping version, these files need synchronization:

  1. platforms/vscode-extension/package.jsonversion field
  2. platforms/vscode-extension/.github/copilot-instructions.md**Version**: line
  3. CHANGELOG.md → New ## [X.Y.Z] section

The release-vscode.cjs script handles all of these automatically.

Version Bump Decision Table

ConditionBump TypeRationale
Breaking API change (removed command, renamed setting, changed data format)MajorUsers must adapt their workflows
New user-facing feature (command, setting, UI element)MinorAdditive capability, no breakage
Bug fix for existing behaviorPatchSame features, better quality
Documentation-only changes (README, wiki, CHANGELOG wording)PatchNo runtime behavior change
Internal refactor with no user-visible changePatchShip quality improvements incrementally
New brain skill / instruction / prompt (no extension change)MinorNew cognitive capability available
Brain file content update (currency stamps, decision tables, typos)PatchMaintenance, no new capability
Security fix (dependency bump, input validation)PatchShip ASAP, minimize version noise
Deprecation of existing feature (still works, marked for removal)MinorUsers need warning before removal
Multiple features + fixes in same releaseMinorHighest-impact change determines bump
Heir sync format change (breaks older upgrade-brain.cjs)MajorFleet-breaking change
Pre-release / beta testingMinor + --pre-releaseUse marketplace pre-release flag, not semver suffix

Release Workflow

Automated (Recommended)

┌─────────────────────────────────────────────────────────────────┐
│  node scripts/release-vscode.cjs --pre-release                   │
└─────────────────────────────────────────────────────────────────┘
         │
         ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│ 0. PAT Check    │───▶│ 1a. Sync Heir   │───▶│ 1b. Preflight   │
│ - Load .env     │    │ - build-pkg.ps1 │    │ - Version sync  │
│ - Validate      │    │ - Master→Heir   │    │ - Build/Lint    │
│                 │    │                 │    │ - Manifest check│
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │
         ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│ 2. Version Bump │───▶│ 3. CHANGELOG    │───▶│ 4. Git Commit   │
│ - package.json  │    │ - Add entry     │    │ - Commit        │
│ - heir version  │    │ - Date stamp    │    │ - Tag           │
│                 │    │                 │    │ - Push          │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │
         ▼
┌─────────────────┐
│ 5. Publish      │
│ - vsce publish  │
│ - --pre-release │
└─────────────────┘

Definition of Done Verification

Before publishing, verify ALL 8 criteria from ROADMAP.md:

#CriterionValidation Method
1Builds cleannpm run compile exits 0 with zero errors
2No dead codeAll imports resolve, no orphaned modules
3Counts match realitySlash commands, tools, skills, trifectas in docs = actual code
4F5 smoke test passesExtension activates, welcome view renders, 3 random commands work
5Version alignedpackage.json = CHANGELOG = copilot-instructions
6Heir sync cleansync-architecture.cjs runs with 0 errors, no contamination
7No non-functional featuresIf in UI/command palette, it works. If broken, removed.
8CHANGELOG documents deltaEvery user-visible change has a line item

Pattern: Use regression checklist as DoD tracker:

  • Create a regression checklist (e.g., VXXX-REGRESSION-CHECKLIST.md)
  • Track verification status for each criterion
  • Document evidence (commit hashes, test counts, sync output)
  • Automated tests provide objective quality signal (test count = confidence metric)

Quality Gate: If ANY criterion fails, DO NOT publish. Fix first.

Manual Checklist

If not using the script:

  • Run preflight: node scripts/release-preflight.cjs
  • Bump version in package.json
  • Update heir copilot-instructions.md version
  • Add CHANGELOG entry
  • Commit: git commit -m "chore: release vX.Y.Z"
  • Tag: git tag vX.Y.Z
  • Push: git push && git push --tags
  • Publish: npx vsce publish [--pre-release]

Preflight Checks

The release-preflight.cjs script validates:

CheckWhat It Does
PATVerifies VSCE_PAT is available in env or .env
Version Syncpackage.json = CHANGELOG = Master instructions = heir instructions
BUILD-MANIFESTChecks heir was synced recently (warns if > 24h old)
README Skill CountVerifies documented skill count matches actual
ROADMAP VersionWarns if ROADMAP.md version differs
Buildnpm run compile succeeds
Lintnpm run lint passes
Testsnpm test passes (can skip with -SkipTests)
Git StatusShows uncommitted changes
Git TagsWarns if tag already exists
PackageCreates VSIX (with -Package flag)

File Structure

Alex_Plug_In/
├── scripts/
│   ├── release-preflight.cjs    # Pre-release validation
│   ├── release-vscode.cjs       # Full release automation
│   └── build-extension-package.ps1  # Heir sync
├── platforms/vscode-extension/
│   ├── package.json             # Version source of truth
│   ├── .env                     # PAT storage (gitignored)
│   ├── .github/
│   │   └── copilot-instructions.md  # Heir version
│   └── *.vsix                   # Built packages
└── CHANGELOG.md                 # Version history

Common Issues

"The pre-release version is not valid"

Cause: Used semver suffix like 3.7.4-beta.1

Solution: Use plain version 3.7.4 with --pre-release flag

"401 Unauthorized"

Cause: PAT expired, invalid, or wrong scope

Solution:

  1. Create new PAT at marketplace.visualstudio.com/manage/publishers
  2. Ensure "Marketplace (Manage)" scope
  3. Update .env or environment variable

"Version already exists"

Cause: Trying to publish same version twice

Solution: Bump version first, or delete existing version from marketplace

Build succeeds but publish fails

Cause: Often network or auth issues

Solution:

  1. Check internet connection
  2. Verify PAT is valid
  3. Try npx vsce login <publisher-name> first

Post-Publish Verification Decision Table (RP4)

After vsce publish or release-full.cjs succeeds mechanically, the listing must be verified semantically. This table separates "did the CLI succeed?" (mechanical) from "does the marketplace represent what we shipped?" (semantic).

#CheckPassFailAction on Fail
1Version match — marketplace version matches package.json versionVersions are identicalMismatch (stale cache or publish failure)Wait 5 min for CDN propagation; if still mismatched, investigate publish logs
2README rendering — marketplace README renders without broken images or layoutAll images load; headings, tables, badges display correctlyBroken images, raw markdown visible, or layout collapseFix image URLs (must be absolute https:// for marketplace); republish
3Changelog current — marketplace changelog shows the new version's entryLatest entry matches shipped versionMissing entry or shows prior versionUpdate CHANGELOG.md; republish
4Feature list accuracy — listed features match what's actually in this versionAll advertised features are functionalFeature listed but not yet shipped, or shipped but unlistedUpdate README feature section; republish if misleading
5Activation events — extension activates on documented events without errorsClean activation, no console errorsActivation fails or throws on documented triggerDebug activation; file hotfix release if blocking
6Dependencies declaredextensionDependencies in package.json matches actual runtime needsAll required extensions listed; no phantom depsExtension fails because a dependency isn't declaredAdd missing dependency; republish
7Min VS Code versionengines.vscode matches features usedExtension works on declared minimum versionUses API unavailable in declared minimumBump engines.vscode or remove the newer API call
8No credential leak — published VSIX contains no tokens, keys, or .env files.vscodeignore excludes sensitive files; VSIX contents verifiedSensitive file found in VSIXYank the release immediately; rotate credentials; republish
9Size sanity — VSIX size is within expected range (not bloated)Size within 2x of previous releaseSize doubled or more without explanationCheck for accidentally bundled node_modules, test fixtures, or media
10Install + activate smoke test — fresh install from marketplace activates cleanlyInstall from marketplace → activate → no errors in Output channelCrash, missing dependency, or activation timeoutDebug with --verbose; file hotfix if blocking

Automation note: Rows 1, 3, 7, 8, 9 can be checked mechanically (add to release-smoke.test.cjs). Rows 2, 4, 5, 6, 10 require human or LLM review.

Links

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.