feat(skills): add lifecycle receipts and curator audit - #34092
Open
leo-guinan wants to merge 1 commit into
Open
Conversation
teknium1
reviewed
Jul 13, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the focused lifecycle-metadata proposal and deterministic-audit tests.
Problems
tools/skill_manager_tool.py:258accepts YAML booleans forevidence_count: Python treatsboolas anint, soevidence_count: truepasses the proposed integer-only validation. Add an explicit boolean rejection and tests for both boolean values.- Commit
27d2be5d3a00a6df2bb1b96d466f9962f8cb13acincludes receipts that describe work not in this PR:receipts/skill-curator-audit-receipt.jsonnames xitter andcreating-skills.md;receipts/skill-lifecycle-epic-guideline-check.jsondescribes ACP work and a merged PR #9. These receipts need to be removed or made accurate before they can be relied on.
Suggested changes
- Decide whether this remains a documented standalone developer utility or integrates with the supported curator. Current CLI dispatch reaches
hermes_cli/curator.py:199and lifecycle transitions are activity-driven inagent/curator.py:305; this PR does not connect its metadata or audit to either path.
Automated hermes-sweeper review.
| if supersedes is not None and not isinstance(supersedes, list): | ||
| return "metadata.hermes.lifecycle.supersedes must be a list when present." | ||
|
|
||
| return None |
Contributor
There was a problem hiding this comment.
YAML true and false decode as Python bool, and bool is an int subclass, so evidence_count: true passes this check. Reject booleans explicitly and add regression cases for both boolean values.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds a receipt-based lifecycle path for Hermes skills and a deterministic curator audit helper.
The change gives skill authors and reviewers a machine-readable way to record why a skill changed, what evidence supports the change, and whether the skill lifecycle metadata is valid. This helps prevent skills from becoming untracked procedural folklore: useful until the first time nobody remembers why the instruction exists.
The PR intentionally excludes unrelated fork-stabilization work. It is scoped to skill lifecycle receipts, curator audit tooling, docs, and tests.
Related Issue
No existing issue found.
Fixes #
Type of Change
Changes Made
tools/skill_curator_audit.pytools/skill_manager_tool.pymetadata.hermes.lifecyclefields in skill frontmatter:statusvalidation_levelevidence_countsupersedestests/tools/test_skill_curator_audit.pytests/tools/test_skill_manager_tool.pywebsite/docs/developer-guide/skill-change-receipt-template.mdskills/software-development/systematic-debugging/SKILL.mdskills/software-development/writing-plans/SKILL.mdreceipts/skill-curator-audit-receipt.jsonreceipts/skill-lifecycle-epic-guideline-check.jsonreceipts/skill-lifecycle-metadata-receipt.jsonHow to Test
Run the focused skill lifecycle and curator audit tests:
Expected result:
Check the branch is scoped to the intended files:
Expected changed files:
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests pass/Users/leoguinan/hermes-agent/venv/bin/pythonDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/AFor New Skills
N/A — this PR updates existing skills/docs and adds lifecycle audit/receipt tooling. It does not add a new bundled skill.
Screenshots / Logs