Files
2025-11-30 08:29:28 +08:00

7.8 KiB

Routing Validation

Purpose: Detect violations of mandatory Skill usage patterns (Skills vs Direct tools vs Subagents).

When: After ANY workflow completes

Applies To: All Skills and Subagents

Token Cost: ~300-500 tokens

Critical Routing Rules

Rule 1: Status Changes MUST Use Status Progression Skill

Violation: Calling manage_container(operation="setStatus") directly

Expected: Use Status Progression Skill for ALL status changes

Why Critical: Prerequisite validation (summary length, dependencies, task completion) required

Detection:

if (statusChanged && !usedStatusProgressionSkill) {
  return {
    severity: "CRITICAL",
    violation: "Status change bypassed mandatory Status Progression Skill",
    impact: "Prerequisites may not have been validated",
    expected: "Use Status Progression Skill for status changes"
  }
}

Rule 2: Feature Creation MUST Use Feature Orchestration Skill

Violation: Calling manage_container(operation="create", containerType="feature") directly

Expected: Use Feature Orchestration Skill for feature creation

Why Critical: Complexity assessment and template discovery required

Detection:

if (featureCreated && !usedFeatureOrchestrationSkill) {
  return {
    severity: "CRITICAL",
    violation: "Feature creation bypassed mandatory Feature Orchestration Skill",
    impact: "Complexity not assessed, templates may be missed",
    expected: "Use Feature Orchestration Skill for feature creation"
  }
}

Rule 3: Task Execution SHOULD Use Task Orchestration Skill

Violation: Launching specialists directly without checking dependencies/parallel opportunities

Expected: Use Task Orchestration Skill for batch execution

Why Important: Dependency analysis and parallelization optimization

Detection:

if (multipleTasksLaunched && !usedTaskOrchestrationSkill) {
  return {
    severity: "WARN",
    violation: "Multiple tasks launched without Task Orchestration Skill",
    impact: "May miss parallel opportunities or dependency conflicts",
    expected: "Use Task Orchestration Skill for batch execution"
  }
}

Rule 4: Implementation Specialists MUST Use Status Progression for Completion

Violation: Specialist calls manage_container(operation="setStatus") directly

Expected: Specialist uses Status Progression Skill to mark complete

Why Critical: Prerequisite validation (summary, Files Changed section, tests)

Detection:

if (implementationSpecialist && taskCompleted && !usedStatusProgressionSkill) {
  return {
    severity: "CRITICAL",
    violation: `${specialistName} marked task complete without Status Progression Skill`,
    impact: "Summary/Files Changed/test validation may have been skipped",
    expected: "Use Status Progression Skill in Step 8 of specialist lifecycle"
  }
}

Validation Workflow

Step 1: Identify Workflow Type

workflowType = identifyWorkflow(entityType, userInput, output)
// Returns: "status-change", "feature-creation", "task-execution", "implementation"

Step 2: Check Mandatory Skill Usage

mandatorySkills = {
  "status-change": "status-progression",
  "feature-creation": "feature-orchestration",
  "task-execution": "task-orchestration",  // WARN level
  "feature-completion": "feature-orchestration"
}

requiredSkill = mandatorySkills[workflowType]

Step 3: Detect Skill Bypass

// Check if required Skill was used
skillUsed = checkSkillUsage(output, requiredSkill)

if (!skillUsed && requiredSkill) {
  severity = (workflowType == "task-execution") ? "WARN" : "CRITICAL"

  violation = {
    workflowType: workflowType,
    requiredSkill: requiredSkill,
    actualApproach: detectActualApproach(output),
    severity: severity,
    impact: describeImpact(requiredSkill)
  }
}

Step 4: Verify Specialist Lifecycle Adherence

For Implementation Specialists (Backend, Frontend, Database, Test, Technical Writer):

if (category == "SUBAGENT" && isImplementationSpecialist(entityType)) {
  lifecycle = {
    step8Expected: "Use Status Progression Skill to mark complete",
    step8Actual: detectStep8Approach(output),
    compliant: false
  }

  // Check if Status Progression Skill was mentioned
  if (mentions(output, "Status Progression") || mentions(output, "status-progression")) {
    lifecycle.compliant = true
  } else if (taskStatusChanged) {
    violation = {
      severity: "CRITICAL",
      specialist: entityType,
      step: "Step 8",
      issue: "Marked task complete without Status Progression Skill",
      impact: "Prerequisite validation (summary, Files Changed, tests) may be incomplete",
      expected: "Use Status Progression Skill for completion"
    }
  }
}

Violation Severity Levels

CRITICAL (Immediate Alert)

  • Status change without Status Progression Skill
  • Feature creation without Feature Orchestration Skill
  • Implementation specialist completion without Status Progression Skill
  • Action: Report immediately, add to TodoWrite, suggest correction

WARN (Log for Review)

  • Task execution without Task Orchestration Skill (multiple tasks)
  • Efficiency opportunities missed (parallelization)
  • Action: Log to TodoWrite, mention in end-of-session summary

INFO (Observation)

  • Workflow variations that are acceptable
  • Optimization suggestions
  • Action: Track for pattern analysis only

Report Template

## 🚨 Routing Violation Detected

**Severity**: CRITICAL

**Workflow Type**: [status-change / feature-creation / etc.]

**Violation**: [Description]

**Impact**: [What this affects]

**Expected Approach**: Use [Skill Name] Skill

**Actual Approach**: Direct tool call / Subagent / etc.

**Recommendation**: [How to correct]

---

**Added to TodoWrite**:
- Review [Workflow]: [Issue description]

**Decision Required**: Should orchestrator retry using correct Skill?

Common Violations

Violation 1: Direct Status Change

User: "Mark task T1 complete"
Orchestrator: manage_container(operation="setStatus", status="completed")  // ❌

Expected: Use Status Progression Skill
Reason: Summary validation, dependency checks required

Violation 2: Direct Feature Creation

User: "Create user authentication feature"
Orchestrator: manage_container(operation="create", containerType="feature")  // ❌

Expected: Use Feature Orchestration Skill
Reason: Complexity assessment, template discovery required

Violation 3: Specialist Bypass

Backend Engineer: manage_container(operation="setStatus", status="completed")  // ❌

Expected: Use Status Progression Skill in Step 8
Reason: Summary, Files Changed, test validation required

Integration with Post-Execution Review

// ALWAYS run routing validation in post-execution
Read "routing-validation.md"

violations = detectRoutingViolations(
  workflowType,
  entityType,
  entityOutput,
  context
)

if (violations.length > 0) {
  for violation in violations:
    if (violation.severity == "CRITICAL") {
      // Report immediately
      alertUser(violation)
      addToTodoWrite(violation)
    } else {
      // Log for summary
      logViolation(violation)
    }
}

Continuous Improvement

Pattern Tracking

If same violation occurs 2+ times in session:

  • Update orchestrator instructions
  • Add validation checkpoint in pre-execution
  • Suggest systemic improvement

Definition Updates

Recurring violations indicate documentation gaps:

  • Update Skill definitions with clearer trigger patterns
  • Add examples of correct vs incorrect usage
  • Update CLAUDE.md Decision Gates section

When to Report

  • CRITICAL violations: Report immediately (don't wait for post-execution)
  • WARN violations: Include in post-execution summary
  • INFO observations: Track for pattern analysis only