Your first message sets the trajectory for the entire session. A vague opener means Claude spends 3-5 turns asking clarifying questions. A primed opener gets results immediately.
The Priming Template
Goal: [what you want done]
Files: @src/auth/login.ts @src/middleware/rate-limit.ts
Constraints: [what to avoid or preserve]
Verify: [how to confirm it works]
Example
Goal: Add email verification to the signup flow
Files: @src/auth/signup.ts @src/services/email.ts @src/db/schema.ts
Constraints: Don't change the existing signup response shape.
Use the Resend SDK we already have in package.json.
Verify: Run `bun test src/auth/` after changes
Why This Works
- Claude reads the referenced files immediately instead of searching
- Constraints prevent over-engineering or breaking existing behavior
- The verify step gives Claude a way to check its own work
- You skip the “which files should I look at?” back-and-forth
Create a /prime Slash Command
Save this as .claude/commands/prime.md:
Ask me for:
1. The goal (what needs to happen)
2. The key files involved
3. Any constraints or things to preserve
4. How to verify the change works
Then summarize my answers as a structured brief and begin working.
Now type /prime at the start of any session and Claude interviews you for context.