Workflow Practices
eser/stack
How agents work in eserstack: clarifying requests, roles, approvals, forbidden git and publish actions, cross-package changes, root-cause fixes, quality gates.
Use BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles…
$ npx skills add genkovich/sdd --skill interview -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install genkovich/sdd interview --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/interview .claude/skills/interview && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .claude/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/genkovich/sdd/tree/main/skills/interviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add genkovich/sdd --skill interview -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install genkovich/sdd interview --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/interview .agents/skills/interview && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .agents/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add genkovich/sdd --skill interview -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install genkovich/sdd interview --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/interview .cursor/skills/interview && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .cursor/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/genkovich/sdd.git --path skills/interview--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add genkovich/sdd --skill interview -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install genkovich/sdd interview --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/interview .gemini/skills/interview && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .gemini/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install genkovich/sdd interviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add genkovich/sdd --skill interview -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/interview .github/skills/interview && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .github/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add genkovich/sdd --skill interview -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install genkovich/sdd interview --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/interview .opencode/skills/interview && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "interview" agent skill from https://github.com/genkovich/sdd/tree/main/skills/interview into .opencode/skills/interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interview", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
interviewUse BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles…
Interview is an agent skill from genkovich/sdd. Use BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles, then writes docs/idea-brief.md (8 sections) so the next stage has a source to read instead of guessing. Scope is any idea (product, content, business, architecture, refactor approach); outside a git repo it stays talk-only and writes nothing. Triggers on "interview {slug}", "idea brief", "write the brief", "stress…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/annotated-pass.md`, `references/probing-frames.md` and `templates/idea-brief.md`).
It sits in Development, covering Load testing, Tutoring and explanations and Refactoring. It works with Git. The repository describes itself as: Spec-Driven Development for Claude Code: 12 atomic Socratic skills + a TDD implement engine (agent-team & dynamic-workflow modes). The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4403913. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Interview loads about 3.8k tokens when it runs, and up to ~6.1k if it reads all its reference files. Until then it costs about 231 tokens; SKILL.md has 1,849 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from genkovich/sdd at commit 4403913, republished under its MIT licence (© genkovich). 1,849 words, ~3,780 tokens.
.claude/skills/interview/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Pressure-tests an idea before it becomes a roadmap or a spec, and writes down what came out.
The user shares a raw idea; across 3 phases you surface hidden assumptions, name tradeoffs,
expose imprecisions and propose fresh angles — then the survivor lands in docs/idea-brief.md.
Two things are being produced at once, and the second is the one that matters downstream:
a sharper idea in the user's head, and the context an agent cannot read anywhere else.
The repo holds what the agent can discover on its own (survey maps it); this file holds what
only the person knows. roadmap hard-refuses without a source — this is that source.
Scope: any idea. Product, content, business, architecture, refactor approach — all in scope. The boundary: this is an interview about the idea, not codebase archaeology. Ask the user to articulate the idea in words first. Consult files only if the user explicitly invites it; default is interview-first, no unprompted grep/find/read.
Language. Respond in the user's language; the instructions here are English for clarity. Brief
prose follows artifact_language, headings + frontmatter keys stay English →
../_shared/artifact-language.md.
The depth dial and the Socratic posture are SDD-wide:
→ ../_shared/interview-depth.md · ../_shared/ask-style.md
The idea's author — whoever has the thing in their head (PM / lead / engineer / the solo maintainer).
<slug> — kebab-case, short. Not given → propose 2–3 and let the user pick.Run git rev-parse --show-toplevel once, before the final summary:
<repo root>/docs/idea-brief.md (protocol
steps 6–8). This is the SDD case: the next stage reads it from disk.../_shared/self-check.md
step 1), and there is no commit. A life / content / strategy idea in a scratch folder must not
leave a file behind — that's the case this gate exists for.An existing docs/idea-brief.md is updated, never silently rebuilt: read it first, and say in
the handoff which sections changed.
git rev-parse, no question about it).
Ensure the settings file (first thing, after this skill's own gate). If .claude/sdd.local.md is absent,
create it now from the canonical template — documented defaults + the self-documenting body —
and patch .gitignore; if it exists, read it and never overwrite. The one procedure lives in
../_shared/settings-file.md. Creating is unconditional;
changing values is only ever offered by config. Say one line:
«.claude/sdd.local.md created with documented defaults — /sdd:config to tune it».
(Subordinate to the write gate: outside a git repo this skill writes nothing, settings included.)
Then set the depth dial. One AskUserQuestion, then commit (default medium). The dial is
SDD-wide; interview's delta — the 3–4 / 6–10 / 10–15 question budget per level and each
level's posture — is the canonical interview row in
../_shared/interview-depth.md (no table duplicated here).
The adversarial triggers (grill / rip apart / розʼєби / погрилити) imply hard unless the
user says otherwise. State the depth in one line, then start../templates/idea-brief.md →
docs/idea-brief.md; set updated_at (today) and depth (the level this run actually used).
§1 Raw idea carries the user's own words verbatim — never the polished rewrite.../_shared/self-check.md: re-read the file from disk and
verify 5 items: (1) all eight ## <n>. <Heading> sections present verbatim and none empty;
(2) zero template <!-- instruction … --> comments survived into the file; (3) zero tech tokens
in the body — \b(Postgres|PostgreSQL|MySQL|SQLite|Redis|Kafka|RabbitMQ|MongoDB|Elasticsearch| gRPC|GraphQL|JSONB|p95|p99)\b (the \b boundaries matter — without them chi matches inside
«architecture»); (4) the frontmatter carries exactly the template's four keys (status / owner /
updated_at / depth) with none invented — updated_at = today, depth = the level
used, status: Draft;
(5) the file exists at <repo root>/docs/idea-brief.md (test -f). Fix + re-check ≤2 cycles;
surface the rest. Outside a repo the summary checked against its mini/full format IS this
skill's structural self-check — nothing on disk to re-read.interview: idea brief for <slug>. Then
emit the stage-handoff block per ../_shared/handoff.md (utility
variant — /clear optional), per «Hand off» below. Outside a repo: the handoff block still
prints, with Review naming the summary instead of a path and no commit line.Use 1-3 questions per phase, targeting the count from the depth dial. Move on from a phase when answers repeat, the user says "next" / "хватить", or the latest answer added nothing.
If the idea isn't stated in one sentence yet, ask for it in plain text (no AskUserQuestion). Then unpack: who suffers without this · what success concretely looks like · whether it's new or a refinement. Don't ask what's already obvious. → §1 Raw idea, §3 Users.
The core. Hunt hidden assumptions ("this assumes X — what if X is false?"), tradeoffs (time vs quality, scope vs depth, reach vs focus), imprecisions (vague terms, ambiguous metrics), attention competition, and cost of failure. Every question offers positions, not yes/no. → §2 Problem, §4 Why now, §5 Out of scope, §6 Risks.
Probing frames — internal lenses (premortem · second-order · naive listener · inversion ·
cost of waiting · the other person). Pick what fits, mix them, don't name the frame to the
user. Worked before/after examples per lens → references/probing-frames.md.
Intensity dial. Default tone is Socratic; the adversarial triggers escalate phrasing ("Why do you think X is even true?"). The user dials back with "ease up" / "помʼякши".
Drill vs move on. Drill the same dimension when an answer surfaced a new assumption; move on once the position is clear and the tradeoff named.
Now actively propose via AskUserQuestion: 2-3 alternative shapes (different audience, format,
scale) or a twist (inversion, constraint, simplification). The Recommended option is your
strongest bet, with reasoning in description. → §7 Recommendation, §8 Open questions.
(Recommended), each option's description spelling out what follows from it.
Free text slips into "I don't know" and loses signal. On a host that has no native
AskUserQuestion (Codex CLI, Cursor) the same question is asked as numbered plain text —
the same options with the same descriptions, one question at a time, then stop and wait for the
answer. That is the documented host adapter, not the open-ended free text this rule forbids →
../_shared/tool-adapters.md.AskUserQuestion is not that case:
it's a host difference the adapter in rule 1 already covers, so ask in numbered plain text and
carry on — never stop over it. STOP only when nobody can answer: a headless / -p run, a
non-interactive session, or a denied tool call with no human left in the loop. Then say so
plainly and write nothing.≤4 questions → mini; ≥5 → full.
Mini: Revised idea (one sentence) · Weakest spot (one sentence) · Next action (one verb).
Full:
## Revised idea
{one paragraph — the idea after the interview}
## What surfaced
- **Hidden assumptions**: …
- **Main tradeoff**: …
- **Weakest spot**: …
## Alternative angles
1. {strongest} 2. {second} 3. {the one they wouldn't have reached alone}
## Next step
{one concrete verb — usually "/sdd:roadmap" or "/sdd:specify <slug>"}A full annotated medium-depth pass → references/annotated-pass.md.
docs/idea-brief.md exists with all eight sections filled, updated_at = today,
depth = the level used, §1 in the user's own words, and no tech tokens in the body. The step-7
structural self-check passed and its result is reported in the handoff.Emit the stage-handoff block per ../_shared/handoff.md (utility
variant — /clear optional):
docs/idea-brief.md (§2 Problem and §5 Out of scope are the two the next stage leans
on hardest). Outside a repo: «nothing on disk — the summary above is the artifact»./sdd:roadmap when the brief covers a whole product that needs decomposing into
steps (this is the file roadmap refuses to start without); /sdd:specify <slug> when the
survivor is one buildable feature. Neither, when the idea wasn't an engineering one — resume
whatever you were doing.Never end on a bare «Next: …».
specify's job, and it runs its own ideation suite — a second copy here means two
pipelines producing the same document twice.docs/idea-brief.md already exists — read it, update the sections this run changed, keep
the rest; the commit message says what moved.If the user picks Other twice in a row OR writes "I don't know" / "не знаю", switch to a single open text question ("In your own words — what's bugging you most about this right now?"). Once they answer, resume AskUserQuestion with a new angle.
./templates/idea-brief.md — the 8-section brief scaffold.references/probing-frames.md — the 6 lenses with worked before/after questions.references/annotated-pass.md — a full annotated medium-depth interview.../_shared/interview-depth.md — the SDD-wide easy/medium/hard dial.../_shared/ask-style.md — the AskUserQuestion option-writing contract.../_shared/tool-adapters.md — how each Claude Code mechanism maps to Codex CLI / Cursor (asking included).../_shared/artifact-language.md — prose switches language, structure stays English.../_shared/self-check.md — the structural self-check contract.../_shared/handoff.md — the stage-handoff block format.© genkovich, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/interview of genkovich/sdd.
Open the folder on GitHubat commit 4403913
Interview next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Interview this skillgenkovich/sdd | 171 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Workflow Practiceseser/stack | 128 | — | ~743 | Automated safety check: Pass | Custom licence | |
| Repo TutorMathews-Tom/armory | 327 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Codexskills-directory/skill-codex | 1.5k | 3 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Nexus MapperHaaaiawd/Nexus-skills | 166 | 1 repos | ~2.5k | Automated safety check: Notes | None | |
| Refactoring Auditepam/ai-dial-chat | 504 | — | ~4.3k | Automated safety check: Pass | Apache-2.0 |
eser/stack
How agents work in eserstack: clarifying requests, roles, approvals, forbidden git and publish actions, cross-package changes, root-cause fixes, quality gates.
Mathews-Tom/armory
A skill your agent uses when a user supplies a local repository path or remote Git URL and asks to "teach me this repo", "explain this codebase simply", "show how this system works", "help me use…
skills-directory/skill-codex
A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
Haaaiawd/Nexus-skills
Generate a persistent .nexus-map/ knowledge base that lets any AI session instantly understand a codebase's architecture, systems, dependencies, and change hotspots.
epam/ai-dial-chat
Deep codebase refactoring audit for AI DIAL Chat. An agent skill from epam/ai-dial-chat.
Haaaiawd/Nexus-skills
Precise, instant code structure queries for active development — answer 'who depends on this interface before I refactor it', 'how many modules break if I change this', 'what is the real impact…
genkovich/sdd
A skill your agent uses to fix a reported bug spec-first: reproduce it, trace the symptom to the owning feature's acceptance criteria, pin it with a failing (RED) test, apply the minimal GREEN fix…
genkovich/sdd
A skill your agent uses to implement a feature from its tasks.json with test-driven development — writes a failing test first, makes it pass, refactors, gates, and commits per task.
genkovich/sdd
A skill your agent uses to classify a feature into XS/S/M/L/XL and write docs/features/{slug}/.size plus the pipeline route docs/features/{slug}/.route (quick|standard|full) so later skills know how…
genkovich/sdd
A skill your agent uses to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a…
genkovich/sdd
A skill your agent uses to break a designed feature into atomic, ≤1-day tasks with a dependency graph, a per-task Definition of Done, and a machine-readable tasks.json that the implement engine…
genkovich/sdd
A skill your agent uses to derive the API contract for a feature — an OpenAPI 3.1 document at docs/features/{slug}/contracts/openapi.yaml plus a drift/sync report (and an events doc when the feature…
Works with
Categories
Use BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles…. Interview is an agent skill from genkovich/sdd.md (8 sections) so the next stage has a source to read instead of guessing.
Interview fits situations like: interview {slug}; write the brief; stress test {slug}; /sdd:interview {slug}.
Run `npx skills add genkovich/sdd --skill interview -a claude-code`. Or copy the skill folder (skills/interview in genkovich/sdd) into .claude/skills/interview in your project. Claude Code loads it when a task matches its description.
Run `npx skills add genkovich/sdd --skill interview -a codex`. Or copy the skill folder (skills/interview in genkovich/sdd) into .agents/skills/interview in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add genkovich/sdd --skill interview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/interview, .gemini/skills/interview, .github/skills/interview and .opencode/skills/interview in your project.
Going by SKILL.md and its folder, Interview needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Interview is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Interview: Workflow Practices (eser/stack, 128 stars), Repo Tutor (Mathews-Tom/armory, 327 stars), Codex (skills-directory/skill-codex, 1.5k stars) and Nexus Mapper (Haaaiawd/Nexus-skills, 166 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
genkovich (a GitHub user) maintains it in genkovich/sdd, which has 171 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on September 5, 2026.
Source: genkovich/sdd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.