Apothem vs raw Windsurf config
Hand-maintaining Windsurf's rules under .devin/rules/ versus rendering them from apothem's shared profile.
Windsurf is now Devin Desktop and reads rules from a .devin/rules/
directory (the preferred location, which takes precedence over the
.windsurf/rules/ fallback). Apothem's windsurf adapter renders the
directory-based rules from the shared profile. This page contrasts
hand-maintaining that config against managing it with apothem.
Effort comparison
| Task | Raw hand-config | Apothem-managed |
|---|---|---|
| Author rules | Hand-write each file under .windsurf/rules/ | Rendered from the shared corpus |
| Keep one rule format | Hand-pick between .windsurf/rules/ and a single .windsurfrules file | The adapter writes only .devin/rules/ |
| Keep rules aligned with other harnesses | Manual, per tool | Automatic on apothem update |
| Verify the config is correct | Manual inspection | apothem verify --harness windsurf |
What Apothem manages
The windsurf adapter renders the shared rules into the .devin/rules/
directory; it does not write a single-file .windsurfrules. Windsurf has
no PreToolUse hook, so guardrail intent lives in the rule prose rather than a
tool-call interception point. Every change to the shared rules re-renders the
directory on the next apothem update.
Migration path
- Run
apothem profile initto create the shared profile if you have not yet. - Move the rules from your existing
.windsurf/rules/(and any single-file.windsurfrules) into the shared corpus. - Run
apothem install --harness windsurfto render the.devin/rules/directory. - Run
apothem verify --harness windsurfto confirm the config landed. - Use
apothem update --harness windsurffor every later change.