• Inserts Planner -> planner_reviewer -> Coder -> Validator into the fixed Org
    Graph flow (was Planner -> Coder -> Validator), per
    docs/todo/org-graph-unification-phase1-review-gate-design.md. A new
    planner_reviewer role independently judges whether Planner's BRD/PRD/SDD/
    Benchmark output is real structured content (not narrative prose) before
    Coder is allowed to start, with a 3-attempt retry loop and a narration
    heuristic informed by the real narrative-output incident
    (docs/todo/validator-test-script-narrative-output-issue.md).
    
    Also fixes, in the same code path:
    - The P0 bug in task-execution-resume-assumes-planner-artifacts-exist.md:
      resuming a task no longer assumes sdd/prd/benchmark artifacts exist --
      falls through to real replanning when they don't.
    - A fresh-run KeyError (not resume-specific) when a self-planned graph omits
      the prd/benchmark node types.
    - agent_profile.migrated_from_profile was NOT NULL, which broke as soon as a
      role with no legacy Hermes profile (planner_reviewer) was recorded.
    
    org_node_lifecycle._REQUIRED_ARTIFACTS["coder"] is narrowed from
    (brd,prd,sdd,benchmark) to (sdd,) -- the old 4-artifact gate never actually
    blocked anything since artifact_write.py sets validation_status='passed'
    unconditionally; planner_reviewer is the first real semantic gate.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »

  • trigger_org_node_full(): guards (TASK_NOT_READY -- wrong task.status or
    required artifacts not validation_status=passed; CONCURRENCY_LIMIT_REACHED
    -- only on the planner/queued transition, per 04-P's guard column;
    USAGE_LIMIT_REACHED -- detected from the underlying claude error text,
    best-effort against REQ-14's cited "hit your session limit" phrasing) then
    calls U-005's trigger_org_node for the real subprocess call, then advances
    task.status: queued->planning_brd_prd_sdd (planner), planning_brd_prd_sdd
    ->coding (coder, gated on brd/prd/sdd/benchmark all passed),
    coding->validating (validator, gated on code_diff/test_report both passed).
    
    Verified for real: all three Org Agents actually triggered in sequence
    (chained claude --agent calls, ~15s/~$0.15 total) with task.status
    advancing correctly at each step -- not just planner like U-004/U-005's
    tests, all three personas confirmed invokable.
    
    Also corrects two more development-plan.md issues found while scoping
    this Unit, same class as U-002/U-009/U-036:
    - U-010's Done line cited '架构文档 §11"手工调用验证"里程碑' -- that phrase
      doesn't exist in architecture doc §11 at all. The real source is 05
      §5.5's rollout step 2 ("手工调用验证...三个 Org Agent 分别可被触发"),
      whose "分别" (separately/respectively) is the load-bearing word: verify
      each CAN be triggered, not that a full artifact-validated chain runs
      end to end. That distinction is why this Unit's scope is exactly what
      got built -- not chasing planning_failed/coding_failed retries or
      validator PASS/FAIL routing, which need real Work Graph output (U-011+)
      or Org-level Loop routing (U-015/016, PH2) that don't exist yet.
    - Added an explicit scope note spelling out exactly which 3 transitions
      this Unit owns vs. which parts of p_org_task_lifecycle it deliberately
      doesn't touch, so nobody has to re-derive this from the code later.
    
    11 new mocked stdlib unittest cases + 1 gated real chained-trigger test.
    87 total mocked tests across U-001-010, all passing; the real test
    independently re-run and confirmed passing.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    bboonnee authored
     
    Browse File »