kramme-cc-workflow/skills/kramme:siw:discovery/SKILL.md
Deep discovery interview that uncovers what you actually want, not what you think you should want. Works pre-spec or on existing specs until 90% confident. Pass --decision-tree, or ask to walk depth-first, to resolve tightly coupled decisions one at a time.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:siw:discoveryInstall 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.
"Interview me until you have 90% confidence about what I actually want, not what I think I should want."
The gap between what someone says they want and what they actually need is where most failed projects begin. This skill makes the AI the interviewer — probing, challenging, and digging until it genuinely understands the work before a single line of spec or code is written.
Do NOT use for: implementation planning (use generate-phases), issue definition (use issue-define), or spec quality auditing (use spec-audit).
Use this shared vocabulary when synthesizing handoff artifacts:
product-only: the artifact clarifies problem, users, desired outcomes, or strategy fit, but lacks testable requirements.requirements-only: scope, boundaries, and success criteria are present, but the artifact still needs SIW planning before execution.planning-ready: discovery has resolved enough product and technical uncertainty for /kramme:siw:init, /kramme:siw:generate-phases, or /kramme:siw:issue-define to create tracked implementation work.implementation-ready: an issue-level artifact is scoped for execution with dependencies and verification. Discovery never produces implementation-ready artifacts directly.If unresolved MISSING REQUIREMENT items remain, classify the output as product-only or requirements-only and route to another discovery/refinement pass instead of implementation.
The executable flow is Step 1 through Step 6 below:
UNVERIFIED: hypothesis before asking questions.Read references/process-overview.md only when you need the visual flow diagram or usage examples.
Use these markers in user-facing output to keep downstream tooling parseable:
CONFUSION — when the working hypothesis doesn't match the user's framing, or when answers contradict earlier ones.MISSING REQUIREMENT — when a confidence dimension can't be answered from the spec or artifact and needs user input.UNVERIFIED — when you assert something you haven't confirmed (e.g., a hypothesis still awaiting validation).STALE — when repo-level strategy context exists but its last_updated value is old enough to verify before relying on it.MISSING PRODUCT CONTEXT — when strategy grounding would materially improve discovery but no STRATEGY.md exists.PLAN — the label applied to the synthesized brief or strengthening plan at hand-off.Parse $ARGUMENTS as shell-style arguments so quoted paths stay intact.
--apply is present, set apply_changes=true and remove from argument list. --apply has no effect in Greenfield mode (the brief is the output); if Greenfield mode is detected later, tell the user the flag was ignored and continue.--decision-tree is present, set decision_tree_requested=true and remove from argument list.decision_tree_requested=true without removing the user's topic words unless the phrase is only an instruction.siw keyword.Detect mode automatically. First classify the current siw/ state:
has_spec_files: siw/*.md excluding the synced SIW spec-exclusion contract. Synced SIW spec-exclusion contract (keep aligned across SIW spec detectors): LOG.md, OPEN_ISSUES_OVERVIEW.md, DISCOVERY_BRIEF.md, SPEC_STRENGTHENING_PLAN.md, AUDIT_*.md, PRODUCT_AUDIT.md, SIW_*.md.has_discovery_brief: siw/DISCOVERY_BRIEF.md existshas_strengthening_plan: siw/SPEC_STRENGTHENING_PLAN.md existsBefore branching into Greenfield vs Refinement, handle the ambiguous case explicitly:
siw/DISCOVERY_BRIEF.md already exist, ask whether the user wants to refine the existing SIW documents or start a separate discovery thread.siw.siw/ directory. Tell them to archive/remove the existing SIW files first or use a different workspace, then stop. Never overwrite an existing siw/DISCOVERY_BRIEF.md.siw/SPEC_STRENGTHENING_PLAN.md exists without spec files or siw/DISCOVERY_BRIEF.md, do not offer a "refine existing" branch. Treat it as an unresolved strengthening artifact that must be applied, archived, or removed before starting another discovery pass.Greenfield mode when:
siw/ directory exists, ORsiw/ exists but contains neither spec files, siw/DISCOVERY_BRIEF.md, nor siw/SPEC_STRENGTHENING_PLAN.mdRefinement mode when:
siw keyword is used and spec files, siw/DISCOVERY_BRIEF.md, or siw/SPEC_STRENGTHENING_PLAN.md exist, ORsiw/DISCOVERY_BRIEF.md, or siw/SPEC_STRENGTHENING_PLAN.md existGreenfield:
topic_hintheader: "What are you building?"
question: "Describe the project, problem, or idea you want to explore. Don't worry about being precise — that's what this interview is for."
freeform: true
Refinement:
siw/DISCOVERY_BRIEF.md and siw/SPEC_STRENGTHENING_PLAN.md also exists, stop. Tell the user to apply, archive, or discard the pending strengthening plan before running another refinement interview against the brief.siw/DISCOVERY_BRIEF.md)siw/SPEC_STRENGTHENING_PLAN.md exists in the workspace, read that plan, tell the user there is already an unresolved strengthening artifact in this workspace, and stop. They should apply, archive, or remove it before starting another discovery pass.siw/*.md except the synced SIW spec-exclusion contract from mode detection. Also include siw/supporting-specs/*.md and siw/contracts/*.md.siw/DISCOVERY_BRIEF.md does, target that brief so no-argument reruns resume the saved discovery output..out-of-scope/ for prior matches against the topic. Two-step protocol: (a) list filenames in .out-of-scope/ (skip silently if the directory is absent or empty); (b) read the body of any file whose slug plausibly matches topic_hint (greenfield) or the resolved spec scope (refinement). When a match is found, surface as "This is similar to .out-of-scope/<slug>.md (decided <date>) — we rejected this before because <one-line summary>. Continue, or honor the prior rejection?" and route the answer through AskUserQuestion. If the user honors the prior rejection, stop; otherwise continue and note the prior rejection in the discovery brief output. If /kramme:docs:out-of-scope is installed in this environment, mention it as the storage skill; omit the mention otherwise.siw/AUDIT_SPEC_REPORT.md exists, read it and lower the matching confidence dimension to Low for every section the audit flagged as missing, vague, or contradictory before starting the interview.Look for ## Work Context section in spec files:
Work Type to the closest Work Context profile using the mapping in references/confidence-framework.mdPriority Dimensions and Deprioritized values from siw:init as interview-ordering hints onlywork_contextdecision_tree_requested=true, use Decision-Tree mode and read references/decision-tree-mode.md before Step 3.Before Step 2, check for UBIQUITOUS_LANGUAGE.md at the project root:
{term} as {canonical meaning}, but you seem to mean {observed meaning}. Which meaning should I use?"Before Step 2, check for STRATEGY.md at the project root:
STRATEGY_CONTEXT and use it as product grounding for the interview and synthesized artifact.last_updated frontmatter is older than 90 days, mark relevant strategy context as STALE: in the initial hypothesis and treat it as a question to verify.STRATEGY.md exists, proceed silently for narrow refinement. For greenfield product discovery or broad repo-level direction work, emit MISSING PRODUCT CONTEXT: once; if /kramme:product:strategy is installed in this environment, suggest it as an optional precursor without blocking discovery, and omit the suggestion otherwise.Before asking a single question, draft a working hypothesis based on available context:
Greenfield: Use the topic hint to infer:
STRATEGY_CONTEXT, when presentRefinement: Read the spec and infer:
STRATEGY_CONTEXT, when presentPresent the hypothesis to the user, prefixed with UNVERIFIED: so downstream readers know it is a working assumption awaiting interview validation:
UNVERIFIED: Here's my initial read on what you're building:
[2-4 sentence hypothesis]
I'll use this as a starting point and validate/correct it during the interview. Let me know if I'm wildly off before we begin, or we can let the interview surface the corrections naturally.
Proceed immediately — don't wait for a response unless the user offers one. The hypothesis is a conversation opener, not a gate.
If the hypothesis clearly clashes with the user's framing, additionally prefix it with CONFUSION: and name what doesn't fit.
If STRATEGY_CONTEXT exists and the target work appears to conflict with an active track, target user, metric, or non-goal, name the conflict in the hypothesis. This is a product-alignment prompt, not a blocker; the user may confirm that strategy should change.
Read references/confidence-framework.md and use its dimension definitions, scoring rubrics, Work Context mapping, dashboard format, evidence ledger, and stop/continue rules.
references/decision-tree-mode.md, identify the root decision, list prerequisite branches, mark branches answered by artifacts with file references, and keep unresolved confidence dimensions visible for synthesis.Use Coverage mode by default. Use Decision-Tree mode when selected in Step 1.5.
Read references/probing-techniques.md for the technique library, question-round contract, answer-processing rules, Codebase-as-Answer-Source Rule, ADR-Offer Hook, and interview pacing.
In Coverage mode, repeat the coverage loop from references/probing-techniques.md until the stop conditions in references/confidence-framework.md are met or the user stops early. Keep the confidence dashboard visible after each round.
In Decision-Tree mode, follow references/decision-tree-mode.md: resolve the highest-dependency branch first, ask one question at a time unless siblings are routine and independent, update the tree after each answer, run the ADR hook for durable tradeoffs, and return to Coverage mode for independent confidence gaps.
In either mode, if a dimension remains unanswered, keep the relevant placeholder in the generated artifact and insert MISSING REQUIREMENT: {dimension} immediately above that section so unresolved gaps survive the hand-off artifact.
Create siw/ if it does not already exist. Before writing, check whether siw/DISCOVERY_BRIEF.md exists. If it exists, stop and ask whether to refine the existing brief. If the user wants a separate discovery thread, tell them to archive/remove the existing SIW files first or use a different workspace, then stop. Never overwrite an existing siw/DISCOVERY_BRIEF.md.
If siw/DISCOVERY_BRIEF.md does not exist, read assets/discovery-brief-template.md, populate it from the interview, and write the result to siw/DISCOVERY_BRIEF.md. Emit PLAN: Written to siw/DISCOVERY_BRIEF.md. at hand-off.
Also emit Artifact readiness: <product-only|requirements-only|planning-ready> — <one-line reason>. Use planning-ready only when the brief has concrete scope, boundaries, success criteria, relevant technical context/dependencies or planning detail, and no blocking MISSING REQUIREMENT markers.
After writing, suggest next steps:
/kramme:siw:init siw/DISCOVERY_BRIEF.md — to bootstrap a full SIW workflow from this brief/kramme:siw:discovery siw/DISCOVERY_BRIEF.md --apply — to iterate on the brief and fold clarified decisions back into itWhen the host runtime supports it (Claude Code), the output is planning-ready, and the user wants to move directly into implementation planning rather than the SIW spec/issue workflow, offer to call EnterPlanMode so the brief becomes the seed of an interactive plan. Ask once via AskUserQuestion (Enter plan mode now / Stick with SIW) — don't auto-trigger. If the runtime doesn't expose EnterPlanMode, skip this step silently.
Read assets/spec-strengthening-plan-template.md, populate it from the interview, and write the result to siw/SPEC_STRENGTHENING_PLAN.md. Emit PLAN: Written to siw/SPEC_STRENGTHENING_PLAN.md. at hand-off.
Also emit Artifact readiness: requirements-only unless the plan clearly resolves enough scope, acceptance, and technical uncertainty to make the target spec planning-ready after apply. Never label the strengthening plan itself implementation-ready.
If the refinement target is siw/DISCOVERY_BRIEF.md, reference sections from the brief in the patch plan and treat the brief as the target document for optional apply. Treat siw/SPEC_STRENGTHENING_PLAN.md as a temporary handoff artifact: it should remain only while waiting for review or manual application, and it should be removed once the plan has been applied.
If apply_changes=true or the user asks to apply, read references/apply-protocol.md and follow it exactly.
Before writing the brief, strengthening plan, or final hand-off, read references/synthesis-checklist.md and apply its output quality bar, red flags, and verification checklist.
tools
Requires Linear MCP. Implements one Linear issue end to end, selects applicable code-review, convention, and PR-refactor gates, runs them to bounded convergence, verifies, and optionally opens the PR and iterates on CI and review feedback until green. Use when the user wants a single Linear issue taken from implementation through a clean Pull Request. Not for implementation-only work, SIW-tracked issues, stacked PRs, existing PR updates, or post-merge rollout.
development
Reviews PR and local changes for convention drift and overcaution against documented rules and mined peer-file practice. Use for new patterns, dependencies, abstractions, or defensive complexity that departs from established practice; every finding cites evidence. Supports --inline. Not for general code quality (use kramme:pr:code-review) or spec review (use kramme:siw:spec-audit --team).
testing
Charts huge or foggy initiatives into a local `.context` decision map and resolves one typed frontier ticket per session until the work is ready for SIW or another execution workflow. Use when the route to a destination cannot fit in one agent session or parallel workspaces need coordinated planning state. Not for clear specs, ordinary issue decomposition, implementation, or Linear-native tracking.
development
Investigates a question against primary sources and saves one cited Markdown artifact. Use for reading legwork: official docs/API facts, source-code or spec checks, standards, and first-party service behavior before planning or implementation. Not for making product or architecture decisions, implementing code, broad web search, secondary blog summaries, or uncited answers.