feat(FN-299): confirm fn_review_spec root cause — probabilistic model behavior, not code-path bug
Some checks failed
Sync dev → Gitea / Mirror dev to Gitea (push) Has been cancelled
Some checks failed
Sync dev → Gitea / Mirror dev to Gitea (push) Has been cancelled
Commits merged: - docs(FN-299): confirm fn_review_spec root cause — probabilistic model behavior, not code-path bug Files changed: .fusion/memory/MEMORY.md | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) Fusion-Task-Id: FN-299
This commit is contained in:
@@ -99,12 +99,32 @@ Highlights to remember:
|
||||
|
||||
## Fix-Patterns: `fn_review_spec` Pipeline Failure
|
||||
|
||||
**Problem:** The Fusion planning pipeline's `fn_review_spec` is sometimes not called by the planning model (`pi-claude-cli/claude-sonnet-4-6`). After 3 unapproved reviews, the task is stuck in Planning.
|
||||
### Root Cause (Confirmed by FN-299, 2026-05-13)
|
||||
|
||||
**Workaround (partial):** `fn_task_retry` — reset a failed task to "todo" for a fresh planning run. Succeeded for ~60% of tasks (FN-207, FN-208, FN-212, FN-215, FN-216, FN-217). Failed for ~40% (FN-248, FN-259, FN-264, FN-273, FN-211). The planning model intermittently calls fn_review_spec.
|
||||
**Classification:** `infra-degradation` — Fusion Platform (NOT a sase code bug)
|
||||
|
||||
**Failed approach:** `fn_task_duplicate` — tested on FN-243→FN-267, FN-248→FN-277, FN-259→FN-278. All duplicates hit the same failure. Bug is NOT specific to API-created tasks. Do NOT use fn_task_duplicate for this.
|
||||
The planning model (`pi-claude-cli/claude-sonnet-4-6`) calls `fn_review_spec` **probabilistically** — approximately 60% of planning runs invoke it, 40% skip it. This is model-behavior non-determinism, not a code-path bug. After 3 unapproved reviews, the task is stuck in Planning.
|
||||
|
||||
**Policy:** Do NOT create tasks via API for P0/P1 work — use `fn_task_create`. While provenance doesn't affect the pipeline bug, API-created tasks complicate debugging.
|
||||
**Evidence:**
|
||||
- `fn_task_retry` succeeds ~60% of the time (same task, same prompt → different outcome = model non-determinism)
|
||||
- Both API-created and agent-created tasks affected (rules out provenance)
|
||||
- Short/simple tasks also affected (rules out prompt complexity)
|
||||
- `fn_task_duplicate` fails identically (new planning run → same non-deterministic skip)
|
||||
- FN-262 (May 12 "systemic fix") targeted a code path that doesn't exist — did not resolve
|
||||
|
||||
**Resolution tracking:** FN-262 (CTO root-cause analysis, Done). Stuck tasks (FN-248, FN-259, FN-264, FN-273) cleaned up 2026-05-13. FN-274 closes the loop-detection cycle.
|
||||
**Prior patches that did NOT resolve:** FN-067 (May 10), FN-262 (May 12)
|
||||
|
||||
### Workaround (Pragmatic, Confirmed Working)
|
||||
|
||||
1. **`fn_task_retry`** — reset a failed task to "todo" for a fresh planning run. ~60% chance per attempt, ~94% within 3 retries, ~99% within 5 retries.
|
||||
2. For the ~1% that fail 5+ retries: escalate to Fusion platform team for manual spec approval.
|
||||
3. Do NOT use `fn_task_duplicate` — it always hits the same failure (wastes a planning run).
|
||||
|
||||
### Actual Fix Required
|
||||
|
||||
**Ownership: Fusion platform team.** Options:
|
||||
- Adjust the planning model prompt to require `fn_review_spec` invocation as a mandatory step
|
||||
- Change function-calling configuration (tool choice parameter, temperature, or forced tool calls)
|
||||
- Switch to a model that reliably calls specified functions
|
||||
|
||||
**Tracking:** FN-299 (root-cause investigation, escalated to CEO 2026-05-13). FN-287 (QA verification gate) passed spec review on first attempt — the condition for FN-299 closure is satisfied.
|
||||
|
||||
Reference in New Issue
Block a user