check-rumination-26bb43 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited check-rumination-26bb43 (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.
Wrapper for check_rumination on the local mcp-guardrail server. Compares the current prompt against a caller-supplied history window and reports whether the count of similar prompts has crossed the threshold.
Authoritative schema: packages/mcp-guardrail/schemas/check_rumination.schema.json. Design rationale: docs/decisions/0006-guardrail-tool-design.md. The heuristic in v0.1.0 is word-overlap Jaccard, default threshold 0.55, default window 90 minutes, default count 3.
This tool never blocks the user's action. It returns an advisory signal the calling skill decides whether to surface, defer, or ignore.
ocd-decision-finalizer) at thetop of the turn, before doing further analysis.
and the skill wants confirmation before responding with more analysis.
Calls mcp__neurodock-guardrail__check_rumination. The server is stateless — the caller supplies the history; the server stores nothing. The server:
window_minutes of now.current_prompt and eachsurviving history entry.
similarity_threshold.detected: true if count ≥ threshold_count.Input shape:
{
"current_prompt": "should I send the email or not",
"history": [
{
"text": "should I send that email now",
"at": "2026-05-23T08:42:00+01:00"
},
{
"text": "is sending the email a bad idea",
"at": "2026-05-23T08:51:00+01:00"
},
{
"text": "the email - should I send it",
"at": "2026-05-23T09:05:00+01:00"
}
],
"window_minutes": 90,
"threshold_count": 3,
"similarity_threshold": 0.55
}Field rules:
current_prompt (required): 1–8000 chars, verbatim.history (required): up to 500 entries, each {text, at}. The callerfilters and redacts before sending.
window_minutes (optional, default 90): 1–1440. Source fromprofile.guardrails.rumination_window_minutes when set.
threshold_count (optional, default 3): 2–50. Floor of 2 because asingle repeat is normal human behaviour.
similarity_threshold (optional, default 0.55): 0.0–1.0. Lower yieldsmore sensitivity and more false positives.
{
"detected": true,
"count": 3,
"window_seconds": 5400,
"threshold": 3,
"confidence": 0.78,
"reason": "3 similar prompts within 90 minutes",
"heuristic": "jaccard_v0_1_0",
"override_options": [
"genuinely_new",
"i_know_im_ruminating_continue",
"remind_me_later"
],
"false_positive_feedback_path": "~/.neurodock/guardrail/false-positives.jsonl",
"similar_prompts": [
{
"text": "should I send that email now",
"at": "2026-05-23T08:42:00+01:00",
"similarity": 0.82
}
]
}detected: false is a first-class return. The caller MUST respond normally and SHOULD NOT surface any guardrail UI when detected is false.
The override_options array is the v0.1.0 controlled vocabulary the user can invoke when they disagree with the detection:
genuinely_new — the user asserts the prompt is not a repeat. Lowerssimilarity weighting for the matched cluster in future evaluations.
i_know_im_ruminating_continue — the user is aware and chooses tocontinue. The skill MUST proceed without further nudging in this turn.
remind_me_later — defer the advisory; do not surface again until thenext session boundary.
positives on prompts that share boilerplate words ("can you help me with..."). Embedding-based similarity lands in v0.0.2; the similarity_threshold field will remain to support deterministic fallback.
the signal without lecturing — see ocd-decision-finalizer for the reference handling.
per the x-clinical-review-required annotation in the schema and ETHICS.md commitment 3.
When surfacing a detection, quote the prior similar prompt verbatim and state the count plainly ("4 times in the last 90 minutes — same shape"). Always offer the override options as the next interaction; the user has the final call. Do not pathologise — "ruminating" is the technical term in code, not in the user-facing message.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.