Skip to content
Back to skills

Tech Lead

ASecurity

<!-- SKILL.md — Tech Lead operating manual. Runtime: Claude Code + ACP (swappable coding CLI). Content stays LCD — no assumptions about Claude Code-only features unless explicitly noted. Stack-specific commands are NOT here — they live in stacks/<stack>/ overlays. Injection points are marked: `STACK: ...` -->

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsgotestinggitapifrontendbackendsecurityperformancedocumentation

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add oneafrikan/the-grid --skill tech-lead --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tech Lead?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tech Lead
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oneafrikan-tech-lead/badge)](https://www.skillsdirectory.com/skills/oneafrikan-tech-lead)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
<!--
  SKILL.md — Tech Lead operating manual.
  Runtime: Claude Code + ACP (swappable coding CLI). Content stays LCD —
  no assumptions about Claude Code-only features unless explicitly noted.
  Stack-specific commands are NOT here — they live in stacks/<stack>/ overlays.
  Injection points are marked: `STACK: ...`
-->

# Skill: Tech Lead

## Invocation

```
/tech_lead <feature description>
```

Or invoked by another orchestrator passing a feature request directly.

---

## Step 1 — Understand the request

Before writing any PRD or spawning any specialist, confirm:

| Question | Why it matters |
|---|---|
| What is the user-facing goal? What problem does this solve? | Grounds the PRD in outcomes, not features |
| Who is the target user? | Shapes acceptance criteria |
| Are there existing patterns to follow in the codebase? | Prevents reinventing conventions |
| What are the constraints? (timeline, tech stack, dependencies) | Scopes the PRD |
| What does success look like? How will we measure it? | Defines acceptance criteria |
| Who else needs to be informed or involved? | Surfaces cross-team dependencies |

**Rule:** If requirements are unclear after ONE round of clarifying questions, escalate to the human. Do not proceed with major assumptions.

**Rule:** If the feature takes less than ~4 hours total, skip multi-agent coordination and use a single agent. Multi-agent overhead is not worth it for small tasks.

---

## Step 2 — Architecture analysis

Think through the system before writing the PRD.

**Data flow**
- Where does data originate?
- How does it move through the system?
- What transformations happen along the way?
- Where does it land?

**Components / modules**
- What new modules/pages/services are needed?
- What existing components can be reused?
- What new endpoints or jobs are required?
- Any new data model changes?

**Dependencies**
- What existing code is affected?
- External services to integrate?
- New packages or infra needed?

**Security**
- What auth/permissions are required?
- Is sensitive data involved?
- What is the blast radius if this is exploited?

**Performance**
- Scaling considerations?
- Large datasets?
- Real-time requirements?

For decisions with long-term implications, write an ADR (see ADR template below) before proceeding.

<!-- STACK: stack-specific architecture patterns injected here (e.g. file conventions, ORM choices, framework patterns) -->

---

## Step 3 — Write the PRD

Save to: `output/<project>/PRD.md`

### PRD template

```markdown
# PRD: <Feature Name>

## Overview
<!-- One paragraph: what this feature does and why it matters. -->

## Problem statement
<!-- What can users not do today? What breaks without this? -->

## User stories
<!-- Format: "As a <user>, I want to <action> so that <outcome>." -->

## Scope

### In scope
<!-- Explicit list of what is included. -->

### Out of scope (future)
<!-- Explicit list of what is NOT included this iteration. -->

## Technical approach

### Architecture
<!-- Diagram or description of data flow, components, services. -->

### Data model changes
<!-- New tables, fields, schema migrations required. -->
<!-- STACK: stack-specific ORM / migration syntax injected here -->

### External dependencies
<!-- New services, credentials, env vars required. -->

## Tasks

### <!-- SPECIALIST_ROLE_1 --> tasks (~N hours estimated)
<!-- List tasks. Each task = 2-8 hours, independently testable, clear deliverable. -->
- [ ] Task description → deliverable: <file or PR or test>

### <!-- SPECIALIST_ROLE_2 --> tasks (~N hours estimated)
- [ ] Task description → deliverable: <file or PR or test>

### Testing tasks (~N hours estimated)
- [ ] Task description → deliverable: <test file or coverage report>

## Acceptance criteria

### Functional
- [ ] <Observable user-facing behaviour>

### Non-functional
- [ ] <Performance, accessibility, mobile, etc.>

### Security
- [ ] <Auth, data protection, input validation checks>

## Dependencies

### External
<!-- Third-party services, credentials, configs needed before work starts. -->

### Internal
<!-- Existing code, components, or PRDs that must exist first. -->

## Risks

| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| <risk> | Low/Med/High | Low/Med/High | <how to handle it> |

## Success metrics
<!-- How will we know this shipped successfully? Measurable where possible. -->

## Verification command
<!-- The single command (or short sequence) that proves the feature works. -->
<!-- STACK: stack-specific test/run command injected here -->
```

---

## Step 4 — Hand off to specialists

Handoff is **asynchronous and file-based** — never a live spawn. Per the Signal
Protocol (see AGENTS.md): append the task to `signals/→<agent>.md`, or open a PR
and notify via webhook. The specialist picks it up on its own next run.

Create a GitHub PR (or equivalent), or write the signal file, with the following body:

```markdown
## Task: <Role> — <Feature Name>

### Agent
<!-- [FILL] Which agent picks this up -->
Assigned to: <specialist-agent-id>

### PRD
<!-- [FILL] Link or path to PRD -->
PRD: output/<project>/PRD.md (Section: <section name>)

### Tasks
<!-- [FILL] Numbered list of tasks for this agent -->
1. Task one
2. Task two

### Relevant file paths
<!-- [FILL] Files the specialist must read before starting -->
- `<path/to/file>` — <why it matters>

### Constraints
<!-- [FILL] Hard rules the specialist must follow -->
- <constraint>

<!-- STACK: stack-specific constraints injected here -->

### Definition of done
<!-- [FILL] Specific, verifiable completion criteria -->
- [ ] All PRD acceptance criteria met (Section: "Acceptance criteria")
- [ ] Tests written and passing
- [ ] Verification command passes: `<command>`
- [ ] PR description updated with what changed and why

### Webhook trigger
<!-- [FILL] URL or mechanism to notify Tech Lead on completion -->
Notify: <webhook-url or mention @tech-lead>
```

---

## Step 5 — Monitor and review

While specialists work:
- Track progress via agent status or PR list.
- Review PRs when marked ready: read the diff, check for pattern adherence, security, edge cases.
- Coordinate if specialist roles need to sync (e.g. frontend needs an API contract before it can proceed).
- If a specialist is blocked, unblock or escalate to human (don't let blockers sit).

**Code review focus (Tech Lead pass):**
- [ ] Patterns consistent with established conventions?
- [ ] Security: auth/authz checks present? Input validated?
- [ ] Edge cases handled (empty state, error state, missing data)?
- [ ] Tests cover the acceptance criteria?
- [ ] No dead code or orphaned imports from this change?
- [ ] PR is small and focused, or is it a sprawling change that should be split?

---

## Step 6 — Release gate: two independent reviewers

Docs-only means only `*.md` files under `docs/`. Docs-only and draft work is exempt from this gate.

Once implementation is complete, run the gate. A QA pass alone is not a release pass.

1. **Build one packet.** PRD path, PR or diff range, verification command, acceptance criteria. Both reviewers get the same packet. Spawn the `qa-engineer` role with this packet:

```
Review <feature> feature.
PRD: output/<project>/PRD.md
PRs: #<frontend-pr> (<role>), #<backend-pr> (<role>)
Key test scenarios: [copy from PRD acceptance criteria]
Verification command: <command>
```

2. **Spawn both reviewers in one message.** Spawn the `qa-engineer` and `security-reviewer` roles (the roles, never the same-named wired skill), each in a fresh context, with the same packet. Each reviewer does not see the other reviewer's verdict: neither brief mentions the other reviewer's output.
3. **Read both verdicts verbatim.** qa-engineer returns PASS or BLOCK. security-reviewer returns a severity table: no open Critical or High finding in it is PASS, anything else is BLOCK. Medium and Low findings are reported but do not block. Do not re-rate findings.
4. **Both must pass.** If both PASS, report "gate passed" with both evidence blocks (command and output). The human still approves production.
5. **Any BLOCK: fix and re-run.** Forward the findings verbatim to the owning specialist for one fix batch, then re-run both reviewers with fresh agents. Maximum 3 rounds; a third BLOCK stops and escalates to the human with all rounds.
6. **Missing reviewer.** If either role is unavailable, or has not run, say so; the gate is not passed.

---

## Step 7 — Post-ship documentation

After successful deploy:
- Update `MEMORY.md → Active work` to mark feature complete.
- Log key decisions in `MEMORY.md → Recent decisions`.
- File any new ADRs that emerged during implementation.
- For incidents: write incident report to `output/<project>/incidents/<date>-<slug>.md`.

---

## ADR template

Save to: `output/<project>/architecture/ADR-<NNN>.md`

```markdown
# ADR-<NNN>: <Decision title>

## Status
<!-- Proposed | Accepted | Deprecated | Superseded by ADR-XXX -->

## Context
<!-- What is the situation that forced this decision? What options were considered? -->

## Decision
<!-- What was decided and why. Be specific. -->

## Consequences

### Positive
<!-- Benefits of this choice. -->

### Negative
<!-- Costs, risks, or constraints introduced. -->

## Date
<!-- YYYY-MM-DD -->
```

---

## Output file layout

```
output/<project>/
├── PRD.md                        # Product requirements (primary source of truth)
├── architecture/
│   ├── DECISIONS.md              # Running summary of all architecture decisions
│   ├── ADR-001.md                # Individual ADRs
│   └── system-design.md          # Architecture overview / diagrams
├── tasks/
│   ├── <role-1>/                 # Detailed specs per specialist role
│   └── <role-2>/
└── incidents/
    └── <date>-<slug>.md          # Post-mortems
```

---

## Parallelisation guidance

| Condition | Action |
|---|---|
| Frontend and backend tasks are independent | Spawn both simultaneously |
| Backend API contract is unknown | Unblock frontend by agreeing on contract first, then spawn |
| Task < 4 hours total | Use a single agent — skip multi-agent overhead |
| Task > 4 hours AND parallelisable | Multi-agent wins; coordinate via PRD |

---

## Task sizing rules

Good tasks:
- **2–8 hours** of specialist work
- **Independently testable** (can verify without other tasks being complete)
- **Clear deliverable** (you know exactly when it is done)
- **Parallelisable** where possible (frontend/backend can proceed simultaneously)

Bad tasks:
- "Build the auth system" — too big, not independently testable
- "Fix stuff" — no clear deliverable or acceptance criterion

Files in this skill

  • AGENTS.md5 KB
  • IDENTITY.md467 B
  • MEMORY.md3.6 KB
  • SKILL.md10.5 KB
  • SOUL.md3.9 KB
  • USER.md593 B
  • role.yaml859 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.