rapid-prototyper
ClaudeSkillz: For when you need skills, but lazier
8 stars2 forksUpdated Nov 20, 2025
npx skills add https://github.com/jackspace/claudeskillz --skill rapid-prototyperSKILL.md
Rapid Prototyper
Purpose
Fast validation through working prototypes. Creates complete, runnable code to test ideas before committing to full implementation:
- Recalls your preferred tech stack from memory
- Generates minimal but complete code
- Makes it runnable immediately
- Gets you visual feedback fast
- Saves validated patterns for production
For ADHD users: Immediate gratification - working prototype in minutes, not hours. For aphantasia: Concrete, visual results instead of abstract descriptions. For all users: Validate before investing - fail fast, learn fast.
Activation Triggers
- User says: "prototype this", "quick demo", "proof of concept", "MVP"
- User asks: "can we build", "is it possible to", "how would we"
- User mentions: "try out", "experiment with", "test the idea"
- Before major feature: proactive offer to prototype first
Core Workflow
1. Understand Requirements
Extract key information:
{
feature: "User authentication",
purpose: "Validate JWT flow works",
constraints: ["Must work offline", "No external dependencies"],
success_criteria: ["Login form", "Token storage", "Protected route"]
}
2. Recall Tech Stack
Query context-manager:
search memories:
- Type: DECISION, PREFERENCE
- Tags: tech-stack, framework, library
- Project: current project
Example recall:
Found preferences:
- Frontend: React + Vite
- Styling: Tailwind CSS
- State: Zustand
- Backend: Node.js + Express
- Database: PostgreSQL (but skip for prototype)
3. Design Minimal Implementation
Prototype scope:
- ✅ Core feature working
- ✅ Visual interface (if UI feature)
- ✅ Basic validation
- ✅ Happy path functional
- ❌ Error handling (minimal)
- ❌ Edge cases (skip for speed)
- ❌ Styling polish (functional only)
- ❌ Optimization (prototype first)
Example: Auth prototype scope
✅ Include:
- Login form
- Token storage in localStorage
- Protected route example
- Basic validation
❌ Skip:
- Password hashing (use fake tokens)
- Refresh tokens
- Remember me
- Password reset
- Email verification
4. Generate Prototype
Structure:
prototype-{feature}-{timestamp}/
├── README.md # How to run
├── package.json # Dependencies
├── index.html # Entry point
├── src/
│ ├── App.jsx # Main component
│ ├── components/ # Feature components
│ └── utils/ # Helper functions
└── server.js # If backend needed
Example: Auth Prototype
package.json:
{
"name": "auth-prototype",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.20.0",
"zustand": "^4.4.7"
},
"devDependencies": {
"@vitejs/plugin-react": "^4.2.1",
"vite": "^5.0.8"
}
}
src/App.jsx:
import { useState } from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { useAuthStore } from './store';
function LoginForm() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const login = useAuthStore(state => state.login);
const handleSubmit = (e) => {
e.preventDefault();
// Prototype: Accept any credentials
if (email && password) {
login({ email, token: 'fake-jwt-token' });
}
};
return (
<div style={{ maxWidth: 400, margin: '100px auto' }}>
<h1>Login</h1>
<form onSubmit={handleSubmit}>
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Email"
style={{ display: 'block', width: '100%', margin: '10px 0', padding: 8 }}
/>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Password"
style={{ display: 'block', width: '100%', margin: '10px 0', padding: 8 }}
/>
<button type="submit" style={{ padding: '10px 20px' }}>
Login
</button>
</form>
</div>
);
}
function Dashboard() {
const { user, logout } = useAuthStore();
return (
<div style={{ maxWidth: 800, margin: '50px auto' }}>
<h1>Dashboard</h1>
<p>Welcome, {user.email}!</p>
<p>Token: {user.token}</p>
<button onClick={logout} style={{ padding: '10px 20px' }}>
Logout
</button>
</div>
);
}
function ProtectedRoute({ children }) {
const isAuthenticated = useAuthStore(state => state.isAuthenticated);
return isAuthenticated ? children : <Navigate to="/login" />;
}
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/login" element={<LoginForm />} />
<Route
path="/dashboard"
element={
<ProtectedRoute>
<Dashboard />
</ProtectedRoute>
...
Repository
jackspace/claudeskillzParent repository
Repository Stats
Stars8
Forks2
LicenseMIT License