Files
Claude-Code-Workflow/.claude/skills/workflow-plan/phases/03-conflict-resolution.md
catlog22 cdb240d2c2 Add quality standards and team command design patterns documentation
- Introduced a new quality standards document outlining assessment criteria for team command .md files, including completeness, pattern compliance, integration, and consistency dimensions.
- Established quality gates and issue classification for errors, warnings, and informational notes.
- Created a comprehensive team command design patterns document detailing infrastructure and collaboration patterns, including message bus integration, YAML front matter requirements, task lifecycle, five-phase execution structure, and error handling.
- Included a pattern selection guide for collaboration scenarios to enhance team interaction models.
2026-02-13 23:39:06 +08:00

5.3 KiB

Phase 3: Conflict Resolution

Detect and resolve conflicts with CLI analysis. This phase is conditional - only executes when conflict_risk >= medium.

Objective

  • Detect conflicts between planned changes and existing codebase
  • Present conflicts to user with resolution strategies
  • Apply selected resolution strategies
  • Update planning-notes.md with conflict decisions

Trigger Condition

Only execute when context-package.json indicates conflict_risk is "medium" or "high". If conflict_risk is "none" or "low", skip directly to Phase 4.

Execution

Step 3.1: Execute Conflict Resolution

Skill(skill="workflow:tools:conflict-resolution", args="--session [sessionId] --context [contextPath]")

Input:

  • sessionId from Phase 1
  • contextPath from Phase 2
  • conflict_risk from context-package.json

Parse Output:

  • Extract: Execution status (success/skipped/failed)
  • Verify: conflict-resolution.json file path (if executed)

Validation:

  • File .workflow/active/[sessionId]/.process/conflict-resolution.json exists (if executed)

Skip Behavior:

  • If conflict_risk is "none" or "low", skip directly to Phase 4
  • Display: "No significant conflicts detected, proceeding to task generation"

TodoWrite Update (Phase 3 Skill executed - tasks attached, if conflict_risk >= medium)

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 3: Conflict Resolution", "status": "in_progress", "activeForm": "Resolving conflicts"},
  {"content": "  → Detect conflicts with CLI analysis", "status": "in_progress", "activeForm": "Detecting conflicts"},
  {"content": "  → Present conflicts to user", "status": "pending", "activeForm": "Presenting conflicts"},
  {"content": "  → Apply resolution strategies", "status": "pending", "activeForm": "Applying resolution strategies"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: Skill execute attaches conflict-resolution's 3 tasks. Orchestrator executes these tasks sequentially.

TodoWrite Update (Phase 3 completed - tasks collapsed)

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 3: Conflict Resolution", "status": "completed", "activeForm": "Resolving conflicts"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: Phase 3 tasks completed and collapsed to summary.

Step 3.2: Update Planning Notes

After conflict resolution completes (if executed), update planning-notes.md:

// If Phase 3 was executed, update planning-notes.md
if (conflictRisk === 'medium' || conflictRisk === 'high') {
  const conflictResPath = `.workflow/active/${sessionId}/.process/conflict-resolution.json`

  if (fs.existsSync(conflictResPath)) {
    const conflictRes = JSON.parse(Read(conflictResPath))
    const resolved = conflictRes.resolved_conflicts || []
    const modifiedArtifacts = conflictRes.modified_artifacts || []
    const planningConstraints = conflictRes.planning_constraints || []

    // Update Phase 3 section
    Edit(planningNotesPath, {
      old: '## Conflict Decisions (Phase 3)\n(To be filled if conflicts detected)',
      new: `## Conflict Decisions (Phase 3)

- **RESOLVED**: ${resolved.map(r => `${r.type}${r.strategy}`).join('; ') || 'None'}
- **MODIFIED_ARTIFACTS**: ${modifiedArtifacts.join(', ') || 'None'}
- **CONSTRAINTS**: ${planningConstraints.join('; ') || 'None'}`
    })

    // Append Phase 3 constraints to consolidated list
    if (planningConstraints.length > 0) {
      const currentNotes = Read(planningNotesPath)
      const constraintCount = (currentNotes.match(/^\d+\./gm) || []).length

      Edit(planningNotesPath, {
        old: '## Consolidated Constraints (Phase 4 Input)',
        new: `## Consolidated Constraints (Phase 4 Input)
${planningConstraints.map((c, i) => `${constraintCount + i + 1}. [Conflict] ${c}`).join('\n')}`
      })
    }
  }
}

Auto-Continue: Return to user showing conflict resolution results and selected strategies, then auto-continue.

Auto Mode (--yes): When --yes flag is active, conflict-resolution sub-command automatically applies recommended resolution strategies without user confirmation. The orchestrator passes the --yes flag through to workflow:tools:conflict-resolution.

Step 3.3: Memory State Check

Evaluate current context window usage and memory state:

  • If memory usage is high (>120K tokens or approaching context limits):
Skill(skill="compact")
  • Memory compaction is particularly important after analysis phase which may generate extensive documentation
  • Ensures optimal performance and prevents context overflow

Output

  • File: conflict-resolution.json (if conflicts resolved)
  • TodoWrite: Mark Phase 3 completed, Phase 4 in_progress

Next Phase

Return to orchestrator, then auto-continue to Phase 4: Task Generation.