Skip to main content

DEV Skills (19)

Part of Role Skills Catalog | Phase 4 + Phase 6

Chains: Discovery → Architecture → BE → API → Scaffold (BE/FE) → Integration → Test → Observability → Ship

Userflow Schema

flowchart TD
jaan-to-dev-feasibility-check["dev-feasibility-check<br>Feasibility Check<br>Risks + deps + complexity"] --> jaan-to-dev-arch-proposal["dev-arch-proposal<br>Arch Proposal<br>Architecture + tradeoffs + data flow"]
jaan-to-dev-arch-proposal["dev-arch-proposal<br>Arch Proposal<br>Architecture + tradeoffs + data flow"] --> jaan-to-dev-tech-plan["dev-tech-plan<br>Tech Plan<br>Approach + rollout/rollback"]
jaan-to-dev-tech-plan["dev-tech-plan<br>Tech Plan<br>Approach + rollout/rollback"] --> dev-be-task-breakdown["dev-be-task-breakdown<br>BE Task Breakdown<br>BE tasks + data model notes"]
jaan-to-dev-tech-plan["dev-tech-plan<br>Tech Plan<br>Approach + rollout/rollback"] --> dev-fe-task-breakdown["dev-fe-task-breakdown<br>FE Task Breakdown<br>FE tasks + estimates + risks"]
dev-be-task-breakdown["dev-be-task-breakdown<br>BE Task Breakdown<br>BE tasks + data model notes"] --> jaan-to-dev-be-data-model["dev-be-data-model<br>BE Data Model<br>Tables + constraints + indexes"]
jaan-to-dev-be-data-model["dev-be-data-model<br>BE Data Model<br>Tables + constraints + indexes"] --> jaan-to-dev-api-contract["dev-api-contract<br>API Contract<br>OpenAPI + payloads + errors"]
jaan-to-dev-api-contract["dev-api-contract<br>API Contract<br>OpenAPI + payloads + errors"] --> jaan-to-dev-api-versioning["dev-api-versioning<br>API Versioning<br>Compatibility + deprecation plan"]
jaan-to-dev-api-versioning["dev-api-versioning<br>API Versioning<br>Compatibility + deprecation plan"] --> jaan-to-dev-docs-generate["dev-docs-generate<br>Docs Generate<br>README + API docs + runbooks"]
jaan-to-dev-api-contract["dev-api-contract<br>API Contract<br>OpenAPI + payloads + errors"] --> jaan-to-dev-docs-generate["dev-docs-generate<br>Docs Generate<br>README + API docs + runbooks"]
jaan-to-dev-api-contract["dev-api-contract<br>API Contract<br>OpenAPI + payloads + errors"] --> jaan-to-dev-be-scaffold["dev-be-scaffold<br>BE Scaffold<br>Fastify routes + Prisma + services"]
jaan-to-dev-be-scaffold["dev-be-scaffold<br>BE Scaffold<br>Fastify routes + Prisma + services"] --> jaan-to-dev-integration-plan["dev-integration-plan<br>Integration Plan<br>API sequence + retry + failures"]
jaan-to-dev-be-scaffold["dev-be-scaffold<br>BE Scaffold<br>Fastify routes + Prisma + services"] --> jaan-to-dev-test-plan["dev-test-plan<br>Test Plan<br>Unit/integration/e2e scope"]
dev-fe-task-breakdown["dev-fe-task-breakdown<br>FE Task Breakdown<br>FE tasks + estimates + risks"] --> jaan-to-dev-fe-scaffold["dev-fe-scaffold<br>FE Scaffold<br>React/Next.js + TailwindCSS + API client"]
jaan-to-dev-api-contract["dev-api-contract<br>API Contract<br>OpenAPI + payloads + errors"] --> jaan-to-dev-fe-scaffold["dev-fe-scaffold<br>FE Scaffold<br>React/Next.js + TailwindCSS + API client"]
ux-microcopy-write["ux-microcopy-write<br>UX: microcopy-write"] -.-> jaan-to-dev-fe-scaffold["dev-fe-scaffold<br>FE Scaffold<br>React/Next.js + TailwindCSS + API client"]
jaan-to-dev-fe-scaffold["dev-fe-scaffold<br>FE Scaffold<br>React/Next.js + TailwindCSS + API client"] --> jaan-to-dev-integration-plan["dev-integration-plan<br>Integration Plan<br>API sequence + retry + failures"]
jaan-to-dev-fe-scaffold["dev-fe-scaffold<br>FE Scaffold<br>React/Next.js + TailwindCSS + API client"] --> jaan-to-dev-test-plan["dev-test-plan<br>Test Plan<br>Unit/integration/e2e scope"]
dev-fe-task-breakdown["dev-fe-task-breakdown<br>FE Task Breakdown<br>FE tasks + estimates + risks"] --> jaan-to-dev-fe-state-machine["dev-fe-state-machine<br>FE State Machine<br>UI states + transitions"]
jaan-to-dev-fe-state-machine["dev-fe-state-machine<br>FE State Machine<br>UI states + transitions"] --> jaan-to-dev-test-plan["dev-test-plan<br>Test Plan<br>Unit/integration/e2e scope"]
jaan-to-dev-integration-plan["dev-integration-plan<br>Integration Plan<br>API sequence + retry + failures"] --> jaan-to-dev-integration-mock-stubs["dev-integration-mock-stubs<br>Integration Mock Stubs<br>Stub interfaces + fake responses"]
jaan-to-dev-integration-mock-stubs["dev-integration-mock-stubs<br>Integration Mock Stubs<br>Stub interfaces + fake responses"] --> jaan-to-dev-test-plan["dev-test-plan<br>Test Plan<br>Unit/integration/e2e scope"]
jaan-to-dev-test-plan["dev-test-plan<br>Test Plan<br>Unit/integration/e2e scope"] -.-> qa-test-cases["qa-test-cases<br>QA: test-cases"]
jaan-to-dev-observability-events["dev-observability-events<br>Observability Events<br>Log fields + metrics + traces"] --> jaan-to-dev-observability-alerts["dev-observability-alerts<br>Observability Alerts<br>Thresholds + severity + noise"]
jaan-to-dev-observability-alerts["dev-observability-alerts<br>Observability Alerts<br>Thresholds + severity + noise"] -.-> jaan-to-sre-slo-setup["sre-slo-setup<br>SRE: slo-setup"]
jaan-to-dev-ship-check["dev-ship-check<br>Ship Check<br>Flags + migrations + Go/No-Go"] -.-> jaan-to-release-prod-runbook["release-prod-runbook<br>RELEASE: prod-runbook"]
jaan-to-dev-ship-check["dev-ship-check<br>Ship Check<br>Flags + migrations + Go/No-Go"] -.-> jaan-to-qa-release-signoff["qa-release-signoff<br>QA: release-signoff"]

style qa-test-cases fill:#f0f0f0,stroke:#999
style ux-microcopy-write fill:#f0f0f0,stroke:#999
style jaan-to-sre-slo-setup fill:#f0f0f0,stroke:#999
style jaan-to-release-prod-runbook fill:#f0f0f0,stroke:#999
style jaan-to-qa-release-signoff fill:#f0f0f0,stroke:#999

Legend: Solid = internal | Dashed = cross-role exit | Gray nodes = other roles

/jaan-to:dev-feasibility-check

  • Logical: dev-feasibility-check
  • Description: Risks + dependencies, unknowns + spike recommendations, rough complexity estimate
  • Quick Win: Yes
  • Key Points:
    • Identify dependencies and "unknown unknowns"
    • Call out risky assumptions early
    • Produce options, not just one path
  • → Next: dev-arch-proposal
  • MCP Required: None
  • Input: [prd]
  • Output: $JAAN_OUTPUTS_DIR/dev/discovery/{slug}/feasibility-check.md

/jaan-to:dev-arch-proposal

  • Logical: dev-arch-proposal
  • Description: Architecture outline, key choices + tradeoffs, data flow + failure modes
  • Quick Win: Yes
  • Key Points:
    • Identify dependencies and "unknown unknowns"
    • Call out risky assumptions early
    • Produce options, not just one path
  • → Next: dev-tech-plan
  • MCP Required: None
  • Input: [feature]
  • Output: $JAAN_OUTPUTS_DIR/dev/discovery/{slug}/arch-proposal.md

/jaan-to:dev-tech-plan

  • Logical: dev-tech-plan
  • Description: Tech approach with architecture, tradeoffs, risks, rollout/rollback, unknowns
  • Quick Win: Yes - extends existing pattern
  • Key Points:
    • Identify dependencies and "unknown unknowns"
    • Call out risky assumptions early
    • Produce options, not just one path
  • → Next: dev-fe-task-breakdown, dev-be-task-breakdown
  • MCP Required: GitLab (modules/flags), Figma (optional constraints)
  • Input: [initiative]
  • Output: $JAAN_OUTPUTS_DIR/dev/plan/{slug}/tech-plan.md

✅ /jaan-to:dev-be-task-breakdown

  • Logical: dev-be-task-breakdown
  • Description: BE tasks list, data model notes, reliability considerations
  • Reference: [Backend Task Breakdown Skill: Complete Research Guide/jaan-to/outputs/research/52-dev-be-task-breakdown.md)
  • Quick Win: Yes
  • Key Points:
    • Data model constraints first (unique, indexes, retention)
    • Idempotency + retries for safety
    • Clear error taxonomy
  • → Next: dev-be-data-model
  • MCP Required: None
  • Input: [prd]
  • Output: $JAAN_OUTPUTS_DIR/dev/backend/{slug}/task-breakdown.md

✅ /jaan-to:dev-be-data-model

  • Logical: dev-be-data-model
  • Description: Tables/collections + fields, constraints + indexes, retention + migration notes
  • Quick Win: Yes
  • Key Points:
    • Data model constraints first (unique, indexes, retention)
    • Idempotency + retries for safety
    • Clear error taxonomy
  • → Next: dev-api-contract
  • MCP Required: None
  • Input: [entities]
  • Output: $JAAN_OUTPUTS_DIR/dev/backend/{slug}/data-model.md
  • Reference: 60-dev-be-data-model.md

✅ /jaan-to:dev-api-contract

  • Logical: dev-api-contract
  • Description: OpenAPI contract with payloads, errors, versioning, example requests/responses
  • Quick Win: No - needs OpenAPI MCP
  • Key Points:
    • Define schemas with examples
    • Versioning + deprecation strategy
    • Ownership: who maintains, who consumes
  • → Next: dev-api-versioning, dev-docs-generate
  • MCP Required: OpenAPI/Swagger, Postman (optional)
  • Input: [entities]
  • Output: $JAAN_OUTPUTS_DIR/dev/contract/{slug}/api.yaml
  • Reference: 59-dev-api-contract.md

/jaan-to:dev-be-scaffold

  • Logical: dev-be-scaffold
  • Description: Generate production-ready backend code from specifications: Fastify routes, Prisma schema, service layer, middleware, validation
  • Quick Win: Yes
  • Key Points:
    • Map OpenAPI operations to Fastify v4+ route handlers (TypeScript)
    • Generate Prisma models from data model with relations and indexes
    • Include validation schemas (Zod) derived from API contract
    • Generate error handling middleware matching RFC 9457
    • Output includes setup README
  • → Next: dev-integration-plan, dev-test-plan
  • MCP Required: None
  • Input: [api-contract, task-breakdown, data-model]
  • Output: $JAAN_OUTPUTS_DIR/dev/backend/{slug}/scaffold/

/jaan-to:dev-api-versioning

  • Logical: dev-api-versioning
  • Description: Compatibility strategy, migration notes + timeline, deprecation communication plan
  • Quick Win: Yes
  • Key Points:
    • Define schemas with examples
    • Versioning + deprecation strategy
    • Ownership: who maintains, who consumes
  • → Next: dev-docs-generate
  • MCP Required: None
  • Input: [api]
  • Output: $JAAN_OUTPUTS_DIR/dev/contract/{slug}/versioning-plan.md

✅ /jaan-to:dev-fe-task-breakdown

  • Logical: dev-fe-task-breakdown
  • Description: FE tasks list (components, screens, states), estimate bands, risks + dependencies
  • Reference: Frontend Task Breakdown Skill: Complete Framework Research
  • Quick Win: Yes
  • Key Points:
    • Explicit state machine prevents "UI glitches"
    • Define caching/loading strategies
    • Performance budgets where needed
  • → Next: dev-fe-state-machine
  • MCP Required: None
  • Input: [ux-handoff]
  • Output: $JAAN_OUTPUTS_DIR/dev/frontend/{slug}/task-breakdown.md

/jaan-to:dev-fe-state-machine

  • Logical: dev-fe-state-machine
  • Description: UI states + transitions, events that trigger transitions, edge-case behavior
  • Quick Win: Yes
  • Key Points:
    • Explicit state machine prevents "UI glitches"
    • Define caching/loading strategies
    • Performance budgets where needed
  • → Next: dev-test-plan
  • MCP Required: None
  • Input: [screen]
  • Output: $JAAN_OUTPUTS_DIR/dev/frontend/{slug}/state-machine.md

/jaan-to:dev-fe-scaffold

  • Logical: dev-fe-scaffold
  • Description: Convert HTML design previews to React v19 / Next.js v15 components with TailwindCSS v4, TypeScript, and state management
  • Quick Win: Yes
  • Key Points:
    • Extract semantic HTML structure and preserve accessibility
    • Convert to TailwindCSS v4 utility classes
    • Generate TypeScript interfaces from API contract schemas
    • Create composable component hierarchy with loading/error/empty states
    • Generate typed API client hooks
  • → Next: dev-integration-plan, dev-test-plan
  • MCP Required: None
  • Input: [fe-design, fe-task-breakdown, api-contract]
  • Output: $JAAN_OUTPUTS_DIR/dev/frontend/{slug}/scaffold/

/jaan-to:dev-integration-plan

  • Logical: dev-integration-plan
  • Description: API call sequence, retry policy + failure modes, observability events
  • Quick Win: Yes
  • Key Points:
    • Define retries + backoff + idempotency
    • Plan for partial failures and timeouts
    • Provide mocks/stubs for local dev
  • → Next: dev-integration-mock-stubs
  • MCP Required: None
  • Input: [provider] [use-case]
  • Output: $JAAN_OUTPUTS_DIR/dev/integration/{slug}/integration-plan.md

/jaan-to:dev-integration-mock-stubs

  • Logical: dev-integration-mock-stubs
  • Description: Stub interfaces, fake responses (success/fail), test harness guidance
  • Quick Win: Yes
  • Key Points:
    • Define retries + backoff + idempotency
    • Plan for partial failures and timeouts
    • Provide mocks/stubs for local dev
  • → Next: dev-test-plan
  • MCP Required: None
  • Input: [provider]
  • Output: $JAAN_OUTPUTS_DIR/dev/integration/{slug}/mock-stubs.md

/jaan-to:dev-test-plan

  • Logical: dev-test-plan
  • Description: Dev-owned test plan: unit/integration/e2e scope, fixtures, mocks, highest-risk scenarios
  • Quick Win: Yes - simple test plan
  • Key Points:
    • Identify dependencies and "unknown unknowns"
    • Call out risky assumptions early
    • Produce options, not just one path
  • → Next: qa-test-cases
  • MCP Required: GitLab (diff impact)
  • Input: [initiative]
  • Output: $JAAN_OUTPUTS_DIR/dev/test/{slug}/test-plan.md

/jaan-to:dev-observability-events

  • Logical: dev-observability-events
  • Description: Log fields + metric names, trace spans suggestions, dashboard checklist
  • Quick Win: Yes
  • Key Points:
    • Define structured logs and consistent fields
    • Metrics for latency/error/throughput
    • Alerts should map to user impact
  • → Next: dev-observability-alerts
  • MCP Required: None
  • Input: [feature]
  • Output: $JAAN_OUTPUTS_DIR/dev/observability/{slug}/events.md

/jaan-to:dev-observability-alerts

  • Logical: dev-observability-alerts
  • Description: Suggested alerts + thresholds, severity levels, noise reduction ideas
  • Quick Win: Yes
  • Key Points:
    • Define structured logs and consistent fields
    • Metrics for latency/error/throughput
    • Alerts should map to user impact
  • → Next: sre-slo-setup
  • MCP Required: None
  • Input: [service]
  • Output: $JAAN_OUTPUTS_DIR/dev/observability/{slug}/alert-rules.md

/jaan-to:dev-docs-generate

  • Logical: dev-docs-generate
  • Description: Technical documentation: README files, API docs, runbooks, architecture decisions
  • Reference: Building a Production-Ready Documentation Generation Framework
  • Quick Win: Yes - draft generation, format standardization
  • AI Score: 5 | Rank: #14
  • Key Points:
    • Define schemas with examples
    • Versioning + deprecation strategy
    • Ownership: who maintains, who consumes
  • → Next: —
  • MCP Required: GitLab (code context, optional)
  • Input: [component] [doc_type]
  • Output: $JAAN_OUTPUTS_DIR/dev/docs/{slug}/{doc_type}.md
  • Failure Modes: Documentation stale; inconsistent formatting; missing context
  • Quality Gates: Up-to-date with code; follows style guide; onboarding-friendly

✅ /jaan-to:dev-pr-review

  • Logical: dev-pr-review
  • Description: PR review pack: summary, risky files, security/perf hints, missing tests, CI failures
  • Reference: [Building a Production-Ready PR/MR Code Review Skill/jaan-to/outputs/research/53-dev-pr-review.md)
  • Quick Win: No - needs GitLab MCP
  • Key Points:
    • Define schemas with examples
    • Versioning + deprecation strategy
    • Ownership: who maintains, who consumes
  • → Next: —
  • MCP Required: GitLab (MR + pipeline), Sentry (optional regressions)
  • Input: [pr-link-or-branch]
  • Output: $JAAN_OUTPUTS_DIR/dev/review/{slug}/pr-review.md

/jaan-to:dev-ship-check

  • Logical: dev-ship-check
  • Description: Pre-ship checklist: flags, migrations, monitoring, rollback, Go/No-Go recommendation
  • Quick Win: No - needs multiple MCPs
  • Key Points:
    • Feature flags with targeting and kill switch
    • Gradual rollout with monitoring gates
    • Data migrations planned for rollback
  • → Next: release-prod-runbook, qa-release-signoff
  • MCP Required: GitLab (pipelines), Sentry (health)
  • Input: [initiative]
  • Output: $JAAN_OUTPUTS_DIR/dev/release/{slug}/ship-check.md