Every session starts with a prompt. That prompt is infinite — it can mean anything, go anywhere, expand without bound. XFFI intercepts before any work starts and produces a finite MECE spec sheet: bounded limbs (WHAT/WHO/HOW), recursive discovery to terminals, every node atomic and non-overlapping. The rest of XF executes against that spec. Without XFFI, you're enforcing execution on undefined intent. With it, done is defined before work begins.
Connect with GitHub — it's freeXFFI is the first module in the stack. Before XFTD routes a tool, before XFBA checks a contract, before XSIA maps impact — XFFI produces the spec every other module executes against. You can't enforce what you haven't defined. XFFI defines it.
XFFI decomposes your intent into three bounded limbs: WHAT (the deliverable), WHO (the user or system it serves), HOW (the method of delivery). Each limb is recursively explored until every node is atomic. Nothing leaks between boundaries. Nothing is double-counted. The result is a finite set of terminals — not a roadmap, not a backlog, a closed list.
The output isn't a plan. It's a spec sheet: a finite list of binary outcomes the implementation must satisfy. Each terminal is a verifiable condition — met or not met. XFDB reads this spec at ship time and enforces it mechanically. XFFI defines done. XFDB proves it.
XFFI invokes the Xpansion recursive decomposition engine first. If the engine returns invalid or incomplete boundaries, XFFI falls back to Claude-native MECE analysis — same structure, same rigor, same output format. The spec is always produced, regardless of engine state.
The spec writes to docs/superpowers/specs/ in XFDB-compatible format. Run /xfdb after building — it reads the spec, checks every terminal, and closes the loop. Intent defined here. Delivery verified there. The full XF contract in two commands.
You state your intent — /xffi fires.
Xpansion engine attempts full MECE decomposition: WHAT/WHO/HOW boundaries.
If engine returns invalid output: Claude-native MECE fallback runs.
Completeness check: every limb populated, every terminal atomic and non-overlapping.
Spec saved to docs/superpowers/specs/YYYY-MM-DD-xffi.md — XFDB-compatible format.
Session context set: all subsequent XF modules execute against this spec.