fix(sf): system.md names isolation field correctly as git.isolation

prompts/system.md:106 told agents the isolation mode lives in
PREFERENCES.md under `taskIsolation.mode`. The preferences validator
(preferences-validation.ts:84-88) explicitly REJECTS that key — along
with task_isolation and bare isolation — with the error
'use "git.isolation" instead'. The canonical field is git.isolation
(verified in PREFERENCES.md template line 22 and preferences.ts:897).

Anyone following the system-prompt instruction would write the wrong
config, the validator would discard it, and isolation would silently
fall back to default 'none'.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mikael Hugo 2026-05-02 18:16:48 +02:00
parent b046bc1687
commit ec235c8832

View file

@ -103,7 +103,7 @@ Titles live inside file content (headings, frontmatter), not in file or director
### Isolation Model
Auto-mode supports three isolation modes (configured in `.sf/PREFERENCES.md` under `taskIsolation.mode`):
Auto-mode supports three isolation modes (configured in `.sf/PREFERENCES.md` under `git.isolation`):
- **worktree** (default): Work happens in `.sf/worktrees/<MID>/`, a full git worktree on the `milestone/<MID>` branch. Each worktree has its own working copy and `.sf/` directory. Squash-merged back to the integration branch on milestone completion.
- **branch**: Work happens in the project root on a `milestone/<MID>` branch. No worktree directory — files are checked out in-place.