| name | release |
| description | Release a new version of the OCIF spec. Creates a release PR that renames the draft directory, updates version pointers, and after merge handles tagging and announcements. |
| disable-model-invocation | true |
| argument-hint | ["version e.g. v0.7.0"] |
OCIF Spec Release
Release version $ARGUMENTS of the OCIF specification.
This skill creates a PR against main that renames the draft directory and updates all version pointers. That PR is the reviewable release diff — it shows exactly what changed between the previous version and this one. Merging the PR is the release.
Work through each phase in order. Confirm with the user before proceeding to the next phase. If something fails or looks wrong, stop and ask.
Phase 1: Pre-flight Checks
- Confirm the version argument was provided (e.g.
v0.7.0). If not, ask.
- Switch to the existing draft branch and pull latest:
git checkout $ARGUMENTS-draft && git pull origin $ARGUMENTS-draft
If the branch doesn't exist, stop and ask.
- Verify the draft directory exists at
spec/$ARGUMENTS-draft/.
- Check for any
@@ issue markers in spec/$ARGUMENTS-draft/spec.md — these are unresolved TODOs that should be fixed before release. Report any found and ask whether to proceed.
- Run the pre-commit linter:
python3 .github/workflows/file_format.py spec/$ARGUMENTS-draft/spec.md and fix any issues.
- Summarize what you found and confirm with the user before proceeding.
Phase 2: Finalize the Spec Directory
- Rename the draft directory:
git mv spec/$ARGUMENTS-draft spec/$ARGUMENTS
- Inside
spec/$ARGUMENTS/, search for references to the old draft path ($ARGUMENTS-draft) and update them to $ARGUMENTS.
- Inside
spec/$ARGUMENTS/spec.md, verify the version URI is correct (e.g. https://canvasprotocol.org/ocif/$ARGUMENTS). Update if it still says "draft".
- Inside
spec/$ARGUMENTS/spec.md, update the date on line 3 (e.g. **OCWG Candidate Recommendation, April 2025**) to the current month and year.
Phase 3: Update Version Pointers
Determine the previous released version by reading ./VERSION. Then:
-
./VERSION: Update to $ARGUMENTS.
-
public/_redirects: Update line 2 to point to the new version:
/ https://github.com/ocwg/spec/blob/main/spec/$ARGUMENTS/spec.md 302
-
Global find-and-replace: Outside the /spec directory, replace the previous version string with the new version in:
cookbook.md
catalog.md
README.md
example/ files
- Any other files referencing the old version
Show the user what will change before making edits.
-
README.md: Verify the release process link in the README still points to a valid how-to-spec.md.
Phase 4: Commit and Open PR
-
Stage all changes and create a single commit:
Release OCIF $ARGUMENTS
-
Push the branch:
git push origin $ARGUMENTS-draft
-
Open a PR from $ARGUMENTS-draft against main:
- Title:
Release OCIF $ARGUMENTS
- Body should summarize key changes from the changelog in the spec
- This PR shows the full diff between the previous version and the new one
-
Tell the user to review and merge the PR. Do not merge automatically.
Phase 5: After Merge — Tag
Once the user confirms the PR has been merged:
- Switch to main and pull:
git checkout main && git pull origin main
- Create and push the git tag:
git tag $ARGUMENTS
git push origin $ARGUMENTS
- Create a GitHub release from the tag using
gh release create. Include:
- Title:
OCIF $ARGUMENTS
- Summary of key changes (from the changelog in the spec)
- Links to the spec at https://spec.canvasprotocol.org and the full spec text on GitHub
Phase 6: Announcements (guided, not automated)
Tell the user about the remaining manual steps. Do NOT perform these automatically — just provide the checklist and offer to help draft content.
Website
GitHub Discussions
Email (Buttondown)
Discord & Social
Post-release
Offer to help draft the announcement text based on the changelog in the spec.