scope
Skill40 starsChanged 6 months agoMITView on GitHub
Force the wedge question: smallest thing buildable this week that proves the core value. Require binary success criteria. Push vague answers to unknowns.md as HIGH so they surface in every future Session Brief.
42 other projects use a version of this.
Adopted by
Most recently taken up by
- sanmidable/skillstheir own version, first seen Nov 8, 2026
- lilly-builds/senior-engineer-modetheir own version, first seen Nov 8, 2026
- Kreycin/scopetheir own version, first seen Nov 8, 2026
- mblauberg/provenanttheir own version, first seen Nov 8, 2026
- 0xUrsanomics/utopia-ostheir own version, first seen Nov 1, 2026
- fynnhaupt/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use frames, develop and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
sanmidableSkillframes
Also in 3 projects that use this
hong9LeeSkilldevelop
빌드, 아키텍처, git 관련 작업 시 OMS MSA 공통 인프라 규칙을 적용한다. 기술 스택, 빌드 명령, 헥사고날 아키텍처 구조, git 워크플로우, AI Context 동기화 규칙을 다룬다. 코드 작성 컨벤션은 /convention, 테스트 컨벤션은 /test-guide 스킬을 참조.
Also in 6 projects that use this
minhtran3124Skillvisual
Skill graph visualizer — scans all SKILL.md files in skills/, builds a directed relationship graph from explicit `relationships` frontmatter (falling back to content inference), and generates both a Mermaid markdown summary and an interactive HTML graph at .docs/skill-graph.html. Trigger: /visual
Also in 3 projects that use this
MicrosoftSkillsync
Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.
Also in 7 projects that use this
nicolasestremSkilldocument
Create focused documentation for specific components or features
Also in 5 projects that use this
Skeln-ioSkillcopy
Direct response copywriting using proven frameworks. Brand-aware — reads ICP, voice, and tone from your brand config. Covers product descriptions, SEO meta, email, social, press angles.
Also in 3 projects that use this
Other versions42 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 42
- jsmastery-pro/skills★ 1.4ksame name
- suboss87/FDEOps★ 940same name
- AlexZio00/sovereign-skills★ 157same name
- crisandrews/ClawCode★ 64same name
- raphaelsalaja/skills★ 62same name
- YuriNachos/claude-scope★ 11same name
- jack4world/auditstack★ 9same name
- Kreycin/scope★ 4same name
- klmiing1229-a11y/Vague_Goal_To_Clear_Plan★ 3same name
- WhorideChicken/first-playable★ 3same name
32 more not listed
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 repository8 other files it gives its agents.
- customer-contextSkill
- discoverySkill
- engagement-retroSkill
- integrateSkill
- learningsSkill
- pocSkill
- triageSkill
- value-frameSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 11 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 39 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
If no customer name is provided: ask "Which customer?
- Distinctive: line 27
If no problem statement is provided: ask "What problem are we scoping?
- Very specific: line 49
If MARKER_MISSING=true or MARKER_STALE=true:
- Distinctive: line 53
Stop. Do not proceed.
- Distinctive: line 78
If any past learning seems relevant to the problem statement (similar tech stack, similar customer type, similar problem shape), note it: …
- Distinctive: line 82
Read in this order:
- Distinctive: line 103
If the scope is too big, push back once: "That's a quarter, not a week.
- Distinctive: line 113
If the criteria are vague, push back once: "How will we know we succeeded?
- Distinctive: line 115
After at most one pushback per dimension: take whatever you have.
- Distinctive: line 119
If after the one pushback any of these are still missing or vague, mark them for the unknowns loop:
- Very specific: line 124
No specified person/role validating success → validator is vague
- Distinctive: line 151
Default to (A) if the FDE doesn't choose.
- Very specific: line 152
Write it inline in the scope file as > [NEEDS CLARIFICATION: <description>] in the relevant section.
- Very specific: line 217
Update the ## Last Updated line in unknowns.md.
- Very specific: line 219
If no vague items were flagged, do not modify unknowns.md.
- Distinctive: line 236
If nothing staged: print "Nothing new to commit."
“Common” is measured: kept by at least 6 in 10 of the 39 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/scope
Force a tight, binary-criteria scope for a customer problem.
Step 0: Parse inputs
The customer name is the first argument. Everything after it is the problem statement.
If no customer name is provided: ask "Which customer? (e.g. /scope acme <problem statement>)"
If no problem statement is provided: ask "What problem are we scoping? Paste a one-line summary or grab it from the latest discovery file."
Set CUSTOMER_NAME from the first argument.
Step 1: Check session marker
MARKER="/tmp/fdestack-session-$CUSTOMER_NAME"
if [ -f "$MARKER" ]; then
MARKER_TS=$(grep '^ts=' "$MARKER" | cut -d= -f2)
NOW=$(date +%s)
AGE=$(( NOW - MARKER_TS ))
if [ "$AGE" -lt 43200 ]; then
echo "MARKER_OK=true"
else
echo "MARKER_STALE=true AGE_H=$(( AGE / 3600 ))"
fi
else
echo "MARKER_MISSING=true"
fiIf MARKER_MISSING=true or MARKER_STALE=true:
Run
/customer-context $CUSTOMER_NAMEfirst, then retry /scope. (Context must be loaded this session to ensure you're working with current information.)
Stop. Do not proceed.
Step 2: Verify discovery has run
DISCOVERY_COUNT=$(ls customers/$CUSTOMER_NAME/discovery-*.md 2>/dev/null | wc -l | tr -d ' ')
echo "DISCOVERY_COUNT=$DISCOVERY_COUNT"If DISCOVERY_COUNT=0:
No discovery file found for $CUSTOMER_NAME. /scope needs a discovery first so we know what the customer actually said. Run /discovery $CUSTOMER_NAME
<transcript>or paste call notes, then retry /scope.
Stop. Do not proceed.
Step 3: Load cross-customer learnings
LEARNINGS_FILE="$HOME/.fdestack/learnings.jsonl"
if [ -f "$LEARNINGS_FILE" ] && [ -s "$LEARNINGS_FILE" ]; then
tail -5 "$LEARNINGS_FILE" | jq -r '"[learning] " + .key + ": " + .insight' 2>/dev/null || true
fiIf any past learning seems relevant to the problem statement (similar tech stack, similar customer type, similar problem shape), note it: "Prior learning: [x] — watch for this pattern here."
Step 4: Load context
Read in this order:
customers/<name>/profile.md— what kind of company this iscustomers/<name>/stack.md— what they have to work with- The most recent
customers/<name>/discovery-*.md(sort by filename, take last) — what they said they want customers/<name>/unknowns.md— what we don't yet knowcustomers/<name>/scope-*.md(if any prior scopes exist) — what we've already scoped
Step 5: Force the wedge question
The problem statement from Step 0 is the starting point. Now force the wedge:
What is the smallest thing we can build this week that proves the core value?
The FDE answers. Analyze the answer along two dimensions:
Dimension 1 — Is the scope actually small?
- "Build the whole product" → not small
- "Get one end-to-end happy path working with hardcoded inputs" → small
- "Make a Slack bot that answers any question over Confluence" → not small
- "Make a Slack bot that answers questions tagged with a specific Confluence space, hardcoded retrieval, no auth" → small
If the scope is too big, push back once: "That's a quarter, not a week. What's the absolute minimum slice that proves the value? Pretend you have 3 days, what would you build?"
Dimension 2 — Are the success criteria binary?
- "It feels faster" → not binary
- "Users say it's better" → not binary (subjective)
- "Query latency p95 under 2 seconds on 100 sample queries" → binary
- "Demo answers 8/10 hand-picked test questions correctly" → binary
- "Maya can use it without asking us a question for a full day" → binary
- "Tom signs off on the ACL-handling design" → binary
If the criteria are vague, push back once: "How will we know we succeeded? What's the pass/fail check we'd run on Friday?"
After at most one pushback per dimension: take whatever you have.
Step 6: Identify vague items for the unknowns loop
If after the one pushback any of these are still missing or vague, mark them for the unknowns loop:
- Success criteria still not binary →
criteriais vague - "Explicitly out of scope" is empty or evasive ("we'll figure it out") →
out-of-scopeis vague - Estimated build time is "I don't know" or unrealistic for a one-week wedge →
estimateis vague - No specified person/role validating success →
validatoris vague
For each vague item, before silently routing it to unknowns.md, use AskUserQuestion to give the FDE one last chance to resolve it. The decision brief format:
D<N> — <item label> is still vague after one pushback
ELI10: <plain English of what's vague and why it matters>
Stakes if we pick wrong: Vague <item> means the <POC|value frame|customer
conversation> can't be defended. The customer will ask the same question we
should have answered before starting work.
Recommendation: Push to unknowns.md HIGH — this is what the unknowns loop
is for, and resolving it now would burn the rest of the scoping session.
Pros / cons:
A) Push to unknowns.md HIGH (recommended)
✅ Preserves momentum — scope file ships now with [NEEDS CLARIFICATION]
✅ Audit trail via [scope-<date>] tag — surfaces every /customer-context
❌ FDE has to come back to resolve before /poc or customer conversation
B) Stop and resolve now
✅ Scope ships clean with no [NEEDS CLARIFICATION] markers
❌ Pulls the FDE into a sub-discovery that may not yet have inputs
C) Force the scope through as-is (no flag, no unknown)
✅ Fastest path to a scope file
❌ Hides the gap — vague criteria silently become real defects later
Net: Path A is the unknowns loop doing its job; B is the right move when
the answer is reachable in this session; C is almost never right.Default to (A) if the FDE doesn't choose. For each vague item the FDE confirms (A):
- Write it inline in the scope file as
> [NEEDS CLARIFICATION: <description>]in the relevant section. - Append it to
customers/<name>/unknowns.mdunder## HIGH — Unknown, Blockingwith format:- [scope-<date>] <description> — need answer to proceed past POC.
For (B): pause Step 7, ask the FDE the specific clarifying question, fold the answer back in, and re-check. For (C): write the scope file without the flag, but log this in decisions.md as "FDE explicitly accepted <item> as vague — no audit trail" so the next session sees it.
This ensures vague items surface in every future Session Brief until resolved, but gives the FDE the choice rather than railroading.
Step 7: Write the scope file
Set SCOPE_DATE=$(date +%Y-%m-%d). Determine target file with collision handling (same pattern as /discovery):
SCOPE_FILE="customers/$CUSTOMER_NAME/scope-$SCOPE_DATE.md"
if [ -f "$SCOPE_FILE" ]; then
i=2
while [ -f "customers/$CUSTOMER_NAME/scope-$SCOPE_DATE-$i.md" ]; do
i=$((i + 1))
done
SCOPE_FILE="customers/$CUSTOMER_NAME/scope-$SCOPE_DATE-$i.md"
fiSet FDE_NAME="$(git config user.name)". Write:
# Scope: <one-line problem title>
**Date:** <SCOPE_DATE>
**FDE:** <FDE_NAME>
**Problem source:** <discovery-YYYY-MM-DD.md or "ad-hoc">
## Problem Statement (one sentence)
<the problem in one sentence — no compound clauses>
## Smallest Provable Value
<what we'll build this week. Concrete artifact. Not a goal — a thing>
## Success Criteria (binary)
- [ ] <pass/fail check 1>
- [ ] <pass/fail check 2>
<or, if vague:>
> [NEEDS CLARIFICATION: success criteria not yet binary — see unknowns.md]
## Explicitly Out of Scope
- <thing we are NOT doing this week>
- <thing we are NOT doing this week>
## Risks
- <what could derail this — technical, organizational, or schedule>
## Estimated Build Time
<hours or days — e.g., "2 dev-days, 1 review-day">
## Validator
<who decides this passes/fails — name or role>Step 8: Update unknowns.md if needed
For each vague item from Step 6, append a line to customers/<name>/unknowns.md under the ## HIGH — Unknown, Blocking section. Format:
- [scope-<SCOPE_DATE>] <description> — need answer to proceed past POC.Update the ## Last Updated line in unknowns.md.
If no vague items were flagged, do not modify unknowns.md.
Step 9: Commit
Show what will be committed:
git status --short -- "customers/$CUSTOMER_NAME/"Then commit (no confirmation prompt — the FDE just reviewed the scope file content):
git add "customers/$CUSTOMER_NAME/"
git commit -m "scope: $CUSTOMER_NAME $SCOPE_DATE"If nothing staged: print "Nothing new to commit."
Step 10: Summary
Print:
Scope written: <SCOPE_FILE>
Success criteria: <N binary checks> | <"vague — pushed to unknowns.md" if applicable>
Estimated build: <time>
Validator: <name/role>
[if any items pushed to unknowns.md]
Unresolved blockers added to unknowns.md (HIGH):
- <each vague item>
Next: /poc $CUSTOMER_NAME (after the vague items above are resolved)Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

