fpf
Apply First Principles Framework (FPF) reasoning — principled problem design, variant generation, and evidence-based decisions.
ソース情報
- リポジトリ
- m0n0x41d/claude-code-fpf
- ソースの最終更新活動
- 2026年3月12日 08:07
- 検出された SKILL.md の言語
- 英語
- スター
- 11
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SKILL.md を表示中
SKILL.md
ソースの指示 · 読み取り専用プレビュー- name
- fpf
- description
- Apply First Principles Framework (FPF) reasoning — principled problem design, variant generation, and evidence-based decisions.
- argument-hint
- [task, decision, ambiguity, architecture question, or management problem]
# FPF — First Principles Framework
FPF is a systems thinking methodology by Anatoly Levenchuk. This skill gives you its operational core — apply it to reason about problems, solutions, and decisions.
---
## When to invoke
Use this skill when at least one is true:
- the task is ambiguous or badly framed;
- the choice is architectural, organizational, strategic, or hard to reverse;
- multiple stakeholders or viewpoints matter;
- you need to compare serious alternatives;
- acceptance is unclear and must be designed;
- you must separate target system from creator system;
- overloaded words (`process`, `service`, `function`, `quality`, `done`, `validated`) are causing confusion;
- you need an ADR/DRR-like rationale, parity plan, evidence pack, or explicit selection policy.
Do **not** invoke for tiny local edits with explicit acceptance and low blast radius.
---
## Depth calibration
Before starting, assess the scale of the request:
| Mode | When | What to do |
|------|------|------------|
| **Quick** | Tactical choices, clear trade-offs, ≤2 real options | Frame → Variants (table) → Recommendation. 1-2 paragraphs. |
| **Deep** | Architectural decisions, ambiguous problems, irreversible choices, user explicitly asks for depth | Full ADI cycle with evidence records, Pareto analysis, lifecycle stage. |
**Default is Quick.** Escalate to Deep when: the decision is hard to reverse, multiple stakeholders are affected, or the problem framing itself is unclear.
---
## What to do first
Before proposing solutions, state:
1. **Lifecycle stage** — `Explore | Shape | Evidence | Operate`
2. **Target system** — what must work in operation
3. **Creator system** — who builds/changes/operates it
4. **Context** — which bounded context defines the meaning of terms and rules
5. **Problem owner** — whose problem this is
If these are fuzzy, the task is still under-framed.
---
## Core thinking algorithm
### 1. Frame the problem BEFORE solving it
The bottleneck is **problem quality**, not solution speed. Before generating any solution:
- **State what's anomalous** — what observation doesn't fit the current model?
- **Generate ≥3 hypotheses** — genuinely distinct explanations, not variations of one
- **Identify trade-off axes** — what dimensions are in tension? (speed vs safety, generality vs performance, etc.)
- **Define acceptance criteria** — how will you know the problem is solved? Separate:
- **Optimization targets** (1-3 max) — what you're actively improving
- **Hard constraints** — must hold, binary pass/fail
- **Observation indicators** — things you monitor but don't optimize (Anti-Goodhart)
> RAG trigger: for formal problem card format → `fpf-rag search "problem card PROB"`
### 2. Characterize before comparing
Before evaluating anything, define the **characteristic space** — what dimensions matter and how they're measured. Without this, comparisons are arbitrary.
- State the **selection policy BEFORE seeing results**
- Ensure **parity** — fair comparison requires same inputs, same scope, same budget, same constraints
- Keep comparison **multi-dimensional** — never collapse into one score unless the fold is explicit and justified
> RAG trigger: for characterization templates → `fpf-rag search "characterization CHR"`
### 3. Generate genuinely distinct variants
- Produce **≥3 variants** that differ in **kind**, not degree
- For each variant, assess quality as **multi-dimensional** (NQD) — never collapse to a single score
- Identify each variant's **weakest link** (WLNK) — the component that bounds overall quality
- Preserve **1-2 stepping stones** — variants that open future possibilities even if not optimal now
- If a more complex option adds moving parts, justify the added weak links (**MONO**)
- At comparable budgets, prefer methods with **better scaling slopes** over hand-tuned solutions (**BLP**)
> RAG trigger: for NQD assessment rules → `fpf-rag search "NQD variant quality"`
### 4. Select from the Pareto front
- Hold the **Pareto front** — don't discard non-dominated options prematurely
- Select using the pre-declared policy
- Record which variants were non-dominated and why the chosen one wins
> RAG trigger: for formal selection procedure → `fpf-rag search "selection policy SEL Pareto"`
### 5. Test against reality
- **Predict before testing** — state what you expect to observe if the hypothesis is correct AND if it's wrong
- **Record evidence** — commands run, outputs observed, interpretation
- **Assess confidence** — using F-G-R:
- **F** (Formality): how rigorous is the method? (ordinal, min across chain)
- **G** (ClaimScope): what exactly does the claim cover? (set-valued, NOT ordinal)
- **R** (Reliability): how likely is the claim true? ([0,1], min across chain)
- **Close the loop** — evidence either corroborates or refutes. If refuted, update the problem framing and iterate.
- Record: what was predicted, checked, observed, what changed in confidence, what remains unknown, when evidence goes stale.
No induction without prior deduction. No deduction without prior abduction.
> RAG trigger: for evidence record format → `fpf-rag search "evidence record EVID F-G-R"`
---
## Reasoning cycle (ADI)
All thinking follows: **Abduction → Deduction → Induction**
| Phase | What happens | Output |
|-------|-------------|--------|
| **Abduction** | Generate hypotheses, frame problems, propose explanations | Problem cards, anomaly records, candidate hypotheses |
| **Deduction** | Derive predictions, define what MUST follow if hypothesis is true | Falsifiable predictions, acceptance specs, logical consequences |
| **Induction** | Test predictions against evidence, update confidence | Evidence records, corroboration/refutation, confidence update |
---
## Lifecycle stages
Every artifact progresses: **Explore → Shape → Evidence → Operate**
| Stage | Activity | ADI phase |
|-------|----------|-----------|
| **Explore** | Generate possibilities, brainstorm, question assumptions | Abduction |
| **Shape** | Select direction, define architecture, ensure internal consistency | Deduction |
| **Evidence** | Test against reality, validate claims, measure performance | Induction |
| **Operate** | Deploy, monitor, maintain | Continuous induction |
Always state which stage you're in. Don't skip stages.
---
## Key distinctions (always maintain)
- **Object ≠ Description ≠ Carrier** — the system, its spec, and its implementation are three different things
- **Plan ≠ Reality** — a model is not the thing it models
- **Role ≠ Capability ≠ Method ≠ WorkPlan ≠ Work**
- **Design-time ≠ Run-time** — planning and modeling vs acting and observing
- **Promise/commitment ≠ delivery/work**
- **Target system ≠ creator system**
**Resolve overloaded words:**
- `process` → resolve into: Role | Capability | Method | WorkPlan | Work
- `service` → resolve whether it means: promise clause, provider, access point, method, or work
**Commensurability (CL 0-3)** — before comparing two things, assess how comparable they are:
- 0 = Opposed (contradictory frames)
- 1 = Comparable (same domain, different frameworks)
- 2 = Translatable (systematic mapping exists)
- 3 = Near-identity (same framework, minor differences)
---
## Core invariants
- **WLNK** — System quality = min(component qualities). The weakest link bounds the whole. Always identify it.
- **MONO** — Improving a part cannot worsen the whole. Adding a part adds a new potential weak link — justify the cost.
- **IDEM** — Evaluating a single element in isolation must return that element unchanged (no accidental upgrade/downgrade).
- **COMM/LOC** — For independent components, evaluation order and location don't matter. When dependencies exist, order matters and must be controlled.
---
## Coding-agent interpretation
### Small code task
If the task is local and clear:
- identify the changed object;
- make the smallest reversible diff;
- run the cheapest relevant checks first;
- state what changed in reality, not just in text.
### Architecture / design task
If the task affects interfaces, data, deployment, observability, reliability, security, cost, or team topology:
1. define the **concept of use** first (actors, scenarios, boundary, value);
2. then define the **system concept** (major parts and why);
3. then capture **architecture decisions** with rationale and trade-offs;
4. only then move to implementation details.
### Engineering-management task
If the task is about planning, delegation, backlog, governance, roadmap, release policy, staffing, or process change:
- distinguish **problematization** from **strategizing**;
- define the problem as a **checkable acceptance spec**;
- manage a **portfolio of problems**, not a random queue;
- make explicit who decides, who executes, and what evidence will count.
---
## Human in the loop
Escalate to the human before acting when the task:
- changes product scope, market commitment, pricing, or external promises;
- is hard to reverse;
- affects security, legal, privacy, compliance, or finance materially;
- changes public interfaces or deletes data;
- changes autonomy budgets, authority, or team responsibilities;
- requires choosing between competing values, not just technical trade-offs.
When escalating, present: the problem, viable variants, selection policy, current recommendation, and main uncertainty.
---
## Anti-patterns to stop immediately
- Solving before framing
- Comparing before characterizing
- Using one KPI as the truth
- Hiding value choices inside technical language
- Treating a spec as proof of execution
- Treating a document or API as the acting system
- Testing without predictions (data dredging)
- Claiming "verified" without recorded evidence
- Relying on context-less labels
- Using FPF as ceremony instead of decision support
---
## Output template
Structure your response using this template. In Quick mode, compress to the essential sections.
```
## Stage
<Lifecycle stage: Explore | Shape | Evidence | Operate>
## Target system / creator system / context
## Problem
<What's anomalous or unclear. One paragraph.>
## Acceptance / constraints / indicators
## Hypotheses
1. <Hypothesis A> — <why it could be true>
2. <Hypothesis B> — <why it could be true>
3. <Hypothesis C> — <why it could be true>
## Variants
| Variant | <Axis 1> | <Axis 2> | <Axis 3> | Weak link |
|---------|----------|----------|----------|-----------|
| A. ... | ... | ... | ... | ... |
| B. ... | ... | ... | ... | ... |
| C. ... | ... | ... | ... | ... |
## Selection
**Policy:** <what matters most and why>
**Recommendation:** <which variant and why>
**Stepping stone:** <what option to preserve for the future, if any>
**Revisit when:** <trigger condition to reconsider this decision>
## Evidence / uncertainty
<What was checked, what remains unknown, when evidence goes stale>
## Next action
<Concrete step to take now>
```
In **Quick mode**, the minimum viable output is: Problem (1-2 sentences) → Variants (table) → Recommendation + Next action.
In **Deep mode**, include all sections plus: ADI phase labels, F-G-R confidence assessments, evidence records.
---
## RAG search reference
The above is enough for applying FPF reasoning. Search `fpf-rag` when you need formal templates, deep definitions, conformance checklists, aggregation rules, or specific patterns (A.*/B.*).
```bash
# Quick search
~/.claude/skills/fpf/references/fpf-rag search "<query>"
# Full section content
~/.claude/skills/fpf/references/fpf-rag search "<query>" --full
# Specific section by heading
~/.claude/skills/fpf/references/fpf-rag section "<heading>"
```
---
## Concept index (search terms)
**Problem design:** problem card, PROB, anomaly, ANOM, characterization, CHR, problem portfolio, PPORT, goldilocks, trade-off axes, acceptance spec
**Solution design:** SoTA survey, SOTA, strategy card, STRAT, method family, invalidation conditions, solution portfolio, SPORT, variant generation, NQD, stepping stones
**Selection:** Pareto front, selection policy, SEL, parity plan, PAR, fair comparison, Pareto analysis
**Evidence:** evidence record, EVID, predictions, corroboration, refutation, F-G-R, assurance level, L0, L1, L2
**Decisions:** decision record, DRR, irreversible, rollback plan, options, rationale
**Aggregation:** Gamma, fold, Quintet, IDEM, COMM, LOC, WLNK, MONO, weakest link, cutset
**Reasoning:** ADI cycle, abduction, deduction, induction, explore, shape, evidence, operate, lifecycle
**Comparison:** commensurability, CL 0-3, bridge matrix, translation, near-identity, opposed
**Systems:** target system, creator system, concept of use, system concept, architecture decisions, service polysemy, PromiseContent
GitHubで見る