Source profileQuality 91/100

OpenDigitalProductFactory/opendigitalproductfactory/packages/dpf-skill-pack/skills/dpf-decision-via-kernel/SKILL.md

dpf-decision-via-kernel

Use when working in the DPF codebase and facing an open question with 2+ architecturally-distinct options. Maps each option to the closed PRINCIPLE_DIMENSIONS registry, invokes the principle_decide MCP tool, surfaces the contribution ledger to the operator, and defers if a commandment conflict is flagged. Composes with dpf-brainstorming as the predecessor step.

Source repository stars
13
Declared platforms
0
Static risk flags
1
Last source update
2026-08-25
Source checked
2026-08-25

Decision brief

What it does: where it fits

When you face an open question with 2+ architecturally-distinct options inside the DPF codebase, do not pick by gut. Map each option to the closed PRINCIPLEDIMENSIONS registry, call the principledecide MCP tool, and surface the contribution ledger to the operator. This is "What…

Best for

  • Authoring a spec and dpf-brainstorming produced 2-3 candidate approaches.
  • Reviewing a design doc with open questions in §X.
  • Mid-implementation choice: refactor vs special-case, schema migration shape A vs B, tool surface async vs sync, eager vs lazy materialization.

Not for

  • The decision is purely empirical (perf benchmark, security audit, load test). Use evidence, not principles.
  • The decision is operator-only (business strategy, naming, branding). Surface the trade-off; let the operator decide.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/OpenDigitalProductFactory/opendigitalproductfactory --skill "packages/dpf-skill-pack/skills/dpf-decision-via-kernel"
Safe inspection promptEditorial

Inspect the Agent Skill "dpf-decision-via-kernel" from https://github.com/OpenDigitalProductFactory/opendigitalproductfactory/blob/82c0d248d6bdaf0ea83dfdbdd785c771ffa0acaa/packages/dpf-skill-pack/skills/dpf-decision-via-kernel/SKILL.md at commit 82c0d248d6bdaf0ea83dfdbdd785c771ffa0acaa. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    When to use

    Authoring a spec and dpf-brainstorming produced 2-3 candidate approaches.

    Authoring a spec and dpf-brainstorming produced 2-3 candidate approaches.Reviewing a design doc with open questions in §X.Mid-implementation choice: refactor vs special-case, schema migration shape A vs B, tool surface async vs sync, eager vs lazy materialization.
  2. 02

    When NOT to use

    The decision is purely empirical (perf benchmark, security audit, load test). Use evidence, not principles.

    The decision is purely empirical (perf benchmark, security audit, load test). Use evidence, not principles.The decision is operator-only (business strategy, naming, branding). Surface the trade-off; let the operator decide.The options are not yet enumerated. Brainstorm first (dpf-brainstorming), then return here.
  3. 03

    Read first

    Review the “Read first” section in the pinned source before continuing.

    Review and apply the “Read first” source section.
  4. 04

    Enforces

    kernel/principles/structural-verification-is-not-functional — don't claim a decision is sound because the spec compiles; verify it survives kernel scrutiny.

    kernel/principles/structural-verification-is-not-functional — don't claim a decision is sound because the spec compiles; verify it survives kernel scrutiny.kernel/principles/architecture-over-shortcuts — the kernel weights long-term maintainability highly; quick fixes consistently lose.kernel/principles/research-before-implementing — kernel consultation IS the research step for decisions where principles apply.
  5. 05

    Steps

    1. Enumerate the options. 2-4 options is the sweet spot; more than 4 dilutes the weighing. Each option needs a clear id (short slug) and a description (1-2 sentences naming what makes it distinct).

    Enumerate the options. 2-4 options is the sweet spot; more than 4 dilutes the weighing. Each option needs a clear id (short slug) and a description (1-2 sentences naming what makes it distinct).Map each option to PRINCIPLEDIMENSIONS. Score at least 3 axes per option (MCDA coverage floor, BI-1D23EC26) — prefer 4–6 for discrimination. Score each option 0.0 to 1.0 on the question "how much does this option EXHIBI…On a COST axis, higher is WORSE. blastradius, humancognitiveload, vendorlockin, businessdisruption are costs: the governing principle carries a negative weight, so a high score penalises the option. Scoring your preferr…

Permission review

Static risk signals and limitations

Reads files

low · line 42

The documentation asks the agent to read local files, directories, or repositories.

