bootstrap skill
Adds version tracking, a MANIFEST.yaml, and a changelog to existing unversioned skill bundles.
- GitHub stars
- 7
- Files
- 1
- Last commit
- Nov 9, 2026
- License
- MIT
- Allowed tools
- —
What does the bootstrap skill do?
bootstrap adds version tracking, a MANIFEST.yaml, and a changelog to existing unversioned skill bundles.
Summary generated from the skill's SKILL.md.
About the bootstrap skill
Adding version tracking and provenance to unversioned skill bundles is the primary function of this tool. Developers use it when they have a project containing a SKILL.md file but lack a MANIFEST.yaml, version headers, or a changelog. It serves as the entry point for adopting Skill Provenance on existing projects by transforming a simple directory into a structured, tracked bundle.
When triggered, the process inventories all files including scripts, evaluation files, and output artifacts. It proposes version numbers, defaults to 1.0.0 for the bundle, and adds YAML frontmatter metadata to compatible files like SKILL.md. For files that cannot carry frontmatter, such as JSON or shell scripts, the tool manages their versioning through the manifest instead. The final output includes a generated MANIFEST.yaml containing SHA-256 hashes for every entry and a CHANGELOG.md summarizing the initial release.
What an agent can do with it
- 1Initialize versioning for a new skillAn agent can take a directory with only a SKILL.md and create a full provenance structure.
- 2Document project historyA developer can automatically produce a changelog to record the initial versioned release.
- 3Apply metadata to compatible filesThe tool inserts versioning headers into files that support YAML frontmatter.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the bootstrap 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 bootstrap skill in Plugin
/plugin marketplace add snapsynapse/skill-provenance /plugin install skill-provenance@snapsynapse-skill-provenance
Install the bootstrap skill in Claude Code
~/.claude/skills/bootstrap/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/bootstrap ~/.claude/skills/bootstrapInstall the bootstrap skill in Claude Code (project)
.claude/skills/bootstrap/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/bootstrap .claude/skills/bootstrapInstall the bootstrap skill in Codex
~/.agents/skills/bootstrap/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/bootstrap ~/.agents/skills/bootstrapInstall the bootstrap skill in Gemini CLI
~/.gemini/skills/bootstrap/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/bootstrap ~/.gemini/skills/bootstrapInstall the bootstrap skill in Claude.ai
npx degit snapsynapse/skill-provenance/skills/bootstrap bootstrap && zip -r bootstrap.zip bootstrap # claude.ai → Customize → Skills → + → Create skill → Upload a skill → bootstrap.zip
SKILL.md
View on GitHubSkill Provenance: Bootstrap
Add provenance tracking to an existing unversioned skill bundle. This is a one-time operation that creates the initial manifest, version headers, and changelog.
When to use
Run /skill-provenance:bootstrap when you have a skill directory that
contains a SKILL.md but lacks MANIFEST.yaml. This is the entry point
for adopting Skill Provenance on an existing project.
If the bundle already has a MANIFEST.yaml, use /skill-provenance:open
instead.
Protocol
-
Inventory all files. Read the directory structure yourself — do not ask the user to list files. Identify:
SKILL.md(required — if missing, this isn't a skill bundle)- Evals files (e.g.,
evals.json) - Scripts (e.g.,
generate.js,validate.sh) - Output artifacts (
.docx,.pdf) - Source material provided by the user
- Any other files present
-
Propose version numbers. Ask the user what version to assign. If there's a handoff note, git history, or other context suggesting prior versions, propose a number based on that history. Default to
1.0.0for the bundle and1for individual files if no history exists. -
Add internal version headers to files that can safely carry YAML frontmatter. Use the
metadatablock pattern for SKILL.md:--- name: skill-name description: What the skill does. metadata: skill_bundle: skill-name file_role: skill version: 1 version_date: 2026-04-11 previous_version: null change_summary: Initial versioned release. ---For files that cannot safely carry frontmatter (
.json,.sh, binaries), the manifest tracks their version — no modification needed. -
Determine frontmatter mode. Maintain the canonical source in
frontmatter_mode: metadatawhen richer provenance is useful. For Codex, Gemini CLI, or another strict loader, derive a minimal-frontmatter install copy rather than weakening the canonical source in place. If the user explicitly wants one strict-only bundle,minimalis valid. -
Generate MANIFEST.yaml. Include:
bundle,bundle_version,bundle_date,descriptioncompatibilitysection based on user's target platforms- Exactly one top-level
files:list using unquoted normalized relative paths and asha256:hash or explicithash: nullfor every entry - Leave
deploymentsempty unless the user mentions existing installs.
-
Generate CHANGELOG.md. Create a single entry summarizing known history. If the user has context about prior changes, incorporate it. Otherwise:
# Changelog ## 1.0.0 — 2026-04-11 - Initial versioned release. All files inventoried and hashed. - SKILL.md: [brief description of current state] - evals.json: [N evals covering X] -
Deliver the versioned bundle. Provide all new and modified files. Summarize what was created and any decisions for the user to confirm.
File roles
Assign these roles in the manifest based on file type:
| Role | Files |
|---|---|
skill |
SKILL.md |
evals |
evals.json, evals-*.json |
script |
.js, .py, .sh scripts |
output |
.docx, .pdf rendered artifacts |
handoff |
handoff notes |
source |
user-provided material (tracked, not versioned) |
reference |
documentation in references/ |
asset |
templates, images, fonts in assets/ |
Conventions referenced
- Version identity lives inside files when their format allows it, and always in the manifest.
- MANIFEST.yaml is not self-listed. It tracks other files only.
- Per-file versions are integers. Bundle version is semver.
- Hashes are SHA-256 of file contents.
- Filenames never contain version numbers. Version lives in metadata
and the manifest, not in
SKILL_v5.md.
For the full spec: https://skillprovenance.dev
Files in this skill
1bootstrap skill questions
How do I install the bootstrap skill in Claude Code?
Run npx degit snapsynapse/skill-provenance/skills/bootstrap ~/.claude/skills/bootstrap. 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 bootstrap 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 bootstrap skill?
Use it when you have a skill directory containing a SKILL.md but it lacks a MANIFEST.yaml, version headers, or a changelog.
What happens if my skill bundle already has a MANIFEST.yaml?
If a manifest already exists, you should use the /skill-provenance:open command instead of bootstrapping.
How are file versions handled for files that cannot support YAML frontmatter?
For files like JSON, shell scripts, or binaries that cannot safely carry frontmatter, the manifest tracks their version without modifying the files themselves.