Add .gitignore (Python stack + obligatory lines; /STATE.md kept local-only until a private remote exists), CHANGELOG.md, and the Communication patterns section in CLAUDE.md. STATE.md is gitignored — must never reach the public open/ mirror. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K8GmKRCdsPjWYAKWsNgeQS
1.6 KiB
llm-ingestion-pipeline-security
Kontekst
Gjenbrukbar, minimal defensiv layer for LLM ingestion-pipelines (write-time), til forskjell fra query-time chatbot-guardrails. Pakker det arkitektoniske kontraktet — sanitize → fence → tool-less karantenert transform → per-stadium capability-isolasjon → scan output før commit → fail-secure — som komponerbar, framework-agnostisk kode.
Referanse-implementasjon: claude-code-llm-wiki Stage B (tools/wiki_ingest/).
Lexikon-seed: injection-patterns.mjs fra llm-security-pluginen.
Repoet er på brief-stadiet. Start med docs/BRIEF.md.
Konvensjoner
- Norsk for dialog og planer, engelsk for kode og innhold (repoet er ment publisert).
- Ingen GitHub — kun Forgejo (
git.fromaitochitta.com) hvis/når publisert. - Ingen remote satt ennå; ingen push før operatøren bestemmer publisering.
- Minimal-dependency: stdlib-first kjerne; ML/judge-detektorer bak extras.
Communication patterns
Linking to local files
When pointing to local files in responses, always use markdown link syntax with a descriptive name:
- Use
[Human-friendly name](file:///absolute/path)— never barefile:///...URLs or autolinks<file://...>. - Always use absolute paths. Never
~/or relative paths. - For multiple files, render as a bullet list of named markdown links.
Why: bare file:// URLs only render the first as clickable across multiple lines. Named markdown links make each entry independently clickable and look cleaner.
Example: