CtrlK
BlogDocsLog inGet started
Tessl Logo

cappasoft/web-dev-estimation

Estimates implementation time for web development tasks (frontend and/or backend) by analyzing the existing codebase and calibrating for an AI coding agent as executor — not a human developer. Use when the user asks about effort, sizing, or feasibility: 'how long', 'how much work', 'estimate this', 'what is the effort', 'breakdown this task', 'can we do this in X days', 'is this a big task', 'how complex is', 'what's involved in', 'fits in the sprint', 'rough sizing', 't-shirt size', 'story points'. Also use when the user describes a feature and implicitly wants to know scope — e.g. 'we need to add X to the app', 'thinking about building Y', 'is this feasible by Friday'. Supports batch estimation from any structured source (BMAD output, spec folders, PRDs, backlogs, task lists) — use when the user mentions 'estimate the stories', 'estimate the epic', 'scan the backlog', 'estimate all tasks', 'estimate the specs', or points to a folder of task/story/spec files.

95

1.40x
Quality

94%

Does it follow best practices?

Impact

98%

1.40x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

patterns.mdreferences/

Common Patterns & Reference Times

Agent-calibrated reference times for a TypeScript full-stack app (Next.js + Node/Supabase). Adjust using the stack-specific notes in calibration.md for other stacks.


T-Shirt Size Reference

SizeAgent timeHuman equivalentUse when
XS< 30 min< 2hSingle file change, clear pattern exists
S30 min – 2h2–8h (1 day)2–5 files, clear spec, high prior art
M2–6h1–3 daysCross-cutting, some integration, tests required
L6–16h3–7 daysMulti-service, new patterns, significant testing
XL16–40h1–3 weeksMajor feature, architecture decision, migrations
XXL> 40h> 3 weeksDecompose further before estimating

Frontend Patterns

PatternAgent timeNotes
New React component (existing design system)10–25 min
New React component (no design system)25–60 minMust invent props/styles
New page / route (simple, no data)15–30 min
New page with data fetching (SWR/React Query)30–60 min
New page with server-side data (Next.js RSC)45–90 minRSC boundary confusion risk
Form with validation (react-hook-form / zod)30–60 min
Complex form (multi-step, conditional fields)1–3h
Data table with pagination + filters45–90 minIf pattern exists in codebase
Data table (greenfield)1.5–3h
Modal / drawer / dialog15–30 min
Infinite scroll / virtual list1–2h
Charts / data visualization (recharts/d3)45–120 minDepends on complexity
Drag-and-drop interface1.5–3hHigh hallucination risk on libraries
Responsive layout (existing patterns)20–45 min
Animation / transition30–90 minCSS > Framer Motion for agent reliability
i18n: add translation keys15–30 min
i18n: new locale setup45–90 min
Dark mode toggle20–45 min
Image upload UI30–60 min
File upload with progress45–90 min

Backend Patterns

PatternAgent timeNotes
New API endpoint (REST, with validation + types)15–30 min
New API endpoint (with complex business logic)30–90 min
CRUD endpoints (full set: list, get, create, update, delete)45–90 min
Auth: new role or permission30–90 minDepends on auth system complexity
Auth: new OAuth provider1–3hProvider docs quality varies widely
Webhook handler (receive + validate)30–60 min
Webhook handler (receive + validate + retry logic)1–2h
Background job / queue task45–120 min
Scheduled task (cron)20–45 min
Email sending (transactional)30–60 minIf provider SDK is in codebase
Email template (new)20–45 min
File upload + storage (S3/R2/Supabase Storage)45–90 min
Search (full-text, existing infra)30–60 min
Search (new setup: Typesense/Algolia/pg full-text)1.5–4h
Rate limiting20–45 min
Caching layer (Redis)45–90 min
PDF generation45–120 minLibrary matters: puppeteer > pdfkit for agent
CSV/Excel export30–60 min
Integrate new 3rd-party SDK (good docs)1–3h
Integrate new 3rd-party SDK (poor/missing docs)2–6hHigh variance
GraphQL: new query/mutation20–45 min
GraphQL: new type + resolver30–60 min
WebSocket / real-time event1–3h

Database Patterns

PatternAgent timeNotes
Add column to existing table + migrate15–30 min
Add column + update ORM types20–40 min
New table (simple, 5–10 cols)20–40 min
New table with relations + indexes30–60 min
Multi-tenant: isolate new resource45–120 minRLS / scoping complexity
Add RLS policy (Supabase)20–45 min
Complex query optimization1–4hHigh variance, depends on data model
Data migration (transform existing data)45–180 minRisk of data loss; always needs review
Seed / fixture data20–45 min

Testing Patterns

PatternAgent timeNotes
Unit tests for existing module20–45 min
Unit tests for new module (alongside)10–25 minAgent writes as it builds
Integration test (API endpoint)20–45 min
E2E test (Playwright): simple flow30–60 min
E2E test (Playwright): complex flow (auth + data)45–120 min
Mock external service in tests20–45 min
Snapshot test update5–15 min
Test coverage audit + fill gaps1–3hDepends on gap size

Infrastructure / DevOps Patterns

PatternAgent timeNotes
Environment variable: add + document10–20 min
Docker: add service to compose20–40 min
CI pipeline: add step20–45 min
Feature flag: add + gate20–45 minIf flag system exists
Feature flag: new system setup1–3h
Logging: add structured log10–20 min
Monitoring: add metric / alert30–60 minDepends on provider
Deploy: new environment setup1–3hHigh variance

Known Agent Failure Patterns

Document these per project as you encounter them. Add to this file when Claude Code makes a systematic mistake on your stack.

Failure patternSymptomFix
RSC/Client boundary confusion"use client" missing or misplacedExplicit instruction in prompt
Tailwind class purgeClasses not in safelistCheck tailwind.config.ts
Prisma type driftGenerated types staleRun prisma generate first
Zod inference mismatchz.infer used on wrong schemaAdd explicit type annotation
Missing await in async chainSilent undefinedAdd // always await comment
Import path assumptionWrong relative path depthRead file structure before generating

Add your stack-specific failures here as you observe them.

package.json

README.md

SKILL.md

tile.json