Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .claude/commands/ideas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
allowed-tools: Bash(make:*), Bash(uv:*), Bash(python:*)
argument-hint: [natural language request about ideas management]
description: Natural language interface to the shared ideas management system
---

# Ideas Management Assistant

You are helping with the shared ideas management system. The user's request is: $ARGUMENTS

## Available Operations

The ideas management system supports these operations through make commands:

### Basic Operations
- `make ideas-status` - Show collection status and statistics
- `make ideas-list` - List all ideas
- `make ideas-list-unassigned` - Show unassigned ideas only
- `make ideas-add IDEA="title" DESCRIPTION="desc" [PRIORITY=high/medium/low] [THEMES="theme1,theme2"] [ASSIGNEE=user]` - Add new idea
- `make ideas-assign ID="idea_id" ASSIGNEE="user"` - Assign idea to user
- `make ideas-remove ID="idea_id"` - Remove an idea
- `make ideas-show ID="idea_id"` - Show detailed info about an idea

### User Queues
- `make ideas-user-queue USER="username"` - Show ideas assigned to specific user

### Goals Management
- `make ideas-add-goal DESCRIPTION="goal description" [PRIORITY=1]` - Add strategic goal
- `make ideas-goals` - List active goals

### AI-Powered Operations
- `make ideas-reorder` - Reorder ideas based on active goals using AI
- `make ideas-themes` - Detect common themes across ideas using AI
- `make ideas-similar ID="idea_id"` - Find similar ideas using AI
- `make ideas-optimize` - Optimize idea order for maximum leverage using AI

### File Operations
- `make ideas-init [SAMPLE=true]` - Initialize new ideas file
- Uses `~/amplifier/ideas.yaml` by default, or specify with `IDEAS_FILE="/path/to/file.yaml"`

## Your Task

Based on the user's request "$ARGUMENTS", determine what they want to do and execute the appropriate commands. Handle the request naturally and conversationally.

**IMPORTANT**: If any command fails because the ideas file doesn't exist, automatically run `make ideas-init` first to create it, then retry the original command.

For example:
- "add a new idea about improving performance" → use ideas-add with appropriate parameters
- "show me my ideas" → first ask who they are, then use ideas-user-queue
- "what themes do we have?" → use ideas-themes
- "reorder based on our goals" → use ideas-reorder (after ensuring goals exist)
- "optimize our priorities" → use ideas-optimize
- "show me similar ideas to xyz" → find the ID first, then use ideas-similar
- "make an ideas file" or "initialize" or "setup" → use ideas-init
- "status" or "what's the current state" → use ideas-status
- "list ideas" or "show ideas" → use ideas-list

Always explain what you're doing and provide clear, helpful responses about the results. Be proactive about creating the ideas file if it doesn't exist.
73 changes: 72 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ check: ## Format, lint, and type-check all code
@echo "Linting code with ruff..."
@VIRTUAL_ENV= uv run ruff check . --fix
@echo "Type-checking code with pyright..."
@VIRTUAL_ENV= uv run pyright
@npx pyright
@echo "Checking for stubs and placeholders..."
@python tools/check_stubs.py
@echo "All checks passed!"
Expand Down Expand Up @@ -483,3 +483,74 @@ workspace-info: ## Show workspace information
@echo ""
$(call list_projects)
@echo ""

# Ideas Management
ideas-init: ## Initialize ideas file with sample data
@echo "Initializing ideas file..."
uv run python -m amplifier.ideas.cli init --sample

