agentleFS
toveruxtoverux/cantrips/skills/questionnaire/SKILL.md

questionnaire

Skill3 starsChanged 4 months agoMITView on GitHub

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    What do you need back?: Ask, in one exchange, the specific decisions or facts the user can't resolve alone and needs from this person.

    line 17

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Turn something the user can't answer alone into a questionnaire: a Markdown document they hand to one person to fill in async, or fill out together over a meeting. The recipient holds knowledge the user lacks; the questionnaire pulls it out of them.

Grill the send, not the subject. Interview the user only about the send, which they can always answer: who it goes to, and what they need back. The questions in the document then target the gap between what the recipient knows and what the user needs.

  1. Who is it going to? Ask, in one exchange, the recipient's role, expertise, and relationship to the user. This fixes the questionnaire's tone and how much context it must carry. Done when you know who the recipient is and what they know that the user doesn't.
  2. What do you need back? Ask, in one exchange, the specific decisions or facts the user can't resolve alone and needs from this person. Done when you have a concrete list of what the user must walk away able to do or decide.
  3. Write the questionnaire. Draft questions aimed at the gap from steps 1–2, following the Document structure below. Write it to questionnaire-<slug>.md in the current directory (slug from the topic) and report the path. Done when the file exists and every item the user named in step 2 is covered by a question.

Document structure

Frame the document as a discovery questionnaire: the user lacks context, the recipient holds it. Order questions most-important-first, since async means you may only get one pass, and group them under ## headings by theme once there are more than a handful. Write it using the template below.

<questionnaire-template>

<Questionnaire title>

Purpose: why this questionnaire exists and the decision riding on it.

From: <the user>, To: <the recipient>, How your answers will be used: <where they go>

Context

One paragraph orienting a recipient who wasn't in the user's head. Enough to answer well, not a page.

How to answer

Deadline and rough effort. Partial answers and "I don't know" are useful: flag anything you're unsure of rather than skipping it.

<Theme heading>

One ## section per theme. Under each, its questions, most-important-first. Every question is one idea, never compound, with an answer stub directly beneath, and a one-line why this matters only where the question could be misread or invite a throwaway answer.

<question-example> ### What load is the system expected to handle at launch?

Why this matters: it decides whether we provision for burst traffic now or defer it.

</question-example>

Anything else?

A closing catch-all: anything we didn't ask that we should know?

</questionnaire-template>

Questionnaire written → close with a flow pointer (the message's final paragraph, a blockquote in full italics opening Next: — or Next steps: over one bullet per pointer — each pointer naming its skill the way this skill was itself invoked, same prefix and namespace, and ending in a one-clause rationale after an em dash): /spec (user-invoked) — once the recipient's answers are back, they settle what the spec could not. Where this session engaged a deputy through /deputy and has not dismissed it, a choice is put to the deputy as ROUNDS.md says and rendered as the one step it chose, any other closing is rendered as written, and each rendered step that names a skill is then taken: one marked (user-invoked) by notifying the user where the harness has a tool for it and waiting for them to type it, any other by invoking it, notifying nobody.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.