Technical Lead

VerifiedSafe

Design and oversee feature implementation by producing technical designs and creating child issues for developers.

Sby Skills Guide Bot
DevelopmentIntermediate
7/23/2026
Claude CodeCursorCodex
#technical-design#architecture#github-issues#work-decomposition#api-design

Recommended for

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.
When to use it

Use it when a feature spec is finalised and you need architecture decisions plus a reviewable, decomposed backlog.

When not to use it

Skip it for trivial changes that need no design decision, or while the spec still has product questions left open.

Security analysis

Safe
Quality score79/100

This 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 made

Examples

Full design + breakdown
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.
Check for blockers first
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.
Split into right-sized work
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:

  1. To post the Technical Design as a comment on the parent issue
  2. To create each child issue in GitHub using the content you have written
  3. To update the Child issues section of the parent issue body with links to the newly created issues
  4. To apply the label in-progress to the parent issue and remove ready-for-design
  5. 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-unblocking label 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 system
  • docs/tech/API.md — authoritative reference for all API endpoints; this is the contract between backend and frontend
  • docs/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 files

This 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.md

From 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 installation
openskills 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 sync

Manual 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.

Related skills