ideas-add: ## Add a new idea. Usage: make ideas-add IDEA="title" [DESCRIPTION="desc"] [ASSIGNEE="user"] [PRIORITY="high|medium|low"] [THEMES="theme1,theme2"]
@if [ -z "$(IDEA)" ]; then \
echo "Error: Please provide an idea title. Usage: make ideas-add IDEA=\"Build caching layer\""; \
exit 1; \
fi
@cmd="uv run python -m amplifier.ideas.cli add \"$(IDEA)\""; \
if [ -n "$(DESCRIPTION)" ]; then cmd="$$cmd --description \"$(DESCRIPTION)\""; fi; \
if [ -n "$(ASSIGNEE)" ]; then cmd="$$cmd --assignee \"$(ASSIGNEE)\""; fi; \
if [ -n "$(PRIORITY)" ]; then cmd="$$cmd --priority \"$(PRIORITY)\""; fi; \
if [ -n "$(THEMES)" ]; then \
for theme in $$(echo "$(THEMES)" | tr ',' ' '); do \
cmd="$$cmd --themes \"$$theme\""; \
done; \
fi; \
eval $$cmd

ideas-list: ## List ideas with optional filters. Usage: make ideas-list [USER="alice"] [PRIORITY="high"] [THEME="ui"]
@cmd="uv run python -m amplifier.ideas.cli list"; \
if [ -n "$(USER)" ]; then cmd="$$cmd --user \"$(USER)\""; fi; \
if [ "$(UNASSIGNED)" = "true" ]; then cmd="$$cmd --unassigned"; fi; \
if [ -n "$(PRIORITY)" ]; then cmd="$$cmd --priority \"$(PRIORITY)\""; fi; \
if [ -n "$(THEME)" ]; then cmd="$$cmd --theme \"$(THEME)\""; fi; \
eval $$cmd

ideas-assign: ## Assign an idea to a user. Usage: make ideas-assign IDEA_ID="idea_123" USER="alice"
@if [ -z "$(IDEA_ID)" ] || [ -z "$(USER)" ]; then \
echo "Error: Please provide both IDEA_ID and USER. Usage: make ideas-assign IDEA_ID=\"idea_123\" USER=\"alice\""; \
exit 1; \
fi
uv run python -m amplifier.ideas.cli assign "$(IDEA_ID)" "$(USER)"

ideas-status: ## Show ideas collection status and statistics
uv run python -m amplifier.ideas.cli status

ideas-goals: ## List active goals for idea prioritization
uv run python -m amplifier.ideas.cli goals

ideas-add-goal: ## Add a new goal. Usage: make ideas-add-goal GOAL="Focus on user experience"
@if [ -z "$(GOAL)" ]; then \
echo "Error: Please provide a goal description. Usage: make ideas-add-goal GOAL=\"Focus on user experience\""; \
exit 1; \
fi
@cmd="uv run python -m amplifier.ideas.cli add-goal \"$(GOAL)\""; \
if [ -n "$(PRIORITY)" ]; then cmd="$$cmd --priority $(PRIORITY)"; fi; \
eval $$cmd

ideas-reorder: ## Reorder ideas based on active goals using AI
@echo "🎯 Reordering ideas based on goals..."
uv run python -m amplifier.ideas.cli reorder

ideas-themes: ## Detect common themes across ideas using AI
@echo "🔍 Detecting themes in ideas..."
uv run python -m amplifier.ideas.cli themes

ideas-similar: ## Find similar ideas. Usage: make ideas-similar IDEA_ID="idea_123"
@if [ -z "$(IDEA_ID)" ]; then \
echo "Error: Please provide IDEA_ID. Usage: make ideas-similar IDEA_ID=\"idea_123\""; \
exit 1; \
fi
@echo "🔎 Finding similar ideas..."
uv run python -m amplifier.ideas.cli similar "$(IDEA_ID)"

ideas-optimize: ## Optimize idea order for maximum leverage using AI
@echo "⚡ Optimizing ideas for leverage..."
uv run python -m amplifier.ideas.cli optimize
9 changes: 9 additions & 0 deletions amplifier/ideas/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"""
Shared Ideas Management System

A hybrid code/AI system for managing project ideas with natural language goals,
per-person assignment queues, and LLM-powered operations like reordering and theme detection.
"""

__version__ = "1.0.0"
__all__ = ["storage", "operations", "cli", "models"]
Loading