Commit 9c15321ed6904cbb2de0679b7203d09e1484c27d

Authored by graphlemon
1 parent fa930b9b

graphlemon: auto-commit uncommitted changes for 5bbc2989-acb3-49b9-999b-7304e1ba…

…9856-main-checkout-drift
.claude/agent-memory/planner/MEMORY.md
... ... @@ -8,3 +8,4 @@
8 8 - [nav current-project-context PRD: consistent](project_nav_current_project_context_prd.md) — reviewed 2026-08-06, no contradictions; FR-5's "query-string parsing fix" is actually an add (render() has no query-string parsing today, only hash-path regex) — flag as accuracy issue at SDD stage, not a PRD contradiction
9 9 - [deploy_stage.py ConcurrentDeploymentError PRD: consistent](project_deploy_stage_concurrent_conflict_prd.md) — reviewed 2026-08-07, no contradictions; all facts (staged→candidate_starting transition, ux_deployment_active terminal set) verified against code
10 10 - [skills detail-content bug: already fixed](project_skills_detail_content_bug_already_fixed.md) — get_skill_content/route/panel/tests all present 2026-08-13; only unverified is git commit/Validator status, not missing code
  11 +- [judge_prompt must reject narrative-wrapper output](feedback_judge_prompt_narrative_wrapper.md) — brd/sdd/benchmark judge_prompts need explicit "no completion-status framing, no hedged-deferred content, no prose summarizing what should be a table" instruction, generic quality prompts don't catch it
... ...
.claude/agent-memory/planner/feedback_judge_prompt_narrative_wrapper.md 0 → 100644
  1 +---
  2 +name: judge-prompt-narrative-wrapper
  3 +description: Work Graph judge_prompts for brd/sdd/benchmark nodes must explicitly reject "workflow completed" narrative-wrapper output, not just check for topical content
  4 +metadata:
  5 + type: feedback
  6 +---
  7 +
  8 +planner_reviewer rejected a Work Graph's SDD and Benchmark nodes (2026-08-13, task: fix missing
  9 +concurrency mutex in `supervisor/deploy_stage.stage_deployment()`) because both artifacts were
  10 +narrative completion reports ("The graphlemon Work Node (planner) workflow completed. It produced
  11 +an SDD for the goal '...'") wrapping only a few bullet points, with the SDD explicitly hedging
  12 +"let me know if you want the full SDD text" instead of including it. PRD passed because it was an
  13 +actual structured document with FR/AC tables; BRD partially failed for the same narrative-report
  14 +tone despite having real content (G1/G2/G3 gaps) inside it.
  15 +
  16 +**Why:** this is exactly the failure mode SOUL.md's judgment principles call out — narrative
  17 +"what I just did" text standing in for the actual deliverable. It's easy for a Planner Work Node
  18 +to slip into this because its own execution wrapper naturally produces "workflow completed, it
  19 +produced X" framing; without an explicit judge instruction against it, generic "is this a good
  20 +SDD" judge_prompts don't reliably catch it since the summary bullets *are* topically relevant, just
  21 +not the full document.
  22 +
  23 +**How to apply:** when writing `judge_prompt` for brd/sdd/benchmark Work Graph nodes (especially on
  24 +a retry after a planner_reviewer rejection), explicitly instruct the judge to fail if: (a) the
  25 +artifact opens with a completion-status sentence about the workflow/agent itself rather than the
  26 +document's own subject matter, (b) it ends with hedging like "let me know if you want more detail"
  27 +or "awaiting direction on whether to continue" instead of being self-contained, or (c) it
  28 +summarizes in prose what should be enumerated (e.g. Benchmark scenarios need real IDs/
  29 +preconditions/expected-assertions tables, not "9 test scenarios defined: ..."). Ground the
  30 +substantive completeness bar in real code facts read fresh (don't just trust the failed attempt's
  31 +own framing) — see [[project_deploy_stage_concurrent_conflict_prd]] for the concrete facts used
  32 +here (`ux_deployment_active` already exists; the real gap is the raw `sqlite3.IntegrityError`
  33 +leaking untranslated).
... ...