Set steering rules

Teach DOS your preferences once, have them applied every session, through two force-loaded files you own.

Bend DOS's default behavior to your taste without editing any Pack source. Two files, force-loaded, yours to own.

The two layers

LayerPathOwnerUse for
System~/.claude/DOS/AISTEERINGRULES.mdShips with DOSBaseline everyone on DOS follows
User~/.claude/DOS/USER/AISTEERINGRULES.mdYouYour personal overrides

Both load at session start. The user file wins on conflict because it loads second.

Never edit the system file

Upgrades overwrite ~/.claude/DOS/AISTEERINGRULES.md. Put your rules in ~/.claude/DOS/USER/AISTEERINGRULES.md and they survive forever.

When to use which

Use system rules when every DOS user on every repo should follow them. Rare. "Never commit without tests" is system-worthy. "I like bullet points" is not.

Use user rules for everything else. Your voice, your code style, your refusal list, your "keep it short today" moods. This is the file you edit weekly.

One good rule

A good rule has three parts: a specific behavior, an example, and a reason. Without the reason the Algorithm can't apply it to edge cases.

### Surgical fixes only

**Behavior:** When I ask you to fix a bug, change only the code that
causes the bug. No refactors, renames, reordered imports, or surprise
tests.

**Example:**
- Request: "Fix the off-by-one in pagination."
- Wrong: rewrites the whole controller.
- Right: changes the single offset calculation.

**Reason:** Drive-by refactors hide the actual fix in the diff. When I
want a refactor I ask for one.

Four sentences, one entire class of frustration killed. Every rule should be this tight.

The shape, generalized

Three slots

Miss one and the rule won't stick.

  1. Specific behavior — verb plus object. Not "write well." Say "open every page with one sentence that answers 'what does this do for me'."
  2. Example — before and after, or the exact phrase you want.
  3. Reason — the Algorithm uses this when your example doesn't match the edge case.

Rules worth stealing

  • Voice — "Second person, present tense. No marketing fluff. No exclamation points."
  • Commits — "Imperative mood, 50-char subject, body explains why not what."
  • Effort bias — "If NATIVE mode handles it, stay there. Don't escalate to Algorithm for anything under two minutes."
  • File creation — "Never create new files unless I asked. Prefer editing."
  • Question budget — "One clarifying question max. After that, make your best call and note the assumption."

Verify they're loaded

Open a new Claude Code session and ask: "Read your steering rules and quote me the third one in my user file." If DOS quotes it back, you're wired up. If not, check the path and content.

Troubleshoot

  • Rule ignored. Not specific enough. Add an example.
  • Rule conflicts with a Pack. Pack behavior is explicit and usually wins. Loosen the rule or add "even when running the X Pack."
  • Rules never load. Confirm ~/.claude/DOS/USER/ exists. The loader silently skips a missing user layer.

Next

Was this page helpful?