Autonomy, WWMD, and trusted coworker decisions

DPF is not trying to make AI coworkers autonomous by removing humans from the loop. It is trying to make autonomy gradual, inspectable, and recoverable — and to make every step of that gradient something an owner can see, question, and reverse.

That only works if judgment is not trapped in chat. In DPF, judgment is a platform capability: a Decision Perspective Gate that a coworker calls when it hits an ambiguity, and that returns an outcome with confidence, cited sources, and an append-only audit record. The same gate is callable from Build Studio, in-product coworkers, and external MCP clients under the same governance rules.

This page explains the whole substrate: the three layers of decisions, the vector retrieval and scoring math underneath them, the Job-Specific Intelligence (JSI) weight layer that refines scoring over time, and the dials — proactivity and earned trust — that move a coworker from passive assistant to active participant without ever widening its authority.

Why this matters

AI coworkers hit open questions constantly:

Without a shared decision substrate, every agent answers those questions from prompt memory, recent conversation, or model preference. That does not scale. At scale, trust requires the coworker to show:

This is the step from “the agent seems reasonable” to “the platform can explain how this recommendation was reached — and can show you it had the authority to make it.”

The three layers of decisions

DPF partitions decisions into three scopes that do not inherit each other’s authority. All three are the same engine — retrieve, frame options, score, guardrail, record — pointed at three different bodies of doctrine:

Layer Shorthand Answers Doctrine it consults Gate
WWMD What Would Mark Do? How should the platform and its ecosystem evolve here? The founder-kernel wiki: tiered principles (commandment / core / contextual) principle_decide
WWWD What Would We Do? What would this organization do here? The org’s own governed corpus: stance pages, spend ceilings, recorded rulings evaluate_org_business_decision
WSID What Should I Do? What would a competent professional in this role do here? A per-profession, source-traced corpus (23 profession families and growing) evaluate_profession_decision

The load-bearing rule is subsidiarity: every decision is resolved in the scope that owns it, and no scope’s doctrine binds another as authority. A neighboring scope is advisory until the owning scope has spoken. The kernel principle decisions-belong-to-their-scope states it directly, and the routing contract injected into every in-portal coworker prompt enforces it verbatim: “never substitute the founder/platform doctrine as the organization’s authority — platform doctrine is advisory to a business decision, not binding.”

One honesty detail matters for audit: the ledger’s audit tier derives from the gate that was called, not from whatever profile the material resolution fell back to. A profession (WSID) question that had to borrow platform doctrine for material still files as a WSID decision — otherwise the tier would read empty and an operator would wrongly conclude the gate is never used.

Code references:

WWMD — platform evolution and the ecosystem

WWMD owns the decisions about how the platform itself evolves and how the shared ecosystem behaves: build and architecture trade-offs, what generalizes into the Hive Mind commons versus stays local, contribution and governance standards for the substrate every install shares. It is deliberately not the layer for a customer’s business calls — that is WWWD’s job. Its doctrine is the founder kernel: tiered principles authored, reviewed, and versioned in the governed wiki. Retrieval for principle_decide splits relevance from authority:

This split — Qdrant is the relevance index, Postgres is the authority — is what keeps semantic search from quietly becoming a decision-maker.

WWWD — your organization’s business decisions

WWWD is the layer that matters for corporate decisions: pricing exceptions, customer goodwill, credit terms, growth-versus-stability calls, spend approvals. Its doctrine is the organization’s own corpus, not the platform’s:

A corporate-decision example. A repeat commercial customer asks for net-60 payment terms instead of standard net-15 on a $12k job (riskTier: high). The coworker frames three options — approve net-60, counter at net-30 with a deposit, decline. The gate retrieves against the org’s WWWD corpus and finds it thin: no approved credit-terms material exists. Platform product guidance would match, but by the non-inherit rule it is advisory only. With zero applicable org material, low confidence, and a high risk tier, the gate returns escalate to the business owner with the three framed options and the empty-coverage explanation — it will not fabricate a credit policy the organization never authored.

