Skip to content

feat: curation log, quote-or-refuse, composite score, typed edges#12

Merged
claudialnathan merged 1 commit into
mainfrom
memorystores
Apr 27, 2026
Merged

feat: curation log, quote-or-refuse, composite score, typed edges#12
claudialnathan merged 1 commit into
mainfrom
memorystores

Conversation

@claudialnathan

Copy link
Copy Markdown
Owner

Implements the four-task product brief end-to-end. Tests 160 → 186.

Task 1 (v1) — Curation event log

  • New append-only .priors/audit/curation.log with 6 typed event kinds
    (propose/stage/edit/accept/reject/discard); captures source model,
    original proposal payload, and human edit deltas as research data
  • New discard_staged / edit_staged MCP tools + CLI; new
    priors audit curation filter command

Task 2 (v1) — Quote-or-refuse verification

  • New project-local .priors/config.json (groundingMode + commitThreshold)
  • Deterministic claim↔evidence dice-coefficient floor (0.15) atop the
    existing verbatim-substring check; new ungrounded_claim reason code
  • groundingMode "strict" rejects; "warn" stages with grounding_warning
    flag and details on the stage event
  • 10 adversarial fixtures + strict/warn harness in tests/grounding/

Task 3 (v2) — Typed causal edges

  • Vocabulary 4 → 8: supersedes, contradiction_of, derived_from,
    reinforces, caused_by, blocks, depends_on, refutes (hard cap;
    ninth kind requires removing one)

  • Renamed contradicts → contradiction_of; kept reinforces; dropped
    validates per the brief

  • New propose_edge / commit_edge / discard_edge MCP tools mirroring the
    entry staging pipeline; inbound edges surfaced on get_entry and
    priors get

  • One-shot priors migrate-relations for legacy stores (raw-YAML rewrite
    bypasses schema validation)

    Task 4 (v2) — Composite quality score

  • Six deterministic sub-scores in src/distill/score.ts (no LLM scoring),
    min-composite documented inline

  • commitThreshold gates entries that pass hard checks but score low;
    default 0.0 preserves current behaviour

  • Sub-scores + composite logged on every propose and reject event

Implements the four-task product brief end-to-end. Tests 160 → 186.

Task 1 (v1) — Curation event log
- New append-only .priors/audit/curation.log with 6 typed event kinds
  (propose/stage/edit/accept/reject/discard); captures source model,
  original proposal payload, and human edit deltas as research data
- New discard_staged / edit_staged MCP tools + CLI; new
  `priors audit curation` filter command

Task 2 (v1) — Quote-or-refuse verification
- New project-local .priors/config.json (groundingMode + commitThreshold)
- Deterministic claim↔evidence dice-coefficient floor (0.15) atop the
  existing verbatim-substring check; new ungrounded_claim reason code
- groundingMode "strict" rejects; "warn" stages with grounding_warning
  flag and details on the stage event
- 10 adversarial fixtures + strict/warn harness in tests/grounding/

Task 3 (v2) — Typed causal edges
- Vocabulary 4 → 8: supersedes, contradiction_of, derived_from,
  reinforces, caused_by, blocks, depends_on, refutes (hard cap;
  ninth kind requires removing one)
- Renamed contradicts → contradiction_of; kept reinforces; dropped
  validates per the brief
- New propose_edge / commit_edge / discard_edge MCP tools mirroring the
  entry staging pipeline; inbound edges surfaced on get_entry and
  `priors get`
- One-shot `priors migrate-relations` for legacy stores (raw-YAML rewrite
  bypasses schema validation)

  Task 4 (v2) — Composite quality score
- Six deterministic sub-scores in src/distill/score.ts (no LLM scoring),
  min-composite documented inline
- commitThreshold gates entries that pass hard checks but score low;
  default 0.0 preserves current behaviour
- Sub-scores + composite logged on every propose and reject event
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedanthropic@​0.97.093100100100100
Addedmcp@​1.27.099100100100100

View full report

@claudialnathan claudialnathan merged commit 019d3b1 into main Apr 27, 2026
3 checks passed
@claudialnathan claudialnathan deleted the memorystores branch April 27, 2026 12:23
claudialnathan added a commit that referenced this pull request Apr 28, 2026
Implements the four-task product brief end-to-end. Tests 160 → 186.

Task 1 (v1) — Curation event log
- New append-only .priors/audit/curation.log with 6 typed event kinds
  (propose/stage/edit/accept/reject/discard); captures source model,
  original proposal payload, and human edit deltas as research data
- New discard_staged / edit_staged MCP tools + CLI; new
  `priors audit curation` filter command

Task 2 (v1) — Quote-or-refuse verification
- New project-local .priors/config.json (groundingMode + commitThreshold)
- Deterministic claim↔evidence dice-coefficient floor (0.15) atop the
  existing verbatim-substring check; new ungrounded_claim reason code
- groundingMode "strict" rejects; "warn" stages with grounding_warning
  flag and details on the stage event
- 10 adversarial fixtures + strict/warn harness in tests/grounding/

Task 3 (v2) — Typed causal edges
- Vocabulary 4 → 8: supersedes, contradiction_of, derived_from,
  reinforces, caused_by, blocks, depends_on, refutes (hard cap;
  ninth kind requires removing one)
- Renamed contradicts → contradiction_of; kept reinforces; dropped
  validates per the brief
- New propose_edge / commit_edge / discard_edge MCP tools mirroring the
  entry staging pipeline; inbound edges surfaced on get_entry and
  `priors get`
- One-shot `priors migrate-relations` for legacy stores (raw-YAML rewrite
  bypasses schema validation)

  Task 4 (v2) — Composite quality score
- Six deterministic sub-scores in src/distill/score.ts (no LLM scoring),
  min-composite documented inline
- commitThreshold gates entries that pass hard checks but score low;
  default 0.0 preserves current behaviour
- Sub-scores + composite logged on every propose and reject event
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