Browse Source

chore: Remove project-planner skill, fix git-workflow YAML

- Remove project-planner skill (outdated, native features cover this)
- Fix YAML parsing error in git-workflow description (quote string with colons)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
0xDarkMatter 4 months ago
parent
commit
447d0b1690

+ 0 - 1
README.md

@@ -61,7 +61,6 @@ Then symlink or copy to your Claude directories:
 | [data-processing](skills/data-processing/) | Process JSON with jq, YAML/TOML with yq |
 | [git-workflow](skills/git-workflow/) | Enhanced git operations with lazygit, gh, delta |
 | [project-docs](skills/project-docs/) | Scan and synthesize project documentation |
-| [project-planner](skills/project-planner/) | Manage ROADMAP.md and PLAN.md for planning |
 | [python-env](skills/python-env/) | Fast Python environment management with uv |
 | [safe-file-reader](skills/safe-file-reader/) | Read files without permission prompts |
 | [structural-search](skills/structural-search/) | Search code by AST structure with ast-grep |

+ 1 - 1
skills/git-workflow/SKILL.md

@@ -1,6 +1,6 @@
 ---
 name: git-workflow
-description: Enhanced git operations using lazygit (TUI for staging/commits), gh (GitHub CLI for PRs/issues), and delta (beautiful diffs). Triggers on: stage changes, create PR, review PR, check issues, git diff, commit interactively, GitHub operations.
+description: "Enhanced git operations using lazygit, gh (GitHub CLI), and delta. Triggers on stage changes, create PR, review PR, check issues, git diff, commit interactively, GitHub operations."
 ---
 
 # Git Workflow

+ 0 - 142
skills/project-planner/HOOKS_README.md

@@ -1,142 +0,0 @@
-# Sprint Skill Hooks - MVP
-
-Automated sprint plan management using Claude Code hooks.
-
-## What This Does
-
-**Automatically reminds you to sync your sprint plan** at the right moments:
-
-1. **On Session Start**: Warns if PLAN.md is >3 days old
-2. **After Git Commits**: Suggests running `/sprint sync`
-3. **After Completing 2+ Tasks**: Reminds you to update PLAN.md
-
-## Installation
-
-### Option 1: User-Level (All Projects)
-
-Run this in Claude Code:
-```
-/hooks
-```
-
-Then select **"User settings"** and paste the contents of `hooks.json`.
-
-### Option 2: Project-Specific (HarvestMCP only)
-
-1. Create `.claude/hooks.json` in your project root
-2. Copy contents from this `hooks.json` file
-3. Commit to version control so it applies to all team members
-
-### Option 3: Manual Configuration
-
-Add to your `~/.claude/settings.json`:
-
-```json
-{
-  "hooks": {
-    "SessionStart": [
-      {
-        "matcher": "*",
-        "hooks": [
-          {
-            "type": "command",
-            "command": "if [ -f docs/PLAN.md ] && [ -d .git ]; then days_old=$(( ($(date +%s) - $(git log -1 --format=%ct docs/PLAN.md 2>/dev/null || echo 0)) / 86400 )); if [ $days_old -gt 3 ]; then echo \"⚠️  Sprint plan is $days_old days old. Run /sprint sync to update.\"; fi; fi"
-          }
-        ]
-      }
-    ],
-    "PostToolUse": [
-      {
-        "matcher": "Bash",
-        "hooks": [
-          {
-            "type": "command",
-            "command": "cmd=$(echo \"$TOOL_INPUT\" | jq -r '.command // empty' 2>/dev/null); if echo \"$cmd\" | grep -q 'git commit' 2>/dev/null; then echo \"💡 Committed changes. Run /sprint sync to update your plan.\"; fi"
-          }
-        ]
-      },
-      {
-        "matcher": "TodoWrite",
-        "hooks": [
-          {
-            "type": "command",
-            "command": "completions=$(echo \"$TOOL_INPUT\" | jq '[.todos[] | select(.status == \"completed\")] | length' 2>/dev/null); if [ \"$completions\" -ge 2 ] 2>/dev/null; then echo \"✓ $completions tasks completed! Run /sprint sync to update PLAN.md\"; fi"
-          }
-        ]
-      }
-    ]
-  }
-}
-```
-
-## Requirements
-
-- `jq` (JSON processor) - Usually pre-installed on macOS/Linux
-  - Windows: Install via `choco install jq` or download from https://jqlang.github.io/jq/
-- Git repository
-- `docs/PLAN.md` file (created by `/sprint` skill)
-
-## Testing
-
-After installation, test each hook:
-
-1. **SessionStart**: Restart Claude Code session
-2. **Git commit hook**: Run `git commit -m "test"`
-3. **TodoWrite hook**: Mark 2+ tasks as completed
-
-You should see reminder messages in the Claude Code output.
-
-## Customization
-
-Edit the hooks to change behavior:
-
-### Change Staleness Threshold
-
-Change `$days_old -gt 3` to different number of days:
-```bash
-if [ $days_old -gt 7 ]; then  # Warn after 7 days instead of 3
-```
-
-### Change Completion Threshold
-
-Change `$completions -ge 2` to require more completions:
-```bash
-if [ \"$completions\" -ge 5 ]; then  # Remind after 5 tasks instead of 2
-```
-
-### Disable Specific Hooks
-
-Remove entire hook objects from the JSON:
-- Remove `SessionStart` block to disable staleness check
-- Remove `Bash` matcher to disable git commit reminders
-- Remove `TodoWrite` matcher to disable completion reminders
-
-## Future Enhancements
-
-Possible additions for v2.0:
-- Auto-run `/sprint sync` (not just suggest)
-- Track sprint velocity in log file
-- Block edits to archived plans
-- End-of-day sprint review reminder
-- Integration with git hooks (pre-commit)
-
-## Troubleshooting
-
-**Hook not firing?**
-- Check hook syntax with `/hooks` command
-- Verify `jq` is installed: `jq --version`
-- Check hook output doesn't have syntax errors
-
-**False positives?**
-- Hooks trigger on every matching tool use
-- Adjust matchers to be more specific
-- Add additional grep filters to command
-
-**Need to disable temporarily?**
-- Comment out hook in settings JSON
-- Or remove hooks section entirely
-
----
-
-**Version**: 1.0.0 (MVP)
-**Last Updated**: 2025-11-01

