Fix #2318: ### Pre-submission checklist - #2323
Closed
Memtensor-AI wants to merge 1 commit into
Closed
Conversation
…t actions (MemTensor#2318) L2_INDUCTION_PROMPT (v2) had a boundary block that rejected declarative L3 world-model facts but was silent on a symmetric drift: dialogue acts (ask/confirm/notify/report status) leaking into the `action` field. When a trace cluster's dominant behaviour was dialogue, induction minted policies whose action WAS the dialogue, and those policies later crystallised into dead skills — retrieved as candidates, never callable. Add a second boundary subsection that (a) enumerates the dialogue-verb classes to reject, (b) shows a wrong/right contrast on the audit's canonical skill-viewing scenario, and (c) offers an explicit {"abstain":true,"reason":"..."} escape hatch for the dialogue-only cluster case. Bump prompt version 2 → 3 and mechanically migrate the 11 op-key fixtures across the vitest suite. Full plugin suite: 183 files, 1558 passed / 2 skipped. tsc --noEmit clean.
4 tasks
Collaborator
Author
🤖 Open Code ReviewTarget: PR #2323 ✅ OpenCodeReview: Review complete: 1 finding(s) across 1 selected item(s). 🧹 Filtered 1 low-confidence OCR finding(s) before posting/fix-loop (existing_code_mismatch: 1). Generated by cloud-assistant via Open Code Review. |
Collaborator
Author
✅ Automated Test Results: PASSEDAll tests passed (24/24 executed, 1 skipped). memos_local_plugin/unit: 24 passed, 1 skipped. Duration: 7s [advisory, non-gating] AI-generated tests on branch test/auto-gen-8aa945e8b611eae0-20260902093749: 39/40 passed, 1 failed — these do NOT affect the PR verdict; review the branch manually. Branch: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes #2318 — L2 induction prompt was silent on conversational-act "actions", so trace clusters whose dominant behaviour was dialogue (ask / confirm / notify / report status) produced policies whose
actionwas that dialogue act, later crystallising into dead skills that no agent could invoke.Change: extended
L2_INDUCTION_PROMPT(apps/memos-local-plugin/core/llm/prompts/l2-induction.ts) with a second boundary subsection symmetric to the existing L3-drift guard. It enumerates the dialogue-verb classes to reject as ACTION templates, shows a wrong/right contrast on the audit's canonical skill-viewing scenario, and offers an explicit{"abstain":true,"reason":"..."}escape hatch for dialogue-only clusters. The existing induce.ts validator already treats a missing-title response as a soft failure — the correct outcome for an abstain. Prompt version bumped 2→3; the 11 op-key fixtures across 4 vitest test files were migratedl2.l2.induction.v2→l2.l2.induction.v3in the same commit.Verification: TDD-first (new red test in
tests/unit/llm/prompts.test.tspins version=3 + the guardrail language + abstain contract + still-present L3 guard, went green after the prompt edit). Full plugin vitest suite: 183 files, 1558 passed / 2 skipped / 0 failed. Type-check (tsc --noEmit) clean. No runtime code path changes — the fix is prompt-only, cutting the failure at its origin rather than mopping up downstream.Scope: 6 files touched (1 prompt + 5 test files).
.ai-tasks/andopenspec/changes/remain excluded from the PR per the workflow contract; both were archived to the sibling memos-autodev-specs repo (2026-09-02-2318-pre-submission-checklist/).Related Issue (Required): Fixes #2318
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Not run; documentation-only change.
Checklist
@whipser030, @hijzy please review this PR.
Reviewer Checklist