question-framing
Skill304 starsChanged 2 months agoMITView on GitHub
Structure analytical questions with the Question Ladder (Goal, Decision, Metric, Hypothesis), then fill the 7-field Analysis Design Spec, before touching data. Trigger on "analyze", "investigate", "look into", "why did", "what's happening with", "what happened with", "figure out", "explore", "deep dive", "what caused", "compare", "breakdown", "root cause", "show me", "pull", "calculate". Framing first, analysis second.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- lancegui/causal-powerstheir own version, first seen Oct 13, 2026
- yogsoth-ai/paper-readingtheir own version, first seen Aug 8, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- lancegui/causal-powers★ 2same name
- yogsoth-ai/paper-reading★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository65 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- always-compareSkill
- analysis-designSkill
- analyst-coreSkill
- archaeologySkill
- archive-analysisSkill
- auth-preflightSkill
- businessSkill
- causalSkill
- chart-to-driveSkill
- close-the-loopSkill
- codex-reviewSkill
- compare-datasetsSkill
- connect-dataSkill
- connect-snowflakeSkill
- context-compareSkill
- context-traceSkill
- data-inspectSkill
- data-mapSkill
- data-profilingSkill
- data-quality-checkSkill
- datasetsSkill
- distribution-profilerSkill
- evalSkill
- evaluate-graderSkill
- experiment-briefSkill
- experimentSkill
- exploreSkill
- exportSkill
- forecastSkill
- google-doc-exportSkill
- google-slides-exportSkill
- guardrailsSkill
- historySkill
- improve-contextSkill
- knowledge-bootstrapSkill
- log-correctionSkill
- maintain-contextSkill
- metric-specSkill
- metricsSkill
- monitor-evalsSkill
- notion-exportSkill
- paceSkill
- patternsSkill
- question-routerSkill
- reliabilitySkill
- resume-pipelineSkill
- run-pipelineSkill
- runsSkill
- score-analysisSkill
- session-handoffSkill
- setup-dev-contextSkill
- setup-notionSkill
- setupSkill
- setup-slackSkill
- setup-snowflakeSkill
- srm-checkSkill
- stakeholder-communicationSkill
- stress-testSkill
- switch-datasetSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 19 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈19
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Before executing, check .knowledge/learnings/index.md for relevant entries:
- Distinctive: line 23
Read the file. If it doesn't exist or is empty, skip silently.
- Distinctive: line 25
If entries exist, incorporate them as constraints or context for this execution.
- Distinctive: line 26
Never block execution if learnings are unavailable.
- Distinctive: line 30
Every analytical question climbs four rungs:
- Distinctive: line 39
The rule: Never start analyzing data until you can state all four rungs.
- Distinctive: line 45
Ask: "What will you DO differently based on the answer?"
- Distinctive: line 46
If the answer is "nothing" or "I'm just curious" → this is reporting, not analysis.
- Distinctive: line 49
If the answer is a specific action → you have a decision.
- Distinctive: line 52
Ask: "How will you know the analysis answered your question?"
- Distinctive: line 54
Not vague: "We'll understand our users better"
- Distinctive: line 58
Ask: "What do you think is happening, and why?"
- Distinctive: line 64
Ask: "What data do we need, and do we have it?"
- Distinctive: line 66
Check if the data exists by reviewing schema documentation (don't query the database - just check availability)
- Distinctive: line 68
Document what CAN and CANNOT be answered with available data
- Very specific: line 71
Write the brief using the template below.
- Distinctive: line 72
DO NOT proceed to analysis after writing the brief
- Distinctive: line 73
DO NOT run SQL queries or call analysis agents
- Distinctive: line 88
When multiple questions emerge, prioritize:
- Distinctive: line 195
During analysis: check the spec before each major step: are you still answering the stated question?
- Distinctive: line 199
After analysis: verify the deliverable matches field 6 and the success criteria in field 7 are met.
≈ “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.
Files
Skill: Question Framing
Purpose
Structure analytical questions using the Question Ladder framework so every analysis starts with a clear decision context, measurable success criteria, and testable hypotheses.
When to Use
Apply this skill when starting any new analysis, when a user asks a vague question ("How are we doing?"), or when an analysis request lacks decision context. Always frame before analyzing.
Instructions
Pre-flight: Load Learnings
Before executing, check .knowledge/learnings/index.md for relevant entries:
- Read the file. If it doesn't exist or is empty, skip silently.
- Scan for entries under "Question Framing" and "General" headings (or related categories like "Business Context", "Methodology Notes").
- If entries exist, incorporate them as constraints or context for this execution.
- Never block execution if learnings are unavailable.
The Question Ladder
Every analytical question climbs four rungs:
GOAL → What business outcome are we trying to achieve?
DECISION → What specific decision will this analysis inform?
METRIC → What will we measure to inform that decision?
HYPOTHESIS → What do we expect to find, and why?The rule: Never start analyzing data until you can state all four rungs. If the requester only gives you a goal ("improve retention"), your first job is to climb the ladder before touching data.
Framing Process
Step 1: Extract the decision Ask: "What will you DO differently based on the answer?"
- If the answer is "nothing" or "I'm just curious" → this is reporting, not analysis. Offer two paths:
- Path A: Quick stat/dashboard (if truly no decision)
- Path B: Clarify decision context first, then frame properly
- If the answer is a specific action → you have a decision. Proceed to Step 2.
Step 2: Define success criteria Ask: "How will you know the analysis answered your question?"
- The answer should be specific: "If conversion rate dropped >10% in segment X, we'll prioritize a fix"
- Not vague: "We'll understand our users better"
- Success criteria should include specific thresholds, conditions, or decision rules
Step 3: Form testable hypotheses Ask: "What do you think is happening, and why?"
- Good: "I think mobile conversion dropped because the checkout redesign broke on small screens"
- Bad: "I think things are bad"
- Extract hypotheses from vague statements - e.g., "cart abandonment is high" → "abandonment >20% due to checkout friction at payment stage"
Step 4: Identify data requirements Ask: "What data do we need, and do we have it?"
- Map each hypothesis to specific metrics, segments, and time ranges
- Check if the data exists by reviewing schema documentation (don't query the database - just check availability)
- Flag gaps early: "We need funnel step events, but only have order status"
- Document what CAN and CANNOT be answered with available data
Step 5: Produce the Question Brief
Write the brief using the template below. Save it to question_brief.md in the working folder, or present it inline.
- DO NOT proceed to analysis after writing the brief
- DO NOT run SQL queries or call analysis agents
- Hand off to the next phase (exploration/analysis) after the brief is approved
Good vs. Bad Questions
| Bad Question | Problem | Good Question |
| "How are our users doing?" | No decision context, unmeasurable | "Did the onboarding redesign improve Day-7 retention for new users?" |
| "Analyze our funnel" | No hypothesis, no scope | "Where in the signup-to-purchase funnel are we losing the most users, and does it differ by acquisition channel?" |
| "What's our conversion rate?" | Reporting, not analysis | "Why did conversion rate drop 15% in March, and is it affecting all segments equally?" |
| "Tell me about churn" | Too broad, no decision | "Which user segments have the highest 90-day churn rate, and what behaviors predict churn in the first 30 days?" |
| "Is our product doing well?" | Unmeasurable, no comparison | "How does our monthly active user growth compare to Q3, and which features are driving engagement?" |
Impact × Feasibility Prioritization
When multiple questions emerge, prioritize:
HIGH IMPACT
│
┌─────────────┼─────────────┐
│ DO FIRST │ PLAN FOR │
│ (Quick win) │ (Strategic) │
HIGH │ │ │
FEASIBILITY ──────────────┼──────────────── LOW
│ │ │ FEASIBILITY
│ DO IF TIME │ SKIP │
│ (Nice to have)│ (Not worth) │
└─────────────┼─────────────┘
│
LOW IMPACTImpact criteria:
- Revenue/cost implication >$100K → High
- Affects >10% of users → High
- Informs a decision being made this quarter → High
- Curiosity-driven, no pending decision → Low
Feasibility criteria:
- Data exists and is clean → High
- Can be answered in <4 hours → High
- Requires new instrumentation → Low
- Requires data from another team → Low
Output Format: Question Brief (Ladder + Analysis Design Spec)
The Question Brief is the concrete artifact the Ladder produces. Climb the
Ladder first, then fill the seven spec fields. Every field is required; if you
cannot fill one, ask the user. Save it to question_brief.md in the working
folder (or present it inline for quick asks).
# Question Brief: [Title]
## Date: [YYYY-MM-DD]
### Business Context
[2-3 sentences: what's happening, why this matters now]
### The Question Ladder
| Rung | Statement |
|------|-----------|
| **Goal** | [Business outcome] |
| **Decision** | [Specific action this informs] |
| **Metric** | [What we'll measure] |
| **Hypothesis** | [What we expect to find and why] |
### 1. Question
What are we trying to answer?
[A specific, testable question, sharpened from the Ladder]
### 2. Decision
What will this analysis inform?
[A concrete action the team will take based on the answer]
[If the answer is "nothing specific", this may be reporting, not analysis. Confirm with the user.]
### 3. Data Needed
| Data | Source | Available? | Notes |
|------|--------|-----------|-------|
| [metric/field] | [table/system] | Yes/No/Partial | [gaps, quality concerns] |
### 4. Dimensions
What should we segment or decompose by?
- [Dimension 1]: [why: what would different values tell us?]
- [Dimension 2]: [why]
- [Dimension 3]: [why]
### 5. Time Range & Granularity
- **Period:** [start date to end date]
- **Granularity:** [daily / weekly / monthly]
- **Comparison:** [vs. prior period / vs. same period last year / vs. benchmark]
### 6. Output Format
What deliverable does the user need?
- [ ] Quick answer (1-2 sentences + supporting number)
- [ ] Analysis report (structured findings with charts)
- [ ] Presentation deck (slides for stakeholders)
- [ ] Data table (for further analysis by the user)
### 7. Success Criteria
How will we know the analysis answered the question?
[Specific, falsifiable conditions, e.g. "Identify which segment drove >50% of the decline"]
### Priority
- **Impact:** [High/Medium/Low, with justification]
- **Feasibility:** [High/Medium/Low, with justification]
- **Recommendation:** [Do First / Plan For / Do If Time / Skip]Using the Spec
Scope calibration. Match spec depth to the request. A number pull gets 1-2 sentences per field and fits on one screen; a monitoring ask gets a medium spec; an exploration or deep dive gets full sections with sub-bullets. Never let the spec become a blocker for quick pulls.
Before analysis: present the brief. If the decision was unstated or the spec exposed a gap, stop and confirm before running queries; if the request arrived clearly framed, confirm the framing in a sentence and proceed. The spec often reveals data gaps, scope mismatches, or missing context; catching them upfront saves hours of rework.
During analysis: check the spec before each major step: are you still answering the stated question? If something more interesting appears, note it as a follow-up but finish the original question first.
After analysis: verify the deliverable matches field 6 and the success criteria in field 7 are met; if not, note what is missing and why.
Writing rules for the spec fields:
- Dimensions must be justified; do not segment by everything. Each dimension needs a reason ("different devices have different UX, so conversion may differ").
- Success criteria must be falsifiable. "Good analysis" is not a criterion; "identify the segment responsible for >50% of the change" is.
- Output format must match the audience: an executive gets a deck, a data scientist gets a table, a PM gets an analysis report.
Examples
Example 1: Vague → Well-framed
Incoming request: "Can you look at our signup numbers?"
Reframed:
| Rung | Statement |
| Goal | Increase new user signups by 20% in Q1 |
| Decision | Should we invest in fixing the mobile signup flow or increasing top-of-funnel traffic? |
| Metric | Signup completion rate by device type + traffic source conversion rate |
| Hypothesis | Mobile signup completion rate is <50% of desktop because the form doesn't render properly on small screens. Fixing mobile is higher ROI than more traffic. |
Example 2: Curiosity → Decision-driven
Incoming request: "I'm curious about our power users"
Reframed:
| Rung | Statement |
| Goal | Increase the percentage of users who become power users (>10 sessions/month) |
| Decision | Which onboarding interventions should we prioritize to convert casual → power users? |
| Metric | Behaviors in first 7 days that predict power user status at Day 30 |
| Hypothesis | Users who complete the tutorial AND create a project in their first session are 3x more likely to become power users. The tutorial completion rate is only 23%. |
Example 3: Broad → Scoped
Incoming request: "Analyze our churn"
Reframed:
| Rung | Statement |
| Goal | Reduce 90-day churn from 35% to 25% |
| Decision | Which segment's churn should we tackle first — low-engagement users or users who hit a specific friction point? |
| Metric | 90-day churn rate by: (a) engagement tier in first 30 days, (b) last feature used before churning |
| Hypothesis | Users who never use Feature X churn at 2x the rate of users who do. Feature X has a discoverability problem, not a value problem. |
Anti-Patterns
- Never start analyzing before framing — "just pulling some numbers" without a question leads to interesting-but-useless findings. Produce the Question Brief FIRST, then hand off to analysis.
- Never accept "just curious" as the decision — Push for "what would you do differently?" If the answer is truly nothing, offer Path A (quick stat) or Path B (clarify decision context first).
- Never frame questions with implied answers — "Can you prove that Feature X works?" is not a question, it's confirmation bias. Reframe as "What is the impact of Feature X on [metric]?"
- Never frame questions too broadly — "How are we doing?" needs scoping. What metric? What time range? Compared to what?
- Never skip the hypothesis — Hypotheses prevent fishing expeditions and give you something specific to test.
- Never proceed without clarifying vague requests — If you don't understand the decision context, ask clarifying questions iteratively until you do. Don't guess or assume.
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
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.

