Agent skills for the work that happens before you build.
Two of them, and they run in order:
interview-me |
Asks you about your idea until it can retell the whole thing to an outsider who would then get it right, and writes that down |
grill-me |
Takes that document and attacks it, so its weak parts fail on paper instead of in the build |
Neither one writes code. They both stop at a document, which is the point: the document is what survives the session.
Both:
npx skills add huronsof/groundworkOr one at a time:
npx skills add huronsof/groundwork@interview-me
npx skills add huronsof/groundwork@grill-meThe CLI asks which assistants to install into, and it knows about dozens: Claude Code, Cursor, Codex, Copilot, Gemini CLI, Cline, Zed, Warp, OpenCode, Amp and more. Pick project scope to commit the skills with your repo, or global to have them everywhere.
Note: that command reports the install to the skills.sh registry, which is how the index works. If you would rather not be counted, copy the folders by hand instead:
git clone https://github.com/huronsof/groundwork
cp -r groundwork/skills/* ~/.claude/skills/ # Claude Code
cp -r groundwork/skills/* ~/.cursor/skills/ # CursorCursor also reads ~/.agents/skills/ and .claude/skills/, so use whichever directory you already have. For one project only, drop the folders in .agents/skills/, .claude/skills/ or .cursor/skills/ inside the repo.
If your assistant does not support skills at all, these are just Markdown instructions: paste the body of a SKILL.md into whatever it calls its rules or system prompt.
Use them by asking in plain language ("interview me about this idea", "grill this doc") or by name: /interview-me, /grill-me.
To make one explicit-only, so it never fires unless you ask for it, add a line to its frontmatter:
disable-model-invocation: trueSupported by both Claude Code and Cursor. It also keeps that skill's description out of every session, which saves a little context.
You have an idea. It is clear in your head and vague everywhere else. This asks about it, one question at a time, until it can pass the bus-stop test:
You have one bus stop's worth of time with someone who does not work in your field. When they walk away, they could retell it to someone else without losing the point, and they could guess what happens the first time somebody uses it.
When the retelling goes vague somewhere, that is not a writing problem. That is the next question.
What it does differently from just asking you a lot of things: every hole gets routed by who owns the answer.
| The hole | Who has it | What happens |
|---|---|---|
| Vision · why this, why now | Only you | You get asked. One at a time |
| Judgment · either way could work | Only you | You get asked, with a recommendation, so you can just agree |
| Record · what exists, what was tried | The files and the world | Nobody asks you. It goes and looks |
| Unknown · nobody knows yet | Nobody | Nobody asks. It gets written down as something to find out |
That is what keeps an interview from turning into an interrogation. Questions get spent only on the things a person actually has.
It writes as it goes, in batches, so a dead session does not cost you the conversation. There is a ceiling of about twenty questions, because an interview with no end becomes a chore.
You hand it the document. It reads the whole thing, then goes after it in this order:
- The project killer · which single assumption, if false, makes the whole thing pointless
- Facts with no source · stated as reality, nothing behind them
- Decisions disguised as facts · a choice nobody made, written as if settled
- Hidden assumptions · people will want it, the API allows it, it fits the time
- Internal contradictions · quoted from both sides
- Success you cannot measure
- Scope that does not close · the arithmetic of what you promised against what you have
- What is missing and nobody noticed
Then a premortem: it is a year later and this failed, what are the three most likely reasons.
Every finding comes back with three things: what is weak (quoting your own document), why it matters, and what would settle it (a check to run, a source to find, or a decision for you). Never "worth thinking about". Findings go back into your document, not into a chat window you will close.
Neither one designs your system, picks your stack, or writes your code.
grill-me also will not pad its list to look thorough. The rule that outranks every other rule in that file:
Do not manufacture findings. An adversarial job creates pressure to produce a long list so the work looks thorough. Resist it. A document that genuinely holds up gets told so, plainly.
Findings are capped at about seven and ranked by consequence, not count. And both skills have to verify a claim before making it: if your document cites a file or a number, they open the file.
Facts, so you can judge for yourself instead of taking a promise:
| Files | 2 skills, 2 Markdown files |
| Size | 17.358 bytes, 3.049 words |
| Reading time | about 15 minutes for both, 5 for grill-me alone |
| Executable code | none |
| Dependencies | none |
| Network calls | none. There is not a single URL inside either skill |
| Declared tools | Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(ls:*), Bash(date:*) |
Read them before you install them. That is the only verification that actually means anything, and it is why this repository is small on purpose.
No promise that this is safe for you.
An agent skill is a set of instructions you hand to an assistant that can read and write files on your machine. What it ends up doing depends on your assistant, your settings and what you ask for, and none of that is under this repository's control. Nobody can honestly guarantee the outcome, so nothing here does.
The skills CLI puts it well on the way out the door:
Review skills before use; they run with full agent permissions.
That applies here too. The allowed-tools field above is a Claude Code feature that genuinely restricts what a skill can touch there. Cursor does not document that field, and a universal install into another assistant may ignore it entirely, so treat the declared list as a statement of intent everywhere except Claude Code.
What this repository offers instead is the thing a promise cannot give you: it is small enough to read, there is no code to audit, and everything in the table above is checkable in under a minute. Decide for yourself whether it is worth using.
The license is MIT, which says the same thing in the language that counts: provided as is, without warranty of any kind.
Early, and honest about it. Both skills work and have been used on real documents, but only by their author. Nothing here has met a stranger yet.
If you use this and something is wrong, unclear or missing, open an issue. That is the most useful thing you can do with it.
MIT. See LICENSE.