Skip to main content

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で見る