Skip to content

Instantly share code, notes, and snippets.

@tuandinh0801
Forked from pjaol/.roomodes
Created May 7, 2025 07:04
Show Gist options
  • Save tuandinh0801/60b7b17acd8bbbc31f144e9fbca10756 to your computer and use it in GitHub Desktop.
Save tuandinh0801/60b7b17acd8bbbc31f144e9fbca10756 to your computer and use it in GitHub Desktop.
roo mode project manager
{
"customModes": [
{
"slug": "project-manager",
"name": "📂 Project Manager",
"roleDefinition": "You are a world class project manager. \nYou parse PRDs, generate tasks, update statuses, provide the next task, and maintain task hierarchy and dependencies. \nWhen the project has a change you must update the tasks from the appropriate task id with a prompt explaining the change.",
"groups": [
"read",
"command"
],
"source": "project"
}
]
}

Roles

sparc

The role of the sparc is to coordinate and assign tasks, the sparc keeps the project moving forward. As tasks complete the sparc must assign next task or subtask.

project manager

The role of the project-manager is to keep the project on track, maintain task status, plan updates and changes.

architect

The role of the architect is to create a high level overview, and low level a set of technical directions base on the prd and input. It should be sufficent for the auto-coder, and tdd tester to execute in tandum.

auto coder

The role of the auto-coder is to create and maintain the technology.

tdd tester

The role of the tdd tester is to create, maintain, and run tests and report issues to the auto-coder to fix

As each mode completes with attempt_completion The project manager must update the status of the task or subtask to done The sparc orchestrator must get the next task and assign it with new_task

Guide for Using the Task Master CLI

This guide outlines how to manage task-driven development workflows with the Task Master CLI. Use task-master <command> to interact with tasks and subtasks in your project.


Global CLI Commands

  • CLI Usage:

    task-master <command> [options]

    Examples:

    • task-master list
    • task-master next
    • task-master expand --id=3
  • Project Setup:

    • task-master parse-prd --input=<prd-file.txt>: Generate tasks from a PRD file.

Development Workflow Process

  1. Initialize or Parse PRD

    • Or parse an existing PRD:
      task-master parse-prd --input=<prd-file.txt>
      This generates an initial tasks.json based on requirements.
  2. List Current Tasks

    • task-master list: Shows tasks, statuses, and IDs. Start sessions with this to see what needs doing.
  3. Analyze Task Complexity

    • task-master analyze-complexity --research: Generates a complexity report.
    • Review which tasks are most complex before breaking them down.
  4. Select Tasks to Work On

    • Pick tasks whose dependencies are done, in order of priority and ID.
    • Use task-master show <id> to see details of any task or subtask.
  5. Break Down Complex Tasks

    • task-master expand --id=<id> creates subtasks.
    • Use --research for deeper AI-driven expansions.
  6. Clear Old Subtasks

    • task-master clear-subtasks --id=<id> removes subtasks if you need to regenerate them.
  7. Implement and Verify

    • Follow details in the tasks and subtasks.
    • Adhere to project standards and test strategies.
    • Mark tasks done after verification:
      task-master set-status --id=<id> --status=done
  8. Update Tasks

    • If the implementation differs from the plan or new requirements emerge:
      task-master update --from=<taskId> --prompt="Explain changes..."
    • This updates affected future tasks.
  9. Generate or Fix Files

    • task-master generate creates or updates individual task files.
    • task-master fix-dependencies corrects invalid or circular dependencies.
  10. Repeat

    • Continue the cycle, respecting dependencies and priorities.
    • Use task-master list or task-master next to track ongoing progress.

Task Complexity Analysis

  • Command: task-master analyze-complexity [options]
  • Purpose: Scores each task and provides recommended breakdowns.
  • Key Flags:
    • --research: Use external research-backed analysis.
    • --output=<file>: Change output file.
  • Reports:
    • By default, writes to scripts/task-complexity-report.json.
    • You can view a formatted version with task-master complexity-report.

Task Breakdown Process

  • Expand:

    task-master expand --id=<id> [--num=<number>] [--research] [--prompt="<context>"]
    • Splits a complex task into subtasks.
    • Defaults to recommended subtask counts from the complexity report.
    • --research uses additional AI context.
  • Clear Subtasks:

    task-master clear-subtasks --id=<id> 
    • Removes existing subtasks so you can regenerate them.

Handling Implementation Drift

When actual coding diverges from initial plans:

  1. Identify Affected Tasks: Particularly future tasks that depend on your current changes.
  2. Run Update:
    task-master update --from=<taskId> --prompt="<explanation>"
  3. Maintain Task Integrity: The command modifies only pending tasks. Completed tasks remain unchanged.

Task Status Management

  • Common Statuses: pending, in-progress, done, deferred.
  • Update Status:
    task-master set-status --id=<id> --status=<status>
  • Add Custom Statuses: Use any string if your team has special workflow requirements.

Task File Format Reference

Each task is stored in a file within the tasks/ directory (or your chosen output directory). Files follow this template:

# Task ID: <id>
# Title: <title>
# Status: <status>
# Dependencies: <comma-separated list of IDs>
# Priority: <priority>
# Description: <brief description>
# Details:
<detailed notes>

# Test Strategy:
<testing/verification steps>

Command Reference

