Draft ReleaseSAFE
Complete AI Governance Platform from Obot AI
Overview
Complete AI Governance Platform from Obot AI
91c8379300c8OBSERVED · 2026-10-12What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: draft-release description: Draft a GitHub release (as a draft, not published) for an upcoming obot minor release by analyzing git history since the previous release. Use when the user asks to draft a release, prepare release notes, or write release notes for an upcoming vX.Y.0 release. Creates a DRAFT GitHub release; never publishes it and never creates the git tag. --- # Draft Release Notes Drafts release notes for the next obot minor release and creates a draft (unpublished) GitHub release containing them. The release stays in draft state for the user to review, edit, and publish themselves. Never creates the git tag, never publishes the release, never pushes anything. ## Inputs - **Target version** (e.g. `v0.22.0`): ask the user if not provided. If recent pre-release tags exist (e.g. `v0.22.0-rc3`), suggest the corresponding minor (`v0.22.0`) and confirm. - **Diff baseline** (e.g. `v0.21.3`): auto-detect as the highest non-pre-release tag, regardless of whether it is a minor or patch, **that is also an ancestor of `HEAD`**. This is the range used to find changes (`<DIFF_BASELINE>..HEAD`) and the left side of the "Full Changelog" compare link. Use `git tag --sort=-v:refname | grep -v -- '-' | head -1`, then verify with `git merge-base --is-ancestor <candidate> HEAD`. Patch releases are sometimes cut from a separate release branch that never merges back into `main` — if the highest-sorted tag fails the ancestor check, walk down to the next-highest tag and check again until one passes. Do not silently trust version-sort order alone. - **Style reference** (e.g. `v0.21.0`): auto-detect as the highest `vX.Y.0` tag that is not a pre-release. Use `git tag --list 'v*.*.0' --sort=-v:refname | grep -v -- '-' | head -1`. This release's notes are the tone/structure template. It is often the same as the diff baseline but may differ when patch releases exist between minors. ## Hard constraints - Do NOT create git tags. Do NOT run `git tag` or `git push --tags`. The draft release does not require the tag to exist locally — GitHub creates it only when the draft is published, which the user does manually. - `gh release create` is allowed ONLY with `--draft`. Never run it without `--draft`. Never run `gh release edit --draft=false`. Never publish. - Do NOT model the notes on patch releases (`vX.Y.Z` where Z > 0) or pre-releases (`-rc`, `-alpha`, `-beta`). Those use minimal notes. Always model on the most recent `vX.Y.0`. - No emojis. No em dashes (`—`). Use plain hyphens or rewrite the sentence. No "we're thrilled / excited to / proud to" beyond the one opening line the template already uses. No marketing fluff. - Use straight quotes (`'` and `"`), not curly quotes. - Do not invent PRs, authors, or commit messages in "What's Changed". That section must be sourced from the GitHub API, not synthesized. - Never run `gh release create` (or any other command that writes to GitHub) until the user has seen the fully assembled draft (opener, Big Updates, Improvements, Upgrade Notes, What's Changed, Full Changelog line — the whole document, not just the feature list from step 5) and explicitly approved it. Step 5's feature-list confirmation is necessary but not sufficient; the user must sign off on the actual prose before anything is pushed to GitHub. ## Procedure ### 1. Confirm version, diff baseline, and style reference ```bash # Diff baseline: latest non-pre-release tag (minor OR patch): git tag --sort=-v:refname | grep -v -- '-' | head -1 # Style reference: latest published minor (vX.Y.0, no pre-releases): git tag --list 'v*.*.0' --sort=-v:refname | grep -v -- '-' | head -1 # Recent tags to suggest the target version: git tag --sort=-creatordate | head -10 ``` Confirm the target version, diff baseline, and style reference with the user before proceeding. The diff baseline and style reference often differ — e.g. baseline `v0.21.3`, style `v0.21.0`. Use the baseline for everything that touches commit range, and the style reference for tone/structure. ### 2. Read the style reference's notes for tone and structure ```bash gh release view <STYLE_REF> --repo obot-platform/obot ``` Match its structure exactly: 1. One-paragraph opener: `We're excited to announce the <VERSION> release of the Obot MCP Platform. This release <one-sentence theme summary>.` 2. `## Big Updates` with 3-6 `### Feature Name` subsections. Each subsection is 1-3 short paragraphs in plain prose. Link to docs with `[docs](https://docs.obot.ai/...)` when a docs page exists. 3. Optional `## Improvements` section with a short bulleted list of smaller usability/perf items. Include only if there are clearly several smaller user-facing improvements worth calling out. Omit otherwise (v0.21.0 has no Improvements section). 4. `## Upgrade Notes` — usually `There are no major breaking changes in this release.` If the diff contains breaking changes (removed APIs, renamed config, schema migrations, removed env vars), call them out explicitly and concretely. Check commits with `chore: remove`, `BREAKING`, or schema/migration changes. 5. `## What's Changed` — generated via API (see step 7). 6. Trailing `**Full Changelog**: https://github.com/obot-platform/obot/compare/<DIFF_BASELINE>...<VERSION>`. ### 3. Survey the commit range ```bash git log <DIFF_BASELINE>..HEAD --oneline git log <DIFF_BASELINE>..HEAD --format='%H%n%s%n%b%n---' # full bodies if more context needed ``` Identify candidate big features. Heuristics: - `feat:` commits are top candidates. - `enhance:` commits that introduce notable user-visible capability also qualify. - Group related commits into one theme (e.g. several `image pull secrets` commits become one "Image Pull Secrets" feature). - `fix:`, `chore:`, `docs:`, dependabot, and CI commits are NOT big features. Aim for 3-6 Big Updates. If the range is small, fewer is fine. If many candidates exist, prioritize features that change what users can do, not internal refactors. **Deep-read each candidate before drafti
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (3)
AGENTS.md
docs/AGENTS.md
ui/user/src/CLAUDE.md
Gates applied: no_behavioural_pass.
91c8379300c8full audit observations/trust-audit/skill/obot-platform__draft-release.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 91c8379300c8 | SAFE | B | 89 | first audit |
Questions
What does the Draft Release skill do?
Complete AI Governance Platform from Obot AI
Is Draft Release safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Draft Release access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (91c8379300c8), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.