Best for
- Use when user wants to stress-test a plan against their project's language and documented decisions.
reddb-io/red-skills/plugins/dev/skills/engineering/start/SKILL.md
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (.red/CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
Decision brief
Read INTERVIEW-ROUNDS.md and follow it for every question you ask. It is the one normative home of the round convention — the ❓ Q block, one-line questions, per-line branches, the ➡️ recommendation, evidence above the round, and the continuous zero-padded numbering. Do not resta…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/reddb-io/red-skills --skill "plugins/dev/skills/engineering/start"Inspect the Agent Skill "start" from https://github.com/reddb-io/red-skills/blob/3be29878d67493a7546c3492b77155990b3decc6/plugins/dev/skills/engineering/start/SKILL.md at commit 3be29878d67493a7546c3492b77155990b3decc6. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Read INTERVIEW-ROUNDS.md and follow it for every question you ask. It is the one normative home of the round convention — the ❓ Q block, one-line questions, per-line branches, the ➡️ recommendation, evidence above the round, and the continuous zero-padded numbering. Do not resta…
Look facts up; put decisions to the human. What the code does, what names exist, how something is wired, what a doc already says — read it. Asking the human for what the repo already answers spends their turn on your legwork.
The argument is optional. Treat it as the plan or context to grill.
When the frontier is empty — or the user stops — run the shared end-of-session doc-landing finalizer in DOC-LANDING-FINALIZER.md before exiting. An empty frontier is a checkable bound; the finalizer is what turns it into a landed paper trail rather than an open-ended goodbye.
During codebase exploration, also look for existing documentation:
Permission review
The documentation asks the agent to read local files, directories, or repositories.
*Look facts up; put decisions to the human.** What the code does, what names exist, how something is wired, what a doc already says — read it. Asking the human for what the repo already answers spends their turn on your legwork.The documentation asks the agent to read local files, directories, or repositories.
Explore read-only. This skill reads the codebase; it does not change it.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 96/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 16 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Interview the user relentlessly until you reach a shared understanding — that understanding is the only exit condition. Map the work as a design tree: every decision branches into the decisions hanging off it.
Work the tree in rounds. The frontier is every unresolved decision whose prerequisites are already settled — the questions answerable now, without guessing at answers you have not heard yet. Ask the whole frontier as one round, then wait. Each round's answers reshape the tree: a settled decision pushes the frontier outward and unblocks what depended on it. Recompute the frontier and ask the next round, always pushing as fast as the tree allows.
A question whose answer depends on another question open in this round belongs to the NEXT round. That single rule is what makes a round safe — it is why a batch of questions never asks the user to guess at an answer they have not given yet.
A round is as small as the tree makes it. One critical question that unblocks everything downstream is a complete round.
The loop:
Read INTERVIEW-ROUNDS.md and follow it for every question you ask. It is the one normative home of the round convention — the ❓ **Q##** block, one-line questions, per-line branches, the ➡️ recommendation, evidence above the round, and the continuous zero-padded numbering. Do not restate or improvise the format; the reference decides it.
Look facts up; put decisions to the human. What the code does, what names exist, how something is wired, what a doc already says — read it. Asking the human for what the repo already answers spends their turn on your legwork.
A fact still being fetched is an unsettled prerequisite — never a blocked round. Ask everything not downstream of that fact now, and let the question that needs it fall into the next round, exactly as any other dependency would.
Explore read-only. This skill reads the codebase; it does not change it.
The argument is optional. Treat it as the plan or context to grill.
External reference (URL or file path) → eager ingest via /wiki ingest <ref>. If .red/wiki/ is not initialised, ask once: Initialise /wiki to cache fetches across sessions? (y/N). On y, run /wiki-init then proceed. On n, fall back to plain WebFetch/Read into context and note in the receipt that the material is not cached.
Inline document (text pasted in the argument) → already in context, no fetch.
Prose (short description) → no fetch, the prose is the plan.
Empty argument → open with the literal Q01 as a one-question round:
❓ Q01 — What plan are we grilling? Branches: (a) paste it inline (b) share a URL or file path (c) describe it in a sentence ➡️ (a) — inline context lets us start grilling immediately.
After successful ingestion, emit a single-line receipt then open the first round:
| Source | Receipt |
|---|---|
| URL | Fetched <url> → wiki/raw/<slug>.md (<N> words). |
| File (md/txt) | Read <path> → wiki/raw/<slug>.md. |
| File (PDF) | Read <path> → wiki/raw/<slug>.txt (<N> pages). |
| Inline doc | Got <N> words inline. |
| Prose | (no receipt — open the first round immediately) |
When wiki is not cached (user declined /wiki-init), append (not cached) to the receipt.
On ingestion failure, do not open the first round. Ask for an alternative:
Couldn't read <ref>: <reason>.
Paste the content, point to another path, or say "skip" and we'll grill on what you describe.
When the frontier is empty — or the user stops — run the shared end-of-session doc-landing finalizer in DOC-LANDING-FINALIZER.md before exiting. An empty frontier is a checkable bound; the finalizer is what turns it into a landed paper trail rather than an open-ended goodbye.
Hard rules — do not break these:
.red/CONTEXT.md..red/CONTEXT.md inline the moment a term is resolved (one term → one edit → next round). This is a side effect of the interview, not a separate phase.<supporting-info> passes./wiki ingest, emit the same receipt line, then continue with the next round.--tags a,b argument as a session decision ("this work belongs to territory tags a, b") so a downstream /to-spec applies the tag:<value> labels on publish. /start itself still creates no issues and no labels — the tags only travel forward.During codebase exploration, also look for existing documentation:
Most repos have a single context:
/
├── .red/
│ ├── CONTEXT.md
│ └── adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
If a .red/CONTEXT-MAP.md exists at the root, the repo has multiple contexts. Everything still lives under the single root .red/ — the map lists the contexts and each one's glossary lives under .red/contexts/<name>/:
/
├── .red/
│ ├── CONTEXT-MAP.md ← lists the contexts and how they relate
│ ├── contexts/
│ │ ├── ordering/CONTEXT.md
│ │ └── billing/CONTEXT.md
│ └── adr/ ← single root ADR sequence (all contexts)
└── src/
├── ordering/
└── billing/
Create files lazily — only when you have something to write. If no .red/CONTEXT.md exists, create one when the first term is resolved. If no .red/adr/ exists, create it when the first ADR is needed.
These fire as a consequence of grilling. They never replace the interview loop — finish writing, then ask the next round.
URL or file path appears in the user's message with intent to ingest ("look at this", "olha esse", "ingest …", or a frontier question clearly needs it). Hand off to /wiki ingest <ref>, emit the standard receipt line as a brief acknowledgement, then proceed to the next round. Mid-grilling refs follow the same rules as boot refs — no extra opt-in once /wiki is initialised.
When the user uses a term that conflicts with the existing language in .red/CONTEXT.md, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account' — do you mean the Customer or the User? Those are different things."
Stress-test with a specific scenario. Invent edge cases that force the user to be precise about the boundaries between concepts.
When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
Update .red/CONTEXT.md right there. Don't batch. Use the format in CONTEXT-FORMAT.md.
.red/CONTEXT.md is a glossary. It is totally devoid of implementation details. Do not treat it as a spec, a scratch pad, or a repository for implementation decisions.
Only offer to create an ADR when all three are true:
If any of the three is missing, skip the ADR. Use the format in ADR-FORMAT.md.
External references (URL, PDF, md/txt) flow through the /wiki skill so every fetched source is cached at .red/wiki/raw/<slug>.md and reusable across sessions and other skills (/diagnose, /afk, /tdd).
Behaviour summary (full contract in /wiki):
WebFetch → .red/wiki/raw/<slug>.md with YAML header (url, fetched, title).pdftotext → .red/wiki/raw/<slug>.txt, original kept alongside..red/wiki/raw/<slug>.md if not already there..red/wiki/log.md.When .red/wiki/ is missing, /start prompts once to run /wiki-init. Decline path: plain WebFetch/Read into context, no caching, receipt marked (not cached).
Frequently asked questions
Read INTERVIEW-ROUNDS.md and follow it for every question you ask. It is the one normative home of the round convention — the ❓ Q block, one-line questions, per-line branches, the ➡️ recommendation, evidence above the round, and the continuous zero-padded numbering. Do not resta…
The source record exposes this install command: npx skills add https://github.com/reddb-io/red-skills --skill "plugins/dev/skills/engineering/start". Inspect the command and pinned source before running it.
Static rules flagged read-files in the source; the page lists the matching lines and excerpts.
Alternatives
enuno/unifi-mcp-server
Specialized guide for adding new MCP tools to the UniFi MCP Server following project standards, UniFi API patterns, and test-driven development practices. Use when implementing new UniFi Network Controller features as MCP tools.
samber/cc-skills-golang
Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration tests, idiomatic test naming. Use when writing or reviewing Go tests, choosing a testing approach, setting up Go test CI, or debugging flaky/slow tests. For testify-specific APIs see `samber/cc-skills-golang@golang-stretchr-testify`; for measurement methodology see `samber/cc-skills-golang@golang-benchm
testdouble/han
Builds a feature specification from scratch through a relentless, evidence-based interview that walks the design tree decision-by-decision, resolving dependencies as it goes. Use when the user wants to plan, design, scope, specify, or flesh out a new feature, capability, or system behavior before implementation. Produces a feature specification focused on system behaviors, not implementation detail. Does not refine or stress-test an existing plan — use iterative-plan-review. Does not document al
Jamie-BitFlight/claude_skills
Use when building Python 3.11+ CLI apps (Typer/Rich), writing pytest test suites, fixing ruff linting or ty/mypy type errors, configuring pyproject.toml, creating portable scripts, or reviewing Python code. Activates on all Python implementation tasks — routes to specialist agents for CLI architecture, test design, packaging, and code review. Authoritative reference for modern Python 3.11-3.14 patterns and TDD workflows.