plan_work_graph(): real `claude --agent <org_node> -p` call, produces a
graph_manifest (4 nodes for brd/prd/sdd/benchmark, dependency-chained
sdd->prd->brd, each edge tagged zero_token/needs_judgment per 03-C §3.4),
recorded as a work_graph_run row (status='planning' -- 04-P
p_work_graph_execution start_state). Does not execute the plan or produce
real artifacts -- 03-C §3.4 says so explicitly ("不执行,只规划").
Real call surfaced a genuine, undocumented constraint: --json-schema is
silently ignored when combined with --agent (structured_output never
appears; the identity itself works fine -- the response referenced the
migrated SOUL.md's own principle numbering). First attempt at this Unit
failed against the real API for exactly this reason. Fixed by asking the
model to fence its JSON and parsing it out of `result` instead
(_extract_graph_manifest, tolerant of bare JSON / fenced blocks / an extra
wrapper key). Documented centrally in 05-实施约束与依赖.md §5.4.1.1 since
this will matter for any future Unit needing agent-identity + structured
output together, not just this one.
Also corrects the same class of Done-line overreach as U-009/U-010
(development-plan.md claimed U-011 alone satisfies REQ-02's happy case,
but c_work_graph_plan's own contract explicitly excludes execution) and
flags a real, previously-invisible gap found while tracing REQ-02's actual
dependencies: no Unit in development-plan.md's 43-unit breakdown owns
c_artifact_write (03-C §3.7), despite REQ-02's happy AND failure cases both
requiring it directly. Not fixed here -- noted for whichever Unit (U-012/
U-013, most likely) needs it first.
15 new mocked stdlib unittest cases + 1 gated real test (re-run and passing
after the --json-schema fix). 98 total mocked tests across U-001-011, all
passing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>