@telora/mcp-products 0.22.82 → 0.22.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- export declare const AUDIT_TREE_AUTHORING_GUIDE = "# Audit Tree-Authoring Protocol (CRT -> injections -> anchored plan)\n\nA safe audit emits a **tree and a plan, never a task checklist.** You are\nREAD-ONLY: discovery only. You author the intent structure -- the current\nreality, its root causes, and the leverage points -- and you anchor a plan a\nhuman reviews before any fix runs. You do NOT fix anything, and you do NOT\nfile remediation Task/Bug issues. Remediation is scoped LATER, one root cause\nat a time, from the injections you ratify here -- so there is no flat checklist\nto complete with completion-vigor and churn stays bounded to the real defects.\n\nTwo artifacts, one purpose:\n- **CRT (current reality)** -- entities + undesired effects (UDEs) wired by\n causal edges, surfacing the systemic structure so cross-area root causes\n become visible in ONE focus tree (NOT one delivery per audit area).\n- **FRT (future reality)** -- injections at the root causes, self-validated to\n confirm they flip the UDEs, then anchored to planning deliveries whose\n acceptance is the future-state desired effect each injection produces.\n\n## Rounds (distinct jobs -- not \"find more\")\n1. **Facts -> CRT.** Author the current reality. Create the focus's reality\n tree if none exists (`telora_reality_tree action=create`), then add an\n **entity** node per real component/observation and an **undesired_effect**\n (UDE) node per observed problem (`telora_reality_tree_node action=create`).\n State what IS, in evidence terms -- not a fix.\n2. **Relationships -> causal edges.** Wire cause -> effect with\n `telora_reality_tree_edge action=create` (cause node -> effect node). This\n is the load-bearing round: edges turn a list of symptoms into a causal\n structure, so a single deep cause feeding many surface UDEs across different\n audit areas becomes visible as ONE root in ONE tree -- which is exactly what\n stops the \"one delivery per area\" sprawl.\n3. **Leverage -> injections.** Propose **injection** nodes at the LOWEST / root\n causes (the nodes with the most downstream UDEs), not at the symptoms.\n One injection at a root can clear a whole subtree of UDEs; that leverage is\n the whole reason for the tree.\n4. **Self-validate -> derive_frt.** Call\n `telora_reality_tree action=derive_frt` with the treeId. This is read-only:\n it returns the cleared/flipped UDE sets the injections produce. Confirm each\n injection flips the UDEs you targeted. If a UDE is left unresolved by your\n injection set, REPORT it -- do not hide it and do not lower the bar to make\n the tree look clean. An honest \"this UDE has no injection yet\" is signal; a\n silently dropped UDE is noise.\n5. **Anchor the plan -> injection-anchored deliveries.** For each ratified\n injection, create a remediation delivery with\n `telora_product_delivery action=create`, passing\n `injectionNodeId=<the injection node>` and\n `executionStatus=\"planning\"`. Set its acceptance to the **FRT desired\n effect** -- the future-state the injection produces (what becomes true once\n the root cause is cleared), NOT a list of edits. This is the navigable plan\n the human reviews in the canvas before anything executes.\n\nExplicitly, in the audit phase your output is **the tree + the anchored\nplanning deliveries only.** Do NOT create remediation Task or Bug issues. Do\nNOT create one delivery per audit area -- unify the audit into ONE focus tree\nand let each injection (each root cause) anchor exactly one planning delivery.\nDo NOT attempt fixes.\n\n## Why this shape (the discipline it enforces)\nA flat checklist invites an agent to \"complete\" it -- to keep going until every\nbox is ticked, which churns code well beyond the real defects. An\ninjection-anchored plan inverts that: remediation is scoped one root cause at a\ntime from a ratified injection, with acceptance pinned to a desired effect, so\nthere is nothing to over-complete. The human reviews the structured CRT + FRT\nin the canvas first, so a wrong root cause is caught before any code moves.";
1
+ export declare const AUDIT_TREE_AUTHORING_GUIDE = "# Audit Tree-Authoring Protocol (CRT -> injections -> anchored plan)\n\nA safe audit emits a **tree and a plan, never a task checklist.** You are\nREAD-ONLY: discovery only. You author the intent structure -- the current\nreality, its root causes, and the leverage points -- and you anchor a plan a\nhuman reviews before any fix runs. You do NOT fix anything, and you do NOT\nfile remediation Task/Bug issues. Remediation is scoped LATER, one root cause\nat a time, from the injections you ratify here -- so there is no flat checklist\nto complete with completion-vigor and churn stays bounded to the real defects.\n\nTwo artifacts, one purpose:\n- **CRT (current reality)** -- entities + undesired effects (UDEs) wired by\n causal edges, surfacing the systemic structure so cross-area root causes\n become visible in ONE focus tree (NOT one delivery per audit area).\n- **FRT (future reality)** -- injections at the root causes, self-validated to\n confirm they flip the UDEs, then anchored to planning deliveries whose\n acceptance is the future-state desired effect each injection produces.\n\n## Rounds (distinct jobs -- not \"find more\")\n1. **Facts -> CRT.** Author the current reality. Create the focus's reality\n tree if none exists (`telora_reality_tree action=create`), then add an\n **entity** node per real component/observation and an **undesired_effect**\n (UDE) node per observed problem (`telora_reality_tree_node action=create`).\n State what IS, in evidence terms -- not a fix.\n2. **Relationships -> causal edges.** Wire cause -> effect with\n `telora_reality_tree_edge action=create` (cause node -> effect node). This\n is the load-bearing round: edges turn a list of symptoms into a causal\n structure, so a single deep cause feeding many surface UDEs across different\n audit areas becomes visible as ONE root in ONE tree -- which is exactly what\n stops the \"one delivery per area\" sprawl.\n3. **Leverage -> injections.** Propose **injection** nodes at the LOWEST / root\n causes (the nodes with the most downstream UDEs), not at the symptoms.\n One injection at a root can clear a whole subtree of UDEs; that leverage is\n the whole reason for the tree.\n4. **Self-validate -> derive_frt.** Call\n `telora_reality_tree action=derive_frt` with the treeId. This is read-only:\n it returns the cleared/flipped UDE sets the injections produce. Confirm each\n injection flips the UDEs you targeted. If a UDE is left unresolved by your\n injection set, REPORT it -- do not hide it and do not lower the bar to make\n the tree look clean. An honest \"this UDE has no injection yet\" is signal; a\n silently dropped UDE is noise.\n5. **Anchor the plan -> injection-anchored deliveries.** For each ratified\n injection, create a remediation delivery with\n `telora_product_delivery action=create`, passing\n `injectionNodeId=<the injection node>` and\n `executionStatus=\"planning\"`. Set its acceptance to the **FRT desired\n effect** -- the future-state the injection produces (what becomes true once\n the root cause is cleared), NOT a list of edits. This is the navigable plan\n the human reviews in the canvas before anything executes.\n\nExplicitly, in the audit phase your output is **the tree + the anchored\nplanning deliveries only.** Do NOT create remediation Task or Bug issues. Do\nNOT create one delivery per audit area -- unify the audit into ONE focus tree\nand let each injection (each root cause) anchor exactly one planning delivery.\nDo NOT attempt fixes.\n\n## Two hard integrity gates (deterministic; a tree must pass to present)\nThe tree dump (`telora_reality_tree action=dump`) computes and surfaces two\ndeterministic doubt-revealer gates near its header, so unearned certainty\ncannot hide:\n- **Connectivity (NO ORPHANS).** A node with zero edges of ANY type AND no\n `evidence` is an ORPHAN -- it floats, neither wired into the causal graph nor\n folded into its own evidence. A single orphan makes the tree **NOT\n presentable**; the dump names the orphan seqs. Fix it: wire the node to a\n cause/effect with an edge, or ground it by setting `evidence`. An orphan is\n reality with nothing to measure it against -- it must not survive to review.\n- **Evidence-or-assumed.** An `entity` / `undesired_effect` with empty/null\n `evidence` renders an `[assumed]` marker; with evidence it renders\n `(evidence)`. Assumed is NOT a violation -- it is an honest hedge that the\n claim is unearned certainty until grounded. Set `evidence` on the nodes you\n can actually observe; leave the rest visibly `[assumed]` rather than dressing\n a guess up as a proven cause.\n\n## Why this shape (the discipline it enforces)\nA flat checklist invites an agent to \"complete\" it -- to keep going until every\nbox is ticked, which churns code well beyond the real defects. An\ninjection-anchored plan inverts that: remediation is scoped one root cause at a\ntime from a ratified injection, with acceptance pinned to a desired effect, so\nthere is nothing to over-complete. The human reviews the structured CRT + FRT\nin the canvas first, so a wrong root cause is caught before any code moves.";
@@ -72,6 +72,23 @@ NOT create one delivery per audit area -- unify the audit into ONE focus tree
72
72
  and let each injection (each root cause) anchor exactly one planning delivery.