+ 0 - 279
skills/project-planner/README.md

@@ -1,279 +0,0 @@
-# Sprint - Project Planning Management Skill
-
-Automatically manage ROADMAP.md and PLAN.md across all your projects, keeping sprint plans in sync with git commits and TodoWrite tasks.
-
-## Quick Start
-
-```bash
-/sprint          # Full analysis and sync
-/sprint check    # Check if plan is stale
-/sprint sync     # Quick sync without full analysis
-```
-
-Or just say:
-- "sync my sprint plan"
-- "update my plan"
-- "check if my plan is stale"
-
-## What It Does
-
-### 1. Manages Two Planning Documents
-
-**docs/ROADMAP.md** - Long-term vision
-- Product roadmap across versions (v0.1, v0.2, etc.)
-- Feature categories and enhancements
-- Technical architecture
-- Success metrics
-
-**docs/PLAN.md** - Current sprint tasks
-- Weekly todo list with checkboxes
-- Organized by status (In Progress / Pending / Completed)
-- Synced with TodoWrite tool
-- Updated based on git commits
-
-### 2. Keeps Everything in Sync
-
-- ✅ **Git commits** → Marks tasks as completed
-- ✅ **TodoWrite** → Syncs checkbox states
-- ✅ **ROADMAP.md** → Populates next sprint tasks
-- ✅ **Timestamps** → Tracks last update
-
-### 3. Smart Analysis
-
-- **Adaptive lookback**: 30 days default, expands to 60/90/180/365 days if no commits
-- **Uncommitted changes**: Detects work in progress, matches files to tasks
-- **Fuzzy matching**: Matches commit messages to tasks (70%+ similarity)
-- **File-to-task linking**: Links modified files to related tasks (e.g., `src/cli.py` → "Implement CLI")
-- Suggests new tasks from ROADMAP phases
-
-## Usage Examples
-
-### First Time Setup
-
-```
-You: I need planning docs for my project
-Claude: [Invokes /sprint skill]
-  → Analyzes project structure
-  → Creates ROADMAP.md with AI-generated vision
-  → Creates PLAN.md from current phase
-  → Initializes with tasks
-```
-
-### Daily Sync
-
-```
-You: /sprint sync
-Claude:
-  ✓ Sprint plan synced!
-  • Completed: 2 tasks (from git commits)
-  • Synced: 3 tasks with TodoWrite
-  • Updated: 1 minute ago
-```
-
-### Weekly Review
-
-```
-You: /sprint
-Claude:
-  📊 Full analysis complete!
-
-  Git activity (7 days):
-  • 15 commits analyzed
-  • 5 features completed
-
-  Updates:
-  • Moved 5 tasks to Completed
-  • Added 3 new tasks from ROADMAP Phase 2
-  • Synced all with TodoWrite
-
-  Sprint Status:
-  • In Progress: 2 tasks
-  • Pending: 8 tasks
-  • Completed: 15 tasks
-```
-
-### Staleness Check
-
-```
-You: /sprint check
-Claude:
-  ⚠ Plan is 4 days old
-
-  Recent activity:
-  • 7 git commits since last sync
-  • 3 TodoWrite items completed
-
-  Run /sprint sync to update
-```
-
-## File Structure
-
-The skill expects (and creates if missing):
-
-```
-your-project/
-├── docs/
-│   ├── ROADMAP.md    # Long-term product roadmap
-│   └── PLAN.md       # Current sprint checklist
-└── .git/             # Git repository (required)
-```
-
-## How It Works
-
-### Adaptive Commit Analysis
-
-Intelligently finds commits with adaptive lookback:
-
-```bash
-# Start: 30 days
-git log --since="30 days ago" --oneline --no-merges
-
-# If no commits, expand: 60, 90, 180, 365 days
-# Stops when commits found or max reached
-```
-
-**Handles inactive projects**:
-- Slow-moving projects: Automatically expands search
-- Reports: "No commits in last 30 days, expanded to 90 days"
-- Finds the most recent work automatically
-
-**Matches patterns**:
-- `feat(cli): Add analyze command` → "Add analyze command"
-- `fix: Resolve bug in parser` → "Resolve bug in parser"
-- `docs: Update README` → "Update README"
-
-### Uncommitted Changes Detection
-
-Detects work in progress and matches to tasks:
-
-```bash
-git status --porcelain
-```
-
-**File-to-Task Matching**:
-- `src/cli.py` modified → 🔨 "Implement CLI"
-- `tests/test_cli.py` added → 🔨 "Write CLI tests"
-- `src/analyzer.py` changed → 🔨 "Create analyzer framework"
-
-**Smart reporting**:
-```
-📝 Uncommitted Changes (5 files):
-  • src/cli.py          → 🔨 "Implement CLI"
-  • src/analyzer.py     → 🔨 "Create analyzer framework"
-  • README.md           → (no task match)
-
-💡 Tip: Commit your work to track progress
-```
-
-**Suggestions**:
-- >5 files changed: Suggests committing
-- >100 lines changed: "Substantial work detected"
-- >24 hours since last commit: Reminds you to commit
-
-### TodoWrite Sync
-
-Reads TodoWrite state from conversation context and syncs with PLAN.md checkboxes:
-
-- TodoWrite "completed" → `[x]` in PLAN.md
-- TodoWrite "in_progress" → `[ ]` in "In Progress" section
-- TodoWrite "pending" → `[ ]` in "Pending" section
-
-### Task Matching
-
-Uses fuzzy matching to link commits to tasks:
-- 70%+ similarity = likely match
-- Keyword detection: "add", "create", "implement", "fix"
-- Suggests matches for user confirmation
-
-## Automation Triggers
-
-The skill can be triggered:
-
-1. **Explicitly**: `/sprint`, `/sprint sync`, `/sprint check`
-2. **After commits**: When you make significant git commits
-3. **Daily check**: First Claude Code session of the day
-4. **TodoWrite changes**: When marking items complete
-
-## Safety Features
-
-- ✅ Non-destructive - preserves manual edits
-- ✅ Additive - adds tasks, doesn't remove arbitrarily
-- ✅ Timestamped - tracks all updates
-- ✅ Confirmation - asks before major changes (>5 tasks)
-- ✅ Git-aware - knows what's committed
-
-## Error Handling
-
-**No git repo**: Suggests initializing git first
-**Missing ROADMAP**: Offers to create from template
-**Parse errors**: Offers to reformat PLAN.md
-**Can't analyze**: Creates basic template
-
-## Commands Reference
-
-| Command | Description | When to Use |
-|---------|-------------|-------------|
-| `/sprint` | Full analysis + sync | Weekly review, major updates |
-| `/sprint sync` | Quick sync only | Daily updates, after commits |
-| `/sprint check` | Staleness check | Check if update needed |
-| "sync my plan" | Natural language | Anytime you want to sync |
-
-## Tips
-
-1. **Run daily**: Quick `/sprint sync` keeps things fresh
-2. **After features**: Run `/sprint` after completing major work
-3. **Weekly reviews**: Full `/sprint` for comprehensive updates
-4. **Check staleness**: `/sprint check` to see if update needed
-
-## Configuration
-
-Currently uses sensible defaults:
-- 7-day commit lookback
-- 3-day staleness threshold
-- Auto-sync with TodoWrite
-- Markdown checkbox format
-
-Future: Could support `.sprintrc` for customization
-
-## Works With
-
-- ✅ Python projects
-- ✅ JavaScript/TypeScript projects
-- ✅ Any git repository
-- ✅ All your projects (global skill)
-
-## Troubleshooting
-
-**"Plan is stale" but I just updated it**:
-- Git might not have the file committed
-- Try: `git add docs/PLAN.md && git commit -m "Update plan"`
-
-**Tasks not syncing with TodoWrite**:
-- TodoWrite state is ephemeral (per session)
-- Run `/sprint sync` to manually sync
-
-**Commit analysis missing tasks**:
-- Use conventional commit messages (feat:, fix:, docs:)
-- Or manually update PLAN.md checkboxes
-
-## Examples in the Wild
-
-### HarvestMCP Project
-```
-docs/ROADMAP.md - 5-phase roadmap for v0.1-v0.5
-docs/PLAN.md - Current sprint: PM tools development
-Sprint status: 3 in progress, 8 pending, 12 completed
-```
-
-### project-organizer-pro
-```
-docs/ROADMAP.md - Full product vision with 15 categories
-docs/PLAN.md - Phase 1: Foundation sprint
-Sprint status: 1 in progress, 15 pending, 6 completed
-```
-
----
-
-**Skill Version**: 1.0
-**Created**: 2025-11-01
-**Requires**: Claude Code with git repository

+ 0 - 140
skills/project-planner/SKILL.md

@@ -1,140 +0,0 @@
----
-name: project-planner
-description: Manage ROADMAP.md and PLAN.md for project planning. Syncs sprint tasks with git commits and TodoWrite. Triggers on: sync plan, update roadmap, check sprint status, project planning, create roadmap, plan is stale, track progress, sprint sync.
----
-
-# Project Planner
-
-**Purpose**: Automatically manage ROADMAP.md and PLAN.md across all projects, keeping sprint plans in sync with git commits and TodoWrite tasks.
-
----
-
-## When to Activate
-
-This skill should be invoked when:
-
-1. **User explicitly requests**:
-   - "sync my plan"
-   - "update sprint plan"
-   - "check if plan is stale"
-   - "create roadmap"
-   - "track my progress"
-
-2. **Proactive triggers** (check first, then suggest):
-   - After git commits with significant changes
-   - When TodoWrite items are marked completed
-   - First invocation of the day (check staleness)
-   - When PLAN.md is >3 days old
-
-3. **Missing documentation**:
-   - ROADMAP.md doesn't exist
-   - PLAN.md doesn't exist
-   - User asks about project planning
-
----
-
-## Skill Invocation Modes
-
-### Mode 1: Full Analysis
-
-**What to do**:
-1. Check if `docs/ROADMAP.md` exists
-   - If missing: Analyze project and create comprehensive ROADMAP.md
-   - If exists: Read and validate structure
-
-2. Check if `docs/PLAN.md` exists
-   - If missing: Generate from ROADMAP.md current phase
-   - If exists: Read current content
-
-3. Check if `CLAUDE.md` exists (root or docs/)
-   - If missing: Flag for creation and suggest to user
-
-4. Analyze recent git commits with **adaptive lookback**:
-   ```bash
-   git log --since="30 days ago" --oneline --no-merges
-   # If no commits, expand to 60, 90, 180, 365 days
-   ```
-
-5. Detect uncommitted changes:
-   ```bash
-   git status --porcelain
-   ```
-   - Match changed files to PLAN.md tasks
-
-6. Read current TodoWrite state and compare with PLAN.md
-
-7. Update `docs/PLAN.md` and `docs/ROADMAP.md`:
-   - Mark completed tasks as [x]
-   - Mark in-progress tasks as [-]
-   - Move completed to Completed section
-   - Update timestamps
-
-8. **Populate TodoWrite from PLAN.md**
-
-9. Report summary to user
-
-### Mode 2: Staleness Check
-
-Quick check of plan freshness:
-- Report age of PLAN.md
-- Count uncommitted changes
-- Show quick stats
-
-### Mode 3: Quick Sync
-
-Fast sync without full analysis:
-- Read PLAN.md
-- Check last 10 commits
-- Update checkboxes
-- Refresh TodoWrite
-
----
-
-## Checkbox Convention
-
-Both ROADMAP.md and PLAN.md use:
-- `- [ ]` = Pending/Not started
-- `- [-]` = In Progress
-- `- [x]` = Completed
-
----
-
-## File Locations
-
-**Expected structure**:
-```
-project-root/
-├── docs/
-│   ├── ROADMAP.md    # Long-term vision
-│   └── PLAN.md       # Current sprint
-└── README.md
-```
-
-**Fallback**: Check root level if docs/ doesn't exist
-
----
-
-## Tool Usage
-
-**Required tools**:
-- `Read` - Read ROADMAP.md, PLAN.md, README.md
-- `Write` - Create/update PLAN.md, ROADMAP.md
-- `Edit` - Make targeted edits
-- `Bash` - Run git commands
-- `Grep` - Search for TODO comments
-- `Glob` - Find files for project analysis
-- `TodoWrite` - Sync bidirectionally
-
----
-
-## Best Practices
-
-1. **Non-destructive**: Always preserve user's manual edits
-2. **Additive**: Add tasks, don't remove (unless obviously complete)
-3. **Timestamped**: Always update "Last Updated" field
-4. **Confirmation**: Ask before major changes (>5 tasks affected)
-5. **Git-aware**: Check if changes should be committed
-
----
-
-**Version**: 1.2

