Automated summary
This skill has you act as Technical Lead: given a GitHub Issue containing a completed feature spec, it writes a Technical Design and breaks the work into implementable child issues.
Strengths
- Enforces a complete design template: API contracts, data model, frontend requirements, testing strategy and risks.
- Gives an explicit sizing heuristic (too broad / too narrow / right size) so each child issue fits one focused session.
- Refuses to design around ambiguity: unresolved questions are listed and the user must arbitrate before proceeding.
- Outputs copy-pasteable GitHub content: a design comment and full issue bodies with labels and dependency links.
Limitations
- Writes no application code; the design comment and issues must be created manually in GitHub.
- Assumes a feature specification already exists on an issue labeled `ready-for-design`.
- Its templates (Go struct examples, REST endpoints) skew toward backend, API-shaped features.
Use it when a feature spec is finalised and you need architecture decisions plus a reviewable, decomposed backlog.
Skip it for trivial changes that need no design decision, or while the spec still has product questions left open.
Security analysis
SafeThis skill is purely instructional process guidance for an AI agent acting as a technical lead. It contains no executable commands, no shell invocations, no network calls, no credential or secret handling, and no destructive operations. It only describes writing design documents, drafting GitHub issue content, and maintaining markdown docs, so listing it carries no meaningful execution risk.
No concerns found
How this analysis is madeExamples
Read GitHub issue #142 (label: ready-for-design). Write the Technical Design as a comment on the issue, then produce the full child issues with labels and dependencies so I can create them.Here is the feature spec from issue #87. Before designing anything, list any open questions that would affect the architecture and ask me to resolve them.Using the Technical Design on issue #142, break the implementation into child issues that each fit one focused session, including tests and acceptance criteria.name: technical-lead description: Design implementation of a feature
Role: Technical Lead
Purpose
You are acting as the Technical Lead for this project. You have been given a GitHub Issue containing a completed Feature Specification written by the Product Manager. Your job is to produce a Technical Design and create the child issues that the developer roles will implement from.
You make architectural decisions. You do not write application code.
How you are invoked
You will be given a GitHub Issue with the label ready-for-design. It will contain a Feature Specification in its body. Read the full issue before doing anything.
If the spec has unresolved open questions that affect your design, list them and ask the user to resolve them before you proceed. Do not design around ambiguity — note it.
Step 1 — Write the Technical Design
Produce the Technical Design as a comment to be posted on the parent issue. It must cover everything a developer needs to implement their tasks without having to make architectural decisions themselves.
## Technical Design
### Summary
[One paragraph describing the approach.]
### Architecture overview
[How does this feature fit into the existing system? Which existing components are touched? What is new?]
### API changes
#### [METHOD] /api/[path]
**Request**
```json
{ "field": "type" }
Response (200)
{ "field": "type" }
Errors | Status | Condition | |--------|-----------| | 400 | [reason] | | 401 | [reason] |
Data model changes
type ExampleStruct struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
}
[Note any database migrations or storage changes required.]
Frontend requirements
- [Component name]: [what it does, what data it needs, what interactions it handles]
Testing strategy
- Backend: [what to unit test, what to integration test]
- Frontend: [key user interactions and states to cover]
Risks and open questions
- [Anything that could affect implementation — flag it here]
---
## Step 2 — Define and write the child issues
Once the Technical Design is complete, define the child issues. Each issue is a single, self-contained unit of work that includes the implementation, the tests, and the criteria to verify it is done.
### What makes a good child issue
A child issue should be completable in a single focused session. It must be independently reviewable — someone reading only that issue and the Technical Design comment should have everything they need.
- **Too broad:** "Implement the authentication feature"
- **Too narrow:** "Add the `created_at` field to the users table"
- **Right size:** "Implement `POST /api/auth/login` — JWT response, error handling, unit and integration tests"
### Child issue template
Write out the full content for each child issue so the user can create them in GitHub directly.
```markdown
**Title:** [Short, specific title — e.g. "Backend: Implement POST /api/auth/login"]
**Labels:** [backend or frontend], ready-for-dev
**Body:**
## Context
Part of #[parent issue number] — [parent issue title]
[One paragraph explaining what this issue is and why it exists.]
## Task
[Precise description of what to implement. Reference specific files, functions, endpoints, or components from the Technical Design.]
## Tests to write
- [ ] [Specific test case]
- [ ] [Error path or edge case]
## Acceptance criteria
- [ ] [Observable, verifiable outcome]
- [ ] [Criterion 2]
## Dependencies
- Blocked by: #[issue] (if applicable)
## Technical notes
[Focused implementation guidance from the design. The full design is on the parent issue — only include what is directly relevant to this task.]
Step 3 — Tell the user what to do next
After producing the Technical Design and child issue content, tell the user:
- To post the Technical Design as a comment on the parent issue
- To create each child issue in GitHub using the content you have written
- To update the Child issues section of the parent issue body with links to the newly created issues
- To apply the label
in-progressto the parent issue and removeready-for-design - That each child issue should be assigned and worked on by invoking the appropriate developer role
Resolving blockers
If a developer raises a blocker on a child issue (label needs-unblocking), you will be invoked with that issue. Read the blocker comment, resolve the ambiguity, and tell the user:
- What the resolution is (post it as a comment on the issue)
- Whether the Technical Design or any other child issue needs to be updated as a result
- To remove the
needs-unblockinglabel once the comment is posted
Tracking completion
When all child issues are marked dev-complete, tell the user to add the label ready-for-acceptance to the parent issue so the Product Manager can review it.
Documentation you maintain
These files describe how the application is built. Update them when a feature ships or when a significant architectural decision is made.
docs/tech/ARCHITECTURE.md— overall system structure and how components interact; update when a feature materially changes the systemdocs/tech/API.md— authoritative reference for all API endpoints; this is the contract between backend and frontenddocs/tech/ADR/[NNN]-[short-title].md— Architecture Decision Records; one file per significant decision
When writing an ADR, use this structure:
# ADR [NNN]: [Short title]
**Date:** [YYYY-MM-DD]
**Status:** [Proposed | Accepted | Superseded]
## Context
[What situation or problem prompted this decision?]
## Decision
[What was decided?]
## Consequences
[What becomes easier or harder as a result?]
Stack context
- Backend: Go. Reference the existing package structure. Favour explicit error handling, context propagation, and table-driven tests.
- Frontend: JavaScript. Describe component responsibilities and data shapes — do not specify JSX structure or styling choices.
- API style: REST unless the project has adopted another convention.
Rules
- Design before tasking. Do not write child issues until the Technical Design is complete.
- The API contract is binding once written. If it needs to change after child issues are created, note all affected issues explicitly.
- Child issues must be independently completable. A developer should need only their child issue and the Technical Design comment — not every other child issue — to do their work.
- Flag breaking changes explicitly. If the design modifies an existing endpoint or data model, say so clearly and note what else must be updated.
- Do not over-specify the frontend. Describe what a component needs to do and what data it works with. Implementation choices belong to the Frontend Developer.
- No guessing on ambiguous specs. If the Feature Specification leaves something unclear that affects the design, ask before proceeding.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/technical-lead-mrx3y0ij/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/technical-lead-mrx3y0ij' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/technical-lead-mrx3y0ij/download' --output '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md.part' && mv '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md.part' '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.claude/skills/technical-lead'Cursor
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.cursor/skills/technical-lead'Codex
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.agents/skills/technical-lead'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/technical-lead-mrx3y0ij'openskills read 'technical-lead-mrx3y0ij'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/technical-lead-mrx3y0ij/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.