lorekeeper-reconcile — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited lorekeeper-reconcile (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Verify stored memories against authoritative sources to identify incorrect, outdated, or inconsistent facts. Update confidence scores, correct the knowledge base, and fill knowledge gaps with new memories when reference materials contain information not yet captured.
Choose whichever method(s) suit the memory being verified. Combine multiple methods when a single one is insufficient.
| Method | Tools | Use When |
|---|---|---|
| Source verification | web_extract, read_file | User provided URLs/files/docs to check against |
| Documentation cross-ref | web_search, read_file | Corroborating against existing documentation |
| Codebase verification | search_files, terminal | Technical facts (APIs, error codes, service flows) |
| Internal consistency | lore_search | Checking for contradictions/divergence between memories |
| Inference | Agent reasoning | No authoritative source available |
| Input Type | Action |
|---|---|
| URL(s) | web_extract → save content to .docs-cache/reconcile-{slug}.md |
| Local files | Read directly via read_file |
| Topic/domain request | Skip to Step 2 |
Extract key terms from the reference materials or topic request — domain terms, entity names, process names — and run multiple lore_search queries to build a verification queue of unique memories.
lore_search({ query: "<natural language query>", min_score: 0.1 })Use include_deleted: true when auditing previously soft-deleted memories.
Track coverage gaps: note topics or facts from the reference materials that return zero or very low relevance matches — these are candidates for new memories in Step 4.
For each memory, use suitable verification methods (see table above) to reach a verdict. Map the verdict to a confidence score:
| Verdict | Meaning | Confidence | Action |
|---|---|---|---|
| Confirmed | Source/docs/code validates the claims | 9-10 | useful: true |
| Corroborated | Multiple indirect sources agree | 7-8 | useful: true |
| Plausible | Cannot verify, but no contradicting evidence | 5-6 | useful: true or false (by relevance) |
| Partially correct | Some claims right, others wrong or outdated | 3-4 | useful: false |
| Outdated | Source describes a newer state | 2-3 | useful: false (2 → soft-deleted) |
| Contradicted | Source directly conflicts with the claims | 1-2 | useful: false → soft-deleted |
Batch all feedback into a single lore_update call:
lore_update({
memory_feedback: [
{ id: "<id-1>", useful: true, confidence: 9 },
{ id: "<id-2>", useful: false, confidence: 2 }
]
})When correcting a soft-deleted memory (confidence ≤ 2) and the correct information is known from an authoritative source:
lore_insert."Corrected version of soft-deleted memory <old-id>".If the soft-deleted memory contained multiple facts where only some were wrong, split into separate corrected memories.
When filling gaps — for topics identified in Step 2 that have no matching memory:
Present a reconciliation report to the user:
## Reconciliation Report
### Scope
- **Sources**: {list of reference materials used}
- **Memories examined**: {count}
### Summary
| Status | Count |
| -------------------------------------------- | ----- |
| Confirmed correct (9-10) | N |
| Likely correct (7-8) | N |
| Uncertain (5-6) | N |
| Corrected (old → soft-deleted, new inserted) | N |
| New memories (gaps filled) | N |
| Soft-deleted (1-2) | N |
### Findings
- **{memory title}** — confidence: {N}, verdict: {verdict}. {Brief reason}.
### Recommendations
- {Follow-up actions or topics needing further verification.}lore_update, even if uncertain (confidence 5-6).User: "Verify Lorekeeper facts about the authentication module against this doc: <https://docs.example.com/auth>"
web_extract, save to .docs-cache/reconcile-auth.md.lore_search({ query: "authentication token expiry and refresh" }), etc.lore_update with confidence ratings; insert corrections for wrong facts and new memories for uncovered topics.The background sweep engine continuously generates pending link candidates. Use these tools as part of a reconciliation pass to promote high-confidence links:
weighted_score DESC.min_score (e.g. 0.7) to surface only high-confidence pairs.total_pending shows total workload without a separate count call.action: "accept" — creates a real memory_links row; suggestion retained for audit.action: "reject" — marks the pair as rejected; future sweeps skip it.status (accepted / rejected / skipped / error).Typical flow during a reconciliation session:
// 1. Retrieve top candidates
lore_get_suggestions({ "limit": 20, "min_score": 0.6 })
// 2. Review results; accept clearly correct pairs, reject wrong ones
lore_review_suggestion({ "suggestion_ids": ["uuid1", "uuid2"], "action": "accept" })
lore_review_suggestion({ "suggestion_ids": ["uuid3"], "action": "reject" })Accept suggestions that are contextually correct. Reject suggestions that are coincidental or misleading — this trains the sweep engine to skip bad pairs in future runs.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.