Then the loop closes: the owner’s resolution (“net-30 with a 25% deposit for accounts over 12 months old”) is captured as draft WWWD material. Once promoted, the next time this class of question arises the gate retrieves real org doctrine and can return recommend, citing the org’s own policy. This is how the graph gets built: the corpus starts sparse by design, and every escalation a company resolves becomes doctrine its coworkers can cite. Honest escalation early is the price of trustworthy recommendation later.

WSID — the profession’s craft

WSID answers craft questions with source-traced professional doctrine instead of model memory. Each profession family (data architect, DevOps, customer success, UX design, and 20 more under docs/professions/) has a corpus of wiki pages distilled from verifiable sources — standards bodies, professional bodies of knowledge — seeded into the platform and owned by a wsid-<profession> decision profile.

How retrieval works today is deliberately boring, and that is a feature: the coworker’s agent identity maps to a profession family; the family selects its job-specific corpus pages; a deterministic lexical ranker scores them against the question and injects token-bounded, cited excerpts into the coworker’s context. For small per-family corpora this needs no vector sidecar, works on a cold install, and is fully unit-testable. Embedding the profession corpus into the vector index is a planned extension as corpora grow — the retrieval contract stays the same, only the ranker changes. When retrieval comes back empty or low-relevance, that miss is recorded as a growth gap, so profession corpora grow from real use rather than speculation.

A craft example. A build coworker adding an Invoice table must choose a monetary column type: FLOAT, DECIMAL(12,2), or integer cents. The data-architect corpus carries a commandment-tier page (“use exact numeric types for money”, traced to ANSI SQL) and supporting material from DMBOK. Scoring returns DECIMAL(12,2) as the winner with integer cents a close second — and critically, FLOAT triggers a commandment conflict flag: a commandment-tier principle contributes strongly negatively to it, so even if a prompt nudged the model toward FLOAT “for performance,” the gate marks it as violating professional doctrine, with the source cited.

Full end-to-end walkthroughs of all three layers, with their ledger rows, are in Decision Perspective in Practice.

Code references:

The decision stack at a glance

The DPF decision stack An open question is routed to the scope that owns it: WWMD platform evolution and ecosystem, WWWD the organization's own stance corpus, or WSID the profession's job-specific corpus. All three feed one scoring engine (contribution equals tier weight times alignment), then guardrails, then one of four outcomes. Autonomy dials govern how the coworker may act on the outcome; every call writes an append-only ledger row, and resolutions flow back to grow the doctrine. Open question a coworker hits an ambiguity code cannot answer Scope routing — which layer owns this decision? WWMD platform evolution & ecosystem founder-kernel wiki tiered principles Qdrant ranks relevance · Postgres holds authority WWWD your business stance org-authored corpus: stances, ceilings, rulings grows as your company decides WSID profession craft job-specific corpus, source-traced pages gaps recorded → corpus grows from use One scoring engine contribution = tier weight × alignment · composite = Σ contributions · margin → confidence Guardrails: commandment conflict · weak coverage · risk tier · zero signal recommend arbitrate escalate defer Autonomy dials proactivity · risk posture · earned trust initiative and latitude — never new authority Decision ledger append-only, reconstructable resolutions promote back into doctrine ↗
The three layers consult different doctrine but share one scoring engine, one guardrail set, one outcome contract, and one ledger. The dashed return path is the learning loop: resolved escalations and rulings become doctrine, so the next question of the same class is answered with higher confidence.

How a decision runs

Every gate call, in any layer, runs the same steps:

  1. Retrieve grounded knowledge. The wiki_query MCP tool searches the owning corpus — founder kernel for WWMD, the org overlay for WWWD, the profession corpus for WSID — for entities, stances, heuristics, principles, decisions, and runbooks. Two retrieval modes exist: plain vector search over embedded wiki content, and PPR search, where vector hits seed a Personalized PageRank pass over the wiki-link graph for multi-hop questions whose best answer is connected to rather than textually similar to the prompt. Principle queries also filter by tier, calling population, and ring scope so an external coding agent, an in-platform coworker, and a human review surface never accidentally use each other’s guidance.
  2. Frame concrete options. The coworker turns the ambiguity into 2–4 candidate options, each with a stable id, a plain-language description, and optional feature scores on the principle dimension registry. Feature scores are intentionally explicit: they force the caller to say which option increases or reduces maintainability, blast radius, evidence density, human load, data privacy, and so on.
  3. Select applicable principles. Commandments are always included; core and contextual principles enter by relevance (see the WWMD section above for the relevance/authority split); callers can cap how many principles are considered so the result stays inspectable.
  4. Score. See the math below.
  5. Guardrail and decide the outcome. Margin, coverage, commandment conflicts, risk tier, and the autonomy policy map the scores onto one of four outcomes.
  6. Persist the ledger row. Every call — including the ones where the platform chose not to decide — writes a DecisionInteraction record.

