Files
Claude-Code-Workflow/.codex/skills/team-lifecycle/phases/03-task-chain-creation.md
catlog22 dd72e95e4d feat: add templates for epics, product brief, and requirements PRD
- Created a new directory structure for epics and stories with templates for individual epics and an index file.
- Added a product brief template for generating product brief documents in Phase 2.
- Introduced a requirements PRD template for generating a Product Requirements Document as a directory of individual requirement files in Phase 3.

feat: implement V2PipelineTab component for Memory V2 management

- Developed the V2PipelineTab component to manage extraction and consolidation processes.
- Included ExtractionCard and ConsolidationCard components to handle respective functionalities.
- Added JobsList component to display job statuses and allow filtering by job kind.

feat: create hooks for Memory V2 pipeline

- Implemented custom hooks for managing extraction and consolidation statuses, as well as job listings.
- Added mutation hooks to trigger extraction and consolidation processes with automatic query invalidation on success.
2026-02-27 13:27:27 +08:00

8.7 KiB

Phase 3: Task Chain Creation

COMPACT PROTECTION: This is an execution document. After context compression, phase instructions become summaries only. You MUST immediately re-read this file via Read("~/.codex/skills/team-lifecycle/phases/03-task-chain-creation.md") before continuing. Never execute based on summaries.

Objective

Build the full pipeline task chain based on the selected mode, write all tasks to the state file (team-session.json). Each task entry contains its ID, owner agent, dependencies, description, and inline discuss metadata. No agents are spawned in this phase.


Input

Input Source Required
sessionId Phase 2 output Yes
sessionDir Phase 2 output Yes
state Phase 2 output (team-session.json) Yes
state.mode Pipeline mode Yes
state.scope Project scope Yes
state.spec_path Spec file path (impl-only) Conditional

Execution Steps

Step 3.1: Mode-to-Pipeline Routing

Select the pipeline definition based on mode.

Mode Pipeline First Task Checkpoint
spec-only Spec pipeline (6 tasks) RESEARCH-001 None
impl-only Impl pipeline (4 tasks) PLAN-001 None
fe-only FE pipeline (3 tasks) PLAN-001 None
fullstack Fullstack pipeline (6 tasks) PLAN-001 None
full-lifecycle Spec (6) + Impl (4) RESEARCH-001 After QUALITY-001
full-lifecycle-fe Spec (6) + Fullstack (6) RESEARCH-001 After QUALITY-001

Step 3.2: Build Task Entries

For each task in the selected pipeline, create a task entry object.

Task entry schema:

{
  id: "<TASK-ID>",
  owner: "<agent-role>",
  status: "pending",
  blocked_by: ["<dependency-task-id>", ...],
  description: "<task description>",
  inline_discuss: "<DISCUSS-NNN or null>",
  agent_id: null,
  artifact_path: null,
  discuss_verdict: null,
  discuss_severity: null,
  started_at: null,
  completed_at: null,
  revision_of: null,
  revision_count: 0,
  is_checkpoint_after: false
}

Task description template (every task gets this format):

<task-description-from-pipeline-table>
Session: <session-dir>
Scope: <scope>
InlineDiscuss: <DISCUSS-NNN or none>

Step 3.3: Spec Pipeline Tasks

Used by: spec-only, full-lifecycle, full-lifecycle-fe

# ID Owner BlockedBy Description InlineDiscuss
1 RESEARCH-001 analyst (none) Seed analysis and context gathering DISCUSS-001
2 DRAFT-001 writer RESEARCH-001 Generate Product Brief DISCUSS-002
3 DRAFT-002 writer DRAFT-001 Generate Requirements/PRD DISCUSS-003
4 DRAFT-003 writer DRAFT-002 Generate Architecture Document DISCUSS-004
5 DRAFT-004 writer DRAFT-003 Generate Epics and Stories DISCUSS-005
6 QUALITY-001 reviewer DRAFT-004 5-dimension spec quality + sign-off DISCUSS-006

QUALITY-001 has is_checkpoint_after: true for full-lifecycle and full-lifecycle-fe modes (signals orchestrator to pause for user confirmation before impl phase).

Step 3.4: Impl Pipeline Tasks

Used by: impl-only, full-lifecycle (PLAN-001 blockedBy QUALITY-001)

# ID Owner BlockedBy Description InlineDiscuss
1 PLAN-001 planner (none) Multi-angle exploration and planning none
2 IMPL-001 executor PLAN-001 Code implementation none
3 TEST-001 tester IMPL-001 Test-fix cycles none
4 REVIEW-001 reviewer IMPL-001 4-dimension code review none

For full-lifecycle mode: PLAN-001 blocked_by includes QUALITY-001.

TEST-001 and REVIEW-001 both depend on IMPL-001 and can run in parallel.

Step 3.5: FE Pipeline Tasks

Used by: fe-only

