close skill
Updates version tracking, manifest hashes, and changelogs when finishing work on a skill bundle.
- GitHub stars
- 7
- Files
- 1
- Last commit
- Nov 9, 2026
- License
- MIT
- Allowed tools
- —
What does the close skill do?
close updates version tracking, manifest hashes, and changelogs when finishing work on a skill bundle.
Summary generated from the skill's SKILL.md.
About the close skill
Finalizing a skill bundle by synchronizing version metadata and documentation is the primary function of this tool. Developers use it at the end of an editing session to ensure all files, manifests, and changelogs remain consistent and verifiable before committing or packaging code. It automates the tedious process of incrementing version headers, recomputing SHA-256 hashes, and documenting changes.
When an agent loads this skill, it performs a multi-step protocol starting with a validation check using validate.sh to resolve structural issues or missing files. It then updates YAML frontmatter in changed files, modifies the MANIFEST.yaml with semver increments, and appends new entries to CHANGELOG.md. The tool also identifies stale files where dependencies were not updated and can generate a formatted git commit message for the user. It relies on internal file headers and the MANIFEST.yaml to maintain a traceable lineage of all modifications.
What an agent can do with it
- 1Synchronize bundle metadataUpdate all version tracking artifacts when finishing a skill editing session.
- 2Automate changelog entriesCreate a new entry in the changelog that lists every changed file and its specific modifications.
- 3Prepare git commitsGenerate a ready-to-use commit message that summarizes changes and flags any stale files.
- 4Verify file integrityRun a validation check to ensure there are no structural grammar errors or missing files before updating hashes.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the close skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the close skill in Plugin
/plugin marketplace add snapsynapse/skill-provenance /plugin install skill-provenance@snapsynapse-skill-provenance
Install the close skill in Claude Code
~/.claude/skills/close/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/close ~/.claude/skills/closeInstall the close skill in Claude Code (project)
.claude/skills/close/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/close .claude/skills/closeInstall the close skill in Codex
~/.agents/skills/close/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/close ~/.agents/skills/closeInstall the close skill in Gemini CLI
~/.gemini/skills/close/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/close ~/.gemini/skills/closeInstall the close skill in Claude.ai
npx degit snapsynapse/skill-provenance/skills/close close && zip -r close.zip close # claude.ai → Customize → Skills → + → Create skill → Upload a skill → close.zip
SKILL.md
View on GitHubSkill Provenance: Close
Update all version-tracking artifacts when finishing a skill editing session. This ensures the bundle leaves the session in a consistent, verifiable state.
When to use
Run /skill-provenance:close after you've finished editing files in a skill
bundle and before committing, packaging, or handing off.
Protocol
-
Validate before mutation. Run verify-only
validate.shfirst when available. Resolve structural grammar, unsafe or duplicate paths, symlink components, missing files, and unlisted files before updating hashes. Add a manifest entry for each new file;--updatenever adds unlisted files. Hash mismatches and missing or malformed hashes may then be repaired with an explicitvalidate.sh --updateworkflow;hash: nullremains an intentional opt-out. -
Update internal version headers. For each changed file that carries YAML frontmatter with version metadata:
- Increment
versionby 1. - Set
version_dateto today. - Set
previous_versionto the old version number. - Write a
change_summary(1-3 sentences describing what changed, not just that something changed).
- Increment
-
Update MANIFEST.yaml. For every changed versioned file:
- Update
versionto match the new internal version. - Recompute and update
hash. - For files that don't carry internal headers (JSON, scripts, binaries),
the manifest
versionfield is authoritative — increment it there. - Bump
bundle_version(semver): PATCH for fixes/docs, MINOR for new features, MAJOR for breaking changes. - Update
bundle_dateto today. - If the user deployed or reinstalled the skill this session, update
relevant
deploymentsmetadata.
- Update
-
Update CHANGELOG.md. Add a new entry at the top:
- Use the new
bundle_versionand today's date as the heading. - Name every file that changed and what changed in it.
- Flag staleness explicitly. If a versioned file was changed but a dependent file was not updated (e.g., SKILL.md changed but evals.json wasn't updated to match), say so in the entry.
- Use the new
-
Final validation. Run verify-only validation after all version, changelog, and hash updates. Do not package or commit a failing bundle.
-
Deliver. Provide the user with the changed files plus updated
MANIFEST.yamlandCHANGELOG.md. -
Git commit message. If the bundle is in a git repo, provide a ready-to-use commit message:
bundle-name MAJOR.MINOR.PATCH: one-line summary - file1.md: what changed - file2.json: what changed - Stale: file3.js (not updated this session)Return the message inline. Only write a
git_commit.txtfile if the user explicitly asks for one.
Conventions referenced
- Per-file versions are integers. Bundle version is semver.
- change_summary is required for every version after v1. Describe what changed, not just that something changed.
- previous_version creates a chain so any session can trace lineage.
- MANIFEST.yaml is not self-listed. It tracks other files only.
- Hashes are SHA-256 of file contents.
For the full spec: https://skillprovenance.dev
Files in this skill
1close skill questions
How do I install the close skill in Claude Code?
Run npx degit snapsynapse/skill-provenance/skills/close ~/.claude/skills/close. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the close skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
When should I use the close skill?
You should run it after you have finished editing files in a skill bundle and before you commit, package, or hand off the project.
How does the tool handle bundle versioning?
It uses semantic versioning (semver), applying PATCH for fixes or docs, MINOR for new features, and MAJOR for breaking changes.
Does the tool automatically add new files to the manifest?
No, the --update flag does not add unlisted files; you must add a manifest entry for each new file manually.
What kind of hash algorithm is used for file integrity?
The tool uses SHA-256 hashes of file contents.