Code references:

The scoring math

The shared inner engine lives in option-scoring.ts — one implementation behind both the Decision Perspective Gate and the principle_decide MCP tool.

Alignment. For each option × principle pair the engine computes an alignment in [-1, 1], preferring the structured path and falling back to the semantic one:

Contribution and composite. Each pair’s contribution is principle.weight × alignment; an option’s composite is the sum of its contributions. The tier sets the default weight:

Tier Meaning Default weight
Commandment Non-negotiable doctrine in its declared scope 1.0
Core Strong platform default 0.4
Contextual Narrow operational rule 0.1

The ratios are chosen so that one commandment at peak alignment outweighs ten contextual rules at peak alignment (1.0 vs 10 × 0.1) — the hierarchy degrades gracefully rather than acting as a hard categorical override. Weights can be attenuated by consumer context (a route-scoped principle scored without route context is attenuated to 0.3; profession-local axes attenuate toward 0.5), so doctrine pulls hardest where it actually applies.

Guardrails. Three thresholds turn raw scores into honest ones:

The vectors behind one answer. The composite is deliberately multi-vector — it is never just “nearest wiki page wins”:

Vector What it evaluates Why it matters
Semantic retrieval vector Which pages and principles are meaningfully related to the question Grounds the answer in current knowledge
Wiki-link vector Which pages connect to the relevant pages in the wiki graph Surfaces second-order context for multi-hop questions
Principle dimension vector How each option aligns with signed principle axes Makes trade-offs inspectable instead of rhetorical
Tier weighting vector Whether the pull comes from commandment, core, or contextual doctrine Prevents weak preferences from overruling hard rules
Authority and scope vector Calling population, domain class, ring scope, profile chain Keeps guidance local to the right actor and surface
Evidence quality vector Freshness, evidence grade, review status, promotion state, recent overrides Reduces autonomy when material is stale, weak, or often overridden
Risk vector Low, medium, high, critical decision risk High-risk calls escalate even when the recommendation looks strong

The principle dimension registry currently includes: long-term maintainability, blast radius, reusability, evidence density, human cognitive load, capacity utilization, governance compliance, public safety, speed to value, schema grounding, operational independence, data privacy, cost efficiency, and vendor lock-in.

Mathematical grounding. None of this is ad-hoc; each piece sits on established decision mathematics, chosen so every term stays inspectable in the ledger:

The full mathematical foundations — with citations and an honest per-method build status — are in Vector Decisioning and JSI.

A worked example

A build-specialist coworker has built an “overdue jobs” widget for an HVAC dispatcher board and hits an open product question before shipping: should this be generalized into the reusable workspace-home primitive library for the Hive Mind, or kept local to this install? (domainClass: architecture-tradeoff, riskTier: medium). The numbers illustrate the real math — each cell is a contribution (weight × alignment); the composite is the column sum.

Principle (tier, weight) Option A — keep local Option B — parameterize for the hive
Learnings belong in the shared commons (commandment, 1.0) +0.10 +0.85
Architecture over shortcuts (core, 0.4) +0.12 +0.32
Speed to value (contextual, 0.1) +0.09 +0.05
Composite 0.31 1.22

Option B wins with margin = 0.91, far above the 0.2 tie threshold, so confidence is high; structured coverage is strong and no commandment conflicts. The contextual “ship faster” pull toward Option A is genuine, but at weight 0.1 it cannot overcome a commandment-tier reusability pull at weight 1.0 — which is exactly what tier weighting is for. The gate returns recommend Option B with the full contribution ledger; execution and approval still belong to the caller.

Code references:

From scores to an outcome

The gate returns a structured outcome, never just prose:

Outcome Meaning
recommend The gate has enough signal to advise a path. Execution and approval still belong to the caller.
arbitrate For low-risk decisions with high enough confidence, the coworker may continue under the declared autonomy policy. The dissenting view is preserved in the ledger.
escalate Risk, conflict, low confidence, or policy boundaries require a human resolver.
defer The corpus lacks coverage. The correct answer is to capture the gap, not guess.

Which outcome fires is not vibes — it is a ladder. The perspective evaluator first computes a numeric confidence for the profile’s authority over this domain:

confidence = clamp01( baseScore − riskPenalty − min(0.3, recentOverrides × 0.1) )

where baseScore is the mean effective weight of the applicable material, riskPenalty is {low: 0, medium: 0.1, high: 0.25, critical: 0.5}, and recentOverrides counts human overrides of this profile in the last 30 days. The override penalty is the fastest feedback loop in the system: every time a human corrects the gate, its confidence — and therefore its autonomy — drops immediately, and it takes sustained agreement to earn it back.

Then the ladder applies, in order: a principle conflict escalates; a high or critical risk tier always escalates, no matter how strong the math looks; confidence below the policy’s recommendation floor escalates; arbitrate fires only when the profile’s autonomy policy explicitly allows arbitration, the risk tier is within the policy’s ceiling, and confidence clears the arbitration floor; everything that survives becomes recommend. The default autonomy policy ships conservative: arbitration off, arbitration risk ceiling low, recommendation floor 0.55, arbitration floor 0.85.

Code references:

JSI: weights that learn the job

The scoring above uses declared weights. Job-Specific Intelligence (JSI) is the layer that lets those weights learn — carefully, on three deliberately different timescales, because a job is not a corpus: two organizations with identical doctrine can still weigh the same trade-off differently, and that revealed difference is data.

The TAK-JSI standard defines the qualification side — how an identified coworker is shown fit for a specific job, activity, data scope, and risk context, and revalidated when any of those change. The mathematical side is specified in Vector Decisioning and JSI and implemented as follows:

Timescale What moves Mechanism Status
Slow — doctrinal Commandments and principle dimension vectors Pull request + founder ratification; versioned in the kernel Working, and deliberately slow
Medium — revealed preference What accumulated human rulings reveal about an org’s or role’s real weights Gate instrumentation → weight inference → human-ruled proposals Built; generating proposals from live data is the next step
Fast — contextual Situation-level modulation (season, live signals, stated urgency) Designed in the spec; no scoring input exists yet Not yet built

The medium timescale is the interesting one, and it is built end-to-end as a propose-and-rule pipeline, never a silent mutation:

  1. Instrumented gates persist the comparison that matters. Each decision row can carry the full scoredOptions vector set, the engine’s recommendedOptionId, and the human’s chosenOptionId (validated server-side against the scored set). Agreement is captured too — dropping it would bias inference toward disagreement.
  2. Weight inference looks for consistent separations. Grouped by profile and domain class, each axis is tested: how often does the human’s choice separate from the engine’s recommendation in the same direction, and by how much? A proposal fires only past hard gates — at least 8 samples, 70% directional consistency, and 0.1 mean separation.
  3. Proposals enter at low authority and climb by ruling. An inferred weight adjustment enters at confidence weight 0.3below even unconfirmed human-authored material (0.6) — and only a human ruling promotes it. Rejected proposals stay rejected; nothing is overwritten.

This is the platform’s answer to “how do the vectors get refined as companies use it”: not by online learning that silently drifts, but by turning every human choice into evidence, distilling evidence into legible proposals (“this org consistently weighs customer-goodwill higher than the default in refund decisions”), and letting a human ratify each one — with the whole chain in the ledger.

Code references:

Earning autonomy: from passive to proactive

A decision gate answers “what should be done?” A separate set of dials answers “how much may this coworker do on its own initiative?” DPF keeps four dials distinct on purpose — and one rule binds all of them, straight from the TAK-JSI standard: proactivity is not autonomy. A more proactive coworker speaks up sooner and more often; it never thereby gains a capability, bypasses an approval, or exceeds a regulatory ceiling.

1. The proactivity dial (per coworker, owner-facing). Every coworker has a proactivity level — quiet, balanced, or assertive — that governs how it participates:

