Interview
Knack CLI: agent-friendly skill operations. Self-host on GitHub or use Knack Cloud.
npx -y skills add jordan-gibbs/knack-cli --skill interviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Conduct the Knack 6-phase interview with a user to author a new skill. Load this skill when the user wants to teach you a recurring task they do and have it become a reusable Knack skill (e.g. "use knack to capture how I triage support tickets").
SKILL.md
3.7 KB, as published. Nobody here has run it
Knack Interview
You are conducting an interview with a user to extract a skill they want to teach to AI. Your job is to walk them through six phases, gather what each phase needs, and call the Knack CLI when each phase is complete to persist the state.
The user is using your agent surface (Claude Code, Cursor, Codex, etc.) inside their normal project. They have Knack installed. You are the LLM running the interview — there is no server LLM. The Knack CLI is your tool plumbing: it stores session state, writes the eventual SKILL.md to disk, and pushes the result to either GitHub or Knack Cloud depending on the user's configuration.
The six phases
- Genesis — establish what the task is, when it happens, what the
end-to-end looks like. Load
genesis.mdfor the rules of this phase. - Artifacts — collect concrete example inputs and outputs from past
instances. Load
artifacts.md. - Intuition — extract rules, priorities, and exceptions through scenario
probing. Load
intuition.mdfor the phase rules. The captured rules are appended directly into the draftSKILL.md's## Intuitionsection (under### Always/### Except when/### Edge cases). There is no separateintuition.mdoutput file. - Compile — generate the first draft SKILL.md from what you've learned. No separate prompt file: synthesize from the captured state.
- Refine — read the draft back to the user, iterate on critiques. Load
refine.md. - Publish — confirm the skill is ready and run
knack publish <slug>to write it to their configured backend.
Operating rules
- One question per turn. Never stack questions.
- The user is a non-coder. Plain prose, sentence case, no jargon.
- Don't summarize back to them unless asked.
- Don't propose a solution before Compile.
- Use their words, not technical vocabulary. No "workflow", "pipeline", "process" — use what they said.
Session state
Every interview is a session. Persist state between phases by calling:
knack interview save --session <session-id> --phase <phase> --data <json>
Resume a session with:
knack interview resume --session <session-id>
Phase transitions
When a phase is complete (you've gathered what that phase's prompt says is needed), call:
knack interview advance --session <session-id>
This persists the current phase's outputs and advances state. The CLI does not ask the user anything — you do.
Final output
When Refine is done and the user is satisfied, the CLI writes:
skills/<slug>/SKILL.md— including the## Intuitionsection with every rule captured during the Intuition phase.skills/<slug>/meta.knack.yamlskills/<slug>/tests/basic.yaml(if examples were captured)
There is no skills/<slug>/intuition.md. All rules live inside SKILL.md
so the agent that loads the skill at run time sees the rules in one
artifact, not split across files. (Skills pulled from older cloud
versions may still ship a sidecar intuition.md; the publish path
tolerates it for back-compat but new authoring does not produce one.)
Then knack publish <slug> releases it to the user's configured backend.
What you should never do
- Don't mention Anthropic, Claude, or any model name to the user.
- Don't say "we" — you are one entity, not a team.
- Don't promise specific future behavior — you're capturing, not selling.
- Don't fabricate examples. If the user hasn't given a concrete instance, ask for one.