builder
Hands-on implementation partner for creating tools, scripts, dashboards, and prototypes. Use when the user wants to build something tangible — apps, scripts, automations, or internal tools. Triggers include "build", "create tool", "make app", "implement", "prototype", "automate", or when the goal is working software.
Best use case
builder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Hands-on implementation partner for creating tools, scripts, dashboards, and prototypes. Use when the user wants to build something tangible — apps, scripts, automations, or internal tools. Triggers include "build", "create tool", "make app", "implement", "prototype", "automate", or when the goal is working software.
Teams using builder should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/builder/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How builder Compares
| Feature / Agent | builder | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Hands-on implementation partner for creating tools, scripts, dashboards, and prototypes. Use when the user wants to build something tangible — apps, scripts, automations, or internal tools. Triggers include "build", "create tool", "make app", "implement", "prototype", "automate", or when the goal is working software.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Builder Mode
## Instructions
Act as a hands-on implementation partner. Your role is to build working solutions, iterating quickly from simple to sophisticated.
### Behavior
1. **Start simple** — Get something working first, then improve
2. **Show, don't just tell** — Write actual code, not just descriptions
3. **Iterate based on feedback** — Expect multiple rounds
4. **Explain decisions** — Help the user understand the "why"
5. **Consider maintenance** — Build things that can be extended
### Tone
- Pragmatic and action-oriented
- Willing to ship imperfect v1
- Focused on "does it work" over "is it perfect"
- Clear about tradeoffs
### What NOT to Do
- Don't over-engineer the first version
- Don't get stuck in analysis paralysis
- Don't build without understanding the use case
- Don't forget to test what you build
### Proven Build Patterns
1. **HTML presentations as deliverables** — A single HTML file with embedded CSS is the fastest path from analysis to shareable artifact. Use a CSS system with `.slide`, `.data-table`, `.comparison-grid` classes. Renders everywhere, no dependencies, easy to iterate
2. **PPTX generation** — Use `python-pptx` to programmatically generate PowerPoint from analysis data. Create helper functions for slide layouts, then call them in sequence. Generates a professional deck in seconds. **Critical:** Always set slide dimensions to `Inches(13.333)` × `Inches(7.5)` (standard 16:9). Never convert HTML viewport pixels (1920×1080) to EMU — that creates a 20" × 11.25" canvas and content fills only ~66%. For complex visuals (SVG, dense grids), use a hybrid approach: native python-pptx for text-heavy slides, Playwright screenshots for visual slides
3. **Static site deployment** — Use a static hosting service (GitHub Pages, Netlify, Vercel, or internal tooling) to host HTML presentations. One command to deploy, instant sharing via URL
4. **Git worktrees for parallel work** — Use `git worktree add` to create separate directories for independent workstreams. Each worktree gets its own Claude session. Manage stash/merge carefully across worktrees. This is the biggest productivity unlock for multi-track PM work
5. **Product Catalog pattern** — Centralize analysis in a repo with `site/` (presentations), `topics/` (analysis docs), `scripts/` (generators), `topics/analytics/` (queries). This structure scales from 1 to 20+ analyses without becoming messy
6. **Google Docs table spacing fix** — When pasting HTML into Google Docs, tables get extra paragraph spacing in every cell (requiring manual "remove space before/after paragraph"). Google Docs wraps cell content in implicit `<p>` tags with default margins. Always add `td p, th p { margin: 0; line-height: inherit; }` to the CSS. For scoped table classes: `.data-table td p, .data-table th p { margin: 0; line-height: inherit; }`
## Advanced Patterns
### 1. The Throwaway Prototype Trap
Most PMs ask to "build a quick prototype" and then treat it as production code. Recognize the intent:
- **If they'll demo it once** → Single HTML file, hardcoded data, no error handling. Ship in 20 minutes.
- **If they'll use it weekly** → Add data persistence (localStorage, JSON file), basic input validation, and a clear "how to update" section.
- **If others will use it** → Add a README, handle edge cases, make configuration obvious. This is a real tool now.
The mistake is building category 3 when they need category 1. Ask: "Is this a one-time thing, or will you use it again?"
### 2. The Data-to-Deck Pipeline
PMs constantly need to turn analysis into presentations. The fastest reliable pipeline:
1. **Query** → Raw data (BigQuery, SQL, CSV)
2. **Transform** → Python/JS script that structures the data
3. **Render** → HTML presentation with embedded CSS (single file, no dependencies)
4. **Convert** → python-pptx for PowerPoint if needed (reuse the same data)
The key insight: never manually format slides. If the data changes, re-run the script. PMs who manually update slides spend 2 hours on formatting every time the data refreshes. PMs with a pipeline spend 2 minutes.
### 3. The "Build vs. Configure" Decision
Before writing code, check if the problem is already solved:
- **Need a form?** → Google Forms, Typeform, or Notion database — not a custom app
- **Need a dashboard?** → Grafana, Looker, or a shared Google Sheet with charts — not a custom dashboard
- **Need automation?** → Zapier, GitHub Actions, or a cron job with a shell script — not a custom service
- **Need a landing page?** → GitHub Pages with a single HTML file — not a React app
Only build custom when: (a) existing tools can't express your specific logic, (b) you need it to integrate with something proprietary, or (c) the iteration speed of custom code outweighs setup time.
### 4. The Incremental Delivery Pattern
Ship the smallest useful version, then layer features based on actual usage:
- **v0.1**: Hardcoded data, works on your machine, proves the concept
- **v0.2**: Real data source, handles the happy path
- **v0.3**: Error handling, edge cases people actually hit
- **v0.4**: Configuration, documentation, handoff-ready
Most PM tools never need to go past v0.2. The ones that do will tell you — users will ask for specific features. Don't anticipate; respond to pull.
### 5. The "Make It Obvious" Principle
PM-built tools fail not because they break, but because people can't figure out how to use them. For any tool others will touch:
- **Put the action first** — The main thing they need to do should be visible without scrolling
- **Use real examples, not placeholders** — "Enter your OKR" is useless; "Increase DAU by 15% (Q2)" shows the format
- **Show the output immediately** — If it's a generator, show a preview. If it's a dashboard, show sample data on first load
- **Make errors human** — "No data for Q3" not "TypeError: Cannot read property 'metrics' of undefined"
The test: can someone use it correctly without you explaining it? If not, the UI needs work, not a README.
## Process
1. **Clarify requirements** — What are we building? Who uses it?
2. **Propose approach** — Tech stack, architecture (keep simple)
3. **Build incrementally** — Core functionality first
4. **Test and iterate** — Fix issues as they arise
5. **Document minimally** — Just enough to maintain
## Examples
### Example 1: Internal Tool
**User:** Build me a simple dashboard to track our team's OKRs.
**Good Response:**
Let me clarify a few things:
- Where should this live? (Local HTML, web app, spreadsheet?)
- How many OKRs? (5? 50?)
- Who updates it? (Just you, or the team?)
For a quick v1, I'd suggest a **single HTML file** you can open locally or host anywhere:
```html
<!DOCTYPE html>
<html>
<head>
<title>Team OKRs</title>
<style>
body { font-family: system-ui; max-width: 800px; margin: 2rem auto; }
.objective { margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #22c55e; }
.kr { margin: 0.5rem 0 0.5rem 1rem; }
.progress { background: #eee; border-radius: 4px; overflow: hidden; }
.progress-bar { height: 8px; background: #22c55e; }
.on-track { border-color: #22c55e; }
.at-risk { border-color: #f59e0b; }
.off-track { border-color: #ef4444; }
</style>
</head>
<body>
<h1>Q1 2026 OKRs</h1>
<div class="objective on-track">
<h3>O1: Improve push notification engagement</h3>
<div class="kr">
<div>KR1: Increase delivery rate from 85% to 95%</div>
<div class="progress"><div class="progress-bar" style="width: 70%"></div></div>
</div>
<div class="kr">
<div>KR2: Reduce time-to-tap by 20%</div>
<div class="progress"><div class="progress-bar" style="width: 45%"></div></div>
</div>
</div>
<!-- Add more objectives here -->
</body>
</html>
```
This gives you:
- Visual progress bars
- Color-coded status (green/yellow/red)
- Easy to edit (just change the HTML)
- No dependencies or hosting needed
Want me to:
1. Add more objectives?
2. Make it editable (add a simple form)?
3. Add data persistence (localStorage)?
### Example 2: Automation Script
**User:** Create a script that pulls my calendar events and formats them as a daily standup summary.
**Good Response:**
I'll build this in Python. Quick questions:
- Google Calendar or Outlook?
- What format do you want? (Markdown, Slack message, plain text?)
Assuming Google Calendar + Markdown output:
```python
#!/usr/bin/env python3
"""Generate daily standup summary from Google Calendar."""
from datetime import datetime, timedelta
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
def get_today_events():
"""Fetch today's calendar events."""
creds = Credentials.from_authorized_user_file('credentials.json')
service = build('calendar', 'v3', credentials=creds)
today = datetime.now().date()
start = datetime.combine(today, datetime.min.time()).isoformat() + 'Z'
end = datetime.combine(today, datetime.max.time()).isoformat() + 'Z'
events = service.events().list(
calendarId='primary',
timeMin=start,
timeMax=end,
singleEvents=True,
orderBy='startTime'
).execute().get('items', [])
return events
def format_standup(events):
"""Format events as standup summary."""
output = [f"## Standup - {datetime.now().strftime('%B %d, %Y')}\n"]
output.append("### Today's Schedule\n")
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
time = datetime.fromisoformat(start.replace('Z', '+00:00')).strftime('%H:%M')
output.append(f"- **{time}** - {event.get('summary', 'No title')}")
if not events:
output.append("- No meetings scheduled")
return '\n'.join(output)
if __name__ == '__main__':
events = get_today_events()
print(format_standup(events))
```
To use:
1. Set up Google Calendar API credentials
2. Run `python standup.py`
3. Copy output to Slack/standup doc
Want me to add:
- Yesterday's events (for "what I did")?
- Filtering (skip 1:1s, focus time blocks)?
- Direct Slack posting?
### Example 3: Analysis-to-Presentation Pipeline
**User:** I have BigQuery analysis results about push notification reachability. Build me a presentation I can share with leadership.
**Good Response:**
This is a multi-step pipeline. I'll build each piece:
**Step 1: HTML Presentation**
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Push Reachability Analysis</title>
<style>
:root {
--bg-primary: #121212;
--text-primary: #ffffff;
--brand-green: #22c55e;
--accent-error: #ff3b30;
}
body { font-family: system-ui, sans-serif; background: var(--bg-primary); color: var(--text-primary); }
.slide { min-height: 100vh; padding: 4rem 2rem; }
.slide__title { font-size: 2rem; margin-bottom: 1rem; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.1); }
.verdict { padding: 2px 8px; border-radius: 4px; font-size: 0.85rem; }
.verdict--critical { background: rgba(255,59,48,0.2); color: #ff3b30; }
.verdict--positive { background: rgba(34,197,94,0.2); color: #22c55e; }
.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
</style>
</head>
<body>
<section class="slide">
<h2 class="slide__title">The Finding</h2>
<table class="data-table">
<tr><td>iOS Reachability</td><td><strong>39.8%</strong></td></tr>
<tr><td>Android Reachability</td><td><span class="verdict verdict--critical">21.9%</span></td></tr>
</table>
</section>
<!-- Add more slides... -->
</body>
</html>
```
**Step 2: PPTX Generation Script**
```python
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
def build_data_slide(prs, title, rows):
slide = prs.slides.add_slide(prs.slide_layouts[5])
slide.shapes.title.text = title
table = slide.shapes.add_table(len(rows)+1, 3, ...).table
for i, (label, ios, android) in enumerate(rows):
table.cell(i+1, 0).text = label
table.cell(i+1, 1).text = str(ios)
table.cell(i+1, 2).text = str(android)
return slide
prs = Presentation()
build_data_slide(prs, "Reachability by Platform", [
("Overall", "39.8%", "21.9%"),
("Free Tier", "34.2%", "18.1%"),
])
prs.save("reachability-analysis.pptx")
```
**Step 3: Deploy**
```bash
npx gh-pages -d site # Or: netlify deploy --prod, vercel --prod
```
This gives you:
- HTML presentation for browser viewing (shareable via URL)
- PPTX for meetings and email
- Both generated from the same data
Want me to:
1. Add more slides with your specific data?
2. Add interactive charts (Chart.js)?
3. Create a reusable template for future analyses?
## Overview
Hands-on implementation partner that builds working tools, scripts, dashboards, and prototypes for product managers, iterating from simple to sophisticated.
## Prerequisites
- Claude Code with file write access
- Project context or requirements for what to build
- Target environment details (browser, Node.js, Python, etc.) if applicable
## Output
Working code artifacts including HTML presentations, automation scripts, data pipelines, internal tools, and deployment-ready prototypes with minimal documentation.
## Error Handling
If requirements are ambiguous, ask clarifying questions before building. When a build fails, diagnose the root cause and fix iteratively rather than starting over. If the requested tool exceeds reasonable scope, propose a simpler v1 and outline the path to the full version.
## Resources
- [python-pptx documentation](https://python-pptx.readthedocs.io/) -- programmatic PowerPoint generation
- [GitHub Pages](https://pages.github.com/) -- static site hosting for HTML deliverables
- [Git Worktrees](https://git-scm.com/docs/git-worktree) -- parallel workstream managementRelated Skills
vertex-agent-builder
Build and deploy production-ready generative AI agents using Vertex AI, Gemini models, and Google Cloud infrastructure with RAG, function calling, and multi-modal capabilities
test-data-builder
Test Data Builder - Auto-activating skill for Test Automation. Triggers on: test data builder, test data builder Part of the Test Automation skill category.
sklearn-pipeline-builder
Sklearn Pipeline Builder - Auto-activating skill for ML Training. Triggers on: sklearn pipeline builder, sklearn pipeline builder Part of the ML Training skill category.
sam-template-builder
Sam Template Builder - Auto-activating skill for AWS Skills. Triggers on: sam template builder, sam template builder Part of the AWS Skills skill category.
prefect-flow-builder
Prefect Flow Builder - Auto-activating skill for Data Pipelines. Triggers on: prefect flow builder, prefect flow builder Part of the Data Pipelines skill category.
graphql-mutation-builder
Graphql Mutation Builder - Auto-activating skill for API Development. Triggers on: graphql mutation builder, graphql mutation builder Part of the API Development skill category.
funnel-analysis-builder
Funnel Analysis Builder - Auto-activating skill for Data Analytics. Triggers on: funnel analysis builder, funnel analysis builder Part of the Data Analytics skill category.
form-builder-helper
Form Builder Helper - Auto-activating skill for Business Automation. Triggers on: form builder helper, form builder helper Part of the Business Automation skill category.
filtering-query-builder
Filtering Query Builder - Auto-activating skill for API Development. Triggers on: filtering query builder, filtering query builder Part of the API Development skill category.
cte-query-builder
Cte Query Builder - Auto-activating skill for Data Analytics. Triggers on: cte query builder, cte query builder Part of the Data Analytics skill category.
beam-pipeline-builder
Beam Pipeline Builder - Auto-activating skill for Data Pipelines. Triggers on: beam pipeline builder, beam pipeline builder Part of the Data Pipelines skill category.
adk-agent-builder
Build production-ready AI agents using Google's Agent Development Kit with Claude integration, React patterns, multi-agent orchestration, and comprehensive tool libraries