skills/interrogator/SKILL.md
Interview the user to extract knowledge from their head and synthesize it into a structured document. Use this skill when the user wants help thinking through an idea, designing a feature, specifying a task, or articulating something they haven't written down yet. Trigger when the user says things like "interview me about", "ask me questions about", "help me think through", "I need to spec out", "I have an idea for", "let's flesh out", or any variation where they want to be interrogated rather than do the writing themselves. Also use when the user has a vague concept and needs help turning it into a concrete artifact (spec, design doc, brief, plan, etc.) through conversation.
npx skillsauth add ferueda/agent-skills interrogatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are conducting a focused interview to extract knowledge from the user's head and turn it into a well-structured document. The user finds it easier (or more productive) to answer questions than to write from scratch — your job is to ask the right questions, one at a time, until you have enough material to produce a clear artifact.
When triggered, begin by understanding the shape of what the user wants to produce:
If the user already provided context about what they want (e.g., "interview me about this new caching layer"), skip the meta-questions and go straight into the domain.
One question at a time. This is the core discipline. Never ask two questions in a single message. If you have a follow-up, wait for the answer to your first question before asking it.
Why: Multiple questions let the user skip the hard ones. A single focused question demands a focused answer, which produces better material.
Go depth-first, not breadth-first. When the user says something interesting or underspecified, drill into it immediately rather than moving on to the next topic. You can always come back to breadth later.
Ask "why" more than "what." The user usually knows the what — they struggle to articulate the why, the constraints, the tradeoffs. Those are what make a document useful.
Challenge vague answers. If the user says "it should be fast" or "we need good error handling," push back: "What does fast mean here — under 100ms? Under a second? What's the consequence if it's slow?" This isn't being difficult, it's extracting precision.
Use the user's own words back at them. Paraphrase what you've understood so far before asking the next question. This lets the user correct misunderstandings early and builds confidence that you're tracking.
Notice what's missing. As the picture forms, identify gaps the user hasn't addressed. Ask about edge cases, failure modes, who else is affected, what happens when assumptions break.
Don't linger on a topic once you have a clear answer. If the user gives a crisp response, acknowledge it briefly and move to the next area. The goal is to be thorough without being tedious.
If the user says something like "I don't know yet" or "that's TBD," accept it and move on. Note the gap — it'll appear in the final document as an open question.
The user decides when the interview is done. They might say "that's enough," "write it up," "I think you have what you need," or similar. When they do:
Do not summarize the interview or produce a transcript. Synthesize the answers into a coherent document that reads as if someone sat down and wrote it deliberately.
The document should:
tools
Evaluate, analyze, and systematically react to an adversarial code review report. Decide on the action for each finding (Implement, Adapt, Decline), provide clear justifications, and define the plan to implement the accepted changes.
development
Manually invoked point-of-work workflow for applying Peter Naur's "programming as theory building" during active software work. Use this skill only when the user explicitly names `theory-building`, asks to use the theory-building skill, or explicitly says to apply programming-as-theory- building to the current design, implementation, refactor, review, or AI-generated code. Do not trigger automatically for ordinary architecture, implementation, refactor, review, debug, documentation, AI-code, domain model, or maintainability tasks.
development
Manually triggered weekly or post-change repository audit based on Peter Naur's "Programming as Theory Building." Use this skill only when the user explicitly names `theory-building-review`, asks to run the theory-building review skill, or says to run the weekly/post-change theory-building review. Do not trigger automatically just because the conversation mentions Naur, domain modeling, refactoring, architecture, craft, or code review. When explicitly invoked, inspect recent diffs or scoped repository areas, reconstruct the system theory, find places where code and domain language diverge, and return actionable refactor, test, documentation, and modeling improvements. For active design, implementation, refactor, review, or AI-code acceptance on a specific change, use `theory-building` instead when explicitly invoked.
documentation
Summarize work done in a spec/plan document.