**Map each option to PRINCIPLE_DIMENSIONS.** Score **at least 3 axes per option** (MCDA coverage floor, BI-1D23EC26) — prefer 4–6 for discrimination. Score each option 0.0 to 1.0 on the question **"how much does this option EXHIBIT this axi

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars13SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
OpenDigitalProductFactory/opendigitalproductfactory
Skill path
packages/dpf-skill-pack/skills/dpf-decision-via-kernel/SKILL.md
Commit
82c0d248d6bdaf0ea83dfdbdd785c771ffa0acaa
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

DPF Decision via Kernel (WWMD)

When you face an open question with 2+ architecturally-distinct options inside the DPF codebase, do not pick by gut. Map each option to the closed PRINCIPLE_DIMENSIONS registry, call the principle_decide MCP tool, and surface the contribution ledger to the operator. This is "What Would Mark Do" (WWMD) as a tool, not a guess — and it sits in front of dpf-brainstorming whenever the brainstorm produces multiple viable options.

Surface boundary (WWMD vs WWWD). This skill is the platform-development (WWMD) decision surface — it scores against the founder kernel and is for DPF contributors and Build Studio platform work. It is not the path for a customer's business decision: those route through the Decision Perspective Gate against the organization's WWWD profile, which enforces the non-inherit boundary (a customer profile does not inherit platform business judgment as authority). The two surfaces are being consolidated so the Gate is the single governed door (BI-E1FB2307). See AGENTS.md §16 and docs/user-guide/ai-workforce/decision-perspective.md.

The org WWWD corpus is now populated at onboarding (company mission + org-overlay stance/principle pages, seeded from the chosen archetype — BI-CC64ECE4). So "what would we do?" answers from the organization's own doctrine first: gather it with dpf-retrieve-decision-context (query wiki_query for org-overlay stance/heuristic/principle pages + the company mission) and let it govern. Fall back to this kernel/WWMD path only when the org corpus is silent on the question — never substitute Mark's platform doctrine for a business call the org has its own stance on.

When to use

  • Authoring a spec and dpf-brainstorming produced 2-3 candidate approaches.
  • Reviewing a design doc with open questions in §X.
  • Mid-implementation choice: refactor vs special-case, schema migration shape A vs B, tool surface async vs sync, eager vs lazy materialization.
  • Operator asks "which way should we go on X?" with no obvious answer.

When NOT to use

  • The decision is purely empirical (perf benchmark, security audit, load test). Use evidence, not principles.
  • The decision is operator-only (business strategy, naming, branding). Surface the trade-off; let the operator decide.
  • The options are not yet enumerated. Brainstorm first (dpf-brainstorming), then return here.
  • Single-option situations. The kernel doesn't add value when there's nothing to weigh.

Read first

SourcePathWhat to extract
Dimension registrypackages/db/src/wiki-taxonomy.tsThe closed PRINCIPLE_DIMENSIONS list — every key in your feature vector must be in this list
Relevant principlesdocs/founder-kernel/wiki/principles/The kernel rules that govern this decision class (also queryable via mcp__dpf__wiki_query filtered on pageKind='principle')
ContextThe spec or design under deliberationThe actual question and what makes the options distinct

Enforces

  • kernel/principles/structural-verification-is-not-functional — don't claim a decision is sound because the spec compiles; verify it survives kernel scrutiny.
  • kernel/principles/architecture-over-shortcuts — the kernel weights long-term maintainability highly; quick fixes consistently lose.
  • kernel/principles/research-before-implementing — kernel consultation IS the research step for decisions where principles apply.

