Skip to content

Conversation

@plusplusoneplusplus
Copy link
Owner

Summary

This PR implements an intelligent AI-powered exploration workflow system with map-reduce pattern, enabling automated codebase exploration through task decomposition, parallel AI investigation, and result aggregation.

Key Features

🤖 AI-Powered Task Decomposition

  • AI Split Operation: Uses Claude (via CLIExecutor) to intelligently analyze high-level goals and generate focused exploration sub-tasks
  • Configurable task count limits with min_tasks and max_tasks parameters
  • Fallback mechanism for graceful degradation when AI fails
  • Generates structured JSON with reasoning and task definitions

🔍 Parallel AI Exploration

  • Exploration Operation: Integrated with ExploreAgent for actual AI investigation
  • Supports 5 exploration types: question, implementation, structure, usage, flow
  • Stores findings in session files (JSON format) for persistence and incremental processing
  • Proper error handling with failed status reporting

📊 Result Aggregation

  • Summarize Operation: Aggregates findings from session files or direct input
  • Three summary formats:
    • detailed: Complete findings with all metadata
    • concise: Truncated results for quick overview
    • structured: Grouped by exploration type
  • Supports output to JSON files for reporting

🔧 Deterministic Alternative

  • Split Operation: Traditional algorithmic splitting (no AI)
  • Four strategies: by_items, by_count, by_chunk_size, custom
  • Useful for predetermined task decomposition

Implementation Details

New Operations

  • plugins/automation/workflows/steps/operations/ai_split.py - AI task decomposition
  • plugins/automation/workflows/steps/operations/exploration.py - AI exploration with ExploreAgent
  • plugins/automation/workflows/steps/operations/summarize.py - Result aggregation
  • plugins/automation/workflows/steps/operations/split.py - Deterministic splitting

Test Coverage

  • 35 tests total, all passing
  • Fast execution (~0.6 seconds)
  • Mocked AI calls for deterministic testing
  • Comprehensive coverage:
    • test_mapreduce_operations.py (20 tests): Split, exploration, summarize operations
    • test_ai_split_operation.py (15 tests): AI split validation, execution, error handling

Workflow Examples

  • ai_exploration_workflow.yaml: AI-driven exploration (AI decides how to split)
  • exploration_mapreduce.yaml: Manual task specification

Usage Example

workflow:
  name: "ai-codebase-exploration"
  inputs:
    goal: {type: string, required: true}
    codebase_path: {type: string, required: true}

  steps:
    # Step 1: AI intelligently splits the goal
    - id: ai_split
      type: transform
      config:
        operation: ai_split
        model: haiku
        max_tasks: 8
      inputs:
        goal: "{{ inputs.goal }}"
        codebase_path: "{{ inputs.codebase_path }}"

    # Step 2: Explore each task in parallel (future)
    - id: explore_tasks
      type: transform
      config:
        operation: explore
        exploration_type: question
        session_dir: .mcp_sessions
      inputs:
        task: "{{ task }}"
        codebase_path: "{{ inputs.codebase_path }}"

    # Step 3: Aggregate all findings
    - id: summarize
      type: transform
      config:
        operation: summarize
        summary_format: structured
        output_file: summary.json
      inputs:
        session_id: "{{ context.execution_id }}"

Documentation

  • Updated plugins/automation/workflows/README.md with:
    • Map-reduce exploration operations section
    • Usage examples for all new operations
    • Architecture diagram updates
    • Implementation status

Testing

All tests pass with mocked AI calls:

uv run pytest plugins/automation/tests/test_mapreduce_operations.py -v  # 20 tests
uv run pytest plugins/automation/tests/test_ai_split_operation.py -v    # 15 tests

Architecture

The system follows the existing workflow operation pattern:

  • Pluggable operations via OperationRegistry
  • Validation before execution
  • Async execution model
  • Proper error handling

Breaking Changes

None - this is purely additive functionality.

Future Enhancements

  • True parallel execution of exploration tasks (currently sequential in workflow)
  • Resume capabilities from session files
  • Progressive summarization for long-running explorations
  • Additional exploration types (e.g., dependency analysis, architecture mapping)

🤖 Generated with Claude Code

Implement intelligent task decomposition and parallel exploration system:

- Add ai_split operation for AI-powered task decomposition using Claude
  - Uses CLIExecutor to intelligently analyze goals and generate focused sub-tasks
  - Includes fallback mechanism for graceful degradation
  - Configurable task count limits (min_tasks, max_tasks)

- Add exploration operation with ExploreAgent integration
  - Supports 5 exploration types: question, implementation, structure, usage, flow
  - Stores findings in session files (JSON format) for persistence
  - Proper error handling with failed status reporting

- Add summarize operation for result aggregation
  - Three summary formats: detailed, concise, structured
  - Reads findings from session files or direct input
  - Groups findings by exploration type

- Include deterministic split operation as alternative
  - Four strategies: by_items, by_count, by_chunk_size, custom
  - Simple algorithmic splitting without AI

- Add comprehensive test coverage (35 tests, all passing)
  - Mock AI calls for fast, deterministic testing (~0.6s execution)
  - Test all operations: split, ai_split, exploration, summarize
  - Integration test for full map-reduce workflow

- Create workflow examples
  - ai_exploration_workflow.yaml: AI-driven exploration
  - exploration_mapreduce.yaml: Manual task specification

- Update documentation
  - Add map-reduce operations section to README
  - Document all operations with examples
  - Update architecture diagram

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@plusplusoneplusplus plusplusoneplusplus merged commit 99ecc82 into main Nov 10, 2025
16 checks passed
@plusplusoneplusplus plusplusoneplusplus deleted the feat/ai-exploration-mapreduce branch November 10, 2025 04:48
plusplusoneplusplus added a commit that referenced this pull request Nov 10, 2025
Add demo.py script that demonstrates AI task decomposition:
- Shows how Claude intelligently breaks down exploration goals
- Fast demo (~15 seconds) using CLIExecutor and AI split operation
- Easy to customize with different goals and focus areas
- Uses relative paths (assumes run from git root)
- Replaces previous longer demo scripts with single concise example

The demo showcases the core AI split functionality from PR #539,
making it easy for users to see the AI-powered task decomposition in action.

Usage:
  uv run python -m plugins.automation.workflows.examples.demo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
plusplusoneplusplus added a commit that referenced this pull request Nov 11, 2025
* docs: Add interactive demo for AI-powered exploration workflow

Add demo.py script that demonstrates AI task decomposition:
- Shows how Claude intelligently breaks down exploration goals
- Fast demo (~15 seconds) using CLIExecutor and AI split operation
- Easy to customize with different goals and focus areas
- Uses relative paths (assumes run from git root)
- Replaces previous longer demo scripts with single concise example

The demo showcases the core AI split functionality from PR #539,
making it easy for users to see the AI-powered task decomposition in action.

Usage:
  uv run python -m plugins.automation.workflows.examples.demo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* fix: Make Windows ctags installation non-blocking in CI

The Windows CI jobs were failing due to gateway timeouts when downloading
universal-ctags from the Chocolatey repository. This is a transient
infrastructure issue unrelated to code changes.

Changes:
- Add continue-on-error: true to Windows ctags installation step
- Add 60-second timeout to choco install command
- Update comment to indicate ctags is optional

This allows CI to proceed even if ctags installation fails, as tests
requiring ctags will be skipped gracefully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

---------

Co-authored-by: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants