Quick Mode
Skip the planning ceremony. Get working code fast.
Usage
/phx:quick Add pagination to posts /phx:quick Fix the login redirect bug /phx:quick Add CSV export to reports
Arguments
$ARGUMENTS = What to implement
How It Differs
Normal Mode Quick Mode
Spawn research agents No agents
Create plan document Mental model only
Parallel review Optional single review
Multiple iterations Single pass
Workflow
-
Understand - Read relevant files (max 3)
-
Implement - Write code directly
-
Verify - Quick compile check
-
Done - No ceremony
Rules in Quick Mode
Still Enforced (Iron Laws)
-
✓ No process without runtime reason
-
✓ No DB in mount
-
✓ Security basics (no SQL injection, etc.)
-
✓ Run mix format
Skipped
-
✗ Parallel agent research
-
✗ Written plan document
-
✗ Multiple review passes
-
✗ Documentation updates
When to Use
Good for:
-
Bug fixes with clear solution
-
Small features (<100 lines)
-
Refactoring with tests
-
Adding fields/columns
-
UI tweaks
Not for:
-
New authentication flows
-
Payment integration
-
Data migrations
-
Architectural changes
-
Anything touching security
Quick Patterns
Add Field
/quick Add phone field to users
→ Migration + schema + changeset + form field
Fix Bug
/quick Fix: posts not showing for admin users
→ Find issue + fix + verify
Add Endpoint
/quick Add GET /api/health endpoint
→ Route + controller + response
Escape Hatch
If quick mode hits complexity:
This needs more planning. Switching to normal mode. Run /phx:plan [task] for full analysis.
Verification
After quick implementation:
Compile check
mix compile --warnings-as-errors
If touched Ecto
mix ecto.migrate
Quick test
mix test test/path_test.exs
Example Session
User: /phx:quick Add archived_at timestamp to posts
Claude:
- Reading lib/my_app/blog/post.ex...
- Creating migration...
priv/repo/migrations/xxx_add_archived_at_to_posts.exs
def change do alter table(:posts) do add :archived_at, :utc_datetime end end
- Updating schema...
lib/my_app/blog/post.ex
field :archived_at, :utc_datetime
- Adding to changeset...
def changeset(post, attrs) do post |> cast(attrs, [:title, :body, :archived_at]) ... end
- Verifying... $ mix compile --warnings-as-errors ✓ $ mix ecto.migrate ✓
Done. Run mix test to verify.