73
73
  Do NOT attempt fixes.
74
74
 
75
+ ## Two hard integrity gates (deterministic; a tree must pass to present)
76
+ The tree dump (\`telora_reality_tree action=dump\`) computes and surfaces two
77
+ deterministic doubt-revealer gates near its header, so unearned certainty
78
+ cannot hide:
79
+ - **Connectivity (NO ORPHANS).** A node with zero edges of ANY type AND no
80
+ \`evidence\` is an ORPHAN -- it floats, neither wired into the causal graph nor
81
+ folded into its own evidence. A single orphan makes the tree **NOT
82
+ presentable**; the dump names the orphan seqs. Fix it: wire the node to a
83
+ cause/effect with an edge, or ground it by setting \`evidence\`. An orphan is
84
+ reality with nothing to measure it against -- it must not survive to review.
85
+ - **Evidence-or-assumed.** An \`entity\` / \`undesired_effect\` with empty/null
86
+ \`evidence\` renders an \`[assumed]\` marker; with evidence it renders
87
+ \`(evidence)\`. Assumed is NOT a violation -- it is an honest hedge that the
88
+ claim is unearned certainty until grounded. Set \`evidence\` on the nodes you
89
+ can actually observe; leave the rest visibly \`[assumed]\` rather than dressing
90
+ a guess up as a proven cause.
91
+
75
92
  ## Why this shape (the discipline it enforces)
76
93
  A flat checklist invites an agent to "complete" it -- to keep going until every
77
94
  box is ticked, which churns code well beyond the real defects. An
@@ -1 +1 @@
1
- {"version":3,"file":"auditTreeAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/auditTreeAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,kEAAkE;AAClE,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,4DAA4D;AAC5D,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA8DkC,CAAC"}
1
+ {"version":3,"file":"auditTreeAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/auditTreeAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,kEAAkE;AAClE,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,4DAA4D;AAC5D,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA+EkC,CAAC"}
@@ -24,3 +24,4 @@ export { registerPrdTools, handlePrdCreate } from "./prdHandlers.js";
24
24
  export { registerProductRequestTools, handleProductRequestCreate } from "./productRequestHandlers.js";
25
25
  export { registerEndpointTools, handleEndpointTool } from "./endpointHandlers.js";
26
26
  export { registerServiceDefinitionTools, handleServiceDefinitionTool } from "./serviceDefinitionHandlers.js";
27
+ export { registerStarterRepoTools, handleStarterRepoTool } from "./starterRepoHandlers.js";
@@ -27,4 +27,5 @@ export { registerPrdTools, handlePrdCreate } from "./prdHandlers.js";
27
27
  export { registerProductRequestTools, handleProductRequestCreate } from "./productRequestHandlers.js";
28
28
  export { registerEndpointTools, handleEndpointTool } from "./endpointHandlers.js";
29
29
  export { registerServiceDefinitionTools, handleServiceDefinitionTool } from "./serviceDefinitionHandlers.js";
30
+ export { registerStarterRepoTools, handleStarterRepoTool } from "./starterRepoHandlers.js";
30
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,sCAAsC,EACtC,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,sCAAsC,EACtC,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks, each with a verifiable clearance predicate.\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized; an **obstacle**\n REQUIRES a verifiable **clearancePredicate the daemon can EVALUATE**. The\n frontier advances ONLY when an obstacle clears, and an obstacle clears ONLY\n when its predicate clears -- so the predicate must be\n `{kind:\"deterministic\", checks:[{cmd:\"<shell command>\"}]}` where each cmd runs\n in the focus worktree and exits 0 on success (all pass => cleared) -- e.g. a\n build or test command. A prose predicate (`{check, criteria:[...]}`) or any\n predicate with no recognized `kind` is REJECTED: it would defer forever and\n silently stall the whole PRD. The `behavioral`/`ai_inspection`/`human` kinds\n are accepted but do NOT auto-clear -- a human or AI must clear them out of band.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node with a deterministic\nclearance predicate (runnable checks); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (so it does not stall)\nAuthoring the tree is necessary but not sufficient. The daemon PRD controller\nonly ARMS frontier foci when the PRD is Played -- that is, when\n`prds.assigned_agent_role_id` is set to an agent_roles UUID, via the Factory\nPRD Play toggle or `telora_prd update assignedAgentRoleId=<uuid>` (pass null to\npause). Until the PRD is Played, the controller computes the frontier but arms\nnothing and the run never starts. If an active PRD has a frontier but no arm\nrole, the controller files a `prd_frontier_blocked_no_arm_role` escalation\n(once) instead of stalling silently -- Play the PRD to clear it.";
1
+ export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized. An **obstacle**\n does NOT require a predicate. The frontier advances when an overcome's focus\n COMPLETES -- that is, when all of that focus's deliveries pass their own verify\n gates. Focus-completion is the single clearance signal; there is no per-obstacle\n predicate gate. A `clearancePredicate`, if supplied, is **advisory only**: it\n documents the author's notion of \"done\" but is NOT evaluated as a frontier gate,\n so you do not need to commit exact shell/test paths before the code exists.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## Selecting a starter (greenfield UI PRDs)\nA greenfield UI PRD should **select a starter repo** so the product begins ABOVE\nthe UX floor instead of scaffolding a frontend from zero. Set `starterRepoId`\non `telora_prd create`/`update` to a starter from the org library\n(telora_starter_repo list to browse, by look/archetype). At product genesis the\nfactory clones the starter's pinned ref as the product's initial commit and runs\nthe PRD against it (customize/extend) -- so do NOT author a \"scaffold the app\nfrom zero\" phase when a starter is selected; the base is already there. Leave\n`starterRepoId` null for non-UI / non-greenfield PRDs. The starter must be in\nthe same org as the product.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node (a clearancePredicate\nis optional/advisory, not required); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (so it does not stall)\nAuthoring the tree is necessary but not sufficient. The daemon PRD controller\nonly ARMS frontier foci when the PRD is Played -- that is, when\n`prds.assigned_agent_role_id` is set to an agent_roles UUID, via the Factory\nPRD Play toggle or `telora_prd update assignedAgentRoleId=<uuid>` (pass null to\npause). Until the PRD is Played, the controller computes the frontier but arms\nnothing and the run never starts. If an active PRD has a frontier but no arm\nrole, the controller files a `prd_frontier_blocked_no_arm_role` escalation\n(once) instead of stalling silently -- Play the PRD to clear it.";
@@ -47,28 +47,36 @@ capture what you meant?") -- never to fill expansion slots.
47
47
  - Cross-cutting / non-functional (authz/RLS, perf, security, observability).
48
48
  - System-level architecture & data model.
49
49
  - Sequencing & pathways (and alternatives held as options).
50
- - Obstacles & risks, each with a verifiable clearance predicate.
50
+ - Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).
51
51
 
52
52
  ## How this is enforced (the authoring gates)
53
53
  - \`telora_prd create\` REQUIRES **capturedIntent** + **expansion**. No PRD
54
54
  without the dialog anchor and a full expansion that exceeds it.
55
55
  - \`telora_prd_tree node_create\`: an **overcome** REQUIRES **phases (>=2)** --
56
- it materializes as a focus, so it must be capability-sized; an **obstacle**
57
- REQUIRES a verifiable **clearancePredicate the daemon can EVALUATE**. The
58
- frontier advances ONLY when an obstacle clears, and an obstacle clears ONLY
59
- when its predicate clears -- so the predicate must be
60
- \`{kind:"deterministic", checks:[{cmd:"<shell command>"}]}\` where each cmd runs
61
- in the focus worktree and exits 0 on success (all pass => cleared) -- e.g. a
62
- build or test command. A prose predicate (\`{check, criteria:[...]}\`) or any
63
- predicate with no recognized \`kind\` is REJECTED: it would defer forever and
64
- silently stall the whole PRD. The \`behavioral\`/\`ai_inspection\`/\`human\` kinds
65
- are accepted but do NOT auto-clear -- a human or AI must clear them out of band.
56
+ it materializes as a focus, so it must be capability-sized. An **obstacle**
57
+ does NOT require a predicate. The frontier advances when an overcome's focus
58
+ COMPLETES -- that is, when all of that focus's deliveries pass their own verify
59
+ gates. Focus-completion is the single clearance signal; there is no per-obstacle
60
+ predicate gate. A \`clearancePredicate\`, if supplied, is **advisory only**: it
61
+ documents the author's notion of "done" but is NOT evaluated as a frontier gate,
62
+ so you do not need to commit exact shell/test paths before the code exists.
66
63
  These gates enforce STRUCTURE; the depth is on you -- run the rounds.
67
64
 
65
+ ## Selecting a starter (greenfield UI PRDs)
66
+ A greenfield UI PRD should **select a starter repo** so the product begins ABOVE
67
+ the UX floor instead of scaffolding a frontend from zero. Set \`starterRepoId\`
68
+ on \`telora_prd create\`/\`update\` to a starter from the org library
69
+ (telora_starter_repo list to browse, by look/archetype). At product genesis the
70
+ factory clones the starter's pinned ref as the product's initial commit and runs
71
+ the PRD against it (customize/extend) -- so do NOT author a "scaffold the app
72
+ from zero" phase when a starter is selected; the base is already there. Leave
73
+ \`starterRepoId\` null for non-UI / non-greenfield PRDs. The starter must be in
74
+ the same org as the product.
75
+
68
76
  ## From document to tree
69
77
  goal -> goal node; each capability -> an overcome node (>=2 phases) that later
70
- materializes as a focus; each obstacle -> an obstacle node with a deterministic
71
- clearance predicate (runnable checks); dependencies -> prerequisite edges;
78
+ materializes as a focus; each obstacle -> an obstacle node (a clearancePredicate
79
+ is optional/advisory, not required); dependencies -> prerequisite edges;
72
80
  alternatives -> pathways (commit one). A faithful capture, fully expanded, yields
73
81
  capability-sized foci by construction -- which is the whole point.
74
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAsE8B,CAAC"}
1
+ {"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEA8E8B,CAAC"}
@@ -2,16 +2,14 @@ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { type GetCreds } from "../shared.js";
3
3
  type CallApi = (body: Record<string, unknown>) => Promise<unknown>;
4
4
  /**
5
- * Validate that an obstacle's clearancePredicate is SHAPED so the daemon
6
- * clearance engine can actually evaluate it. Returns an error message string if
7
- * invalid, or null if acceptable. Exported pure for tests.
8
- *
9
- * The bug this prevents at the source: a predicate authored as free prose (e.g.
10
- * `{check, criteria:[...]}`) has no `kind`, so the engine silently defers it and
11
- * the obstacle can never clear -- the PRD frontier never advances and the run
12
- * stalls with no error. Forcing an explicit, recognized `kind` makes the author
13
- * consciously choose an auto-clearing deterministic predicate (with runnable
14
- * `checks`) vs a deferred kind that a human/AI must clear out of band.
5
+ * Validate that a SUPPLIED obstacle clearancePredicate is well-formed. The
6
+ * predicate is OPTIONAL and ADVISORY only -- it is NOT a frontier gate. The
7
+ * frontier advances on focus-completion (an overcome's focus finishing with all
8
+ * its deliveries past their own verify gates), not on a per-obstacle predicate.
9
+ * This check does not make the predicate a gate; it only stops a supplied
10
+ * predicate from being stored as malformed free-text junk. Returns an error
11
+ * message string if a supplied predicate is malformed, or null if acceptable.
12
+ * Exported pure for tests.
15
13
  */
16
14
  export declare function validateClearancePredicate(cp: Record<string, unknown>): string | null;
17
15
  export declare function handlePrdCreate(params: {
@@ -22,6 +20,7 @@ export declare function handlePrdCreate(params: {
22
20
  expansion?: string;
23
21
  visionProductId?: string;
24
22
  visionSnapshot?: string;
23
+ starterRepoId?: string | null;
25
24
  status?: string;
26
25
  returnFull?: boolean;
27
26
  }, callApi: CallApi): Promise<{
@@ -36,9 +35,10 @@ export declare function handlePrdCreate(params: {
36
35
  * - overcome: requires >=2 phases. An overcome materializes as a focus; an
37
36
  * overcome with <2 phases is delivery-sized, which is exactly the "foci
38
37
  * treated as deliveries" failure this exists to kill.
39
- * - obstacle: requires a clearance_predicate -- the verifiable condition that
40
- * retires it. An obstacle with no checkable clearance is not a differential
41
- * signal.
38
+ * - obstacle: does NOT require a clearance_predicate. The frontier advances on
39
+ * focus-completion (an overcome's focus finishing, all its deliveries passing
40
+ * their verify gates), not on a per-obstacle predicate. A clearancePredicate,
41
+ * if supplied, is advisory only (kept well-formed but not a frontier gate).
42
42
  * Tests inject a stub `callApi`. See docs/prd-authoring-template.md.
43
43
  */
44
44
  export declare function handleNodeCreate(params: {
@@ -27,40 +27,40 @@ const pathwayStatusEnum = z.enum(["option", "committed", "abandoned"]);
27
27
  // gate can only enforce structure, not insight. See docs/prd-authoring-template.md.
28
28
  const MIN_CAPTURED_INTENT_LEN = 40;
29
29
  const MIN_EXPANSION_LEN = 200;
30
- // The clearance-predicate kinds the daemon clearance engine understands
31
- // (packages/daemon/src/prd-clearance-engine.ts). A predicate with no recognized
32
- // `kind` is treated as non-deterministic -> DEFERRED forever -> the obstacle
33
- // never clears -> the PRD frontier silently stalls. Keep this list in sync.
30
+ // The clearance-predicate kinds recognized for a SUPPLIED (advisory) obstacle
31
+ // predicate. The per-obstacle deterministic clearance gate that once consumed
32
+ // these was RETIRED (it was a redundant second verify altitude, shadowed by the
33
+ // completion bridge), so a predicate no longer gates the frontier -- obstacle
34
+ // clearance is driven solely by focus-completion (an overcome's focus finishing
35
+ // with all its deliveries past their own verify gates). A predicate is OPTIONAL;
36
+ // this list is only used to keep a SUPPLIED predicate well-formed.
34
37
  const VALID_CLEARANCE_KINDS = ["deterministic", "behavioral", "ai_inspection", "human"];
35
38
  /**
36
- * Validate that an obstacle's clearancePredicate is SHAPED so the daemon
37
- * clearance engine can actually evaluate it. Returns an error message string if
38
- * invalid, or null if acceptable. Exported pure for tests.
39
- *
40
- * The bug this prevents at the source: a predicate authored as free prose (e.g.
41
- * `{check, criteria:[...]}`) has no `kind`, so the engine silently defers it and
42
- * the obstacle can never clear -- the PRD frontier never advances and the run
43
- * stalls with no error. Forcing an explicit, recognized `kind` makes the author
44
- * consciously choose an auto-clearing deterministic predicate (with runnable
45
- * `checks`) vs a deferred kind that a human/AI must clear out of band.
39
+ * Validate that a SUPPLIED obstacle clearancePredicate is well-formed. The
40
+ * predicate is OPTIONAL and ADVISORY only -- it is NOT a frontier gate. The
41
+ * frontier advances on focus-completion (an overcome's focus finishing with all
42
+ * its deliveries past their own verify gates), not on a per-obstacle predicate.
43
+ * This check does not make the predicate a gate; it only stops a supplied
44
+ * predicate from being stored as malformed free-text junk. Returns an error
45
+ * message string if a supplied predicate is malformed, or null if acceptable.
46
+ * Exported pure for tests.
46
47
  */
47
48
  export function validateClearancePredicate(cp) {
48
49
  const kind = cp.kind;
49
50
  if (typeof kind !== "string" || !VALID_CLEARANCE_KINDS.includes(kind)) {
50
51
  return ("clearancePredicate.kind must be one of deterministic|behavioral|ai_inspection|human. " +
51
- "A predicate with no recognized `kind` (e.g. free-text {check, criteria}) is treated as " +
52
- "non-deterministic by the clearance engine and DEFERS forever -- the obstacle never clears and " +
53
- "the PRD frontier stalls silently. For an obstacle that clears automatically use " +
54
- "{kind:'deterministic', checks:[{cmd:'<shell command>'}]} where every cmd exits 0 on success " +
55
- "(run in the focus worktree -- e.g. a build/test command). Use behavioral/ai_inspection/human " +
56
- "ONLY when a human or AI will clear the obstacle out of band (it will NOT auto-clear).");
52
+ "The predicate is OPTIONAL and ADVISORY -- it does NOT gate the frontier (the frontier advances " +
53
+ "on focus-completion, not on a per-obstacle predicate). But if you DO supply one it must be " +
54
+ "well-formed rather than free-text {check, criteria}: use {kind:'deterministic', " +
55
+ "checks:[{cmd:'<shell command>'}]} or a behavioral/ai_inspection/human kind. Omit the predicate " +
56
+ "entirely if you have no advisory note to record.");
57
57
  }
58
58
  if (kind === "deterministic") {
59
59
  const checks = cp.checks;
60
60
  if (!Array.isArray(checks) || checks.length === 0) {
61
61
  return ("A deterministic clearancePredicate requires a non-empty `checks` array of " +
62
- "[{cmd:'<shell command>', label?:'...'}]. Each cmd runs in the focus worktree and must exit 0; " +
63
- "all must pass to clear the obstacle. (A deterministic predicate with no checks can never assert clearance.)");
62
+ "[{cmd:'<shell command>', label?:'...'}]. (A deterministic predicate with no checks records " +
63
+ "nothing.) The predicate is advisory only and does not gate the frontier.");
64
64
  }
65
65
  for (let i = 0; i < checks.length; i++) {
66
66
  const c = checks[i];
@@ -109,6 +109,8 @@ export async function handlePrdCreate(params, callApi) {
109
109
  body.visionProductId = params.visionProductId;
110
110
  if (params.visionSnapshot !== undefined)
111
111
  body.visionSnapshot = params.visionSnapshot;
112
+ if (params.starterRepoId !== undefined)
113
+ body.starterRepoId = params.starterRepoId;
112
114
  if (params.status !== undefined)
113
115
  body.status = params.status;
114
116
  const result = (await callApi(body));
@@ -116,7 +118,7 @@ export async function handlePrdCreate(params, callApi) {
116
118
  return successResult({
117
119
  prd: params.returnFull
118
120
  ? prd
119
- : compactEntity(prd, ["title", "status", "productId", "visionProductId"]),
121
+ : compactEntity(prd, ["title", "status", "productId", "visionProductId", "starterRepoId"]),
120
122
  });
121
123
  }
122
124
  /**
@@ -125,9 +127,10 @@ export async function handlePrdCreate(params, callApi) {
125
127
  * - overcome: requires >=2 phases. An overcome materializes as a focus; an
126
128
  * overcome with <2 phases is delivery-sized, which is exactly the "foci
127
129
  * treated as deliveries" failure this exists to kill.
128
- * - obstacle: requires a clearance_predicate -- the verifiable condition that
129
- * retires it. An obstacle with no checkable clearance is not a differential
130
- * signal.
130
+ * - obstacle: does NOT require a clearance_predicate. The frontier advances on
131
+ * focus-completion (an overcome's focus finishing, all its deliveries passing
132
+ * their verify gates), not on a per-obstacle predicate. A clearancePredicate,
133
+ * if supplied, is advisory only (kept well-formed but not a frontier gate).
131
134
  * Tests inject a stub `callApi`. See docs/prd-authoring-template.md.
132
135
  */
133
136
  export async function handleNodeCreate(params, callApi) {
@@ -144,16 +147,18 @@ export async function handleNodeCreate(params, callApi) {
144
147
  }
145
148
  }
146
149
  if (params.nodeType === "obstacle") {
150
+ // An obstacle does NOT require a clearancePredicate. The frontier advances on
151
+ // FOCUS-COMPLETION (an overcome's focus finishing -- all its deliveries passing
152
+ // their own verify gates), not on a per-obstacle predicate. A clearancePredicate,
153
+ // if supplied, is ADVISORY only and is not evaluated as a frontier gate; we keep
154
+ // the shape check so a supplied predicate is at least well-formed.
147
155
  const cp = params.clearancePredicate;
148
156
  const hasPredicate = cp !== undefined && cp !== null && typeof cp === "object" && Object.keys(cp).length > 0;
149
- if (!hasPredicate) {
150
- return validationError("An obstacle must carry a verifiable clearancePredicate -- the checkable condition that " +
151
- "retires it (an observable state, not 'looks good'). Without it the obstacle is not a " +
152
- "differential signal. See the PRD authoring guide (telora_discover load prd).");
153
- }
154
- const shapeError = validateClearancePredicate(cp);
155
- if (shapeError) {
156
- return validationError(shapeError);
157
+ if (hasPredicate) {
158
+ const shapeError = validateClearancePredicate(cp);
159
+ if (shapeError) {
160
+ return validationError(shapeError);
161
+ }
157
162
  }
158
163
  }
159
164
  const body = {
@@ -235,8 +240,8 @@ export function registerPrdTools(server, getCreds) {
235
240
  "Authored from agent-harness dialog over MCP; there is no Telora authoring UI. " +
236
241
  "Actions: list (productId, optional status filter), " +
237
242
  "get (prdId -- returns the PRD with its full Prerequisite Tree: nodes and edges), " +
238
- "create (productId + title + capturedIntent + expansion; optional goal, visionProductId [defaults to productId], visionSnapshot, status [default active]), " +
239
- "update (prdId + any of title/goal/capturedIntent/expansion/status/visionSnapshot/committedPathId/assignedAgentRoleId -- assignedAgentRoleId is the PRD 'Play': set it to arm the milestone, null to pause). " +
243
+ "create (productId + title + capturedIntent + expansion; optional goal, visionProductId [defaults to productId], visionSnapshot, starterRepoId [a greenfield UI PRD should select a starter the factory clones at genesis], status [default active]), " +
244
+ "update (prdId + any of title/goal/capturedIntent/expansion/status/visionSnapshot/committedPathId/assignedAgentRoleId/starterRepoId -- assignedAgentRoleId is the PRD 'Play': set it to arm the milestone, null to pause; starterRepoId selects/clears the genesis starter). " +
240
245
  "AUTHORING GATE: create requires capturedIntent (what the human actually said -- the STATED reference) " +
241
246
  "AND expansion (the AI's full product derived from it -- capabilities with >=2 phases each, flows, data, " +
242
247
  "non-functionals -- reasoning outward to what the dialog implies but did not state). The expansion must " +
@@ -245,7 +250,9 @@ export function registerPrdTools(server, getCreds) {
245
250
  "node = the unique sink; (2) every obstacle paired via an overcomes edge (fromNodeId=overcome, " +
246
251
  "toNodeId=obstacle) to >=1 overcome that dispels it; (3) prerequisite edges acyclic and converging toward " +
247
252
  "the goal; (4) every overcome on a prerequisite path toward the goal; (5) every overcome capability-sized " +
248
- "(>=2 phases); (6) every obstacle carrying a deterministic clearance predicate. node_create and edge_create " +
253
+ "(>=2 phases). An obstacle does NOT require a clearancePredicate -- the frontier advances on focus-completion " +
254
+ "(an overcome's focus finishing, all its deliveries passing their own verify gates), not on a per-obstacle " +
255
+ "predicate; a clearancePredicate, if supplied, is advisory only. node_create and edge_create " +
249
256
  "reject structural violations (second goal, prerequisite cycle) immediately; pathway_commit is the seal " +
250
257
  "point and enforces the full set. Run telora_prd_tree validate to get the violation list before committing." +
251
258
  LIST_INDEX_NOTE, {
@@ -262,6 +269,8 @@ export function registerPrdTools(server, getCreds) {
262
269
  .describe("Product UUID whose Vision this PRD references (create only; defaults to productId)"),
263
270
  visionSnapshot: z.string().max(20000).optional()
264
271
  .describe("Point-in-time snapshot of the referenced Vision text"),
272
+ starterRepoId: z.string().uuid().nullable().optional()
273
+ .describe("Starter repo UUID the factory clones at product genesis (create/update; null clears). A greenfield UI PRD should SELECT a starter from the org library (telora_starter_repo) so the product begins above the UX floor instead of scaffolding from zero. Must be in the same org as the product."),
265
274
  status: prdStatusEnum.optional().describe("PRD status (default active on create)"),
266
275
  committedPathId: z.string().uuid().nullable().optional()
267
276
  .describe("Pathway UUID committed as the chosen path (update only; null clears)"),
@@ -317,12 +326,14 @@ export function registerPrdTools(server, getCreds) {
317
326
  body.committedPathId = params.committedPathId;
318
327
  if (params.assignedAgentRoleId !== undefined)
319
328
  body.assignedAgentRoleId = params.assignedAgentRoleId;
329
+ if (params.starterRepoId !== undefined)
330
+ body.starterRepoId = params.starterRepoId;
320
331
  const result = (await callProductApi(getCreds(), body));
321
332
  const prd = result.prd;
322
333
  return successResult({
323
334
  prd: params.returnFull
324
335
  ? prd
325
- : compactEntity(prd, ["title", "status", "committedPathId", "assignedAgentRoleId"]),
336
+ : compactEntity(prd, ["title", "status", "committedPathId", "assignedAgentRoleId", "starterRepoId"]),
326
337
  });
327
338
  }
328
339
  default:
@@ -332,19 +343,18 @@ export function registerPrdTools(server, getCreds) {
332
343
  // -- telora_prd_tree -------------------------------------------------------
333
344
  server.tool("telora_prd_tree", "PRD Prerequisite Tree authoring: goal / obstacle / overcome nodes wired by " +
334
345
  "prerequisite / overcomes edges. Goldratt's Prerequisite Tree as the milestone planning layer. " +
335
- "An overcome node materializes as an execution focus (set focusId); every obstacle should carry a " +
336
- "verifiable clearance_predicate (the condition that retires it). Pathways hold options; one path is committed. " +
346
+ "An overcome node materializes as an execution focus (set focusId); an obstacle MAY carry an advisory " +
347
+ "clearancePredicate but does not require one. Pathways hold options; one path is committed. " +
337
348
  "Authored from agent-harness dialog over MCP -- no authoring UI. " +
338
349
  "Node actions: node_list (prdId, optional nodeType/status filter), " +
339
350
  "node_create (prdId + nodeType + statement; optional clearancePredicate, phases, focusId, sortOrder). " +
340
351
  "AUTHORING GATES: an overcome (materializes as a focus) requires phases with >=2 entries -- the " +
341
- "delivery-phases the capability decomposes into -- so foci are capability-sized, not delivery-sized; " +
342
- "an obstacle requires a verifiable clearancePredicate that the daemon clearance engine can EVALUATE. " +
343
- "An obstacle clears (and the frontier advances) ONLY when its predicate clears, so the predicate must be " +
344
- "{kind:'deterministic', checks:[{cmd:'<shell command>'}]} (each cmd runs in the focus worktree and must " +
345
- "exit 0; all pass => cleared) -- e.g. a build/test command. Free-text {check, criteria} or any predicate " +
346
- "with no recognized `kind` is rejected: it would defer forever and stall the PRD. behavioral/ai_inspection/" +
347
- "human kinds are accepted but do NOT auto-clear (a human/AI must clear them out of band). " +
352
+ "delivery-phases the capability decomposes into -- so foci are capability-sized, not delivery-sized. " +
353
+ "An obstacle does NOT require a clearancePredicate: the frontier advances when an overcome's focus " +
354
+ "COMPLETES (all its deliveries pass their own verify gates) -- focus-completion is the single clearance " +
355
+ "signal, there is no per-obstacle predicate gate. A clearancePredicate, if supplied, is ADVISORY only and " +
356
+ "is not evaluated as a frontier gate (if supplied it must still be well-formed -- {kind:'deterministic', " +
357
+ "checks:[{cmd:'...'}]} or a behavioral/ai_inspection/human kind). " +
348
358
  "node_update (nodeId + any of statement/status/clearancePredicate/phases/focusId/sortOrder). " +
349
359
  "Edge actions: edge_list (prdId), " +
350
360
  "edge_create (prdId + fromNodeId + toNodeId + edgeType; optional pathwayId), " +
@@ -366,7 +376,9 @@ export function registerPrdTools(server, getCreds) {
366
376
  "dispels it; (3) prerequisite edges acyclic and converging toward the goal -- the vertical order IS the " +
367
377
  "prerequisite sequence (obstacles annotate their overcome; they are not spine ranks); (4) every overcome " +
368
378
  "on a prerequisite path toward the goal (no detached overcome); (5) every overcome capability-sized " +
369
- "(>=2 phases); (6) every obstacle carrying a deterministic clearance predicate. node_create and " +
379
+ "(>=2 phases). An obstacle does NOT require a clearancePredicate -- the frontier advances on focus-completion " +
380
+ "(an overcome's focus finishing, all its deliveries passing their verify gates), not on a per-obstacle " +
381
+ "predicate; a clearancePredicate, if supplied, is advisory only. node_create and " +
370
382
  "edge_create reject STRUCTURAL violations immediately (a second goal, a prerequisite cycle); pathway_commit " +
371
383
  "is the seal point and enforces the FULL set. Run validate any time to get the violation list before you commit." +
372
384
  LIST_INDEX_NOTE, {
@@ -394,11 +406,11 @@ export function registerPrdTools(server, getCreds) {
394
406
  status: prtNodeStatusEnum.optional()
395
407
  .describe("Node status (node_update; optional filter for node_list; default open)"),
396
408
  clearancePredicate: z.record(z.string(), z.unknown()).nullable().optional()
397
- .describe("Verifiable condition that clears an obstacle (required for obstacle node_create). MUST be a shape the " +
398
- "daemon clearance engine can evaluate: {kind:'deterministic', checks:[{cmd:'<shell command>', label?:'...'}]} " +
399
- "where each cmd runs in the focus worktree and exits 0 on success (all pass => obstacle clears => frontier " +
400
- "advances). Other kinds: behavioral|ai_inspection|human (accepted but deferred -- a human/AI must clear them " +
401
- "out of band; they do NOT auto-advance the frontier). Free-text/prose predicates with no `kind` are rejected."),
409
+ .describe("OPTIONAL advisory predicate on an obstacle (NOT required, NOT a frontier gate). The frontier advances on " +
410
+ "focus-completion (an overcome's focus finishing, all its deliveries passing their verify gates), not on a " +
411
+ "per-obstacle predicate. If you do supply one it documents the author's notion of 'done' but is not evaluated; " +
412
+ "it must still be well-formed: {kind:'deterministic', checks:[{cmd:'<shell command>', label?:'...'}]} or a " +
413
+ "behavioral|ai_inspection|human kind. Free-text/prose predicates with no `kind` are rejected."),
402
414
  phases: z.array(z.string().max(500)).optional()
403
415
  .describe("Delivery-phases an overcome capability decomposes into (>=2 required for overcome node_create). Name them; do NOT scope to issues -- the focus team does that at execution."),
404
416
  focusId: z.string().uuid().nullable().optional()
@@ -1 +1 @@
1
- {"version":3,"file":"prdHandlers.js","sourceRoot":"","sources":["../../src/handlers/prdHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prdHandlers.js","sourceRoot":"","sources":["../../src/handlers/prdHandlers.ts"],"names":[],"mappings":"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"}
@@ -84,5 +84,37 @@ export declare function handleRealityTreeCreate(params: {
84
84
  text: string;
85
85
  }[];
86
86
  }>;
87
+ /**
88
+ * Pure handler for reality_tree_node action=choice_set_create. Validates that
89
+ * at least two competing injection node ids were supplied, then forwards them
90
+ * to product-api `reality_tree_choice_set_create`, which enforces same-tree +
91
+ * shared-target-UDE and assigns a fresh choice_set_id. Tests inject a stub
92
+ * `callApi`.
93
+ */
94
+ export declare function handleRealityTreeChoiceSetCreate(params: {
95
+ injectionNodeIds?: string[];
96
+ }, callApi: CallApi): Promise<{
97
+ content: {
98
+ type: "text";
99
+ text: string;
100
+ }[];
101
+ }>;
102
+ /**
103
+ * Pure handler for reality_tree_node action=choice_set_commit. Requires the
104
+ * chosen injection node id (which must already carry a choice_set_id) and a
105
+ * non-empty rationale; forwards them to product-api
106
+ * `reality_tree_choice_set_commit`, which stamps the rationale on the winner
107
+ * (kept active) and demotes every other member to rejected_alternative
108
+ * (RETAINED). Tests inject a stub `callApi`.
109
+ */
110
+ export declare function handleRealityTreeChoiceSetCommit(params: {
111
+ chosenInjectionNodeId?: string;
112
+ commitRationale?: string;
113
+ }, callApi: CallApi): Promise<{
114
+ content: {
115
+ type: "text";
116
+ text: string;
117
+ }[];
118
+ }>;
87
119
  export declare function registerRealityTreeTools(server: McpServer, getCreds: GetCreds): void;
88
120
  export {};