From software-of-you
Manages projects and tasks in SQLite: create/edit with client/status/priority flags, list active projects with task counts, add tasks to projects.
How this command is triggered — by the user, by Claude, or both
Slash command
/software-of-you:project <project name> [--client <name>] [--status <status>] or "list" or "task <project> <task title>"This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# Project Management
Handle project and task operations based on $ARGUMENTS. Database at `${CLAUDE_PLUGIN_ROOT:-$(pwd)}/data/soy.db`.
## Determine the Operation
- **No arguments or "list"** → List active projects
- **"task <project> <title>"** → Add a task to a project
- **Project name with flags** → Create a new project
- **References existing project + changes** → Edit that project
## Add a Project
Parse project name and optional flags (--client, --status, --priority, --target).
If --client is specified, look up the contact:
Run both statements in a single sqlite3 call (so `last_i...Handle project and task operations based on $ARGUMENTS. Database at ${CLAUDE_PLUGIN_ROOT:-$(pwd)}/data/soy.db.
Parse project name and optional flags (--client, --status, --priority, --target).
If --client is specified, look up the contact:
SELECT id FROM contacts WHERE name LIKE '%client_name%';
Run both statements in a single sqlite3 call (so last_insert_rowid() works correctly):
INSERT INTO projects (name, description, client_id, status, priority, start_date, target_date)
VALUES (?, ?, ?, ?, ?, date('now'), ?);
INSERT INTO activity_log (entity_type, entity_id, action, details)
VALUES ('project', last_insert_rowid(), 'created', json_object('name', ?));
Confirm with project details. If client was linked, mention the connection.
SELECT p.id, p.name, p.status, p.priority, p.target_date, c.name as client
FROM projects p LEFT JOIN contacts c ON p.client_id = c.id
WHERE p.status NOT IN ('completed', 'cancelled')
ORDER BY
CASE p.priority WHEN 'urgent' THEN 1 WHEN 'high' THEN 2 WHEN 'medium' THEN 3 ELSE 4 END,
p.updated_at DESC;
Include task counts per project:
SELECT project_id, status, COUNT(*) as count FROM tasks GROUP BY project_id, status;
INSERT INTO tasks (project_id, title, status, priority)
VALUES (?, ?, 'todo', ?);
INSERT INTO activity_log (entity_type, entity_id, action, details)
VALUES ('project', ?, 'task_added', json_object('task', ?));
Update specified fields, set updated_at = datetime('now'), log the change.
UPDATE tasks SET status = ?, updated_at = datetime('now'),
completed_at = CASE WHEN ? = 'done' THEN datetime('now') ELSE NULL END
WHERE id = ?;
npx claudepluginhub kmorebetter/better-software-of-you/projectDisplays project dashboard with status, progress, milestones, and tasks. Also creates new projects by analyzing PRD into milestones and tasks.
/projectManages large multi-session projects: create new, check status, add/complete milestones, generate summaries, launch interactive manager via subcommands.
/projectInitializes, analyzes, or registers a project in the LTM context system. Seeds goals, retrieves relevant memories, and maps directories to project names.
/projectAutonomously analyzes the current project: detects type and technologies, loads skills, runs code analysis, generates quality report with concise terminal output and detailed file.
/projectManages project boards: shows active project info and task overview, creates new boards with .kanban/ init, lists all projects, switches active project.
/projectManages project context: detects frameworks/package managers/agents/tests/env/cache, shows detailed status. Supports subcommands like status, refresh, init, switch, list, config.