v0.6.4: skill audit — author's-side staleness read (Stream 6 follow-on) - #100
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🐛 Q7-logmind benchUpdated 2026-06-01T04:42Z. See workflow run for full JSON. |
|
Claude finished @thrillmot's task in 3m 31s —— View job 🐛 Clud Bug reviewThis round: 0 critical · 0 minor · 0 resolved from prior · 0 still open Found: 0 🔴 / 0 🟡 / 0 🟣 Per-skill scan
Tasks
No critical issues found. The implementation is correct: imports are clean ( Skills referenced: [critical-issues-only, evidence-based-review, respect-existing-conventions] |
🐛 Clud Bug reviewThis round: 0 critical · 0 minor · 0 resolved from prior · 0 still open Found: 0 🔴 / 0 🟡 / 0 🟣 Per-skill scan
Skills referenced: [critical-issues-only, evidence-based-review, respect-existing-conventions] |
…lback (§8.3) (#140) Per master plan §8.3. Two-deliverables-in-one: port `.github/workflows/notify-agent-skills.yml` off the now-dead `logmind.core.changelog` Python module (PR #137 deleted it) AND add idempotency to the `fallback-issue` job so a flapping API can't accumulate dozens of duplicate issues on `thrillmade/agent-skills` (the v1.0.0 release wave generated 12 such fallback issues — already closed in parallel). **Changes:** 1. `.github/workflows/notify-agent-skills.yml`: - Stops importing `logmind.core.changelog` (gone after #137 merge). - Calls vendored `scripts/parse_changelog.py` (~120 LOC) that reads `docs/changelog-python.md` (new path after #137) with fallback to top-level `CHANGELOG.md` for backward compat. Same extract-sections semantics as the old Python module. - Adds fallback-issue idempotency: rolling-24h daily-cap via `created:>${CUTOFF}` issue search + same-skill check (open `from-logmind` issues with `skills/logmind/SKILL.md in:body`). If a recent or open fallback for the same skill exists, comment on it rather than opening a new one. 2. `.github/scripts/parse_changelog.py`: - New file. Docstring calls out the Option-A migration path: add `logmind changelog --since <tag>` Go subcommand in next release, replace this script + `python3` call with single binary invocation. - Tested locally against `docs/changelog-python.md`: - `--since v0.6.13 --up-to v0.6.14` → 3,535 chars - `--since "" --up-to v0.5.10` → 58,357 chars (first-release case) - `--since v0.7.0 --up-to v0.6.0` → 0 chars (caller-ahead edge) **Parallel deliverable — 12 stale fallback issues closed on `thrillmade/agent-skills`:** #98 #99 #100 #101 #102 #103 #104 #105 #106 #107 #108 #109 (v1.0.0 release wave: rc1 → rc2 → rc3 → v1.0.0). **Verification:** - yaml.safe_load + actionlint both clean on the edited workflow. - Script tested locally with three representative inputs (above). URGENT: must land before next logmind tag release; without this, the next tag fires `notify-agent-skills.yml` which then breaks on the missing Python module and re-opens the fallback issue noise pattern. --------- Co-authored-by: thrillmot <thrillmot@users.noreply.github.com>
Summary
Closes the "author's-side" arrow of the SkDD loop.
logmind skill auditwalks every.claude/skills/*/SKILL.mdand reports staleness signals:docs/decisions.md+docs/decisions-branches/*.mdactive(everyday) /aging(last touched > 90d) /ghost(decision_count==0 AND bytes>2000 → loaded but never iterated)Pairs with clud-bug's
usage --health(v0.6.28+):Surface
logmind skill audit— human-readable table with summary line.logmind skill audit --json— machine-readable array.What changed
src/logmind/core/skill_cli.py— newaudit_skills,classify_audit_row,_git_last_touched.src/logmind/cli.py— new@skill.command("audit")wiring.tests/test_skill_cli.py— 13 new tests (directory walking, decision counting from main + branch files, every status bucket, CLI rendering, JSON output, edge cases).Test plan
pytest -q— 772 tests pass (758 prior + 14 new)logmind skill audit, verify rendered table + status classification