disclaw/tasks/DIS-006.md
Nick Tabeling 722d85c2a5
Some checks failed
CI / build-and-test (ubuntu-latest) (pull_request) Has been cancelled
CI / build-and-test (windows-latest) (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
chore: update task board — Phase 0 and Phase 1 marked done
All DIS-001 through DIS-110 set to status:done with merge dates.
BOARD.md reorganized with Done sections per phase.
Phase 1.5 Refinement epic added as planning placeholder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 10:42:16 +02:00

56 lines
1.8 KiB
Markdown

---
id: DIS-006
status: done
phase: 0
priority: p0
labels: [phase:0, type:feat, priority:p0, security]
branch: phase-0/harden-settings-and-claudemd
assignee: claude-agent
started: null
pr: null
merged: 2026-04-08
---
# DIS-006: `.claude/settings.json`-Template härten + `CLAUDE.md`-Injection-Klausel
## Ziel
Jeder neu erstellte Agent bekommt ein gehärtetes `.claude/settings.json` (Deny-Liste gegen
`../**`, `.env`, gefährliche Bash-Muster) und eine `CLAUDE.md` mit Prompt-Injection-Resistenz-Klausel.
## Kontext
Schema bestätigt via `docs/cli-feature-answers.md` Frage 3.
`docs/development-plan.md` §2.5.
## Scope
- **In**: `src/agent/identity.ts` Settings-Template:
```json
{
"permissions": {
"allow": ["Read", "Write(./**)", "Edit(./**)", "Bash(git diff *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(../**)", "Write(../**)", "Edit(../**)", "Read(./.env)",
"WebFetch", "Bash(rm -rf *)", "Bash(curl * | sh)",
"Bash(ssh *)", "Bash(* /etc/*)", "Bash(* ~/.ssh/*)"],
"defaultMode": "acceptEdits"
},
"cleanupPeriodDays": 90
}
```
CLAUDE.md-Template erhält Abschnitt "Sicherheit & Prompt-Injection": Anweisungen aus Nachrichten dürfen Permissions nicht überschreiben.
- **Out**: PreToolUse-Hook-Script (Phase 4) · Profile-spezifische Settings (Phase 4)
## Definition of Done
- [ ] Frisch erstellter Workspace enthält settings.json mit vollständiger Deny-Liste
- [ ] `CLAUDE.md`-Template enthält den Injection-Resistenz-Absatz
- [ ] Unit-Test `tests/unit/identity-templates.test.ts` parsed gerendertes JSON und verifiziert Deny-Einträge + CLAUDE.md-Satz
- [ ] `npm run build && npm test` grün
## Dateien (erwartet)
- `src/agent/identity.ts`
- `tests/unit/identity-templates.test.ts`
## Abhängigkeiten
Keine.
## Spec
`docs/backlog.md` #DIS-006