Skip to content

feat(knowledge): conflict merge synthesis + retrieval pointers (agents' KB #4 complete)#227

Merged
mkreyman merged 1 commit into
masterfrom
knowledge-conflict-merge
Jul 1, 2026
Merged

feat(knowledge): conflict merge synthesis + retrieval pointers (agents' KB #4 complete)#227
mkreyman merged 1 commit into
masterfrom
knowledge-conflict-merge

Conversation

@mkreyman

@mkreyman mkreyman commented Jul 1, 2026

Copy link
Copy Markdown
Owner

The last executable disposition — completes route-the-findings.

At confidence: high the nightly executor now applies :merge: an LLM synthesizes the two articles a grounded agent flagged into ONE new draft. This is the only LLM in conflict resolution, and it's an executor, not a judge — it runs only because an agent already recorded :merge; it combines text, it doesn't decide whether to merge.

Guardrails (keep it off the killed self-evolving-compiler path):

  • Draft only — never auto-published; a human reviews and publishes.
  • Both sources preserved (never destroyed) + relates_to links draft→each source + metadata.merged_from. A bad synthesis is harmless.
  • confidence: high gate; falls open — no-backend/unparseable leaves the row unexecuted (retry), never drafts a placeholder.
  • Behaviour + config DI (MergeSynthesizerBehaviour / ClaudeMergeSynthesizer / MockMergeSynthesizer), shared :anthropic_provider key.

Also: retrieval-protocol pointers in knowledge_get/knowledge_search tool descriptions (act on potential_conflicts when material → knowledge_resolve_conflict); MCP v2.28.0.

Tests (+7): merge synthesizes a draft + links + sources intact; no-backend leaves it for retry; parse_text (fences/prose/empty/nil) + :not_configured degrade. Full gate green: format, credo, dialyzer, 3064 tests; 53 MCP.

…s' KB #4 complete)

The last executable disposition. At confidence:high the nightly executor now applies
:merge — an LLM synthesizes the two articles a grounded agent flagged into ONE new
DRAFT. The ONLY LLM in conflict resolution, and an executor not a judge: it runs only
because an agent already recorded :merge; it combines text, it doesn't decide to merge.

Guardrails: DRAFT only (never auto-published; human reviews); both sources PRESERVED +
relates_to links draft->each + metadata.merged_from; confidence:high gate; falls open
(no-backend/unparseable -> leave unexecuted for retry, never a placeholder). Behaviour +
config DI (MergeSynthesizerBehaviour / ClaudeMergeSynthesizer / MockMergeSynthesizer),
shared :anthropic_provider key.

Also: retrieval-protocol pointers in knowledge_get/knowledge_search descriptions; MCP
v2.28.0. Tests (+7). Full gate green (3064 tests, dialyzer, credo; 53 MCP).
@mkreyman mkreyman merged commit 3390ab1 into master Jul 1, 2026
9 checks passed
@mkreyman mkreyman deleted the knowledge-conflict-merge branch July 1, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant