# Core Dev

> Use when any coding, development, analysis, debugging, or code-related task is detected. Triggers on: implementing features, fixing bugs, refactoring code, reviewing diffs, investigating errors, evaluating approaches, or making architecture decisions.

- Skill: `concertonotes/core-dev` (Agent Skill)
- Install (CLI): `npx skillmds@latest add concertonotes/core-dev`
- Raw SKILL.md: https://api.skillmd.com/api/skills/concertonotes/core-dev/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: ConcertoNotes (https://skillmd.com/u/concertonotes)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/concertonotes/core-dev

---


# Development Workflow Router

Iron Rules: `../../shared/iron-rules.md`.

**Active plan?** `Grep("Status: In Progress", path="docs/plans/", glob="*.md")`. Match → read the plan, resume at its listed phase (skip language detection — the plan specifies it), but still invoke the language skill for implementation rules. No match → continue.

**Brainstorming gate.** Default: invoke `development-skills:brainstorming` with the user's full request as args. Skip ONLY if all three hold: fully reversible with low effort; ONE obvious forced approach (not *"I think this is right"*); WHY doesn't affect HOW. User bypass (*"skip brainstorming"*, *"just code it"*, *"I already know the approach"*) → respect it; *"Fast"* is NOT a bypass.

Don't rationalize skipping it: *"user said exactly what to do"* — WHAT ≠ HOW, multiple approaches → brainstorm; *"I already have a good approach"* — first ≠ best; *"just analysis/investigation"* — analysis IS development.

Specialized routes: bug fix with error / stack trace → `development-skills:debugging`; test creation / strategy / coverage → `development-skills:create-test`.

**Language.** After brainstorming returns (or a skip-decision), detect and invoke the matching skill before writing code:

- `next.config.*`, `app/{layout,page}.tsx`, `@raycast/api`, `vite.config.*` + react, `*.tsx` + react dep → `frontend-dev`
- `*.py`, `requirements*.txt`, `pyproject.toml` → `python-dev`
- `*.ts`, `tsconfig.json` (no frontend signals) → `typescript-dev`
- `*.java`, `pom.xml`, `build.gradle`, `*.kt` → `java-dev`
- `*.swift`, `Package.swift` → `swift-dev`

Frontend signals trump pure TypeScript.

