Intelligent journal cleanup — cross-references open tasks and ideas with git history, codebase state, and project activity to suggest what's done, stale, or abandoned
From jotnpx claudepluginhub queelius/claude-anvil --plugin jot[tag or project name]/triageDecomposes a large feature into multiple dependency-aware specs with graphs and interface contracts. Manages git branches, active epics, and delegates to subagents. Accepts epic-name and goal.
/triageInvestigates a bug from provided description or error, determines root cause, and files GitHub issue with TDD fix plan.
/triageTriages findings from code reviews, audits, or analysis by presenting each for categorization by severity, category, effort, then creates or updates ready todo files in todos/ directory on user approval.
/triageRun an issue triage session — list open issues, suggest labels, identify stale issues, and generate standard close responses for out-of-scope or duplicate issues.
Cross-reference open journal entries with external signals (git history, codebase, PRs) to identify entries that are likely finished, abandoned, or need attention. Present a triage list with actionable recommendations.
Determine scope:
jot list --tags=<arg> --jsonbasename "$PWD" via jot tags --fuzzy <basename> --json, then filter by that tagjot list --status=open --json and jot list --status=in_progress --jsonAlso gather stale entries: jot stale --days 30 --json (scoped to tag if available).
For each candidate entry, search git history for related work:
# Search commit messages for keywords from the entry title
git log --oneline --since="$(entry.created)" --grep="<keyword>" 2>/dev/null
# Check recent commits touching files related to the entry's tags/content
git log --oneline --since="$(entry.created)" -- "*<keyword>*" 2>/dev/null
Extract 2-3 keywords from each entry title (drop stopwords like "the", "a", "fix", "add", "implement"). Search for each keyword independently and look for overlapping commits.
Signals that work is DONE:
Signals that work is ABANDONED:
Signals to KEEP OPEN:
If in a git repo with a remote:
# Check for merged PRs mentioning the task
gh pr list --state merged --search "<keywords>" --limit 5 2>/dev/null || true
Check if files referenced in the entry content exist or were recently modified:
# Look for files matching entry keywords
git diff --stat HEAD~50..HEAD -- "*<keyword>*" 2>/dev/null
Organize findings into three categories:
Entries where git history strongly suggests the work was completed. For each:
jot status <slug> doneEntries that are old with no related activity. For each:
jot status <slug> archived or suggest revisitingEntries that are stale, blocked, or partially complete. For each:
Briefly list entries that appear to still be relevant (recent activity, not stale). No action needed — just acknowledge them.
After presenting the report, offer to execute recommendations:
jot status <slug> done for eachjot status <slug> archived for eachAlways confirm before modifying entries. Show the full list of changes before executing.
--json when querying jot for programmatic parsing.gh CLI is not available, skip PR checks gracefully.jot stale with better presentation).