+ 0 - 41
skills/project-planner/hooks.json

@@ -1,41 +0,0 @@
-{
-  "$schema": "https://docs.anthropic.com/schemas/hooks.json",
-  "description": "Sprint skill automation hooks - MVP version",
-  "version": "1.0.0",
-  "hooks": {
-    "SessionStart": [
-      {
-        "matcher": "*",
-        "hooks": [
-          {
-            "type": "command",
-            "comment": "Check sprint plan staleness on session start",
-            "command": "if [ -f docs/PLAN.md ] && [ -d .git ]; then days_old=$(( ($(date +%s) - $(git log -1 --format=%ct docs/PLAN.md 2>/dev/null || echo 0)) / 86400 )); if [ $days_old -gt 3 ]; then echo \"⚠️  Sprint plan is $days_old days old. Run /sprint sync to update.\"; fi; fi"
-          }
-        ]
-      }
-    ],
-    "PostToolUse": [
-      {
-        "matcher": "Bash",
-        "hooks": [
-          {
-            "type": "command",
-            "comment": "Suggest sprint sync after git commits",
-            "command": "cmd=$(echo \"$TOOL_INPUT\" | jq -r '.command // empty' 2>/dev/null); if echo \"$cmd\" | grep -q 'git commit' 2>/dev/null; then echo \"💡 Committed changes. Run /sprint sync to update your plan.\"; fi"
-          }
-        ]
-      },
-      {
-        "matcher": "TodoWrite",
-        "hooks": [
-          {
-            "type": "command",
-            "comment": "Suggest sprint sync after completing multiple tasks",
-            "command": "completions=$(echo \"$TOOL_INPUT\" | jq '[.todos[] | select(.status == \"completed\")] | length' 2>/dev/null); if [ \"$completions\" -ge 2 ] 2>/dev/null; then echo \"✓ $completions tasks completed! Run /sprint sync to update PLAN.md\"; fi"
-          }
-        ]
-      }
-    ]
-  }
-}