# ID Owner BlockedBy Description InlineDiscuss
1 PLAN-001 planner (none) Planning (frontend focus) none
2 DEV-FE-001 fe-developer PLAN-001 Frontend implementation none
3 QA-FE-001 fe-qa DEV-FE-001 5-dimension frontend QA none

GC loop: if QA-FE-001 verdict is NEEDS_FIX, the orchestrator dynamically creates DEV-FE-002 and QA-FE-002 during Phase 4. These are NOT pre-created here.

Step 3.6: Fullstack Pipeline Tasks

Used by: fullstack, full-lifecycle-fe (PLAN-001 blockedBy QUALITY-001)

# ID Owner BlockedBy Description InlineDiscuss
1 PLAN-001 planner (none) Fullstack planning none
2 IMPL-001 executor PLAN-001 Backend implementation none
3 DEV-FE-001 fe-developer PLAN-001 Frontend implementation none
4 TEST-001 tester IMPL-001 Backend test-fix cycles none
5 QA-FE-001 fe-qa DEV-FE-001 Frontend QA none
6 REVIEW-001 reviewer TEST-001, QA-FE-001 Full code review none

IMPL-001 and DEV-FE-001 run in parallel (both depend only on PLAN-001). TEST-001 and QA-FE-001 run in parallel (each depends on its respective impl). REVIEW-001 is a sync barrier -- depends on both TEST-001 and QA-FE-001.

For full-lifecycle-fe: PLAN-001 blocked_by includes QUALITY-001.

Step 3.7: Composite Mode Assembly

For composite modes, concatenate pipelines and adjust cross-pipeline dependencies.

full-lifecycle = Spec (6) + Impl (4):

Spec pipeline tasks (Step 3.3)
  +
Impl pipeline tasks (Step 3.4)
  with: PLAN-001.blocked_by = ["QUALITY-001"]
  with: QUALITY-001.is_checkpoint_after = true

full-lifecycle-fe = Spec (6) + Fullstack (6):

Spec pipeline tasks (Step 3.3)
  +
Fullstack pipeline tasks (Step 3.6)
  with: PLAN-001.blocked_by = ["QUALITY-001"]
  with: QUALITY-001.is_checkpoint_after = true

Step 3.8: Impl-Only Pre-Check

If mode is impl-only, verify specification exists:

state.spec_path is set?
  +- YES -> read spec file -> include path in PLAN-001 description
  +- NO -> error: "impl-only requires existing spec"

Add to PLAN-001 description: Spec: <spec-path>

Step 3.9: Write Pipeline to State File

// Read current state
const state = JSON.parse(Read("<session-dir>/team-session.json"))

// Set pipeline
state.pipeline = taskEntries  // array of task entry objects from steps above
state.tasks_total = taskEntries.length
state.updated_at = new Date().toISOString()

// Write back
Write("<session-dir>/team-session.json",
  JSON.stringify(state, null, 2))

Step 3.10: Validation

Before proceeding, validate the constructed pipeline.

Check Criteria On Failure
Task count Matches expected count for mode Error with mismatch details
Dependencies Every blocked_by reference exists as a task ID in the pipeline Error with dangling reference
No cycles Topological sort succeeds (no circular dependencies) Error with cycle details
Owner assignment Each task owner matches a valid agent from Agent Registry Error with unknown agent
Unique IDs No duplicate task IDs Error with duplicate ID
Inline discuss Spec tasks have correct DISCUSS-NNN assignment per round config Warning if mismatch
Session reference Every task description contains Session: <session-dir> Fix missing references

Step 3.11: Output Confirmation

[orchestrator] Phase 3: Task chain created
  Mode: <mode>
  Tasks: <count>
  Pipeline:
    <task-id> (<owner>) [blocked_by: <deps>]
    <task-id> (<owner>) [blocked_by: <deps>]
    ...
  First ready task(s): <task-ids with empty blocked_by>

Output

Output Type Destination
state (updated) Object Written to team-session.json
state.pipeline Array Task chain with all entries
Ready task IDs Array Tasks with empty blocked_by (passed to Phase 4)

Success Criteria

  • Pipeline array written to state file with correct task count
  • All dependencies are valid (no dangling, no cycles)
  • Each task has owner, description, blocked_by, inline_discuss
  • Composite modes have correct cross-pipeline dependencies
  • Spec tasks have inline discuss metadata
  • At least one task has empty blocked_by (pipeline can start)

Error Handling

Error Resolution
Unknown mode Should not happen (Phase 1 validates), fail with supported mode list
Missing spec for impl-only Error, suggest spec-only or full-lifecycle
Dependency cycle detected Report cycle, halt pipeline creation
State file read/write error Report error, suggest re-initialization
Duplicate task ID Skip duplicate, log warning

Next Phase

Proceed to Phase 4: Pipeline Coordination with the ready task IDs.