llm-security/STATE.md
Kjell Tore Guttormsen 0e2601ff55 chore(llm-security): STATE — v8 planning unparked; strategy docs moved to *.local.md
Operator decision 2026-07-18: v8 strategy docs are LOCAL-ONLY. All 4
(FAMILY-MAP, JOBS-TO-BE-DONE, commons-extraction-plan, roadmap) renamed
to docs/*.local.md (gitignored); roadmap.md had been hidden only by the
accidental case-insensitive ROADMAP.md ignore match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TcQyMTQfyrsAapaCMPxTtQ
2026-07-18 11:17:27 +02:00

3.7 KiB
Raw Blame History

STATE — llm-security

👉 NESTE — START HER: v8.0.0 planning is UNPARKED. Start with the plan in docs/roadmap.local.md. The visibility decision is MADE (operator, 2026-07-18): the v8 strategy docs are LOCAL-ONLY. All 4 (FAMILY-MAP, JOBS-TO-BE-DONE, commons-extraction-plan, roadmap) were renamed to docs/*.local.md (gitignored via the *.local.md pattern; cross-refs updated). roadmap.md was a 4th family member previously hidden only by accident — the root-level ROADMAP.md ignore pattern matched it case-insensitively. git status is clean; nothing untracked can leak to the public mirror. Next body of work: v8.0.0 (deprecation cleanup + behaviour-preserving commons extraction + the deferred items below). Read docs/roadmap.local.md first — it is the product roadmap the plan hangs off. v7.8.3 remains fully released: tag v7.8.3 pushed, catalog ref bumped (catalog commit 9d42292), check-versions.mjs 0 ERROR, suite 2016/0. Nothing pending on it.

v7.8.3 — what shipped (the MEDIUM sweep + 1)

52 open completion-review findings triaged (5 Opus verifiers) → 48 confirmed, 3 feature-requests, 1 non-defect. Corrected severity: 0 CRITICAL/HIGH, 21 MEDIUM, 27 LOW (every review-claimed HIGH fell to MEDIUM). Shipped 47 MEDIUM-tier fixes + 1 live-protocol fix (post-mcp-verify now reads PostToolUse tool_response — MCP-output injection scanning was silently inert in live sessions). Full triage: docs/medium-triage.local.md (gitignored). Deferred to v8: #11 persistence detector (only its doc fix shipped), #27 AST-taint f-string recall, #34/#35/#37 missing AST09/AST10/MCP05 detectors (feature-requests), #49 non-defect.

Ground truth (verified 2026-07-18, post-release)

  • npm test = 2016/0. plugin.json == package.json == README badge == 7.8.3; test badge 2013; posture 16 categories, red-team 72 scenarios, 14 orchestrated scanners; doc-consistency 30/30.
  • #30 is SCOPED: decodeEmbedded is OPT-IN on normalizeForScan (default off — appending a decoded copy double-counted content-extractor's per-match findings; caught by skill-scanner-narrative). Only signature-scanner opts in. Do NOT re-broaden it into the shared normalizer.
  • Scanner VERSION constants are frozen at 7.5.0 (unbumped since; left as-is — pre-existing, out of scope).

Guardrails that bit this session (keep)

  • NEVER git add -A; stage explicit paths — AND check git status for surprise PRE-STAGED files before every commit. An external pre-staged change (post-mcp-verify) rode into a commit via a plain git commit; caught it with reset --soft + restore --staged. (It was later shipped intentionally.)
  • A commit MESSAGE containing the literal pipe-to-shell pattern is blocked by the voyage pre-bash hook — reword.
  • Test-pollution trap: jetbrains-parser.test.mjs asserts no llmsec-jb-* mkdtemp survives — use another prefix.
  • The completion review's own text is a premiss, not a fact — re-verify every finding against current code (severities in particular did not survive: all review-claimed HIGHs downgraded).

Continuity

origin = Forgejo open/llm-security (PUBLIC, never GitHub). STATE.md intentionally TRACKED (.gitignore:19-20 NOTE). Disclosure: fix committed, HELD until its release tag exists (satisfied for v7.8.3). Push window: weekdays 20:0023:00; weekends/holidays anytime. The v8 strategy docs live in docs/*.local.md (gitignored — they reference a private sibling; keep them LOCAL-ONLY). Release mechanics: push commits → release-plugin.mjs <plugin> --version X.Y.Z --create-tag--write --commit --push → check-versions 0 ERROR. Position (v8): llm-security consolidates; growth at family level (security-commons + llm-retrieval-guard).