Defaults are derived per activity family (a security incident is always handled assertively; regulated work like tax compliance is forced back to advise), and the owner can override per coworker from the portal’s proactivity surface. Two hard floors survive every level: money leaving the business and anything public-facing always require human approval. Coworkers can even propose their own dial change — after at least 5 consecutive approved-unchanged proposals, a coworker may suggest moving one step up, with a fixed, honest impact statement: it “does not grant new tools, permissions, or approval bypasses.” The owner accepts or dismisses from their inbox.

2. The org risk posture (per organization). Conservative / balanced / progressive — this sets the autonomy envelope (the ceiling and how fast autonomy may mature), not the live level. Regulated industries default to conservative, and an industry default can only raise caution, never lower it.

3. The decision autonomy policy (per decision profile). The arbitration switches and confidence floors described in the outcome ladder above.

4. Trust graduation (earned, per coworker × activity × risk class). Actual autonomy is earned through a shadow-first ladder: shadow → propose → supervised → autopilot. In shadow mode the coworker decides silently alongside the human and its agreement is measured; graduating one level requires observed agreement over real decisions — 20 samples at 90% agreement for the early steps, 30 at 95% for autopilot. Every shadowed decision lands in a dedicated ledger and rolls up into a per-(coworker, activity, risk-class) trust state. Two ceilings are absolute: irreversible, outbound, financial, and access-control actions are capped at “propose” forever, and jurisdiction-specific regulatory policies intersect on top of everything. And one caveat is written into the standard itself: agreement with a human is not proof of competence — both may share the same blind spot — which is why risk tiers and hard floors never relax on agreement statistics alone.

What runs proactively today is itself governed: roughly 35 scheduled watchers and reconcilers (task watchdogs, queue-health and regression detectors, backlog triage drains, the daily governed tee-up loop that stages the next build for approval) — each catalogued, classified, and individually kill-switchable by the operator, with a parity test that fails the build if a job runs uncatalogued.

Code references:

The decision ledger

None of the above is trustworthy unless it is reconstructable after the fact. Every gate call — recommend, arbitrate, escalate, and defer — writes an append-only DecisionInteraction row: profile and profile version, gate key, domain class, question, options, scored options, the engine’s recommendation and the human’s choice, evidence bundle, cited sources, rationale, risk tier, confidence before and after, outcome, conflict flags, and any escalation or deferral capture. Profiles are never edited in place — a change snapshots a new version, so an old interaction always resolves against the doctrine that was live when it ran.

A coworker can act faster over time, but the organization can always reconstruct:

The shadow ledger and trust states described above are a second, parallel record: they are how “this coworker has earned autopilot on invoice matching but is still proposing on refunds” is a queryable fact rather than a feeling.

Code references:

The learning loop

The most important output is not the recommendation — it is the gap signal. When a gate escalates or defers, the platform has discovered that its doctrine is under-specified, conflicted, stale, or too weakly evidenced for the current class of work. Four feedback paths turn that into compounding trust:

  1. Escalation resolutions become doctrine. A human ruling is captured as draft material and climbs the promotion ladder (unconfirmedconfirmedruled) into the owning corpus — org stances for WWWD, profession pages for WSID, kernel candidates for WWMD.
  2. Overrides cut autonomy immediately. The 30-day override penalty in the confidence formula means correction is felt on the very next call.
  3. Revealed preference becomes weight proposals. The JSI medium timescale distills consistent human choices into human-ruled weight adjustments.
  4. Drift is caught against golden decisions. Canonical decisions are re-scored when the corpus changes; a corpus edit that flips one, or thins its margin, is flagged before it silently changes behavior.

That is the autonomy flywheel: coworker encounters ambiguity → gate consults the owning layer → outcome with full ledger → human resolution captured where needed → reviewed resolutions improve the corpus and the weights → future coworkers answer the same class of question with higher confidence and less interruption. The platform does not hide uncertainty; it turns uncertainty into governable work. A new install’s coworkers escalate often — honestly. A mature install’s coworkers escalate rarely — demonstrably.

Current boundaries

Stated plainly, because trust requires knowing what is not built yet:

The north star is unchanged: AI coworkers gain more room to act only when the decision path is more inspectable, better evidenced, and easier to override.