From 4fb07a07b7e85e8b3f9127b04d15894f6ca05afc Mon Sep 17 00:00:00 2001 From: Hugo Nijhuis Date: Sun, 28 Dec 2025 22:32:01 +0100 Subject: [PATCH] Add new commands, skills, and agents; remove token loading script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add groom, plan-issues, and roadmap commands - Add skills for backlog-grooming, forgejo, issue-writing, roadmap-planning - Add agents directory structure - Remove load-forgejo-token.sh and SessionStart hook (using fj auth instead) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- agents/product-manager/AGENT.md | 34 +++++++++ commands/groom.md | 31 ++++++++ commands/plan-issues.md | 34 +++++++++ commands/roadmap.md | 31 ++++++++ scripts/load-forgejo-token.sh | 9 --- settings.json | 10 --- skills/backlog-grooming/SKILL.md | 83 ++++++++++++++++++++++ skills/forgejo/SKILL.md | 88 +++++++++++++++++++++++ skills/issue-writing/SKILL.md | 105 +++++++++++++++++++++++++++ skills/roadmap-planning/SKILL.md | 118 +++++++++++++++++++++++++++++++ 10 files changed, 524 insertions(+), 19 deletions(-) create mode 100644 agents/product-manager/AGENT.md create mode 100644 commands/groom.md create mode 100644 commands/plan-issues.md create mode 100644 commands/roadmap.md delete mode 100755 scripts/load-forgejo-token.sh create mode 100644 skills/backlog-grooming/SKILL.md create mode 100644 skills/forgejo/SKILL.md create mode 100644 skills/issue-writing/SKILL.md create mode 100644 skills/roadmap-planning/SKILL.md diff --git a/agents/product-manager/AGENT.md b/agents/product-manager/AGENT.md new file mode 100644 index 0000000..e1d1e5d --- /dev/null +++ b/agents/product-manager/AGENT.md @@ -0,0 +1,34 @@ +# Product Manager Agent + +Specialized agent for backlog management and roadmap planning. + +## Skills + +- forgejo +- issue-writing +- backlog-grooming +- roadmap-planning + +## Capabilities + +This agent can: +- Review and improve existing issues +- Create new well-structured issues +- Analyze the backlog for gaps and priorities +- Plan feature breakdowns +- Maintain roadmap clarity + +## When to Use + +Spawn this agent for: +- Batch operations on multiple issues +- Comprehensive backlog reviews +- Feature planning that requires codebase exploration +- Complex issue creation with dependencies + +## Behavior + +- Always fetches current issue state before making changes +- Asks for approval before creating or modifying issues +- Provides clear summaries of actions taken +- Uses the fj CLI for all Forgejo operations diff --git a/commands/groom.md b/commands/groom.md new file mode 100644 index 0000000..0f60955 --- /dev/null +++ b/commands/groom.md @@ -0,0 +1,31 @@ +--- +description: Groom and improve issues. Without argument, reviews all open issues. With argument, grooms specific issue. +argument-hint: [issue-number] +--- + +# Groom Issues + +Use the backlog-grooming and issue-writing skills. + +## If issue number provided ($1): + +1. **Fetch the issue**: `fj issue view $1` +2. **Evaluate** against grooming checklist +3. **Suggest improvements** for: + - Title clarity + - Description completeness + - Acceptance criteria quality + - Scope definition +4. **Ask user** if they want to apply changes +5. **Update issue** if approved: `fj issue edit $1 --body "..."` + +## If no argument (groom all): + +1. **List open issues**: `fj issue search -s open` +2. **Review each** against grooming checklist +3. **Categorize**: + - Ready: Well-defined, can start work + - Needs work: Missing info or unclear + - Stale: No longer relevant +4. **Present summary** table +5. **Offer to improve** issues that need work diff --git a/commands/plan-issues.md b/commands/plan-issues.md new file mode 100644 index 0000000..ea48b18 --- /dev/null +++ b/commands/plan-issues.md @@ -0,0 +1,34 @@ +--- +description: Plan and create issues for a feature or improvement. Breaks down work into well-structured issues. +argument-hint: +--- + +# Plan Feature: $1 + +Use the roadmap-planning, issue-writing, and forgejo skills. + +1. **Understand the feature**: Analyze what "$1" involves +2. **Explore the codebase** if needed to understand context +3. **Break down** into discrete, actionable issues: + - Each issue should be independently completable + - Clear dependencies between issues + - Appropriate scope (not too big, not too small) + +4. **Present the plan**: + ``` + ## Proposed Issues for: $1 + + 1. [Title] - Brief description + Dependencies: none + + 2. [Title] - Brief description + Dependencies: #1 + + 3. [Title] - Brief description + Dependencies: #1, #2 + ``` + +5. **Ask for approval** before creating issues +6. **Create issues** in order using `fj issue create` +7. **Update dependencies** with actual issue numbers after creation +8. **Present summary** with links to created issues diff --git a/commands/roadmap.md b/commands/roadmap.md new file mode 100644 index 0000000..f1445be --- /dev/null +++ b/commands/roadmap.md @@ -0,0 +1,31 @@ +--- +description: View current issues as a roadmap. Shows open issues organized by status and dependencies. +--- + +# Roadmap View + +Use the forgejo skill. + +1. **Fetch all open issues**: `fj issue search -s open` +2. **Analyze dependencies** from issue descriptions +3. **Categorize issues**: + - Blocked: Waiting on other issues + - Ready: No blockers, can start + - In Progress: Has assignee or WIP label +4. **Present roadmap** as organized list: + +``` +## Ready to Start +- #5: Add user authentication +- #8: Create dashboard layout + +## In Progress +- #3: Setup database schema + +## Blocked +- #7: User profile page (blocked by #5) +- #9: Admin dashboard (blocked by #3, #8) +``` + +5. **Highlight** any issues that seem stale or unclear +6. **Suggest** next actions based on the roadmap state diff --git a/scripts/load-forgejo-token.sh b/scripts/load-forgejo-token.sh deleted file mode 100755 index e0f98a7..0000000 --- a/scripts/load-forgejo-token.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# Load Forgejo token from macOS Keychain into Claude Code session -if [ -n "$CLAUDE_ENV_FILE" ]; then - TOKEN=$(security find-generic-password -a "$USER" -s "forgejo-token" -w 2>/dev/null) - if [ -n "$TOKEN" ]; then - echo "export FORGEJO_TOKEN=\"$TOKEN\"" >> "$CLAUDE_ENV_FILE" - fi -fi -exit 0 diff --git a/settings.json b/settings.json index 4590b02..0840355 100644 --- a/settings.json +++ b/settings.json @@ -8,16 +8,6 @@ "gopls-lsp@claude-plugins-official": true }, "hooks": { - "SessionStart": [ - { - "hooks": [ - { - "type": "command", - "command": "~/.claude/scripts/load-forgejo-token.sh" - } - ] - } - ], "PreToolUse": [ { "matcher": "Bash(git commit:*)", diff --git a/skills/backlog-grooming/SKILL.md b/skills/backlog-grooming/SKILL.md new file mode 100644 index 0000000..afb2a9b --- /dev/null +++ b/skills/backlog-grooming/SKILL.md @@ -0,0 +1,83 @@ +# Backlog Grooming + +How to review and improve existing issues. + +## Grooming Checklist + +For each issue, verify: + +### 1. Title Clarity +- [ ] Starts with action verb +- [ ] Specific and descriptive +- [ ] Understandable without reading description + +### 2. Description Quality +- [ ] Has clear summary +- [ ] Explains the "why" +- [ ] Provides enough context + +### 3. Acceptance Criteria +- [ ] Criteria exist +- [ ] Each criterion is testable +- [ ] Criteria are specific (not vague) +- [ ] Complete set (nothing missing) + +### 4. Scope +- [ ] Not too broad (can complete in reasonable time) +- [ ] Not too narrow (meaningful unit of work) +- [ ] Clear boundaries (what's included/excluded) + +### 5. Dependencies +- [ ] Dependencies identified +- [ ] No circular dependencies +- [ ] Blocking issues are tracked + +### 6. Labels +- [ ] Type label (bug/feature/etc) +- [ ] Priority if applicable +- [ ] Component labels if applicable + +## Common Issues to Fix + +### Vague Titles +- Bad: "Fix bug" +- Good: "Fix login form validation on empty email" + +### Missing Acceptance Criteria +Add specific, testable criteria based on the description. + +### Scope Creep +If issue covers multiple features, split into separate issues. + +### Stale Issues +- Close if no longer relevant +- Update if context has changed +- Add "needs-triage" label if unclear + +### Duplicate Issues +- Close duplicate with reference to original +- Merge relevant details into original + +## Grooming Workflow + +1. **Fetch open issues**: `fj issue search -s open` +2. **Review each issue** against checklist +3. **Improve or flag** issues that need work +4. **Update issue** with improvements: `fj issue edit --body "..."` +5. **Add labels** as needed: `fj issue label add