Task Researcher

by tejpalvirk

5 217 downloads Not rated yet

About

Researcher for AI Coding that analyzes task complexity and runs deep research (STORM) to decompose complex tasks into subtasks, as an MCP Server or CLI.

Explore

Parse Inputs: Generate initial tasks from project specification files (functional_spec.md, technical_spec.md, plan.md, background.md).
Expand Tasks:
Break down tasks into subtasks using AI (claude, gemini, etc. via litellm).
STORM-Powered Research (--research flag): For complex tasks, automatically identify research questions, group them into topics, run the knowledge-storm engine for each topic, and use the aggregated research to generate highly informed subtasks.
Update Tasks: Modify pending tasks based on new prompts or requirement changes.
Analyze Complexity: Assess task complexity using AI, generating a report with recommendations and tailored expansion prompts. (--research-hint flag available).
Dependency Management: Validate and automatically fix dependency issues (missing refs, self-deps, simple cycles).
Generate Files: Create individual .txt files for each task and subtask.

  • Standalone Research (research-topic): Generate a detailed research report on any topic using knowledge-storm.

Python 3.10+
An API key for at least one supported LLM provider (e.g., Anthropic, Google Gemini, OpenAI) set in a .env file (used for task generation, complexity analysis, etc.).
knowledge-storm library (pip install knowledge-storm).
API key for a search engine supported by knowledge-storm (e.g., Bing Search, You.com, Tavily) set in .env (Required for --research in expand and the research-topic command).
(Optional) mcp library (pip install mcp) if running as an MCP server.

Use the task-researcher command (if installed via Poetry scripts) or python -m task_researcher.


task-researcher expand --id 7 --research

bash
poetry run task-researcher serve-mcp

Refer to .env.example. Key settings include:

LLM_MODEL: Primary model for tasks, analysis, subtask generation (non-STORM).
ANTHROPIC_API_KEY, GOOGLE_API_KEY, etc.: Credentials for the primary LLM.
STORM_RETRIEVER: Search engine for STORM (bing, you, tavily, etc.).
BING_SEARCH_API_KEY, YDC_API_KEY, TAVILY_API_KEY, etc.: Key for the chosen STORM retriever.
BIG_STORM_MODEL: (Optional) Big model for STORM's internal processing.
SMALL_STORM_MODEL: (Optional) Small model for STORM's internal processing.
STORM_SEARCH_TOP_K, STORM_MAX_TOKENS_: Control STORM's depth.
File paths (TASKS_FILE_PATH, etc.).

parse_inputs

Generates initial tasks from configured spec files.

update_tasks

Updates tasks from a given ID based on a prompt.

generate_task_files

Creates individual phase_XX_task_YYY.txt files.

expand_task

Expands a single task into subtasks (supports research=True for STORM).

expand_all_tasks

Expands all eligible pending tasks (supports research=True).

analyze_complexity

Analyzes task complexity and saves a report.

validate_dependencies

Checks dependencies for issues.

fix_dependencies

Attempts to automatically fix dependency issues.

research_topic

Runs STORM to generate a research report on a topic.

parse_inputs: Generates initial tasks from configured spec files.
update_tasks: Updates tasks from a given ID based on a prompt.
generate_task_files: Creates individual phase_XX_task_YYY.txt files.
expand_task: Expands a single task into subtasks (supports research=True for STORM).
expand_all_tasks: Expands all eligible pending tasks (supports research=True).
analyze_complexity: Analyzes task complexity and saves a report.
validate_dependencies: Checks dependencies for issues.
fix_dependencies: Attempts to automatically fix dependency issues.
research_topic: Runs STORM to generate a research report on a topic.

(Note: expand_ --research via MCP bypasses confirmation).

A Python task management system designed for AI-driven development, featuring integrated, in-depth research capabilities using the knowledge-storm library. Break down complex projects, generate tasks, and leverage automated research to inform implementation details.

This package provides both a command-line interface (CLI) and a Model Context Protocol (MCP) Server.

Core Features

Parse Inputs: Generate initial tasks from project specification files (functional_spec.md, technical_spec.md, plan.md, background.md).
Expand Tasks:
Break down tasks into subtasks using AI (claude, gemini, etc. via litellm).
STORM-Powered Research (--research flag): For complex tasks, automatically identify research questions, group them into topics, run the knowledge-storm engine for each topic, and use the aggregated research to generate highly informed subtasks.
Update Tasks: Modify pending tasks based on new prompts or requirement changes.
Analyze Complexity: Assess task complexity using AI, generating a report with recommendations and tailored expansion prompts. (--research-hint flag available).
Dependency Management: Validate and automatically fix dependency issues (missing refs, self-deps, simple cycles).
Generate Files: Create individual .txt files for each task and subtask.
Standalone Research (research-topic): Generate a detailed research report on any topic using knowledge-storm.

Requirements

Python 3.10+
An API key for at least one supported LLM provider (e.g., Anthropic, Google Gemini, OpenAI) set in a .env file (used for task generation, complexity analysis, etc.).
knowledge-storm library (pip install knowledge-storm).
API key for a search engine supported by knowledge-storm (e.g., Bing Search, You.com, Tavily) set in .env (Required for --research in expand and the research-topic command).
(Optional) mcp library (pip install mcp) if running as an MCP server.

Installation

1. Clone the repository:

    git clone <repository-url>
cd task-researcher

2. Install dependencies (using Poetry recommended):
    pip install poetry
poetry install

3. Configure Environment:
Copy .env.example to .env.
Fill in your primary LLM API key (e.g., ANTHROPIC_API_KEY).
Set the LLM_MODEL for primary tasks (e.g., "claude-3-5-sonnet-20240620").
Set the STORM_RETRIEVER (e.g., "bing") and its corresponding API key (BING_SEARCH_API_KEY).
(Optional) Set BIG_STORM_MODEL and SMALL_STORM_MODEL to use a different (e.g., faster/cheaper) models for STORM research.
(Optional) Adjust other settings like MAX_TOKENS, TEMPERATURE, file paths, etc.

Usage Command Line Interface (CLI)

Use the task-researcher command (if installed via Poetry scripts) or python -m task_researcher.

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.