Suggest Project Tasks
Performs comprehensive project analysis and creates tasks for everything that needs attention.
What It Analyzes
Universal (All Projects)
- •Git status: uncommitted changes, branches, stashes, conflicts
- •TODO/FIXME/HACK comments: code annotations needing attention
- •Test coverage: missing tests, failing tests
- •Dependencies: outdated packages, security vulnerabilities
- •Documentation: missing README sections, API docs
- •Security: hardcoded secrets, common vulnerabilities
Framework-Specific
Rails/Ruby:
- •Pending migrations
- •Missing model/controller specs
- •N+1 query patterns
- •Missing foreign key indexes
- •Route configuration issues
Node.js/TypeScript:
- •TypeScript type errors
- •ESLint/Prettier configuration
- •Bundle size concerns
- •Missing type definitions
- •React/Next.js specific issues
Python:
- •Mypy type checking
- •Missing docstrings
- •Django/FastAPI/Flask specific issues
- •Common anti-patterns
Rust:
- •Clippy warnings
- •Missing documentation
- •Unsafe code review
- •Test coverage
Instructions
When the user runs /suggest-tasks, perform these steps:
Step 1: Check for Existing Scan Results
Look for cached scan results at /tmp/project-scan-*.json. If recent (< 5 minutes), use those results. Otherwise, run a fresh scan.
Step 2: Detect Project Type
Run the project detection to identify what kind of project this is:
~/.claude/hooks/analyzers/detect-project.sh .
Step 3: Run Analyzers
Based on the project type, run the appropriate analyzers. Always run the universal analyzers:
~/.claude/hooks/analyzers/analyze-git.sh . ~/.claude/hooks/analyzers/analyze-todos.sh . ~/.claude/hooks/analyzers/analyze-tests.sh . ~/.claude/hooks/analyzers/analyze-deps.sh . ~/.claude/hooks/analyzers/analyze-docs.sh . ~/.claude/hooks/analyzers/analyze-security.sh .
Then run framework-specific analyzers based on detected types:
- •Rails/Ruby:
~/.claude/hooks/analyzers/analyze-rails.sh . - •Node/TypeScript:
~/.claude/hooks/analyzers/analyze-node.sh . - •Python:
~/.claude/hooks/analyzers/analyze-python.sh . - •Rust:
~/.claude/hooks/analyzers/analyze-rust.sh .
Step 4: Parse Results
Each analyzer outputs JSON lines in this format:
{"category": "git", "task": "Task title", "description": "Details", "priority": "high|medium|low|critical"}
Collect all results and group by category.
Step 5: Create Tasks
For each discovered item, use TaskCreate to add it to the task list:
TaskCreate: subject: "[category] Task title" description: "Details from analyzer" activeForm: "Checking task..."
Step 6: Present Summary
After creating tasks, present a summary grouped by category:
## Project Analysis Complete **Project Type:** Rails, TypeScript **Tasks Created:** 24 ### By Category: #### Git & Version Control (3 tasks) - [ ] Commit staged changes (high) - [ ] Clean up merged branches (low) - [ ] Push unpushed commits (medium) #### Code Quality (5 tasks) - [ ] Resolve 12 TODO comments (medium) - [ ] Fix 3 FIXME comments (high) ... #### Security (2 tasks) - [ ] Review potential hardcoded secrets (critical) - [ ] Update .gitignore for secrets (high) ...
Filtering
If the user provides a filter argument, only show tasks matching that category:
- •
/suggest-tasks git- Only git-related tasks - •
/suggest-tasks security- Only security tasks - •
/suggest-tasks rails- Only Rails-specific tasks - •
/suggest-tasks node- Only Node.js-specific tasks - •
/suggest-tasks python- Only Python-specific tasks - •
/suggest-tasks rust- Only Rust-specific tasks - •
/suggest-tasks todos- Only TODO/FIXME tasks - •
/suggest-tasks tests- Only test-related tasks - •
/suggest-tasks deps- Only dependency tasks - •
/suggest-tasks docs- Only documentation tasks
Priority Levels
Tasks are assigned priorities based on urgency:
- •critical: Merge conflicts, security vulnerabilities, missing CSRF protection
- •high: Hardcoded secrets, pending migrations, type errors, bugs
- •medium: TODO comments, outdated dependencies, missing tests
- •low: Documentation gaps, code style, optimization suggestions
Notes
- •If this is not a recognized project type (no package.json, Gemfile, Cargo.toml, etc.), inform the user
- •The scan caches results to
/tmp/project-scan-*.jsonfor reuse - •Tasks are deduplicated if the same task already exists in the task list
- •Focus on actionable items that can be worked on in the current session