AGENT SKILL
markdown-studio-release-prep
Prepare Markdown Studio VS Code extension releases up to the human handoff point. Use when the user asks to prepare, finalize, close, tag-check, package, or get v1.x ready for release/publish, especially before Marketplace publishing, GitHub release tags, VSIX packaging, changelog cleanup, demo PDF artifacts, or release verification.
使用场景文档处理
- License 许可
- Apache-2.0
- 最近更新
- 2026-10-28
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- markdown-studio-release-prep
- description
- Prepare Markdown Studio VS Code extension releases up to the human handoff point. Use when the user asks to prepare, finalize, close, tag-check, package, or get v1.x ready for release/publish, especially before Marketplace publishing, GitHub release tags, VSIX packaging, changelog cleanup, demo PDF artifacts, or release verification.
02 资源文件 1
- 参考文档agents/openai.yaml247 B
03 SKILL.md 正文
Markdown Studio Release Prep
Goal
Bring this repository to a release-ready handoff state without performing the final human polish or Marketplace publish.
Stop before actions that should remain human-owned:
- Do not run
vsce publishunless the user explicitly asks for publishing. - Do not create or push the release tag until changelog, package version, tests, package output, and release impact are explained to the user and the user explicitly approves tagging.
- Do not rewrite the final marketing copy beyond factual release-note cleanup unless requested.
Release Handoff Definition
The handoff is ready when:
- Working tree is clean or only intentionally generated local artifacts are ignored.
package.jsonversion matches the intended release version.CHANGELOG.mdhas the intended version/date section and no release content stranded underUnreleased.examples/demo.pdfis committed when regenerated by release verification.@vscode/vsceis not stale enough to emit package warnings duringnpm run package.- Verification commands have passed or failures are clearly documented.
dist/markdown-studio-local-<version>.vsixexists from the latest package run.- The current commit is pushed to
origin/main. - Tag status is resolved clearly: existing tag verified, tag pending human confirmation, or tag created and pushed after confirmation.
Workflow
-
Inspect state:
git status --short --branchnode -p "require('./package.json').version"git tag --sort=-v:refname | head -20sed -n '1,80p' CHANGELOG.md
-
Reconcile release notes:
- If
Unreleasedcontains items intended for the release, move them into the target version section. - Use the actual release date.
- Keep a blank
## [Unreleased]section only if useful for future work.
- If
-
Verify version and tooling:
- Confirm
package.jsonandpackage-lock.jsonagree on the version. - If
npm run packagereports a stale@vscode/vsce, update the local devDependency and lockfile. - Keep dev reinstall warnings suppressed in
scripts/dev/reinstall.shrather than asking repeatedly about[DEP0169].
- Confirm
-
Run verification:
npm run test:cinpm run test:demo-rendernpm run test:local-onlynpm run test:e2enpm run packagenpm audit --omit=dev --audit-level=high
-
Treat generated demo artifacts as release artifacts:
- If verification regenerates
examples/demo.pdf, stage and commit it with the release changes. - Do not repeatedly ask the user whether to include
examples/demo.pdf; include it unless explicitly told not to.
- If verification regenerates
-
Commit and push:
- Review
git diff --statand key diffs. - Commit all intended release-prep changes with a concise message.
- Push
maintoorigin.
- Review
-
Tag confirmation and automation:
- Report the exact release situation before asking for confirmation:
- Intended version and tag name, for example
v1.0.3. - Current commit SHA and whether it is pushed to
origin/main. - Working tree status.
- Verification status for tests, demo render, E2E, package, audit, and VSIX output.
- Whether the tag already exists locally or on
origin. - The effect of pushing the tag:
.github/workflows/release.ymlruns lint, unit, integration, andtest:local-only, then builds the VSIX and creates the GitHub Release onv*tag push. If any check fails, no VSIX or release is produced.
- Intended version and tag name, for example
- If the tag already exists, verify it points to the intended commit. If it points elsewhere, stop and explain the mismatch.
- If the tag is missing and all gates pass, ask for explicit human confirmation such as:
May I create and push v<version> now? - After confirmation, create and push the tag automatically:
git tag v<version>git push origin v<version>
- Do not merely hand back tag commands unless the user asks to perform tagging manually.
- Report the exact release situation before asking for confirmation:
-
Publish handoff:
- Confirm the tag's Release workflow run succeeded (
gh run list --workflow release.yml --limit 1). If it failed, do not publish: the full checks did not pass for that commit. - Before recommending or running Marketplace publish, verify the stored Marketplace token:
vsce verify-pat
- If PAT verification fails, stop and explain the failure. Do not publish.
- If PAT verification succeeds and tests/package are green, give the final publish command:
vsce publish
- Run
vsce publishonly when the user explicitly authorizes Marketplace publishing after the PAT and release gates are green. - Leave final Marketplace publish decision to the human unless explicitly authorized.
- Confirm the tag's Release workflow run succeeded (
Project-Specific Notes
- This repo publishes
kino6.markdown-studio-local. - Release workflow is tag-driven:
.github/workflows/release.ymlruns onv*tags. npm run packagecreatesdist/markdown-studio-local-<version>.vsix.scripts/dev/reinstall.shis used frequently; keep it quiet and deterministic for local validation.AGENTS.mdis a repository agent note and must stay excluded from VSIX via.vscodeignore.