Tools
Tools: How to Actually Use Buildmate (The Practical Guide)
2026-02-09
0 views
admin
So You Installed It, Now What? ## Quick Setup (In Case You Skipped It) ## Your First /pm Command ## The Agents (Who Does What) ## Commands You'll Actually Use ## /pm "task" ## /verify ## /new-model and /new-component ## /parallel ## /security ## /test and /review ## Git Workflow (The /branch → /ship Flow) ## Customizing Your Setup ## Editing Agents ## Adding Patterns ## Changing Quality Gates ## Real Workflows I Actually Use ## Building a New Feature ## Fixing a Bug ## Adding to Existing Code ## Quick Scaffolding Day ## Common Issues (And How to Fix Them) ## Tips From Actually Using This Thing ## Whats Next ## Found This Useful? because "just read the docs" isn't helpful and we both know it Hit the paywall? Read this article for free here Ok so maybe you read my first post about Buildmate. Or maybe you just found the GitHub and thought "cool I'll try it." Either way - you got it installed but now you're staring at your terminal like "...what do I actually do with this thing?" Yeah I get it. Docs are great and all but sometimes you just want someone to show you how they actually use the thing. So thats what this is. Real workflows. Real commands. Stuff I actually do every day. If you already did this skip ahead. If not: Then bootstrap your project: Not sure what stacks are available? Check with: After this you got a .claude/ folder with all the agent stuff. Thats it. Your ready. Ok so /pm is the main thing. PM stands for Project Manager. Its the command that kicks off the whole workflow - planning, building, testing, reviewing, everything. Lets try it. Open your project and run claude, then type: Phase 1 - Planning (this part is interactive) Phases 2-5 (automatic from here) Now it just runs. You dont do anything. And now you have a working profile page. With tests. Reviewed. Verified. I know it sounds like magic but its not really. Its just agents doing their specific jobs in order. Backend dev writes backend. Frontend dev writes frontend. Tester writes tests. Each one is focused on one thing. Quick reference cause I always forget: They live in .claude/agents/ as markdown files. You can read them if your curious. Or edit them - more on that later. The big one. Full workflow. Use this for anything substantial. Features, big fixes, new pages. Tests your code by actually running it. This ones newer and honestly I use it all the time now. If something fails it tries to fix it automatically. Up to 3 times. Quick scaffolding. Creates the thing plus tests plus all the boilerplate. Way faster than doing it manually. Follows your project conventions too. Got independent tasks? Run them at the same time. Creates separate git worktrees, runs agents in each, merges when done. I use this when I got a bunch of similar things to do. Security audit. Run it before you deploy pls. Checks for injection, auth issues, XSS, CSRF, all that OWASP stuff. Just want a score without the whole workflow? Gives you the grade. Good for checking your own work. Sometimes you just want one thing: Ok so this one is newer and I use it all the time now. Instead of manually creating branches, writing commit messages, pushing, writing PR descriptions at 5pm when your brain is fried... just: Thats it. It auto-generates commit messages from your changes. Writes the PR description for you. Even runs quality gates before shipping. The /sync one is useful when main has moved ahead and you need to catch up. It handles the rebase (or merge if you prefer) and force-pushes for you. And /ship does everything at once: No more "oh wait I forgot to push." No more staring at the PR template trying to remember what you changed. It just does it. The agents are just markdown files. You can edit them. Open one up. Youll see instructions, patterns, do's and donts. Change whatever you want. For example maybe you want the backend dev to always use a specific gem: Just add it to the file. Next time it runs itll follow your rules. Got coding patterns you always follow? Add them to .claude/patterns/. These are reference docs the agents read. Stuff like "how we structure services" or "our API response format." In the stack config you can change what commands run: Add more, remove some, change commands. Whatever works for your project. This is like 80% of what I do: Thats it. Most features take 10-15 minutes now instead of half a day. For small bugs I sometimes just do it myself cause its faster. But for anything tricky I let the agent figure it out. This is where it really shines tbh. It actually reads your code and matches the style. No more "this new code looks totally different from everything else." When I'm setting up a new project I'll just rapid fire: Boom. All the basics in like 5 minutes. With tests. "Its stuck in a loop" The grind agent will try 10 times then give up. If its not converging theres probably something weird going on. Read the error, might need manual fix. "Agent didnt follow my style" Edit the agent file in .claude/agents/. Add specific rules about your style. Be explicit - "always use X, never use Y." Check if your test setup is correct. Sometimes the agent writes good tests but the test environment isnt configured right. Run the tests manually to see whats up. "It made too many files" Yeah it can get enthusiastic sometimes. You can tell it in the initial prompt: "keep it simple, minimal files." "The code works but I dont like how its structured" Use /review to get feedback, or just refactor yourself. The agents are good but theyre not perfect. Your judgment still matters. Be specific in your prompts. "Build a login page" is ok. "Build a login page with email/password, remember me checkbox, forgot password link, and redirect to dashboard after" is better. Answer the planning questions. Dont just say "whatever." The more context you give, the better the output. Use /verify often. Catches dumb mistakes before you even see them. Read the feature files. They live in .claude/context/features/. Good for remembering what was built and why. Edit the agents. Seriously. Make them yours. Add your patterns, your rules, your preferences. Trust but verify. The code is usually good but always do a quick look before shipping. Use the git flow. /branch → do work → /ship. No more manual PR descriptions at 5pm. Working on website cloning - point it at any site and itll generate your own version using your UI library. Thats gonna be a whole other post tho. For now, go try this stuff. Break things. Fix things. Let me know what works and what doesnt. GitHub: github.com/vadim7j7/buildmate If this saved you some time maybe buy me a coffee? Now go build something cool. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse COMMAND_BLOCK:
git clone https://github.com/vadim7j7/buildmate.git
cd buildmate
python3 -m venv .venv && .venv/bin/pip install -e . Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
git clone https://github.com/vadim7j7/buildmate.git
cd buildmate
python3 -m venv .venv && .venv/bin/pip install -e . COMMAND_BLOCK:
git clone https://github.com/vadim7j7/buildmate.git
cd buildmate
python3 -m venv .venv && .venv/bin/pip install -e . COMMAND_BLOCK:
# Pick your stack
buildmate rails /path/to/my-app
buildmate nextjs /path/to/my-app --ui=tailwind
buildmate rails+nextjs /path/to/my-app # Or just use a preset
buildmate --profile saas /path/to/my-app Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Pick your stack
buildmate rails /path/to/my-app
buildmate nextjs /path/to/my-app --ui=tailwind
buildmate rails+nextjs /path/to/my-app # Or just use a preset
buildmate --profile saas /path/to/my-app COMMAND_BLOCK:
# Pick your stack
buildmate rails /path/to/my-app
buildmate nextjs /path/to/my-app --ui=tailwind
buildmate rails+nextjs /path/to/my-app # Or just use a preset
buildmate --profile saas /path/to/my-app COMMAND_BLOCK:
buildmate --list # all stacks
buildmate --profiles # preset combos
buildmate --options nextjs # options for a stack Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
buildmate --list # all stacks
buildmate --profiles # preset combos
buildmate --options nextjs # options for a stack COMMAND_BLOCK:
buildmate --list # all stacks
buildmate --profiles # preset combos
buildmate --options nextjs # options for a stack CODE_BLOCK:
/pm Build a user profile page with avatar, bio, and edit functionality Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/pm Build a user profile page with avatar, bio, and edit functionality CODE_BLOCK:
/pm Build a user profile page with avatar, bio, and edit functionality CODE_BLOCK:
PM: Ok so for user profile, I'm thinking: Requirements: - Profile page showing avatar, name, bio - Edit mode to update info - Avatar upload (or URL?) - Save/cancel buttons Questions: - Should avatar be file upload or just URL input? - Where does this page live? /profile? /settings? - Need to create User model or exists already? You: URL is fine for now. /profile route. User model exists. PM: Cool, heres the plan: [shows feature file with all the details] Ready to build? You: yep go Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
PM: Ok so for user profile, I'm thinking: Requirements: - Profile page showing avatar, name, bio - Edit mode to update info - Avatar upload (or URL?) - Save/cancel buttons Questions: - Should avatar be file upload or just URL input? - Where does this page live? /profile? /settings? - Need to create User model or exists already? You: URL is fine for now. /profile route. User model exists. PM: Cool, heres the plan: [shows feature file with all the details] Ready to build? You: yep go CODE_BLOCK:
PM: Ok so for user profile, I'm thinking: Requirements: - Profile page showing avatar, name, bio - Edit mode to update info - Avatar upload (or URL?) - Save/cancel buttons Questions: - Should avatar be file upload or just URL input? - Where does this page live? /profile? /settings? - Need to create User model or exists already? You: URL is fine for now. /profile route. User model exists. PM: Cool, heres the plan: [shows feature file with all the details] Ready to build? You: yep go CODE_BLOCK:
[Phase 2: Implementation]
→ Spawning backend-developer...
→ Creating ProfileController
→ Adding routes
→ Spawning frontend-developer...
→ Creating ProfilePage component
→ Creating EditProfileForm component [Phase 3: Testing]
→ Spawning testers...
→ Writing controller specs
→ Writing component tests
→ Running quality gates...
→ Grind agent fixing 2 lint errors... [Phase 4: Review]
→ Spawning reviewers...
→ Backend review: APPROVED
→ Frontend review: APPROVED [Phase 5: Verification]
→ Starting dev server...
→ Testing /profile route...
→ Component renders ✓
→ Form submits ✓ Done! Score: 0.89 (B+) Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
[Phase 2: Implementation]
→ Spawning backend-developer...
→ Creating ProfileController
→ Adding routes
→ Spawning frontend-developer...
→ Creating ProfilePage component
→ Creating EditProfileForm component [Phase 3: Testing]
→ Spawning testers...
→ Writing controller specs
→ Writing component tests
→ Running quality gates...
→ Grind agent fixing 2 lint errors... [Phase 4: Review]
→ Spawning reviewers...
→ Backend review: APPROVED
→ Frontend review: APPROVED [Phase 5: Verification]
→ Starting dev server...
→ Testing /profile route...
→ Component renders ✓
→ Form submits ✓ Done! Score: 0.89 (B+) CODE_BLOCK:
[Phase 2: Implementation]
→ Spawning backend-developer...
→ Creating ProfileController
→ Adding routes
→ Spawning frontend-developer...
→ Creating ProfilePage component
→ Creating EditProfileForm component [Phase 3: Testing]
→ Spawning testers...
→ Writing controller specs
→ Writing component tests
→ Running quality gates...
→ Grind agent fixing 2 lint errors... [Phase 4: Review]
→ Spawning reviewers...
→ Backend review: APPROVED
→ Frontend review: APPROVED [Phase 5: Verification]
→ Starting dev server...
→ Testing /profile route...
→ Component renders ✓
→ Form submits ✓ Done! Score: 0.89 (B+) CODE_BLOCK:
/pm Add pagination to the products list
/pm Fix the login bug where sessions expire too fast
/pm Build checkout flow with Stripe integration Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/pm Add pagination to the products list
/pm Fix the login bug where sessions expire too fast
/pm Build checkout flow with Stripe integration CODE_BLOCK:
/pm Add pagination to the products list
/pm Fix the login bug where sessions expire too fast
/pm Build checkout flow with Stripe integration COMMAND_BLOCK:
/verify # test last changes
/verify --component Navbar # test specific component
/verify --endpoint POST /api/users # test specific endpoint
/verify --page /dashboard # test whole page Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/verify # test last changes
/verify --component Navbar # test specific component
/verify --endpoint POST /api/users # test specific endpoint
/verify --page /dashboard # test whole page COMMAND_BLOCK:
/verify # test last changes
/verify --component Navbar # test specific component
/verify --endpoint POST /api/users # test specific endpoint
/verify --page /dashboard # test whole page CODE_BLOCK:
/new-model Product name:string price:decimal active:boolean
/new-component ProductCard
/new-component forms/CheckoutForm Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/new-model Product name:string price:decimal active:boolean
/new-component ProductCard
/new-component forms/CheckoutForm CODE_BLOCK:
/new-model Product name:string price:decimal active:boolean
/new-component ProductCard
/new-component forms/CheckoutForm CODE_BLOCK:
/parallel "Add user avatars" "Add product images" "Add company logos" Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/parallel "Add user avatars" "Add product images" "Add company logos" CODE_BLOCK:
/parallel "Add user avatars" "Add product images" "Add company logos" CODE_BLOCK:
/security Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/eval Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/test # just run tests
/review # just review current changes Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/test # just run tests
/review # just review current changes COMMAND_BLOCK:
/test # just run tests
/review # just review current changes COMMAND_BLOCK:
/branch user-auth # creates feature/user-auth
# ... do your work or use /pm ...
/ship # commits, pushes, creates PR Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/branch user-auth # creates feature/user-auth
# ... do your work or use /pm ...
/ship # commits, pushes, creates PR COMMAND_BLOCK:
/branch user-auth # creates feature/user-auth
# ... do your work or use /pm ...
/ship # commits, pushes, creates PR COMMAND_BLOCK:
/branch login-fix --type fix # creates fix/login-fix
/branch user-auth --issue 42 # links to github issue #42
/sync # rebase on main if youre behind
/ship --draft # create PR as draft Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/branch login-fix --type fix # creates fix/login-fix
/branch user-auth --issue 42 # links to github issue #42
/sync # rebase on main if youre behind
/ship --draft # create PR as draft COMMAND_BLOCK:
/branch login-fix --type fix # creates fix/login-fix
/branch user-auth --issue 42 # links to github issue #42
/sync # rebase on main if youre behind
/ship --draft # create PR as draft COMMAND_BLOCK:
/sync # rebase on main
/sync --merge # merge instead of rebase
/sync --base develop # sync with develop branch Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/sync # rebase on main
/sync --merge # merge instead of rebase
/sync --base develop # sync with develop branch COMMAND_BLOCK:
/sync # rebase on main
/sync --merge # merge instead of rebase
/sync --base develop # sync with develop branch COMMAND_BLOCK:
/ship # commit + push + create PR
/ship --draft # same but draft PR
/ship --no-pr # just commit and push, no PR Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
/ship # commit + push + create PR
/ship --draft # same but draft PR
/ship --no-pr # just commit and push, no PR COMMAND_BLOCK:
/ship # commit + push + create PR
/ship --draft # same but draft PR
/ship --no-pr # just commit and push, no PR COMMAND_BLOCK:
.claude/agents/
├── orchestrator.md # the PM brain
├── backend-developer.md # Rails/FastAPI dev
├── frontend-developer.md
├── grind.md
└── ... Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
.claude/agents/
├── orchestrator.md # the PM brain
├── backend-developer.md # Rails/FastAPI dev
├── frontend-developer.md
├── grind.md
└── ... COMMAND_BLOCK:
.claude/agents/
├── orchestrator.md # the PM brain
├── backend-developer.md # Rails/FastAPI dev
├── frontend-developer.md
├── grind.md
└── ... COMMAND_BLOCK:
## Rules - Always use Pagy for pagination (not Kaminari)
- Always use Pundit for authorization
- ... Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
## Rules - Always use Pagy for pagination (not Kaminari)
- Always use Pundit for authorization
- ... COMMAND_BLOCK:
## Rules - Always use Pagy for pagination (not Kaminari)
- Always use Pundit for authorization
- ... CODE_BLOCK:
quality_gates: lint: command: bundle exec rubocop fix_command: bundle exec rubocop -A tests: command: bundle exec rspec Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
quality_gates: lint: command: bundle exec rubocop fix_command: bundle exec rubocop -A tests: command: bundle exec rspec CODE_BLOCK:
quality_gates: lint: command: bundle exec rubocop fix_command: bundle exec rubocop -A tests: command: bundle exec rspec CODE_BLOCK:
1. /pm Build [feature description]
2. Answer a few questions about requirements
3. Approve the plan
4. Go get coffee
5. Come back, its done
6. Maybe tweak something small manually
7. Commit and push Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
1. /pm Build [feature description]
2. Answer a few questions about requirements
3. Approve the plan
4. Go get coffee
5. Come back, its done
6. Maybe tweak something small manually
7. Commit and push CODE_BLOCK:
1. /pm Build [feature description]
2. Answer a few questions about requirements
3. Approve the plan
4. Go get coffee
5. Come back, its done
6. Maybe tweak something small manually
7. Commit and push CODE_BLOCK:
1. /pm Fix [describe the bug and where it is]
2. Agent reads the code, finds the issue
3. Fixes it
4. Writes a test so it doesnt happen again
5. Done Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
1. /pm Fix [describe the bug and where it is]
2. Agent reads the code, finds the issue
3. Fixes it
4. Writes a test so it doesnt happen again
5. Done CODE_BLOCK:
1. /pm Fix [describe the bug and where it is]
2. Agent reads the code, finds the issue
3. Fixes it
4. Writes a test so it doesnt happen again
5. Done CODE_BLOCK:
1. /pm Add [thing] to [existing feature]
2. Agent reads the existing code first
3. Follows the patterns already there
4. Adds the new thing in the same style Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
1. /pm Add [thing] to [existing feature]
2. Agent reads the existing code first
3. Follows the patterns already there
4. Adds the new thing in the same style CODE_BLOCK:
1. /pm Add [thing] to [existing feature]
2. Agent reads the existing code first
3. Follows the patterns already there
4. Adds the new thing in the same style CODE_BLOCK:
/new-model User email:string name:string
/new-model Product title:string price:decimal
/new-model Order user:references total:decimal
/new-component Navbar
/new-component Footer
/new-component ProductCard
... Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
/new-model User email:string name:string
/new-model Product title:string price:decimal
/new-model Order user:references total:decimal
/new-component Navbar
/new-component Footer
/new-component ProductCard
... CODE_BLOCK:
/new-model User email:string name:string
/new-model Product title:string price:decimal
/new-model Order user:references total:decimal
/new-component Navbar
/new-component Footer
/new-component ProductCard
... - Be specific in your prompts. "Build a login page" is ok. "Build a login page with email/password, remember me checkbox, forgot password link, and redirect to dashboard after" is better.
- Answer the planning questions. Dont just say "whatever." The more context you give, the better the output.
- Use /verify often. Catches dumb mistakes before you even see them.
- Read the feature files. They live in .claude/context/features/. Good for remembering what was built and why.
- Edit the agents. Seriously. Make them yours. Add your patterns, your rules, your preferences.
- Trust but verify. The code is usually good but always do a quick look before shipping.
- Use the git flow. /branch → do work → /ship. No more manual PR descriptions at 5pm.
how-totutorialguidedev.toaiserverpythongitgithub