All-my-ai-needs trace-skill-provenance
Investigate where a Hermes skill came from, when it was created, and whether it was builtin, promoted/imported, or locally created via skill_manage.
git clone https://github.com/codingSamss/all-my-ai-needs
T=$(mktemp -d) && git clone --depth=1 https://github.com/codingSamss/all-my-ai-needs "$T" && mkdir -p ~/.claude/skills && cp -r "$T/platforms/hermes/skills/autonomous-ai-agents/trace-skill-provenance" ~/.claude/skills/codingsamss-all-my-ai-needs-trace-skill-provenance && rm -rf "$T"
platforms/hermes/skills/autonomous-ai-agents/trace-skill-provenance/SKILL.mdTrace Skill Provenance
Use this when a user asks questions like:
- “这个 skill 是哪来的?”
- “是不是 builtin?”
- “什么时候创建的?为什么我没印象?”
- “这是导入的、提升的,还是你自己后来建的?”
Goal
Determine, with evidence:
- whether a skill is
orbuiltinlocal - its on-disk path
- approximate creation time
- whether it came from promotion/import (
/ manifest) or was created later viaimported-codexskill_manage - the session that created or modified it, if available
Procedure
1. Confirm how Hermes classifies it
Run:
hermes skills list | grep -n '<skill-name>'
Interpretation:
=> official built-in skillbuiltin | builtin
=> local skill in the runtime environmentlocal | local
Do not rely on memory alone.
2. Find the actual filesystem path
Check likely skill roots directly:
~/.hermes/skills
(older/shared runtime copies may still exist)~/.codex/skills
Example shell approach:
for d in ~/.hermes/skills ~/.codex/skills; do [ -d "$d" ] || continue find "$d" -type d -name '<skill-name>' done
If needed, inspect
SKILL.md under the found path.
3. Get file timestamps
For the skill directory and
SKILL.md, inspect:
- birth time (
on macOS when available)st_birthtime - mtime
- ctime
Example Python snippet:
from pathlib import Path from datetime import datetime p = Path('~/.hermes/skills/<category>/<skill-name>/SKILL.md').expanduser() st = p.stat() print(datetime.fromtimestamp(getattr(st, 'st_birthtime', st.st_ctime))) print(datetime.fromtimestamp(st.st_mtime)) print(datetime.fromtimestamp(st.st_ctime))
Use this only as approximate creation evidence; later edits can change mtime/ctime.
4. Check promotion/import manifests
Look for promotion manifests such as:
~/.hermes/skill-promotions/<timestamp>/promotion-manifest.json
Read them and see whether the skill appears in
entries.
Interpretation:
- Present in manifest => likely promoted from
or another sourceimported-codex - Absent from manifest => likely not part of that promotion batch
Important: verify against the specific manifest timestamp instead of assuming all local skills came from promotion.
5. Search session history for creation evidence
Search Hermes session files and/or use session search for:
- the skill name
skill_manageaction":"create"action":"patch"
Useful targets:
~/.hermes/sessions/*.jsonsession_search(query='"<skill-name>"')
High-signal evidence is a session snippet containing:
skill_manageaction: createname: <skill-name>
If found, report:
- session id
- session start time
- exact lines or file reference
6. Distinguish creation modes clearly
Use the evidence to classify one of these outcomes:
- Built-in: listed as builtin; no local creation needed
- Promoted/imported: appears in promotion manifest and local path matches promoted category
- Locally created later: not in manifest, but session logs show
skill_manage(action='create', ...) - Locally patched later: original source may differ, but session logs show subsequent
/patchedit
Recommended evidence order in final answer
- classification from
hermes skills list - on-disk path
- file timestamp
- promotion-manifest result
- session-log evidence of
skill_manage
This makes the conclusion auditable and easy to trust.
Pitfalls
may fail even whenhermes skills inspect <name>
works; do not stop there.skill_view(name)- Searching only
can miss older copies in~/.hermes/skills
.~/.codex/skills - mtime alone is not “creation time”; prefer birth time when available and corroborate with session logs.
- A skill can be
without being imported; do not equatelocal
withlocal
.promoted - Promotion manifests prove inclusion in a batch, but absence there does not by itself prove manual creation; verify with session evidence.
Done criteria
You should be able to answer, with citations/evidence:
- what kind of skill it is (
vsbuiltin
)local - where it lives
- when it was likely created
- whether it was promoted/imported or created by a later agent action
- why the user may not remember it (for example, an agent auto-saved it after a complex task)