diff --git a/docs/specification.md b/docs/specification.md index b2150e2c1..7710a85c0 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -14308,6 +14308,10 @@ Render the decision tree for a plan. - ``: Plan ID (required). - `--show-superseded`: Include superseded decisions. +!!! note "Full ULID Display" + + All decision IDs and child plan IDs are displayed as full 26-character ULIDs (not truncated). This ensures IDs can be copy-pasted directly into `agents plan correct ` or `agents plan tree ` without modification. The "Decision IDs (for correction)" panel uses per-type ordinal labels (e.g., "Invariant 1", "Invariant 2", "Strategy", "Parallel 1", "Spawn 1") for human-readable identification. + **Examples** === "Rich" @@ -14322,8 +14326,8 @@ Render the decision tree for a plan. │ ├─ [invariant_enforced] "All API calls over TCP must be mocked" │ │ ├─ [strategy_choice] "Prioritize auth and payments" (confidence: 0.82) │ │ ├─ [subplan_parallel_spawn] "Implement auth and payment modules, in parallel" │ - │ │ ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A │ - │ │ └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B │ + │ │ ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A2B3C4D5E6F7G8H9J0 │ + │ │ └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B3C4D5E6F7G8H9J0K1 │ │ └─ [subplan_parallel_spawn] "Write tests for remaining modules" │ │ └─ ... │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ @@ -14336,12 +14340,12 @@ Render the decision tree for a plan. │ Superseded: 0 (hidden) │ ╰────────────────────────────╯ - ╭─ Child Plans ──────────────────────────────────────╮ - │ ID Phase State │ - │ ────────── ─────── ───────── │ - │ 01HXM9F1A execute processing │ - │ 01HXM9F2B execute queued │ - ╰────────────────────────────────────────────────────╯ + ╭─ Child Plans ──────────────────────────────────────────────────────╮ + │ ID Phase State │ + │ ──────────────────────────── ─────── ───────── │ + │ 01HXM9F1A2B3C4D5E6F7G8H9J0 execute processing │ + │ 01HXM9F2B3C4D5E6F7G8H9J0K1 execute queued │ + ╰────────────────────────────────────────────────────────────────────╯ ╭─ Decision IDs (for correction) ──────────────────╮ │ Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8 │ @@ -14369,8 +14373,8 @@ Render the decision tree for a plan. +-- [invariant_enforced] "All API calls over TCP must be mocked" +-- [strategy_choice] "Prioritize auth and payments" (confidence: 0.82) +-- [subplan_parallel_spawn] "Implement auth and payment modules, in parallel" - | +-- [subplan_spawn] "Write auth tests" -> Plan: 01HXM9F1A - | +-- [subplan_spawn] "Write payment tests" -> Plan: 01HXM9F2B + | +-- [subplan_spawn] "Write auth tests" -> Plan: 01HXM9F1A2B3C4D5E6F7G8H9J0 + | +-- [subplan_spawn] "Write payment tests" -> Plan: 01HXM9F2B3C4D5E6F7G8H9J0K1 +-- [subplan_parallel_spawn] "Write tests for remaining modules" +-- ... @@ -14382,10 +14386,10 @@ Render the decision tree for a plan. Superseded: 0 (hidden) Child Plans - ID Phase State - ---------- ------- --------- - 01HXM9F1A execute processing - 01HXM9F2B execute queued + ID Phase State + ---------------------------- ------- --------- + 01HXM9F1A2B3C4D5E6F7G8H9J0 execute processing + 01HXM9F2B3C4D5E6F7G8H9J0K1 execute queued Decision IDs (for correction) Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8 @@ -14420,8 +14424,8 @@ Render the decision tree for a plan. "type": "subplan_parallel_spawn", "description": "Implement auth and payment modules, in parallel", "children": [ - { "type": "subplan_spawn", "description": "Write auth tests", "plan_id": "01HXM9F1A" }, - { "type": "subplan_spawn", "description": "Write payment tests", "plan_id": "01HXM9F2B" } + { "type": "subplan_spawn", "description": "Write auth tests", "plan_id": "01HXM9F1A2B3C4D5E6F7G8H9J0" }, + { "type": "subplan_spawn", "description": "Write payment tests", "plan_id": "01HXM9F2B3C4D5E6F7G8H9J0K1" } ] }, { @@ -14439,8 +14443,8 @@ Render the decision tree for a plan. "superseded": 0 }, "child_plans": [ - { "id": "01HXM9F1A", "phase": "execute", "state": "processing" }, - { "id": "01HXM9F2B", "phase": "execute", "state": "queued" } + { "id": "01HXM9F1A2B3C4D5E6F7G8H9J0", "phase": "execute", "state": "processing" }, + { "id": "01HXM9F2B3C4D5E6F7G8H9J0K1", "phase": "execute", "state": "queued" } ], "decision_ids": { "root": "01HXM9A0B1Q2W3R5G8Z0P4Q1X8", @@ -14485,10 +14489,10 @@ Render the decision tree for a plan. children: - type: subplan_spawn description: "Write auth tests" - plan_id: "01HXM9F1A" + plan_id: "01HXM9F1A2B3C4D5E6F7G8H9J0" - type: subplan_spawn description: "Write payment tests" - plan_id: "01HXM9F2B" + plan_id: "01HXM9F2B3C4D5E6F7G8H9J0K1" - type: subplan_parallel_spawn description: "Write tests for remaining modules" children: @@ -14500,10 +14504,10 @@ Render the decision tree for a plan. invariants: 2 superseded: 0 child_plans: - - id: "01HXM9F1A" + - id: "01HXM9F1A2B3C4D5E6F7G8H9J0" phase: execute state: processing - - id: "01HXM9F2B" + - id: "01HXM9F2B3C4D5E6F7G8H9J0K1" phase: execute state: queued decision_ids: