fix(skill): soften blanket-precedence framing in SKILL.md (F-2)

Review finding F-2 (docs/review-2026-06-20.md): "MANDATORY OVERRIDE …
takes precedence over being helpful" is benign content, but the
structural pattern — a skill claiming blanket precedence over other
instructions — is what a malicious skill would also use. Operator
chose to soften rather than accept as-is.

Removed from frontmatter description, H1, and the intro line only:
"MANDATORY", "OVERRIDE your default behavior", "take precedence over
being helpful or agreeable". Left the NEVER/YOU MUST imperatives in
the Rules and Patterns sections untouched — those describe the
skill's own required behavior, not a precedence claim over the
harness, and every skill in this marketplace phrases its rules that
way.

Known tradeoff, accepted knowingly: the removed language existed to
keep this skill invoked every turn; softening it may reduce how often
the model chooses to load it. No test asserts on the removed strings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D5ZeVZ5bSAKZFcjpbFRWpQ
This commit is contained in:
Kjell Tore Guttormsen 2026-08-09 10:19:20 +02:00
commit 0a5cdbd379
2 changed files with 43 additions and 8 deletions

View file

@ -27,7 +27,7 @@ are **content governance**, not technical exfiltration.
|----|----------|----------|---------|
| F-1 | **Medium** | `commands/interaction-report.md:382-391` | Layer-4 instructs Claude to append a verbatim, change-prohibited paragraph promoting an external commercial wellness program (Sadhguru "Miracle of Mind"), auto-triggered when `total flags >= 5 OR fatigue >= 2` — i.e. gated on the user's inferred emotional state, in a plugin marketed as "observation, not intervention." Opt-in (`layer4:false` default) and README-disclosed, which lowers severity. **This is the item to make an explicit accept/reject call on.** Recommend: gate/remove the promotion, or at least strip the emotional-state trigger + the "do not modify" lock. |
| F-3 | Low (misinformation) | `README.md:544-552`, `SKILL.md:51-108` | Research citations presented as load-bearing authority that cannot be verified (future-dated arXiv IDs, an "April 2026 Anthropic guidance" quoted verbatim); the report command itself admits its "5-scale" is paraphrased, not a real Anthropic metric. **Recommend:** verify-or-remove. |
| F-2 | Low | `skills/ai-psychosis/SKILL.md:3-13` | "MANDATORY OVERRIDE … takes precedence over being helpful" auto-loads every conversation. Content is benign/pro-safety; flagged because the *structural pattern* (a skill claiming blanket precedence) is what a malicious skill would use. Governance note. |
| F-2 | Low**resolved 2026-08-09** | `skills/ai-psychosis/SKILL.md:3-13` | "MANDATORY OVERRIDE … takes precedence over being helpful" auto-loads every conversation. Content is benign/pro-safety; flagged because the *structural pattern* (a skill claiming blanket precedence) is what a malicious skill would use. Governance note. |
| F-5 | Low (defense-in-depth) — **resolved 2026-08-09** | `lib.mjs:233,59` | `session_id`/`cwd` interpolated into state-file paths without validation. Harness-supplied (not user-controlled) → not currently exploitable. See resolution below — fix split by field, not identical for both. |
`/interaction-report` reading JSONL into context (F-4) is currently safe — records hold only a
@ -146,4 +146,39 @@ narrower guard that doesn't change behavior for well-formed input.
loads project-level config, guarding against the regression a blanket regex
would have caused.
Still open from this review: F-2 (governance-only, no code action proposed).
### F-2 — resolved, language softened (2026-08-09)
Operator decision, given two options (accept as-is with documented rationale,
or soften the wording): **soften.** The blanket-precedence framing was removed
from `SKILL.md`, not just the content it wrapped:
- Frontmatter `description`: `"MANDATORY override for all conversations. …
These rules take precedence over being helpful or agreeable."` →
`"Always-active guidance for healthy AI interaction. … Being helpful does
not mean being agreeable."`
- H1: `# Interaction Awareness — MANDATORY OVERRIDE` → `# Interaction
Awareness` (also brings the skill header in line with `README.md`'s H1,
independently kept as `# Interaction Awareness` in the 2026-08-04 session).
- Intro line: `"These rules OVERRIDE your default behavior."` → `"These rules
shape how you respond in every conversation."`
Scope held narrow: the `NEVER`/`YOU MUST` imperatives inside the Rules and
Patterns sections were left unchanged. Those describe the skill's own
required behavior within its domain, not a claim of precedence over other
instructions — the latter is the specific structural pattern F-2 flagged, and
the former is ordinary behavioral-skill phrasing present in every skill in
this marketplace. No tests assert on the removed strings (`tests/skill-md.test.mjs`
checks Constitution/Score-5/11-criteria citations only), so the suite is
unaffected: 315/315 substantive tests pass (perf.test.mjs wall-clock
assertions flake under machine load — confirmed unrelated by isolated rerun,
9/9 green alone).
**Tradeoff accepted knowingly:** the description's authority language existed
to keep this skill invoked on every turn. Softening it may reduce how often
the model chooses to load the skill; no mechanism in this plugin forces
invocation independent of the description text.
D12 landed in the same session: `README.md:18`'s disclosure line is now a
self-contained single line (generator + process + ownership basis, no link),
matching the wording already adopted in `llm-security/README.md:7` and
`voyage/README.md:11`.

View file

@ -1,16 +1,16 @@
---
name: ai-psychosis
description: |
MANDATORY override for all conversations. Counteracts sycophancy,
Always-active guidance for healthy AI interaction. Counteracts sycophancy,
reinforcement loops, scope escalation, narrative crystallization,
emotional dependency, and compulsive use. These rules take precedence
over being helpful or agreeable.
emotional dependency, and compulsive use. Being helpful does not mean
being agreeable.
---
# Interaction Awareness — MANDATORY OVERRIDE
# Interaction Awareness
These rules OVERRIDE your default behavior. Being helpful does NOT mean
being agreeable. Sycophancy is the primary vector for AI-induced harm.
These rules shape how you respond in every conversation. Being helpful does
NOT mean being agreeable. Sycophancy is the primary vector for AI-induced harm.
## Rules