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
| Layer | Path | Owner | Use for |
|---|---|---|---|
| System | ~/.claude/DOS/AISTEERINGRULES.md | Ships with DOS | Baseline everyone on DOS follows |
| User | ~/.claude/DOS/USER/AISTEERINGRULES.md | You | Your 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.
- Specific behavior — verb plus object. Not "write well." Say "open every page with one sentence that answers 'what does this do for me'."
- Example — before and after, or the exact phrase you want.
- 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
Ask for outcomes
The habit that makes steering rules matter.
Voice notifications
Hear DOS move between phases without watching the terminal.
Was this page helpful?