Steps

  1. Enumerate the options. 2-4 options is the sweet spot; more than 4 dilutes the weighing. Each option needs a clear id (short slug) and a description (1-2 sentences naming what makes it distinct).

  2. Map each option to PRINCIPLE_DIMENSIONS. Score at least 3 axes per option (MCDA coverage floor, BI-1D23EC26) — prefer 4–6 for discrimination. Score each option 0.0 to 1.0 on the question "how much does this option EXHIBIT this axis?" — a magnitude, never a goodness rating. You no longer need to read the registry file: the tool schema enumerates every valid key and says what a high score asserts on each.

    • On a COST axis, higher is WORSE. blast_radius, human_cognitive_load, vendor_lock_in, business_disruption are costs: the governing principle carries a negative weight, so a high score penalises the option. Scoring your preferred option blast_radius: 0.9 because it is "safe" inverts the meaning and argues against it. Score the reach, not the safety.
    • This is the structured-alignment path. Even crude scores produce much stronger signal than the semantic fallback.
    • features: {} is NOT a safe default — it usually produces a null result. The semantic fallback only fires for a principle whose dimensionVector is empty. Commandments load from Postgres with full vectors, so they always take the structured path, and a commandment-dominated consult with no features scores exactly zero on every principleinsufficientSignal: true, recommendation: null. Measured: 16.7% of the first 156 recorded consults landed there. Reserve features: {} for the rare case where core/contextual principles carry the decision.
    • Read data.signalQuality.usable before acting on data.recommendation. usable: false means the kernel abstained, not that the options tied. signalQuality.advisory names the remediation.
    • Unknown feature keys are rejected, not ignored — a typo used to score silently as zero.
    • Interface-surface changes are NOT eligible for the features: {} escape. When an option adds or changes a button, fillable field, form, or route, you must score it — interface surface is governed by remove-avoidable-failure-opportunities (§"Interface surface is failure surface"): a new control must earn its surface. Derive features the way apps/web/lib/decision/ui-surface-features.ts does — human_cognitive_load is a cost axis (negative-weighted since #1904), bought down by justification/research, long-term reuse across multiple internal outcomes, and clarification value. An unjustified new surface scores against the principle; a net removal scores favorably. "We might want it" is not justification — score it low, not no-op.
  3. Invoke principle_decide. Always pass a normalized callingSurface so the Decision Governance log can attribute the consult by client (BI-D5ACBAE2). Free-form labels ("Codex desktop", "Codex", thread titles) fragment adoption metrics — use one of:

    SurfacecallingSurface value
    Grok Build / Grok desktopgrok-desktop
    Claude Code / Claude desktopclaude-desktop
    Codex CLI / Codex desktopcodex-desktop
    Antigravityantigravity-desktop
    Build Studio phasebuild-studio
    In-portal coworkercoworker

    Optional suffix for a thread: grok-desktop:<short-slug> (e.g. grok-desktop:process-decision-gaps). Never put the full question in callingSurface.

    mcp__dpf__principle_decide({
      context: "<one-sentence framing of the question>",
      options: [
        { id: "<slug>", description: "<distinctive text>", features: { <dim>: 0..1, ... } },
        { id: "<slug>", description: "<distinctive text>", features: { <dim>: 0..1, ... } }
      ],
      callingPopulation: "in_platform_coworker" | "external_coding_agent" | "human",
      callingSurface: "grok-desktop" | "claude-desktop" | "codex-desktop" | "antigravity-desktop" | "build-studio" | "coworker" | "<surface>:<slug>",
      ringScope: [ "<one of PRINCIPLE_RING_SCOPES>" ]  // optional, defaults to universal
    })
    

    For external coding agents (Grok/Claude/Codex/Antigravity) use callingPopulation: "external_coding_agent".

  4. Read the contribution ledger. The result contains signalQuality (check this first), scores, flags, reasoning, and ledger (persistence outcome).

    • signalQuality.usable: false → there is NO verdict. Do not read recommendation (it is null). Follow signalQuality.advisory.
    • signalQuality.autonomyEligible: true → quality gates passed (high confidence, ≥3 feature axes/option, weight sensitivity stable, no commandment conflict, strong structured coverage). Only then may an agent auto-proceed without operator ratification.
    • autonomyEligible: false with usable recommendation → advisory only. Surface the ledger + autonomyBlockers (e.g. feature_coverage_weak, sensitivity_unstable). Do not unattended-execute.
    • Commandment conflict → defer/escalate; never auto-bypass.
    • ledger.recorded → if true, keep ledger.interactionId (DI-*) and continue with dpf-record-decision-outcome. If false, name ledger.reason to the operator.
    • Math identity: scoring is weighted-sum MCDA (WSM), not Saaty AHP eigenvectors. See docs/superpowers/research/2026-08-10-decision-vector-science-and-corpus-adequacy.md.
  5. Surface the ledger, not just the answer. Report chosen option, top contributors, autonomyEligible, blockers, and the DI id. Operator ratifies when autonomy is not eligible. Then run dpf-record-decision-outcome so the workroom (if any) points at the same DI.

Output template

**Kernel consultation result.**

- Question: <one sentence>
- Options considered: <id1>, <id2>, [<id3>]
- Recommendation: <winning id> (composite <score>, margin <margin>, confidence <high|low>)
- autonomyEligible: <true|false> blockers: <list or none>
- Top positive contributors: <principle name 1> (+<contribution>), <principle name 2> (+<contribution>)
- Top negative contributors: <principle name> (<contribution>)  (if any)
- Flags: <commandment conflict / feature coverage / sensitivity / weak structured / none>
- Ledger: recorded=<true|false> interactionId=<DI-… or reason>
- callingSurface: <normalized surface>
- Recommended next step: <auto-proceed | surface to operator | reframe options | defer>

If the kernel flips a default the agent had pre-decided, say so explicitly — that's the signal the consultation added value.

Guardrails

  • Never embed the full math in response prose. Render the chosen option + the top contributors; the MCP response is the audit trail.
  • Never invoke principle_decide with options you haven't enumerated. "Should we do X?" with no alternative is a no-op — the kernel needs 2+ options to weigh.
  • Never invoke with empty features AND no description. Pre-BI-3C1A6451 this produced silent all-zero alignment; post-fix the semantic fallback uses the description. An option with neither is a bug — return to step 1.
  • Never claim the kernel "agrees with you" if confidence is low. A 0.05 margin between two options is noise.
  • Never bypass on a commandment conflict. Commandments are hard rules. If one opposes the recommendation, the decision is not yours OR the kernel's to make alone — escalate.
  • Never auto-execute when autonomyEligible is false. A recommendation alone is not permission for unattended action (BI-1D23EC26).
  • Never skip this skill on a multi-option platform decision because "the hub looks empty" or "decisions aren't working". Empty-looking hubs are usually (a) looking at wiki DEC pages instead of /coworker-decisions/decisions, (b) free-form / missing callingSurface, or (c) agents never calling the tool. Call it; check ledger.recorded.
  • Never invent a free-form callingSurface. Use the normalized table above so Grok/Claude/Codex adoption is comparable.
  • Grok / progressive MCP: if principle_decide is not in the host tool list, load_tools then invoke via the host catalog. A stale host registry is not permission to decide by gut.

Worked example (2026-05-24)

The Build Studio design-time decomposition spec ended with 7 open questions. The agent invoked this skill against question 4: "Should FeatureBuild rows be created eagerly at decomposition time, or lazily on first build dispatch?"

Options enumerated:

  • eager — Create all FeatureBuild rows at decomposition; metadata-only, no sandbox claim yet.
  • lazy — Create FeatureBuild rows on first build dispatch only; lighter DB state, more dispatch-time work.

Features against PRINCIPLE_DIMENSIONS:

  • eager: { schema_grounding: 0.8, long_term_maintainability: 0.7, blast_radius: 0.3, speed_to_value: 0.6 }
  • lazy: { schema_grounding: 0.4, long_term_maintainability: 0.4, blast_radius: 0.6, speed_to_value: 0.7 }

Note the cost axis: the recommended option carries the lower blast_radius (0.3 vs 0.6). That is the correct orientation — the score states how much of the estate the option reaches, not how safe it feels. Scoring the option you favour high on a cost axis argues against it.

principle_decide returned:

  • Recommendation: eager (composite 0.62, margin 0.18, confidence high)
  • Top positive contributors: Architecture Over Shortcuts (+0.40), Schema Grounding (+0.28)
  • Flags: none
  • The kernel inverted the agent's pre-call default (which had been lazy on speed-to-value reasoning). The contribution ledger showed Architecture Over Shortcuts pulled hard enough to flip the decision — a finding the operator confirmed.

The lesson: without the consultation, the agent would have shipped the lazy approach and incurred the maintainability cost later. This skill exists so that flip happens consistently, not by luck.

See also

Frequently asked questions

What to verify before installation and use

What does the dpf-decision-via-kernel source document cover?

When you face an open question with 2+ architecturally-distinct options inside the DPF codebase, do not pick by gut. Map each option to the closed PRINCIPLEDIMENSIONS registry, call the principledecide MCP tool, and surface the contribution ledger to the operator. This is "What…

How do I install dpf-decision-via-kernel?

The source record exposes this install command: npx skills add https://github.com/OpenDigitalProductFactory/opendigitalproductfactory --skill "packages/dpf-skill-pack/skills/dpf-decision-via-kernel". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged read-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10045,511

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10045,511

coreyhaines31/marketingskills

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

Computed 10024,921

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 10015,122

wanshuiyin/Auto-claude-code-research-in-sleep

citation-audit

Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.