purge: field-level scrub of scoring_context (owner ruling 2026-08-06) - #30
Merged
Merged
Conversation
Owner ruling 2026-08-06. scoring_context held both the observations and the worthless pre-CFG-GOV scores; keeping the collection whole kept the scores. - scoring_context moves from KEEP_LIST to a new SCRUB_LIST: every document survives, analystScore is $set to null, plus a self-describing scorePurge marker (nulled, not unset, so "deliberately removed" stays distinguishable from "never carried one"). - Retained: lenses (enables offline re-scoring), rawUss, meta, decayParams, compositionRef, uwrResolvedSource. signal_outcomes stays hard-refused. - Safe for the hourly outcomes cron: capture-outcomes.mjs reads meta.direction and meta.symbol, never analystScore. Verified in source. - Defense in depth extended: a scrub-list collection may never appear in the deleteMany set, and a keep-list collection may never appear in the scrub set. - Dry-run now reports both "would delete" and "would null" counts; post-run asserts scrub document counts are unchanged and zero scores remain. Refusal paths proven without a database (unknown arg, missing URI: exit 1). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Kilo Code Review could not run — your account is out of credits. Add credits or switch to a free model to enable reviews on this change. |
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.
Owner ruling 2026-08-06. Not a CFG-GOV slot — operational tooling on a non-canonical plane. Nothing here runs; the script remains owner-operated and dry-run by default.
Why
scoring_contextwas on the keep-list, but it holds both the observations and the worthless pre-CFG-GOV scores (analystScore→uwrScore/uwrAxes/conviction/riskBucket). Keeping the collection whole kept the scores — which is not what the owner asked for, and it is the same collection a ρ was computed from once already.What changed
scoring_contextmoves fromKEEP_LISTto a newSCRUB_LIST. Every document survives;analystScoreis$settonullalongside a self-describingscorePurgemarker.Retained (this is the point — these are observations, not opinions):
lensesrawUssmetadecayParams,compositionRef,uwrResolvedSourceNulled rather than unset, deliberately: a reader can still distinguish "score deliberately removed" from "row never carried one."
signal_outcomesremains hard-refused and is never written.Safety
capture-outcomes.mjsreadsctx.meta?.direction(:161) andctx.meta?.symbol(:176) and never readsanalystScore. Verified in source, not assumed.$setonly, never a delete, and asserts its document count is byte-identical before and after.deleteManyset, and a keep-list collection may never appear in the scrub set.Verification
node --checkclean. Both refusal paths proven without a database — unknown argument and missingAFI_EVIDENCE_MONGODB_URIeach exit 1. No database URI exists on this machine, so no dry-run count was possible; the script is ready the moment one is supplied.Deploy notes updated with the ruling and the cron-safety reasoning.
🤖 Generated with Claude Code