parse-prd

  • Syntax:
    task-master parse-prd --input=<prd-file.txt>
  • Description: Parses a requirements file (PRD) and generates tasks in tasks.json.
  • Important: Overwrites existing tasks.json if present. Use cautiously.

update

  • Syntax:
    task-master update --from=<id> --prompt="<explanation>"
  • Description: Updates tasks (with ID ≥ the specified one) based on a prompt explaining the changes.
  • Notes: Completed tasks are unaffected.

generate

  • Syntax:
    task-master generate [options]
  • Description: Creates/updates individual task files in a tasks/ directory from tasks.json.
  • Key Options:
    • --file=<path>, -f: Path to an alternative tasks file.
    • --output=<dir>, -o: Output directory for task files.

set-status

  • Syntax:
    task-master set-status --id=<id> --status=<status>
  • Description: Changes the status of a specific task in tasks.json.

list

  • Syntax:
    task-master list [options]
  • Description: Lists all tasks with ID, title, and status.
  • Key Options:
    • --status=<status>, -s: Filter by status.
    • --with-subtasks: Show subtasks inline.

expand

  • Syntax:
    task-master expand --id=<id> [--num=<number>] [--research] [--prompt="<context>"]
  • Description: Breaks a task into multiple subtasks.
  • Key Options:
    • --all: Expand all pending tasks.
    • --force: Regenerate subtasks even if they already exist.

analyze-complexity

  • Syntax:
    task-master analyze-complexity [options]
  • Description: Evaluates each task's complexity and recommends how to break them down.

clear-subtasks

  • Syntax:
    task-master clear-subtasks --id=<id> [options]
  • Description: Removes subtasks from specific tasks or from all tasks.

complexity-report

  • Syntax:
    task-master complexity-report [options]
  • Description: Displays a formatted complexity report generated by analyze-complexity.

add-task

  • Syntax:
    task-master add-task [options]
  • Description: Uses AI to add a new task to tasks.json.
  • Key Options:
    • --prompt=<text>, -p: Required description of the task to add.
    • --dependencies=<ids>, -d: Comma-separated IDs for prerequisites.

init

  • Syntax:
    task-master init
  • Description: Initializes a new project, creating a tasks.json and related files.
  • Notes: Useful for quickly bootstrapping a Task Master project.

Code Analysis & Refactoring Techniques

Top-Level Function Search

  • You can use grep to find all exported functions in your codebase:
    grep -E "export (function|const) \w+|function \w+\(|const \w+ = \(|module\.exports" --include="*.js" -r ./
  • Benefits:
    • Identify all public API functions quickly.
    • Compare or merge them during refactoring.
    • Check for naming conflicts or duplicates.

Environment Variables Configuration

  • ANTHROPIC_API_KEY (Required): API key for Claude.
  • MODEL (Default: "claude-3-7-sonnet-20250219"): Claude model used.
  • MAX_TOKENS (Default: "4000"): Maximum tokens for model responses.
  • TEMPERATURE (Default: "0.7"): Controls randomness of AI output.
  • DEBUG (Default: "false"): Enables debug logging.
  • LOG_LEVEL (Default: "info"): Console log level.
  • DEFAULT_SUBTASKS (Default: "3"): Default number of subtasks to generate.
  • DEFAULT_PRIORITY (Default: "medium"): Default priority level for tasks.
  • PROJECT_NAME (Default: "MCP SaaS MVP"): Project name metadata.
  • PROJECT_VERSION (Default: "1.0.0"): Project version metadata.
  • PERPLEXITY_API_KEY: Optional, for research-backed features.
  • PERPLEXITY_MODEL (Default: "sonar-medium-online"): Perplexity model variant.

Determining the Next Task

  • Command: task-master next
  • What It Does:
    • Identifies tasks whose dependencies are complete.
    • Orders them by priority and ID.
    • Shows comprehensive task info and suggested actions.
  • Why Use It:
    • Ensures you pick up tasks in a logical sequence.
    • Great for quickly finding the next piece of work.

Viewing Specific Task Details

  • Command: task-master show <id>
  • Description: Displays all info for a given task or subtask:
    • Use dot notation (task-master show 1.2) to view a specific subtask.
    • Shows the parent task if you’re viewing a subtask.
    • Presents recommended next steps or related actions.

Managing Task Dependencies

  • Add Dependencies:
    task-master add-dependency --id=<id> --depends-on=<id>
  • Remove Dependencies:
    task-master remove-dependency --id=<id> --depends-on=<id>
  • Validate Dependencies:
    task-master validate-dependencies
  • Fix Dependencies:
    task-master fix-dependencies

These commands ensure correct task ordering without circular references.

Tasks are managed by the project manager Update to the project must be set to the project manger The project manger must provide the next task Upon completion of task the project manager must set the status of task to done.

  1. A new task should start with project manager setting the task status to in-progress
  2. The architect working with the project manager should design the low level subtasks and expand them.

As the project manager for the next task and assign it as new_task

With each coding subtask 3. The project manager should set the subtask to in-progress 4. The tdd engineer should then create the necessary tests 5. The auto coder should implement the code 6. The tdd engineer should run all the tests and feedback any errors to the auto coder for fixes 7. The auto coder should resolve the issue 8. When all tests pass the subtask can be updated to done

Continue until all tasks and subtasks are done

Comments are disabled for this gist.