release-85a006 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited release-85a006 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Execute a complete pre-release workflow for Python packages using uv and ruff. This command automates version calculation, changelog updates, and tag creation.
$ARGUMENTS - Optional version override (e.g., 1.0.0). If not provided, version is calculated from changelog entries.Execute these 9 steps in order. Fail fast: Stop immediately if any verification step fails.
Run these checks and stop if any fail:
# Check current branch
git branch --show-current# Check for uncommitted changes
git status --porcelain# Pull latest changes
git pull origin mainExecute the test suite:
uv run pytestExecute linting checks:
uv run ruff checkuv run ruff format --checkBuild the package:
uv buildAll verification checks have passed. Before calculating the version, offer to run the changelog-agent to ensure the [Unreleased] section is up-to-date.
Use AskUserQuestion:
Would you like to run the changelog-agent to update CHANGELOG.md before proceeding?
This will analyze git commits since the last release and suggest new changelog entries.Options:
If user selects "Yes":
Use the Task tool to spawn the changelog-agent:
changelog-managerIf user selects "No":
Continue to Step 6 (Calculate Version) without running the changelog-agent.
#### 6.1 Read CHANGELOG.md
Read CHANGELOG.md and parse its structure. Look for:
## [Unreleased] section and its subsections## [0.1.0]) to get the current version#### 6.2 Analyze Change Types
Count entries under [Unreleased] by subsection:
### Added - New features### Changed - Changes to existing functionality### Deprecated - Features marked for removal### Removed - Removed features (breaking change)### Fixed - Bug fixes### Security - Security fixes#### 6.3 Calculate Suggested Version
Apply semantic versioning rules to the current version (MAJOR.MINOR.PATCH):
| Condition | Bump Type | Example |
|---|---|---|
### Removed present AND current >= 1.0.0 | MAJOR | 1.2.3 → 2.0.0 |
### Removed present AND current < 1.0.0 | MINOR | 0.2.3 → 0.3.0 |
### Added or ### Changed present | MINOR | 0.1.0 → 0.2.0 |
Only ### Fixed, ### Security, or ### Deprecated | PATCH | 0.1.0 → 0.1.1 |
#### 6.4 Handle Edge Cases
$ARGUMENTS as the version instead of calculating#### 6.5 User Confirmation
Use AskUserQuestion to confirm the version:
Based on changelog analysis:
- Found: {count} Added, {count} Changed, {count} Fixed, {count} Removed entries
- Current version: {current}
- Suggested version: {suggested} ({bump_type} bump)
Confirm version or provide override:Options:
#### 7.1 Get Repository URL
Read pyproject.toml and extract the repository URL from [project.urls]:
Repository, repository, Source, source, Homepage, homepageIf no repository URL found, warn but continue (comparison links will be omitted).
#### 7.2 Update Changelog Content
Transform the changelog:
Before:
## [Unreleased]
### Added
- New feature X
## [0.1.0] - 2024-01-15
### Added
- Initial release
[Unreleased]: https://github.com/user/repo/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/user/repo/releases/tag/v0.1.0After (releasing 0.2.0):
## [Unreleased]
## [0.2.0] - {today's date YYYY-MM-DD}
### Added
- New feature X
## [0.1.0] - 2024-01-15
### Added
- Initial release
[Unreleased]: https://github.com/user/repo/compare/v0.2.0...HEAD
[0.2.0]: https://github.com/user/repo/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/user/repo/releases/tag/v0.1.0#### 7.3 Write Updated CHANGELOG.md
Use the Edit tool to update CHANGELOG.md with the transformed content.
Stage and commit the changelog update:
git add CHANGELOG.mdgit commit -m "docs: update changelog for v{version}"git push origin mainReport: "Changelog committed and pushed"
Create an annotated tag and push it:
git tag -a v{version} -m "Release v{version}"git push origin v{version}#### Final Report
Report success with details:
Release v{version} completed successfully!
- Changelog updated: CHANGELOG.md
- Tag created: v{version}
- Tag URL: {repository_url}/releases/tag/v{version}
Next steps:
- GitHub/GitLab will create a release from the tag
- Publish to PyPI if configured in CIIf any step fails after Step 6 (version confirmation):
git checkout CHANGELOG.md - Revert changelog changesgit tag -d v{version} - Delete local tag if createdgit push origin :refs/tags/v{version} - Delete remote tag if pushed~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.