Files
Claude-Code-Workflow/.codex/skills/team-planex/schemas/tasks-schema.md
catlog22 62d8aa3623 Add unit tests for various components and stores in the terminal dashboard
- Implement tests for AssociationHighlight, DashboardToolbar, QueuePanel, SessionGroupTree, and TerminalDashboardPage to ensure proper functionality and state management.
- Create tests for cliSessionStore, issueQueueIntegrationStore, queueExecutionStore, queueSchedulerStore, sessionManagerStore, and terminalGridStore to validate state resets and workspace scoping.
- Mock necessary dependencies and state management hooks to isolate tests and ensure accurate behavior.
2026-03-08 21:38:20 +08:00

7.1 KiB

Team PlanEx — Tasks Schema

Task Metadata Registry

Team PlanEx uses a message bus + state file architecture instead of CSV. Tasks are tracked in .msg/meta.json with state updates via team_msg.

Task State Fields

Field Type Description Example
task_id string Unique task identifier "PLAN-001"
issue_id string Source issue identifier "ISS-20260308-001"
title string Task title from solution "Implement OAuth2 provider"
role enum Worker role: planner, executor "executor"
status enum Task status: pending, in_progress, completed, failed "completed"
assigned_to string Worker agent name "executor"
depends_on array Dependency task IDs ["PLAN-001"]
files array Files to modify ["src/auth/oauth.ts"]
convergence_criteria array Success criteria ["Tests pass", "No lint errors"]
started_at string ISO timestamp "2026-03-08T10:00:00+08:00"
completed_at string ISO timestamp "2026-03-08T10:15:00+08:00"
error string Error message if failed ""

Message Bus Schema

Message Types

Type From To Data Schema Description
plan_ready planner coordinator {issue_id, solution_path, task_count} Planning complete
impl_start executor coordinator {task_id, issue_id} Implementation started
impl_complete executor coordinator {task_id, issue_id, files_modified[], commit_hash} Implementation complete
impl_progress executor coordinator {task_id, progress_pct, current_step} Progress update
error any coordinator {task_id, error_type, message} Error occurred
state_update any coordinator {role, state: {}} Role state update (auto-synced to meta.json)

Message Format (NDJSON)

{"id":"MSG-001","ts":"2026-03-08T10:00:00+08:00","from":"planner","to":"coordinator","type":"plan_ready","summary":"Planning complete for ISS-001","data":{"issue_id":"ISS-20260308-001","solution_path":"artifacts/solutions/ISS-20260308-001.json","task_count":3}}
{"id":"MSG-002","ts":"2026-03-08T10:05:00+08:00","from":"executor","to":"coordinator","type":"impl_start","summary":"Starting EXEC-001","data":{"task_id":"EXEC-001","issue_id":"ISS-20260308-001"}}
{"id":"MSG-003","ts":"2026-03-08T10:15:00+08:00","from":"executor","to":"coordinator","type":"impl_complete","summary":"Completed EXEC-001","data":{"task_id":"EXEC-001","issue_id":"ISS-20260308-001","files_modified":["src/auth/oauth.ts"],"commit_hash":"abc123"}}

State File Schema (meta.json)

Structure

{
  "session_id": "PEX-auth-system-20260308",
  "pipeline_mode": "plan-execute",
  "execution_method": "codex",
  "status": "running",
  "started_at": "2026-03-08T10:00:00+08:00",
  "issues": {
    "ISS-20260308-001": {
      "status": "completed",
      "solution_path": "artifacts/solutions/ISS-20260308-001.json",
      "tasks": ["EXEC-001", "EXEC-002"],
      "completed_at": "2026-03-08T10:30:00+08:00"
    }
  },
  "tasks": {
    "EXEC-001": {
      "task_id": "EXEC-001",
      "issue_id": "ISS-20260308-001",
      "title": "Implement OAuth2 provider",
      "role": "executor",
      "status": "completed",
      "assigned_to": "executor",
      "depends_on": [],
      "files": ["src/auth/oauth.ts"],
      "convergence_criteria": ["Tests pass", "No lint errors"],
      "started_at": "2026-03-08T10:05:00+08:00",
      "completed_at": "2026-03-08T10:15:00+08:00",
      "error": ""
    }
  },
  "roles": {
    "coordinator": {
      "status": "active",
      "current_phase": "execution",
      "last_update": "2026-03-08T10:15:00+08:00"
    },
    "planner": {
      "status": "idle",
      "issues_planned": 5,
      "last_update": "2026-03-08T10:10:00+08:00"
    },
    "executor": {
      "status": "active",
      "current_task": "EXEC-002",
      "tasks_completed": 1,
      "last_update": "2026-03-08T10:15:00+08:00"
    }
  }
}

Solution File Schema

Planner generates solution files in artifacts/solutions/<issue-id>.json:

{
  "issue_id": "ISS-20260308-001",
  "title": "Implement OAuth2 authentication",
  "approach": "Strategy pattern with provider abstraction",
  "complexity": "Medium",
  "tasks": [
    {
      "task_id": "EXEC-001",
      "title": "Create OAuth2 provider interface",
      "description": "Define provider interface with authorize/token/refresh methods",
      "files": ["src/auth/providers/oauth-provider.ts"],
      "depends_on": [],
      "convergence_criteria": [
        "Interface compiles without errors",
        "Type definitions exported"
      ]
    },
    {
      "task_id": "EXEC-002",
      "title": "Implement Google OAuth2 provider",
      "description": "Concrete implementation for Google OAuth2",
      "files": ["src/auth/providers/google-oauth.ts"],
      "depends_on": ["EXEC-001"],
      "convergence_criteria": [
        "Tests pass",
        "Handles token refresh",
        "Error handling complete"
      ]
    }
  ],
  "exploration_findings": {
    "existing_patterns": ["Strategy pattern in payment module"],
    "tech_stack": ["TypeScript", "Express", "Passport.js"],
    "integration_points": ["User service", "Session store"]
  }
}

Execution Method Selection

Coordinator selects execution method based on issue complexity:

Complexity Method Criteria
Low gemini 1-2 files, simple logic, no architecture changes
Medium codex 3-5 files, moderate complexity, existing patterns
High codex 6+ files, complex logic, architecture changes

Stored in meta.jsonexecution_method field.


Validation Rules

Rule Check Error
Unique task IDs No duplicate task_id in meta.json "Duplicate task ID: {task_id}"
Valid deps All depends_on task IDs exist "Unknown dependency: {dep_id}"
No self-deps Task cannot depend on itself "Self-dependency: {task_id}"
No circular deps Dependency graph is acyclic "Circular dependency detected"
Valid status status ∈ {pending, in_progress, completed, failed} "Invalid status: {status}"
Valid role role ∈ {planner, executor} "Invalid role: {role}"
Issue exists issue_id exists in issues registry "Unknown issue: {issue_id}"
Solution file exists solution_path points to valid file "Solution file not found: {path}"

Cross-Role Context Flow

Source Target Mechanism
Planner solution Executor Read solution JSON from artifacts/solutions/
Executor progress Coordinator Message bus (impl_progress, impl_complete)
Coordinator state All workers Read meta.json state field
Any role state update meta.json Auto-sync via team_msg type="state_update"

Discovery Types

Team PlanEx does not use discoveries.ndjson. All context is stored in:

  • Solution files (planner output)
  • Message bus (real-time communication)
  • meta.json (persistent state)
  • wisdom/ directory (cross-task knowledge)