Skip to content
Apothem
Comparison

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

TaskRaw hand-configApothem-managed
Author rulesHand-write each file under .windsurf/rules/Rendered from the shared corpus
Keep one rule formatHand-pick between .windsurf/rules/ and a single .windsurfrules fileThe adapter writes only .devin/rules/
Keep rules aligned with other harnessesManual, per toolAutomatic on apothem update
Share reusable skills and commandsHand-copy each skill folder into ~/.agents/skills/ and keep the copies currentWritten to ~/.agents/skills/ by the adapter, one copy for every project, and refreshed on apothem update
Keep reusable helpers in syncHand-write each Devin Local subagent file under .devin/agents/ and track Devin's tool namesEleven helpers written to .devin/agents/ with their tools translated, and refreshed on apothem update
Verify the config is correctManual inspectionapothem verify --harness windsurf --project <path>

What Apothem manages

The windsurf adapter renders the shared rules into one file, <project>/.devin/rules/apothem-rules.md; it does not write a single-file .windsurfrules. It also writes eleven of Apothem's helpers as Devin Local subagents in <project>/.devin/agents/; the three that need web tools wait until Devin documents their tool names. It registers two Devin Local hooks, a session bootstrap and a context-size advisory, in <project>/.devin/config.local.json; the older Cascade mode reads a different hook format (hooks.json), which the adapter does not write. It registers no tool-call guard, so guardrail intent lives in the rule prose rather than a tool-call interception point. Every change to the shared rules re-renders the file on the next apothem update.

Migration path

  1. Run apothem profile init to create the shared profile if you have not yet.
  2. Move the rules from your existing .windsurf/rules/ (and any single-file .windsurfrules) into the shared corpus.
  3. Run apothem install --harness windsurf --project <path> to render the .devin/rules/ directory.
  4. Run apothem verify --harness windsurf --project <path> to confirm the config landed.
  5. Use apothem update --harness windsurf --project <path> for every later change.

On this page