Part A – Kernel Architecture Cluster
Preface node
heading:part-a-kernel-architecture-cluster:765
Content
Onboarding Glossary (NQD & E/E‑LOG)
One‑screen purpose (manager‑first). This pattern gives newcomers a plain‑language starter kit for FPF’s generative engine so they can run a lawful problem‑solving / search loop on day one. It explains the few terms you must publish when you generate, select, and ship portfolios (not single “winners”), and points to the formal anchors you’ll use later. (OEE is a Pillar; NQD/E/E‑LOG are the engine parts.)
Builds on. E.2 (P‑10 Open‑Ended Evolution; P‑2 Didactic Primacy), A.5, C.17–C.19 - Coordinates with. E.7, E.8, E.10; F.17 (UTS); G.5, G.9–G.12 - Constrains. Any pattern/UTS row that describes a generator, selector, or portfolio.
Keywords & queries. novelty, quality‑diversity (NQD), explore/exploit (E/E‑LOG), portfolio (set), illumination map (report‑only telemetry), parity run, comparability, ReferencePlane, CL^plane, ParetoOnly default
1) Problem frame
Engineer‑managers meeting FPF for the first time need a plain, on‑ramp vocabulary for the framework’s generative engine so they can run an informed problem‑solving/search loop on day one—before formal specifications. Without that, Part G and Part F read as assurance/alignment only, and teams default to single “best” options. This undercuts P‑10 Open‑Ended Evolution and weakens adoption.
2) Problem
In current practice:
- Single‑winner bias. Teams look for “the best” option and publish a leaderboard, suppressing coverage & diversity signals essential to search.
- Metric confusion. “Novelty” and “quality” are used informally; units/scales are omitted; ordinal values are averaged, breaking comparability.
- Hidden policies. Explore/exploit budgets and governor rules are implicit; results are irreproducible and refresh‑unsafe (no edition/policy pins).
- Tool lock‑in. Implementation terms (pipelines, file formats) leak into the Core, violating Guard‑Rails.
FPF needs a short, normative glossary that names the generative primitives in Plain register and ties each to its formal anchor—so portfolios, not single scores, become the default publication.
3) Forces
4) Solution — Normative onboarding glossary and publication hooks
4.1 Plain one‑liners (normative on‑ramp; formal anchors in C.17–C.19)
(Registers & forbidden forms per LEX‑BUNDLE; avoid “axis/dimension/validity/process” for measurement and scope.)
4.2 Publication & telemetry duties (where these terms show up)
- UTS surface (Part F). When a UTS row describes a generator, selector, or portfolio, it MUST surface N, U, C, Diversity_P, E/E‑LOG
policy‑id,ReferencePlane, with units/scale/polarity typed under MM‑CHR / CG‑Spec, and lawful references toDescriptorMapRef/DistanceDefRef. (Row schema: F.17; shipping via G.10.) - Parity & edition pins (Part G). When QD/OEE is in scope, pin
DescriptorMapRef.editionandDistanceDefRef.edition(and, where applicable,CharacteristicSpaceRef.edition,TransferRulesRef.edition) and recordpolicy‑id+PathSliceId. Treat illumination/coverage as report‑only telemetry; publish an Illumination Map where G‑kit mandates parity artefacts. Declare S (Scale Variables) and run at least one scale‑probe (two points along S) when claiming scale‑amenability. Dominance policy defaults toParetoOnly; including illumination in dominance MUST cite a CAL policy‑id. - Tell‑Show‑Show (E.7/E.8). Any arhitectural pattern that claims generative behaviour MUST embed both a U.System and a U.Episteme illustration using this glossary (manager‑first didactics).
4.3 Minimal recipe (run this on day one)
- Declare CG‑Frame (what “quality” means; lawful units/scales) and ReferencePlane.
- Pick 2–4 Q components + a simple DescriptorMap (≥2 dims) for N/D; publish editions.
- Choose an E/E‑LOG policy (explore↔exploit budget); record policy‑id.
- Call the selector under G.5 with parity pins; return a set (Pareto/Archive), not a single score.
- Publish to UTS + PathIds/PathSliceId; Illumination Map is report‑only telemetry by default.
5) Archetypal Grounding
Informative; manager‑first (E.7/E.8 Tell‑Show‑Show).
Show‑A - SRE capacity plan (selector returns a set).
Frame. We must raise service commitment headroom for Q4 without breaking latency SLOs.
Portfolio. {cache‑expansion, read‑replicas, query‑shaping, circuit‑breaker tuning, schema‑denorm}.
Glossary in action. U = latency@p95 & error‑rate, C = budget ≤ $X, risk ≤ R, N = dissimilarity to current playbook, Diversity_P = adds a previously empty niche in our archive (e.g., “shifts load to edge”). E/E‑LOG starts Explore‑heavy, flips Exploit‑heavy once ≥ K distinct niches are lit. (Publish UTS row + parity pins; illumination stays report‑only telemetry.)
Show‑B - Policy search with QD archive (MAP‑Elites‑class).
Frame. Robotics team explores gaits that trade stability vs energy use.
Glossary in action. CharacteristicSpace = {step‑frequency, lateral‑stability}, ArchiveConfig = CVT grid, N from descriptor distance, U = task reward, Diversity_P = coverage gain; PortfolioMode=Archive. Families include MAP‑Elites (2015), CMA‑ME/MAE (2020–), Differentiable QD/MEGA (2022–), QDax (2024); publish editions and policy‑ids; treat illumination as report‑only telemetry.
(Optional) Show‑C - OEE parity (POET/Enhanced‑POET).
Co‑evolve {environment, method} portfolios; publish coverage/regret as telemetry metrics; pin TransferRulesRef.edition; return sets, not a single winner.
Show‑Epi - Evidence synthesis (U.Episteme).
Frame. A living review compares rival causal identification methods (e.g., IV vs. DiD vs. RCT‑adjacent surrogates) across policy domains.
Glossary in action. U = external‑validity gain @ F/G‑declared lanes, C = ethics & data‑licence constraints, N = dissimilarity in **ClaimGraph** transformations, D_P = coverage of identification niches in the archive. ReferencePlane = episteme. Illumination/coverage stays report‑only telemetry; selection returns a portfolio of methods per niche. (Publish UTS rows; cite Bridges + CL for cross‑domain reuse; edition‑pin Descriptor/Distance defs where QD applies.)
6) Bias‑Annotation
Scope. Trans‑disciplinary; glossary applies to both System and Episteme work. Known risks & mitigations. Over‑aggregation: forbid mixed‑scale sums; use CG‑frame and MM‑CHR. Terminology drift: enforce LEX‑BUNDLE registers; ban tool jargon in Core. Optimization monoculture: require portfolio publication where G‑kit mandates parity; illumination stays report‑only telemetry unless a CAL policy promotes it (policy‑id cited).
7) Conformance Checklist (SCR/RSCR stubs)
8) Consequences
Benefits. • Immediate usability for engineer‑managers (plain one‑liners) with formal anchors for auditors. • Portfolio‑first culture (sets & illumination) instead of brittle leaderboards. • Edition‑aware comparability; parity/refresh is routine, not ad‑hoc.
Trade‑offs & mitigations. • Slightly longer UTS rows → mitigated by consistent schema and copy‑paste snippets. • Requires discipline on units/scales → mitigated by CG‑frame templates.
9) Rationale
This pattern instantiates P‑10 Open‑Ended Evolution by making generation‑selection‑publication operational at the on‑ramp: readers get just enough shared vocabulary to run search as standard practice. It aligns with Didactic Primacy (P‑2) and LEX‑BUNDLE (E.10) by keeping definitions plain‑first and scale‑lawful, and with Patterns Layering (P‑5) by pointing to C.17–C.19 for formal anchors without tool lock‑in. The post‑2015 line (MAP‑Elites → CMA‑ME/MAE → Differentiable QD/MEGA → QDax; POET/Enhanced‑POET/Darwinian Goedel Machine) normalised quality‑diversity and open‑endedness as first‑class search objectives; this glossary surfaces those ideas as publication standards, not tool recipes.
10) Relations
Builds on. E.2 Pillars (P-10, P-2, P-6), A.5 (Open-Ended Kernel), B.5/B.5.2.1 (Abductive loops + NQD integration), C.17–C.19 (Creativity-CHR, NQD-CAL, E/E-LOG).
Coordinates with. E.7/E.8 (Archetypal Grounding; Authoring template), E.10 (LEX‑BUNDLE), F.17 (UTS), G.5/G.9–G.12 (set‑returning selectors, iso‑scale parity, shipping & refresh). Constrains. Any generator/selector/portfolio publication on the Core surface: N‑U‑C‑Diversity_P + policy‑ids; S/Scale‑probe where applicable; parity pins; lawful scales; portfolio‑first where mandated. (Ties into UTS rows and parity artefacts.) Editor’s cross‑reference. For agentic orchestration of scalable tool‑calls under BLP/SLL, see C.24 (Agent‑Tools‑CAL).
Editor’s note (implementation hint)
This pattern is an on‑ramp: it does not replace C.17–C.19. It binds Plain definitions to publication/telemetry expectations so newcomers can use NQD/E/E‑LOG immediately while experts follow the formal trails.
A.0:End
Holonic Foundation: Entity → Holon
Type: Architectural (A)
Status: Stable
Normativity: Normative
“Name the thing without smuggling in its parts.”
Problem Frame
The first epistemic act in any discipline is to point: “that thing, not the background.” Physics calls the pointed object a system, biology an organism, information science an artifact, philosophy an entity. Reusing any one of these across domains drags hidden assumptions and yields nonsense like “What is the mass of a system of equations?” or “Where is the network interface of a moral theory?” FPF therefore starts from a minimal, domain‑agnostic root that makes such category errors impossible by construction and gives engineers and managers a clean, uniform handle for composition, boundaries and interfaces.
Problem
If FPF treats system as the universal root, two recurrent failure modes appear:
- Category Error — physical affordances get projected onto abstract artifacts (ports on theories; kilogram‑mass of paradigms).
- Mereological Over‑reach — part–whole calculus is applied to genuinely atomic entities (prime numbers, elementary charges), producing meaningless “sub‑parts.”
A robust kernel separates identity from structure: first say what can be singled out, then say what has parts.
Forces
Solution — A three‑tier root (Entity ⊃ Holon ⊃ {System, Episteme})
FPF adopts a three‑tier root ontology refining Koestler’s “holon,” with crisp boundaries and safe composition.
U.Entity — Primitive of Distinction
Anything that can be individuated and referenced. No structural assumptions. Use when you need to name “a something” without committing to having parts.
Naming note (mint vs reuse).
U.EntityandU.Holonare minted kernel terms: they reuse familiar words but intentionally diverge from domain‑specific ontologies and DDD “Entity”, so we can reason cross‑domain without importing hidden assumptions.
U.Holon — Unit of Composition
A U.Entity that is simultaneously (a) a whole composed of parts and (b) a part within a larger whole. Formally, U.Holon ⊑ U.Entity.
Well‑formedness constraints:
- WF‑A1‑1 (Single boundary). A holon has exactly one
U.Boundarythat separates it from its environment. - WF‑A1‑2 (Γ domain). The universal aggregation operator Γ is defined only on sets of
U.Holon(never on bareU.Entity). - WF‑A1‑3 (Γ scope). A Γ‑application is scoped to a declared context and a single declared temporal scope (design or run); order/time are routed to Γ_ctx / Γ_time (B.1.4).
These constraints make composition rules uniform across domains and prevent Γ from being misapplied.
Interface primitives: U.Boundary & U.Interaction
Every holon is defined by how it is separated and what crosses the separation.
U.Boundary— physical or conceptual surface delimiting the holon’s scope.U.Interaction— any flow of matter, energy, or information that crosses a boundary. Canonical boundary kinds (with twin archetypes):
This pair (Boundary, Interaction) makes interfaces explicit, reviewable, and testable across domains.
Inside/Outside decision procedure
To decide whether an entity E is inside a holon H, apply:
- Dependency test: removing E breaks a core invariant of H.
- Interaction test: E participates in causal loops wholly within H’s boundary.
- Emergence test: E contributes to a novel collective property warranting H as a single unit. Fail all three → E is outside. This practical triage prevents “scope creep” and forces explicit modeling of environment vs interior.
Collections vs collectives. A set/collection of holons is not itself an acting unit. If a grouping is expected to act, model it as a
U.Systemholon with its own boundary and attach roles/methods/work to that system (see CC‑A1.6; details in A.2 and A.15).
Archetypal sub‑holons
FPF fixes two archetypal specializations to ground cross‑domain universality:
Agency rule. Behavioural roles and executed methods/work attach to
U.Systemholons only;U.Epistemeis passive content. Any change to an episteme is performed by an external system acting across a boundary (cf. CC‑A1.5 and A.2/A.15).
Naming guideline: keep “System” and “Episteme” for practitioner comfort; reserve Holon for meta‑level discourse and formal signatures.
Archetypal Grounding (System / Episteme)
Showing the same structural slots filled by a machine and a theory demonstrates the substrate‑independent universality of U.Holon. This is the didactic “Tell–Show–Show” anchor required by the Style‑Guide for architectural patterns.
Bias-Annotation — Boundary-first modelling risks
This kernel distinction is intentionally boundary‑first: it treats “where the boundary is” as a modelling decision that shapes everything downstream. That framing is powerful, but it can also smuggle bias if boundary choices are made implicitly or for political convenience.
Conformance Checklist (normative)
Audit tip. CC‑A1.5 is frequently violated when authors write “holon bearing TransformerRole”. Rewrite to “system bearing TransformerRole” or provide the explicit
U.RoleAssignment. See A.2/A.15 for role mechanics.
Common Anti‑Patterns and How to Avoid Them — Manager’s quick checks
- “Ports on a theory.” Treating a proof corpus as if it had physical connectors. Fix: model
U.Interactiononly across boundaries; for epistemes, interactions are symbolic flows via carriers and citations (see A.10), not power or mass. - “Document edited itself.” Assigning actions to an episteme. Fix: actions are executed by a system bearing a role (A.12/A.15); epistemes are transformed via external transformers acting on their symbol carriers.
- “Parts everywhere.” Forcing a part–whole onto atomic entities (e.g., prime numbers). Fix: if no meaningful parts exist, stay at
U.Entity; apply Γ only toU.Holon. - “Scope ≡ section.” Using “scope” as a text region rather than a modeled boundary. Fix: define a
U.Boundaryand state what crosses it (U.Interaction).
When in doubt: first decide what is a holon, then state its boundary, then list what crosses. Roles and methods come after (see A.2 and A.15).
Consequences (informative)
Rationale — Cross‑domain corroboration (post‑2015, informative)
The separation Entity → Holon → {System, Episteme} is not only ontologically clean; it is empirically validated across domains since 2015:
- Compositional open systems. Category‑theoretic treatments show that boundaried components compose safely (decorated cospans, open systems). This mirrors Γ’s reliance on declared boundaries. (Fong & Spivak, 2019; Baez & Courser, 2017)
- Microservices & bounded contexts. Modern software architecture stresses strong service boundaries and local reasoning as the route to evolvability—our
U.Boundaryand Inside/Outside test encode the same discipline. (Newman, 2021; Vernon, 2022) - FAIR & provenance. Data/knowledge communities require explicit distinction between content and carrier, and auditable provenance—precisely the System/Episteme + SCR split used in A.1/A.10. (Wilkinson et al., 2016; Boeckhout et al., 2018)
- Digital Twin / Thread. Engineering practice since late‑2010s emphasises the run↔design seam and boundary‑consistent aggregation of subsystems—formalised in our Γ‑family and boundary inheritance rules. (Grieves & Vickers, 2017; NIST DT/Thread reports 2019‑2021)
- Layered control of CPS. Standard‑based, multi‑rate architectures justify explicit holon boundaries and scale transitions—feeding directly into B.2 Meta‑Holon Transition. (Matni et al., 2024)
These streams converge on one point: make boundaries and composition first‑class and separate what a thing is from what it is doing here‑and‑now—the heart of A.1/A.2.
SoTA-Echoing (post‑2015, informative)
This solution echoes several modern (post‑2015) research and engineering streams. We adopt their boundary‑and‑composition insights, but reject any requirement to commit to a single formalism (per Notational Independence).
Relations
-
Builds / Grounds:
- A.2 Role Taxonomy — A.1 provides the substantial characteristic (
Holon), A.2 introduces the functional characteristic (RoleandU.RoleAssignment). Together they prevent role/type explosion and keep agency contextual. - A.7 Strict Distinction (Clarity Lattice) — A.1 supplies the slots (Entity/Holon/System/Episteme); A.7 guards their separation in prose and models, stopping Object ≠ Description ≠ Carrier conflations.
- A.14 Advanced Mereology: Portions & Phases — A.1’s holon substrate is the target of A.14’s edge discipline (
ComponentOf,ConstituentOf,PortionOf,PhaseOf); only mereological subtypes build holarchies.
- A.2 Role Taxonomy — A.1 provides the substantial characteristic (
-
Interacts with the Γ‑family (B‑cluster):
- B.1 Universal Algebra of Aggregation — Γ is defined on holons and respects CC‑A1.*; Γ_ctx/Γ_time carry order and temporal composition, Γ_work handles resource ledgers.
- B.2 Meta‑Holon Transition (MHT) — uses A.1’s boundary and Inside/Outside rules to decide when aggregation yields a new whole with novel properties.
- B.3 Trust & Assurance Calculus — evidence attaches to carriers (SCR/RSCR) of epistemes; assurance levels depend on A.1/A.10 alignment.
- B.4 Canonical Evolution Loop — operationalises the design↔run seam at holon boundaries; observation itself is an external transformation across a boundary.
-
Specialised by patterns:
U.System(Sys‑CAL) andU.Episteme(KD‑CAL) are archetypal sub‑holons that supply domain‑specific invariants while inheriting A.1’s boundary and aggregation duties.
Without the holon, parts drift; without the role, purpose evaporates. (Carry this epigraph with A.1 to cue the A.2 hand‑off.)
A.1:End
U.BoundedContext: The Semantic Frame
Type: Architectural (A)
Status: Stable
Normativity: Normative
Make meaning local; make translation explicit.
Problem Frame
Large systems of thought (and large engineered systems) break down when meaning is treated as globally uniform. The same label (e.g., “role”, “service”, “ticket”, “evidence”) routinely carries incompatible senses across teams, disciplines, standards editions, and historical eras.
FPF needs a first-class mechanism that answers a simple question with precision: “In which semantic frame does this term, rule, or role-claim hold?”
The U.BoundedContext is that mechanism. It makes “it depends” explicit and governable by naming what it depends on.
Problem
Absent an explicit, first-class semantic frame:
- Ambiguity becomes structural debt. Integrations silently overwrite meanings (“process” becomes “procedure”; “role” becomes “permission”), and the resulting model cannot be audited.
- Pluralism looks like contradiction. Two valid perspectives appear mutually exclusive because the frame of reference is implicit (e.g., Pluto as
PlanetRolevsDwarfPlanetRole). - Roles lose semantic footing. A
U.Rolewithout a declared frame degenerates into a global label, violating the kernel’s insistence that roles are contextual masks (A.2, A.2.1). - Local rules leak globally. Team- or theory-specific invariants are mistaken for universal laws, producing incoherent cross-domain reasoning.
Forces
Prophylactic clarification — Domain family vs U.BoundedContext
To prevent a common category error, Domain (as used colloquially) and U.BoundedContext are not synonyms in FPF, and “Domain” is not a kernel type.
Per E.10.D1 (D.CTX), Domain is an informative family label grouping multiple contexts; there is no “domain context”.
Well-formedness constraint (didactic): In any U.RoleAssignment, context is total and points to exactly one U.BoundedContext (cardinality 1..1).
Think “specific room” (e.g., Hospital.OR_2025), not “the whole building” (e.g., “Healthcare”).
Manager’s one-liner: A Domain family is the territory label; a Bounded Context is a purpose-made map of one perspective on that territory.
Solution
FPF elevates semantic framing to a kernel primitive by introducing U.BoundedContext as a first-class holon of meaning.
Inspired by Domain-Driven Design (DDD) but generalized beyond software, a bounded context is not a mere namespace: it is a governable model locale with explicit vocabulary, rules, and role taxonomy.
Term & Definition
- Term:
U.BoundedContext - Definition: A
U.BoundedContextis aU.Holonthat serves as an explicit semantic frame of reference. It declares a boundary within which a specific vocabulary, role taxonomy, and invariant set are coherent and authoritative. It is FPF’s kernel mechanism for localizing meaning and managing complexity by partitioning a larger conceptual space into smaller, coherent, independently governable semantic locales (Contexts).
Mint vs reuse (informative): The label "Bounded Context" is reused from DDD; U.BoundedContext is the FPF-defined kernel type (generalized beyond software). Cross-context sameness is never inferred from spelling; cross-context alignment is represented only via explicit Bridge artifacts (F.9; E.10.U9; see CC-A1.1.5).
Core components (normative shape)
A U.BoundedContext is a composite holon whose parts constitute the context’s local “constitution”:
Glossary(Local Lexicon): A set ofU.Lexemeentries (Lang-CHR) defining the local vocabulary and its intended senses. This is where a context can state: “Inside here,ticketdenotesU.WorkItem, notU.TravelPermit.”Invariants(Local Rules): A set ofU.ConstraintRules (Norm-CAL) that must hold for artifacts and processes operating in this context. These rules define the context’s local “physics”.- Example (role compatibility): “Within this context, a
holdercannot simultaneously playAuditorRoleandDeveloperRole.” - Example (state transition): “A
U.WorkItemcan transition fromInProgresstoInReview, never directly toDone.”
- Example (role compatibility): “Within this context, a
Roles(Local Taxonomy): A partial order ofU.Roles that are defined and valid only within this context. It specifies the “masks” available on this stage (A.2).Bridges(Optional alignments): A set of explicit cross-context relations (U.Alignment, formalized in F.9 / E.10.U9) describing how meaning translates when information crosses context boundaries, including loss/fit notes.- Example (alignment): “
AgileDevelopment:UserStoryis congruent (CL=1) toFormalEngineering:Requirementunder the stated loss policy.”
- Example (alignment): “
Context interactions with other kernel objects (normative)
- As a
U.Holon: AU.BoundedContexthas a definedU.Boundaryand internal parts (Glossary,Invariants, …). However, contexts do not form holarchies with each other: per E.10.D1 (D.CTX), contexts have no is‑a or containment relations; cross-context relationships are expressed only via explicitBridges. - As the semantic frame for
U.RoleAssignment: Thecontextfield ofU.RoleAssignmentidentifies the unique semantic frame in which the holder-role assignment is interpreted (A.2.1). - As the scope carrier for rules and objectives:
U.Objectives andU.ConstraintRules are typically authored and evaluated relative to a specific context’s invariants. - As a change target: Context evolution (new invariants, revised glosses, deprecated roles) is modeled as a
U.Transformeracting on theU.BoundedContextholon itself. Where time is merely stance (design/run), treat it as a TimeScope tag, not a new context (C‑7; D.CTX).
If meaning is local by design, then translation must be explicit by design.
Admissibility constraints (concept-level; non-deontic).
- BC‑1 (Holon nature). A
U.BoundedContextis aU.Holonand declares aU.Boundary. - BC‑2 (Flat context map). No
U.BoundedContextis modeled as inheriting from, containing, or being contained by anotherU.BoundedContext; cross-context relations are represented only via explicitBridges(E.10.D1 / E.10.U9). - BC‑3 (Role localization). Every
U.Roleis defined in theRolestaxonomy of at least oneU.BoundedContext; a "global role" is not a valid kernel object. - BC‑4 (Invariant scope). Any invariant authored in a Context applies only to holons and processes operating within that Context; cross-context reuse is mediated by Bridges and re‑stated locally.
- BC‑5 (Bridge explicitness). Any interaction or semantic alignment between two Contexts is represented by an explicit
Bridgeartifact. - BC-6 (RoleAssignment context field). A
U.RoleAssignmentreferences exactly oneU.BoundedContextin itscontextfield (cardinality 1..1). - BC‑7 (Domain is metadata). "Domain" denotes only an informative family label grouping multiple contexts; it is not a kernel type and does not substitute for
U.BoundedContext(E.10.D1).
Archetypal Grounding
The concept of a U.BoundedContext is universal and applies to both physical/operational domains and purely abstract/epistemic ones. Understanding these two archetypes clarifies its role as a fundamental FPF primitive.
Key takeaway from grounding:
This illustrates that a U.BoundedContext is not an abstract container but a holon with tangible content. For the engineering team, it's their project's "operating system." For the scientific theory, it's the "intellectual constitution." In both cases, the context defines what is true, what is possible, and what words mean locally.
Bias-Annotation
This pattern is intentionally universal, but it can be misread through narrower lenses:
- Software-centrism bias: Readers may assume “bounded context” only applies to microservices/teams. Mitigation: the Episteme archetype is first-class; contexts apply equally to theories, standards, and scientific practices.
- Boundary reification bias: Authors may treat boundaries as “natural facts” rather than modelling choices. Mitigation: boundaries are declared for governance and clarity, and cross-context relations are handled via Bridges with explicit loss/fit.
- English-label bias: Examples often use English surface terms, which can hide multilingual drift. Mitigation: language/edition discipline in D.CTX governs when to split/merge contexts; multilingual labels are metadata when semantics are truly bound.
Conformance Checklist
To ensure U.BoundedContext is used consistently and rigorously, the following normative checks apply.
Common Anti-Patterns and How to Avoid Them
These failure modes recur when applying U.BoundedContext in real programs and knowledge work.
Consequences
Rationale
Lineage and fit with Domain‑Driven Design (DDD).
FPF generalizes the proven DDD idea of a Bounded Context from software into a universal modeling primitive:
Why this matters here.
U.BoundedContext gives U.RoleAssignment (A.2.1) its footing: role meanings are local by design, conflicts are checked inside the same context, and differences across contexts are handled by explicit Bridges instead of “global truth.”
The introduction of U.BoundedContext as a first-class holon is a direct implementation of several core FPF principles and is strongly supported by contemporary practice.
- Philosophical Grounding: The idea that meaning is always local and context-dependent is a cornerstone of late 20th-century philosophy of language (e.g., Wittgenstein's "language-games"). FPF operationalizes this insight.
- Domain-Driven Design (DDD): The concept is a direct borrowing and generalization from Eric Evans' seminal work on DDD, where the Bounded Context is the central strategic pattern for managing complexity in large-scale software. Its success over the past two decades in the software industry provides powerful empirical validation for its utility. FPF elevates it from a software design pattern to a universal ontological primitive.
- Architectural Necessity: For FPF to fulfill its promise of being an "operating system for thought," it needs a mechanism analogous to an OS's "process separation." A
U.BoundedContextis precisely that: a protected "memory space" for a model, preventing different models from corrupting each other. - Enabler for Key Patterns: The
Contextual Role Assignmentpattern (A.2.1) would be incoherent without a formal definition of "Context." This pattern provides that necessary foundation, making the entire role-based architecture sound.
In essence, U.BoundedContext is the architectural pattern that allows FPF to be both universal in its core principles and specific and pluralistic in its applications. It is the mechanism that tames complexity and makes large-scale, multi-paradigm modeling possible.
SoTA-Echoing (post-2015 practice alignment)
The U.BoundedContext concept aligns strongly with contemporary (post‑2015) practice in software architecture, socio-technical design, and knowledge/provenance disciplines. Where FPF differs, it does so to preserve kernel universality, explicit loss-aware translation, and auditability.
Relations
- Constitutes: The foundational "semantic space" for patterns like
A.2 Role TaxonomyandA.13 The Agential Role. - Builds on:
A.1 Holonic Foundation, as aU.BoundedContextis itself aU.Holon. - Constrained by:
E.10.D1 D.CTX, which fixes the lexical discipline for “Context”, forbids context hierarchies, and makes Domain family informative. - Interacts with:
Norm-CAL: A context'sInvariantsare typically expressed asU.ConstraintRules.Lang-CHR: A context'sGlossaryis a collection ofU.Lexemes.Decsn-CAL: Decisions and objectives are often scoped to a specific context.F.9 Alignment & Bridge: the canonical locus of cross-context relations and loss policies.
- Enables: The resolution of conflicts as modeled in
D.3 Holonic Conflict Topology, by showing that many conflicts are context-dependent.
A.1.1:End
Role Taxonomy
Type: Architectural (A) Status: Stable Normativity: Normative
A holon’s essence tells us what it is; its roles tell us what it is being, here and now.
Problem frame
Pattern A.1 established the substantial characteristic of the core (Entity → Holon → {System, Episteme, …}), cleanly separating identity from structure and aggregation. The present pattern introduces the functional characteristic: how a holon participates in purposes within a bounded context and for some interval. This extends the early sketch of A.2 and tightens its alignment with A.7 (Strict Distinction): roles are not parts and not behaviours; they are contextual masks that a holon wears while behaviours are handled by Method/Work.
Problem
Without an explicit role calculus:
- Type explosion & conflation. Each new purpose breeds a new “subtype” (
PumpAsCoolingLoop,PumpAsFuelLoop, …), violating parsimony and fusing substance with function. - Agency opacity. It becomes unclear whether any system may act as a transformer/agent, or only pre-declared special kinds.
- Epistemic blindness. Knowledge artefacts (papers, proofs) cannot be given roles, blocking modelling of citation, evidence, or design-time justification.
Forces
Solution
We elevate Role to a first‑class semantic construct: a context‑bound mask (capability/obligation schema) worn by a holon. Behaviour and resource deltas live in Method/Work, not in the role itself.
S‑level definitions (normative)
U.Role— a context-bound capability/obligation schema that a holon may bear (play) for a time interval. A role has no structural parts (it does not participate in A.14partOf) and no resource deltas of its own. Role refinement/bundling is expressed via in‑Context relations (≤,⊥,⊗) rather than mereology. (A7 guard)U.RoleAssignment— a first-class assignment record recording that a holon bears (plays) a role in a bounded context over an optional Window. Keep the signature aligned with A.2.1 Role Assignment Standard; governance metadata (authority/justification/provenance) is captured viaU.RoleAssigningand the evidence graph (A.10).
Short form (readable): Holder#Role:Context@Window.
Why a first-class assignment record? It keeps identity (holon), function (role), context (semantics), and time (run-window) separate yet linked, preventing the substance/function conflation identified above. The early
playsRoleOf(Holon, Role, span)relation in the draft is subsumed byU.RoleAssignmentand extended with Context (and optional governance fields).
Temporal & behavioural alignment
- Method (intension) vs Work (occurrence). A
U.Methodis a design‑time, order‑sensitive capability: what can be enacted, under which preconditions/invariants, with what admissibility/acceptance gates. AU.Workis the dated, spatiotemporally bounded enactment of such behaviour by a system bearing a role (A.15.1). - MethodDescription is representation (viewpoint), not “the method itself”.
U.MethodDescriptionis anU.Epistemethat represents a method under an explicit viewpoint. Step‑graphs/scripts/workflows are one common viewpoint, but not universal. Other valid viewpoints include state‑machines, dynamical/solver/controller models, lab protocols, and quantum circuits/channels. A method itself need not admit a step decomposition; only a given description might. - Executable chain (who / what / how / when). A behavioural Role is eligible/authorized for one or more Methods (design‑time, Context‑local). A Work is
isExecutionOfa specific MethodDescription version (run‑time) and citesperformedBy = U.RoleAssignment. Together, these anchors answer “what happened, by which method, under which role” without collapsing design‑time into run‑time. - Resource accounting lives in Work. Only
U.Workcarries resource deltas (feeds Γ_work); Roles/Methods/MethodDescriptions do not.
Lexical note (A.6.P trigger). In the Role–Method–Work cluster,
bindsMethodis a technical token meaning “Context‑local eligibility/authorization of a Role for a Method”. Do not use plain “bind/rebind” as umbrella prose for editing relationships; when describing edits, prefer explicit change classes (declare/withdraw/retarget/revise/rescope/retime/refreshWitnesses).
Admissibility constraints (concept-level; non-deontic).
- Locality.
role ∈ Roles(context). Outside its context, a role’s meaning is undefined. - Structural‑mereology firewall. No Role (nor Method/MethodDescription) may appear as a node in any A.14
partOfchain; holarchies are for substantial holons only. Role refinement/bundling (≤,⊗) and method relations (refinement, factorization, step/phase views) are notpartOfand MUST NOT be rewritten into structural parthood. - Multiplicity. A holder may bear multiple roles concurrently; a role may be borne by many holders—subject to each context’s compatibility rules.
- Time anchoring.
window(if present) is non-empty and finite for run‑time claims; open‑ended assignments are allowed but must be traceably open‑ended from an assignment time (A.2.1). Design‑time bindings are timeless but descriptions are versioned viaU.MethodDescriptionidentity. - Behavioural coherence. For any
U.Workwindow, the performer’s cited RoleAssignment and the executed MethodDescription must align in the same Context:work.performedBy = RA,work.isExecutionOf = MD, andRA.roleis eligible/authorized for the Method represented byMD. (No hidden role swaps; no implicit method drift.)
Taxonomic frame (within a context)
Within each U.BoundedContext, role names are organised as a partial order (refinements) plus an incompatibility relation (mutually exclusive roles). Typical substrate‑neutral anchors:
Domains refine these anchors: e.g.,
CoolingCirculatorRole,CitationSourceRole,LemmaRole.
Archetypal Grounding (Tell–Show–Show: System / Episteme)
Tell. A single holon can be the same bearer across time while taking on different, context‑bound roles. A role is a mask (capability/obligation schema) that explains what it is being in a given U.BoundedContext; behavioural facts and resource deltas remain in U.Method / U.Work.
Show.
System case — Cooling loop
PumpUnit#3#HydraulicPump:Plant‑A@2025‑08‑08..open
HydraulicPumpRole ↦bindsMethod↦ CentrifugalPumpingMethod (design‑time, Context‑local eligibility)
CentrifugalPumpingMethod ↦isDescribedBy↦ centrifugal_pump_curve.ld@v7 (MethodDescription viewpoint; step‑graph OR dynamics, as appropriate)
run‑2025‑08‑08 isExecutionOf centrifugal_pump_curve.ld@v7; performedBy PumpUnit#3#HydraulicPump:Plant‑A@2025‑08‑08..2025‑08‑08 (run‑time Work)
(Behavioural/resource facts live in Work; method semantics live in the referenced MethodDescription viewpoint.)
Episteme case — Standard in design
RFC‑9110.pdf#ProtocolStandard:WorldWideWeb justifies MethodDescription selection; the system bearing TransformerRole is the design service that executed the selection work. The episteme did not act.
Collective vs set (safety pitfall)
A set {Alice, Bob, 3.14} has no behaviour; a team is a system with boundary, coordination Method, and supervision Work; only the latter can bear agentic roles.
Bias-Annotation
Lenses tested: Arch, Onto/Epist, Prag, Did. Scope: Universal (A‑cluster).
- Architecture bias (Arch): treating roles as structural parts can smuggle function into mereology and break holarchies.
Mitigation: keeppartOfchains role‑free; roles are not constituents (see CC‑A2.1). - Onto/Epist bias (Onto/Epist): anthropomorphising epistemes collapses evidence into agency.
Mitigation: epistemes can justify/authorize; only systems perform methods and work (CC‑A2.2). - Pragmatic bias (Prag): over‑contextualising can fragment reuse and create naming drift.
Mitigation: require explicit:Contextbinding and explicit bridges instead of silent equivalence (CC‑A2.4). - Didactic bias (Did): metaphors (“mask”) may be misread as informal.
Mitigation: bind obligations to CC items; avoid imperative prose outside CC.
Authoring guidance (for engineers and leads)
- Name roles for intent, not mechanics. Prefer
CoolingCirculatorRoleoverChannelFluidWithCentrifugalProfile. - Pin the context early. If two teams disagree, split contexts and (optionally) define an alignment bridge; do not over‑generalise the role.
- Document the enactment chain. For any operational claim, be ready to point to:
RoleAssigning → RoleAssignment → (Role ↦bindsMethod↦ Method) ↔ MethodDescription → Work. (Readers’ dictionary: workflow/script/state‑machine/dynamical model/quantum circuit → MethodDescription; run/job/operation → Work.)
Conformance Checklist (CC‑A2.*)
Note. CC‑A2.2 aligns with A.7 Role‑domain guards (“behavioural roles’ domain = system; epistemes bear non‑behavioural roles only”).
Common Anti-Patterns and How to Avoid Them
-
“Transformer as system subtype.” ✗ “
U.TransformerSystembuilds pumps.” ✓ “RobotArm R‑45#Transformer:Plant‑Aexecuted Work W.” (Role is a mask; behaviour is Method/Work.) -
“Role as part.” ✗ “The pump’s role is one of its components.” ✓ Roles are never parts; components are substantial. Keep all
partOfchains role‑free. -
“Episteme acts by itself.” ✗ “The PDF enforced the SOP.” ✓ An episteme can hold roles like
ProtocolStandardin context, but only a system performs the Method/Work that uses it. -
“Context leakage.” ✗ “Pluto is Planet and DwarfPlanet.” (in one tacit space) ✓ “
Pluto#Planet:Early20thCenturyAstronomy;Pluto#DwarfPlanet:IAU_2006_Definition.” No contradiction—different bounded contexts. (Illustrative ofU.RoleAssignmentsemantics carried forward from the A.2.1.) -
“Method = workflow (step list) by default.” ✗ “The method is the ordered list of steps 1..n.” ✓ A Method is a design‑time capability; “steps” (or their absence) are a property of a MethodDescription viewpoint. A Work executes a specific MethodDescription; use a workflow/script view when step semantics matter, and use other views (dynamics/solver/circuit/channel) when steps are not meaningful.
Consequences
Rationale (post‑2015 cross‑domain corroboration)
Why insist on roles as contextual masks and externalised transformers?
- Constructor Theory (2015–2022). Post‑2015 work by Deutsch & Marletto re‑centres physics on possible tasks and constructors rather than objects, mirroring FPF’s TransformerRole: behaviour is attached to “who can realise a task,” not to substance per se. Our separation of SubstantialHolon vs Role and the insistence on external transformers directly echo this shift. (Conceptual alignment noted in A.2 Solution and A.12 intent.)
- Layered Control Architectures (Matni–Ames–Doyle, 2024). The modern control stack cleanly externalises regulators and planners relative to plants. FPF’s obligatory “system bearing TransformerRole” (A.7, A.12) is isomorphic to that separation, keeping supervision and actuation outside the controlled holon.
- Active‑Inference / Agency spectrum (2017–2023). Contemporary models treat agency as graded and contextual (percept‑act loops tuned by free‑energy bounds). A.13 adopts exactly this: AgentialRole is a role worn by a holon, with graded measurements via Agency‑CHR, not a static type.
- Basal Cognition & multi‑scale organisation (2019–2024). Fields & Levin argue for cross‑scale control and information flows; FPF encodes this via Γ‑flavours and the Meta‑Holon Transition triggers, ensuring Role assignments compose across scales without collapsing identity into function.
- Knowledge ecosystems & safety cases (2018–2025). Modern assurance relies on traceable evidence and conservative integration (no “truth averaging”): our A.10 anchors (SCR/RSCR) and Γ_epist’s weakest‑link fold implement that discipline and forbid self‑evidence.
Summing up: post‑2015 science and engineering converge on roles as contextual capabilities, externalised control, and traceable evidence. A.2 codifies these insights in a substrate‑neutral way, keeping the Core small yet powerful.
SoTA-Echoing (post‑2015 alignment, informative)
Note. Prefer citing a maintained SoTA synthesis pack for roles/contexts if your Context has one.
Relations
- Builds on: A.1 Holonic Foundation (role/mereology split), A.7 Strict Distinction (role ≠ behaviour; episteme ≠ carrier), A.14 Advanced Mereology (no roles in holarchies).
- Specialises / Coordinates with: A.13 Agential Role & Agency Spectrum (behavioural roles over systems; graded agency), A.15 Role–Method–Work Alignment (bindsMethod / isExecutionOf discipline).
- Constrains / Used by B‑cluster: B.1 Universal Algebra of Aggregation (Γ) (keep order/time in Γ_ctx/Γ_time; keep provenance in Γ_epist), B.2 Meta‑Holon Transition (promotion when supervision/closure appears), B.3 Trust & Assurance (evidence & congruence).
- Interlocks with E‑cluster (governance & language): E.10 Lexical Discipline (registers, tier disambiguation, local aliases like “Transformer”), E.5.1 DevOps Lexical Firewall (ban tooling tokens in Core patterns).
- Reinforces: A.10 Evidence Graph Referring (external transformer; SCR/RSCR), A.12 External Transformer Principle (agent externalisation).
A.2:End
U.RoleAssignment: Contextual Role Assignment
Type: Definitional (D) Status: Stable Normativity: Normative
with Role Performance View, U.RoleStateGraph (RSG), and Role Characterisation Space (RCS) hooks
Builds on: A.1 Holonic Foundation, A.1.1 U.BoundedContext, A.2 Role Taxonomy.
Coordinates with: A.13 Agential Role & Agency Spectrum, A.15 Role–Method–Work Alignment, E.10.D1 D.CTX (Context discipline), E.10.D2 Strict Distinction.
Lexical discipline. Context ≡ U.BoundedContext (E.10.D1). Appointment is colloquial only; the canonical term in this specification is Role Assignment (see CC‑LX‑1).
Mint vs reuse. This pattern defines U.RoleAssignment and U.RoleEnactment and introduces the labels Role Characterisation Space (RCS) and Role State Graph (RSG) as intensional facets recorded in RoleDescription / RoleSpec. It reuses existing kernel terms (U.Holon, U.System, U.Episteme, U.BoundedContext, U.Work, U.Method) without changing their meanings.
Problem frame
Intent. Provide one, universal, context‑local way to say who is being what, where (and when) without altering what the thing is. The same grammar works for people, machines, software, teams, and also for knowledge artefacts (epistemes) when they hold statuses rather than perform actions.
Scope.
- Defines
U.RoleAssignment(binding a holder holon to a role inside a bounded context, optionally within a time window). - Separates that binding from
U.RoleEnactment(the run‑time fact that a piece of Work was performed under that assignment). - Names the Role Characterisation Space (RCS) and the Role State Graph (RSG) as intensional facets of a Role (recorded in its
RoleDescription, upgraded toRoleSpeconly after tests exist). - Declares eligibility constraints so Roles apply to the right holon kinds, without badge‑of‑badge chains like “TransformerRole is assigned to be AgentRole”. If your Context wants taxonomic inheritance between role names, express it with in‑Context role algebra (
≤), not via chained assignments. - Declares eligibility constraints so Roles apply to the right holon kinds, without badge‑of‑badge chains like “TransformerRole is assigned to be AgentRole”. If a Context intends taxonomic inheritance between role names, that relation is expressed in‑Context via role algebra (
≤), not via chained assignments.
Non‑goals. No storage models, no workflows, no org charts. This is a thinking Standard; all semantics are notation‑free.
Problem
- Type explosion. Baking transient function into rigid types (“CoolingPump”, “AuditDeveloper”) violates parsimony and makes change brittle.
- Context drift. Labels like Operator, Process Owner, Standard slide in meaning across teams/years when not tied to a Context.
- Actor vagueness. Work logs state that things happened but not who, in what capacity, under which local rules.
- Category leaks. Documents “do” tasks; deontic statuses are treated like run‑time states; capabilities are confused with permissions.
- Role chains. Attempting “System ↦ TransformerRole ↦ AgentRole” hides intent and smuggles taxonomy into the data plane.
Forces
Solution
Canonical definition (notation‑free)
U.RoleAssignment is a **context-local assignment:
Admissibility constraints (concept‑level; non‑deontic).
- Invariant RA‑1 (Locality).
role ∈ Roles(context). The role’s meaning is exactly the one recorded in that Context’s RoleDescription/RoleSpec. - Invariant RA‑2 (No role‑of‑role).
holder : U.Holonandholder ∉ {U.Role, U.RoleAssignment}. (Roles/assignments are never holders.) - Invariant RA‑3 (Eligibility by role kind).
- Behavioural roles (agential/transformer/observer/speech and their refinements):
holderis aU.System. Only systems can enact Methods and produce Work. - Status roles (epistemic‑status / normative‑status / service‑governance):
holderis aU.Episteme. Epistemes never enact Work; they gate and justify. - Context refinements may tighten eligibility (e.g., “Approver must be human”) but are restrictions of the System/Episteme split (they do not weaken it).
- Behavioural roles (agential/transformer/observer/speech and their refinements):
- Invariant RA‑4 (Window discipline). If
windowis present, enactments occur within it. Ifwindowis absent, interpret the assignment as open‑ended from an assignment time that is still traceable (e.g., via an issuingU.RoleAssigningSpeechAct Work or other evidence). - Invariant RA‑5 (Separation). A RoleAssignment confers the capacity/authorization to act (or the status to be recognised), but it is not behaviour (no Work implied), not capability (intrinsic ability lives elsewhere), and not structure (it does not participate in BoM / part‑of structure).
Governance metadata (optional but first‑class when present).
justificationcarries why the assignment is valid in this Context (policy, standard, evidence Episteme).provenancecarries how the assignment was issued or verified (method reference; may link to aU.RoleAssigningwork step in the evidence graph).
Didactic read. Think badge (who wears which mask, where, when). The rules for the mask live in the room (Context).
Two assignment modes.
A RoleAssignment can be:
(a) Authoritative — issued by an authority or policy in the Context (often via a U.RoleAssigning SpeechAct Work); it can open a Green‑Gate for steps that require explicit authorization.
(b) Observational — an evidence‑backed classification that the holder occupies a Role in this Context (e.g., “Moon as SatelliteRole:IAU_2006”). Observational assignments never by themselves open operational Green‑Gates; they can gate decisions and analysis.
Role Enactment (distinct from the assignment)
U.RoleEnactment captures the run‑time fact that a specific piece of Work was performed under a specific Role Assignment:
Admissibility constraints (concept‑level; non‑deontic).
- Invariant RE‑1 (Actor reality).
by.holder : U.System. (Epistemes never enact Work.) - Invariant RE‑2 (Temporal fit).
work.windowoverlapsby.window(orby.windowis open and containswork.window). - Invariant RE‑3 (Method gate). For the
MethodSteprealised bywork,by.rolesatisfies the step’srequiredRolesin that same Context (directly or via≤specialization inside the Context). - Invariant RE‑4 (Traceability shape).
U.Workrecords cite the performer asperformedBy = some U.RoleAssignment.U.RoleEnactmentis the conceptual (or derived) association〈work, work.performedBy〉; if a system persists it explicitly, it is 1:1 with Work.
Reading: Assignments authorize; enactments happen. That single sentence prevents months of muddled logs.
Role Enactment is the occurrence of U.Work performed by a holder while a valid U.RoleAssignment for the required Role is in an enactable state of its RoleStateGraph (A.2.5) within the same Context. Enactment is generic: it includes operational work (e.g., actuation) and communicative work (speech acts such as approvals).
Role Characterisation Space (RCS) & Role State Graph (RSG)
These are intensional facets of a Role, not containers “inside” the Role. They are recorded in the RoleDescription (or RoleSpec once harnessed), per E.10.D2.
-
RCS (Role Characterisation Space). A set of named characteristics that parameterise how the Role is understood in a Context (e.g., AgencyLevel ∈ {None, Assisted, Delegated, Autonomous}; SafetyCriticality ∈ {SC0…SC3}).
-
RSG (Role State Graph). A directed graph of named states (nodes) and admissible transitions (edges) for the Role within the Context (e.g., {Eligible → Authorized → Active → Suspended → Revoked}).
- Each state has a Conformance Checklist (set of observable cues) supporting Evaluations (“X ∈ Authorized@context in W”).
- RSG governs role state transitions, independent of any Work instance.
Discipline. Prefer the phrasing “Role is characterised by RCS/RSG recorded in RoleDescription”; avoid “Role contains its states.”
Shorthand & reading
The canonical compact form used in prose and diagrams is:
Examples:
PLC_17#Transformer:PipelineOps@2025‑04‑01..2025‑06‑30ISO_26262v2018#NormativeStandard:AutoSafetyCase(status role on an Episteme; no enactment)
The shorthand is didactic; the semantics are those of §§4.1–4.3.
No role chains (use algebra, not badge‑of‑badge)
Chained assignments are ill‑formed for encoding taxonomy (see Invariant RA‑2 and CC‑ELIG‑3). Chaining hides intent and defeats validation.
Taxonomic inheritance between role names is declared explicitly in the Context’s role algebra. For example, if (per A.13) your Context treats every transformer as a kind of agent, state:
TransformerRole ≤ AgentialRole(in that Context’s role algebra)
When a MethodStep requires two independent roles, express the conjunction where it belongs:
- the MethodStep requires both roles; the holder wears two badges, not a badge‑of‑a‑badge.
Eligibility across holon kinds (normative matrix)
A Role’s family constrains who can wear its badge. Eligibility is part of didactic hygiene and prevents chains like “Transformer → Agent”.
Holder kinds (recap)
U.System— any acting holon (person, device, software service, team, organization, socio‑technical unit).U.Episteme— any knowledge unit (document, dataset, model, standard, Standard).U.Holon— supertype; only Systems enact Work; Epistemes can only hold status roles.
Role‑kind × holder matrix
Invariant — RA‑3 (eligibility) (restated): RoleAssignments are ill‑formed if they violate this matrix. A Context may tighten (e.g., “Approver must be human”), never loosen.
Conformance checks (easy to remember).
- CC‑ELIG‑1. If
role.family ∈ {Agential, Transformer, Observer, Speech}, thenholder : U.System. - CC‑ELIG‑2. If
role.family ∈ {Epistemic‑Status, Normative‑Status, Service‑Governance}, thenholder : U.Episteme. - CC‑ELIG‑3. No “role of a role”:
roleis bound to a holder, not to another role or assignment.
Role algebra within a single Context (meaning relations)
Role algebra
The in‑Context role algebra relates role types inside one U.BoundedContext. It is not mereology. Its operators (≤, ⊥, ⊗) is specified normatively in A.2.7 U.RoleAlgebra.
A.2.1 relies on it for (i) requiredRoles substitution checks (≤), (ii) separation‑of‑duties validation (⊥), and (iii) conjunctive bundles (⊗), but does not restate the operator semantics here.
Time & state transition calculus (windows, RSG, enactability)
Assignments authorize, enactments happen — in time. RSG governs the role’s state transitions; window governs the binding’s validity.
Windows and overlap
- Window form:
@t_start..t_end(ends may be open). - RE‑2 (temporal fit) (restated):
work.windowlies within (or overlaps appropriately with)assignment.window. - Handover pattern: Close
A#Role@..tand openB#Role@t..— history is preserved by closing windows rather than deletion. - (Conformance hook.) See CC‑WIN‑1: preserve history by closing windows rather than erasing RoleAssignments.
RSG gating of enactment
Each Role’s RoleDescription/RoleSpec defines an RSG with named states; some states are enactable.
- Delegation. Normative author‑facing requirements for
U.RoleStateGraphstructure (including enactability marking and per‑state checklists) and the shape ofStateAssertionevidence are defined in A.2.5; A.2.1 only relies on the resulting enactment gate. - Invariant RE‑5 (RSG gate). A
U.RoleEnactmentis valid iff at enactment time theU.RoleAssignmentcan be supported by a valid StateAssertion that the holder is in an enactable state of the Role’s RSG in this Context. - (A.2.5 hook.) The Role’s
U.RoleStateGraph(A.2.5) identifies enactable states and attaches a Conformance Checklist to each state; checklist verdicts can be recorded asStateAssertions (see SCR‑A2.5‑S02/S03). - Example. SurgeonRole states: Eligible → Authorized → Active → Suspended → Revoked. Only Active is enactable. A pre‑op checklist produces
StateAssertion(SurgeonRole, Active).
Practical reading. Badge valid (window) ∧ state is right (RSG) ⇒ you may act.
Suspensions, revocations, probation
- Suspend: transition to a non‑enactable state (e.g., Suspended). Keep the assignment’s window open; enactment is blocked by RE‑5.
- Revoke: either (a) close the window, or (b) transition to Revoked (non‑enactable).
- Probation: a dedicated RSG state with limited enactability (e.g., only under supervision, modelled as an extra required role on Method steps).
- Discipline (A.2.5). RSG transitions are explicit; no implicit “back to Active”.
Typical temporal patterns (didactic)
- Shift rotation.
A#Role@08:00..16:00,B#Role@16:00..24:00— clean handover, no⊥issues. - Shadowing.
Trainee#Role@..+Mentor#SupervisorRole@..; Method steps require both roles. - Emergency bundle.
SoloOperator := Incision ⊗ Hemostasis ⊗ Suturing; activate only under declared emergency (Context‑level policy).
Integration with A.15 (Role–Method–Work alignment)
One line. A
U.MethodDescriptionnames the roles it needs; aU.Workcites the concreteU.RoleAssignmentthat enacted the step; the RSG state + window gates that enactment.
Design‑time Standard (inside U.MethodDescription)
For every MethodStep:
requiredRoles— a list ofU.Rolefrom the same Context as the step. Example. InHospital.OR_2025, step “Make incision” hasrequires: [IncisionOperatorRole].- Role algebra in‑Context applies: if the Context defines
IncisionOperatorRole ≤ SurgeonRole, thenrequires: [SurgeonRole]also admits holders ofIncisionOperatorRole. - Separation of concerns. Capability checks (does the holder can?) belong to
U.Capabilityand resource limits; authorization belongs toU.RoleAssignment+ RSG.
Run‑time check (inside U.Work)
A U.Work record provides (or allows derivation of) the fields needed to satisfy CC‑ENACT‑1..3:
performedBy= a concreteU.RoleAssignment(not just a person/system name).- Window gate. The Work timestamp falls inside the assignment’s
@Window. - State gate. At that timestamp, an enactable state for the assignment is proven by a
StateAssertion(the checklist verdict for a named RSG state). - Role algebra gate. The assignment’s
roleis either one ofrequiredRolesor a specialization (≤) thereof; bundles (⊗) expand to conjunctions; incompatibilities (⊥) forbid overlaps on the same holder.
Evaluation & acceptance (link to services & deontics)
- Observation. The Work produces
U.Observation(s). - Evaluation. A
U.Evaluationcompares Observations with AcceptanceClause(s) referenced by a promise content clause (U.PromiseContent) or a RequirementRole. - SoD hook. If the step or evaluation demands independence (e.g., “not performed by its reviewer”), enforce via
⊥betweenPerformerRoleandReviewerRolein the same Context.
Planning & scheduling (design‑time “who will enact”)
U.WorkPlan(aka “WorkDescription” in prose) binds forthcoming steps to candidate RoleAssignments and time windows.- Checks before the fact. Validate windows (no gaps/overlaps where disallowed), enforce
⊥, ensure expected RSG state will be enactable at scheduled time (or flag a pre‑flight checklist).
Didactic cue. Think “Step asks for badges; Run cites a badge; Badge must be valid & green.” (Badge = RoleAssignment; valid = window; green = RSG state with a fresh StateAssertion.)
Cross‑Context bridges in practice (with CL penalties)
Cross‑Context role substitution is Bridge‑only and is specified in F.9 (with CL/waiver regimes) and B.3 (CL‑penalty routing).
A.2.1’s only rule is no substitution by label: any “Role_B@B satisfies Role_A@A” claim used for checking or enactment MUST cite an explicit Bridge (direction, CL, loss notes) and MUST NOT override in‑Context ≤, ⊥, or ⊗.
Everyday pattern snippets (didactic moves)
Use these micro‑moves to think and speak cleanly; no tooling required.
-
“Who can do this step?” On a
MethodStep, writerequires: [RoleX]. In your head, expand: “AnyperformedBywhoserole ≤ RoleX, with a valid window and enactable RSG state.” Example:requires: [SurgeonRole]andIncisionOperatorRole ≤ SurgeonRole⇒Dr.Kim#IncisionOperatorRole:Hospital.OR_2025is admissible iff Active. -
Handover without history loss. Close one window, open another. Never delete.
Alex#IncidentCommander:SRE_Prod@08:00..12:00Riya#IncidentCommander:SRE_Prod@12:00..20:00 -
Independence by construction (SoD). Declare
Developer ⊥ IndependentAuditor. Then it’s impossible (by validation) to have overlapping windows on one holder for both roles. -
Supervision as bundle. Model apprenticeship by requiring
Trainee ⊗ Supervisoron sensitive steps, or by RSG state Probation that flipsenactableonly ifSupervisorRoleis also present. -
Same badge name in two Contexts.
LeadEngineer:ProjectPhoenix≠LeadEngineer:DivisionR&D. If you must relate, create a Bridge with CL & loss notes; never rely on the name. -
Documents don’t act; they frame. Replace “the SOP executed X” with:
SOP_v4#RequirementRole:SafetyCaseand aSpeechAct“approve run” byQA_Officer#AuthorizerRole:Plant_2025. -
Window + state ⇒ permission. Quick mental check: badge valid? (window) ∧ state OK? (RSG) ⇒ go; else no‑go.
-
Communicative enactment (approval)
CAB_Chair#ApproverRole:ChangeControl@2026-05-01T10:05performs a SpeechAct Work “Approve Change-4711”. Effect: moves ApproverRole’s RSG state from Authorized?→Approved and opens the Green‑Gate for the operational step “Deploy Change-4711” (performed by a different RoleAssignment).
Archetypal Grounding (three disparate arenas)
Goal. Show that the same assignment Holder#Role:Context@Window, plus RCS (Role-Characterisation Space) and RSG (Role-State Graph), works uniformly for operational systems, software/service operations, and knowledge governance.
Natural systems note. Spontaneous physical phenomena (e.g., Moon orbiting Earth) are modeled as U.Dynamics, not as U.Work. An observational RoleAssignment like Moon#SatelliteRole:IAU_2006 is valid classification but does not imply enactment of a method.
Industrial operations (welding cell)
Role (family). WelderRole (Transformer)
*RCS (illustrative characteristics).
ProcessClass ∈ {MIG, TIG, Spot}QualifiedMaterial ∈ {Al, SS, Ti, …}MaxCurrentAmp ∈ ℝ⁺SafetyProfile ∈ {Standard, HotWork, ConfinedSpace}
RSG (named states).
Unqualified → Qualified → Authorized → Active → Suspended → Revoked
(enactable: Active only)
Assignments.
Robot_SN789#WelderRole:AssemblyLine_2025@2025‑02‑01..openRobot_SN790#WelderRole:AssemblyLine_2025@2025‑02‑01..open
StateAssertions (via checklists).
StateAssertion(WelderRole, Qualified, AssemblyLine_2025, @2025‑02‑01..2026‑02‑01)— training & test weld coupons.StateAssertion(WelderRole, Active, AssemblyLine_2025, @2025‑03‑01..open)— daily pre‑shift checks + gas/torch inspection.
Enactment (gated by RSG).
A U.Work entry W#Seam134 is valid only if performedBy = Robot_SN789#WelderRole:AssemblyLine_2025 and an Active StateAssertion covers the timestamp. If the torch‑health checklist fails, RSG transitions Active → Suspended; further seams are blocked by RE‑5.
Software & cloud operations (continuous delivery / SRE)
Roles (families).
DeployerRole(Transformer) — authorises execution of deployment Methods.IncidentCommanderRole(Agential/Speech) — directs response and issues SpeechActs (declares incident states).
RCS (illustrative).
DeployerRole:Env ∈ {staging, prod},ChangeWindow,RollbackAuthority ∈ {self, peer, CAB}.IncidentCommanderRole:OnCallTier ∈ {L1,L2,L3},ServiceScope,PageDuty ∈ {primary, secondary}.
RSGs (named states).
DeployerRole:Eligible → Authorized → Active → Suspended(enactable: Active).IncidentCommanderRole:OnCall → Engaged → Handover → Rest(enactable: Engaged).
Assignments.
sCG‑Spec_ci_bot#DeployerRole:CD_Pipeline_v7@2025‑04‑01..openAlex#IncidentCommanderRole:SRE_Prod@2025‑04‑10T08:00..2025‑04‑10T20:00
StateAssertions (via checklists).
DeployerRole/Active: completed change ticket, green pre‑deploy tests, peer‑review check mark.IncidentCommanderRole/Engaged: accepted page, situational brief read, comms‑channel opened.
Enactment.
- A deployment
Workis valid only withperformedBy: sCG‑Spec_ci_bot#DeployerRole:CD_Pipeline_v7andActivestate asserted for the moment of start. - Declaring
Incident SEV‑1is a SpeechAct Work performed byAlex#IncidentCommanderRole:SRE_Prodin Engaged state; it changes deontic conditions (e.g., elevatesRollbackAuthority).
Knowledge governance (standards & requirements)
Roles (families).
NormativeStandardRole(Normative‑Status Episteme) — a document that is the standard in this Context.RequirementRole(Deontic‑Status Episteme) — a statement that binds behaviour in this Context.
RCS (illustrative).
NormativeStandardRole:Scope,Edition,ApplicabilityWindow.RequirementRole:BindingClass ∈ {shall, should, may},TargetRole,AcceptanceClauseRef.
RSGs (named states).
NormativeStandardRole:Proposed → Adopted → Effective → Superseded(enactable: N/A — Episteme roles are non‑enactable; they gate others).RequirementRole:Draft → Approved → Effective → Retired(non‑enactable).
Assignments.
ISO_26262_ed2.pdf#NormativeStandardRole:AutoSafetyCase_2025@2025‑01‑01..openREQ‑BRAKE‑001.md#RequirementRole:AutoSafetyCase_2025@2025‑03‑05..open
Effects (gating, not acting).
- A system’s Work (e.g., HIL test run) is evaluated against clauses referenced by
RequirementRole. - An Approval SpeechAct (by a CAB chair who is a
U.System) may transitionRequirementRole: Draft → Approved. The Episteme does not “act”; Systems act, Epistemes hold status.
Bias-Annotation
Lenses tested: Arch, Onto/Epist, Socio‑tech, Prag, Did. Scope: Kernel (A‑cluster).
-
Architecture bias (Arch): treating roles/assignments as structural parts can smuggle function into mereology and break holarchies.
Mitigation: keep roles out of BoM/structure trees; close windows instead of deleting history. -
Onto/Epist bias (Onto/Epist): anthropomorphising epistemes collapses evidence into agency (“the SOP approved”).
Mitigation: only Systems enact Work; Epistemes may justify, constrain, and gate; enforce RE‑1 and CC‑SD‑2. -
Socio‑technical bias (Socio‑tech): role eligibility rules can silently encode exclusion, power asymmetries, or discrimination (e.g., “Approver must be X” with no rationale).
Mitigation: keep eligibility refinements explicit in the Context, recorded as Episteme policy, and review them under D.2/D.* ethics patterns; prefer capability/competence evidence over demographic proxies. -
Pragmatic bias (Prag): over‑localising role labels can fragment reuse and create naming drift.
Mitigation: require explicit:Contextbinding and explicit Bridges with CL/loss notes instead of silent equivalence. -
Didactic bias (Did): metaphors (“badge”, “mask”, “green gate”) may be misread as informal or security‑only.
Mitigation: bind obligations to the Conformance Checklist; keep metaphors as mnemonic only.
Conformance Checklist (normative)
SCR (compact, memorable)
Pass these and your RoleAssignments are sound.
Anchoring & locality
- CC‑CTX‑1. A conformant model/record MUST ensure that every RoleAssignment’s
rolenames a role defined in the sameU.BoundedContextas that assignment. - CC‑CTX‑2. Authors and validators MUST NOT assume cross‑Context equivalence by label; any cross‑Context relation used for substitution or checking MUST be represented only in Bridges (F.9).
Eligibility & families
3. CC‑ELIG‑1. Validators MUST reject any RoleAssignment record where role.family ∈ {Agential, Transformer, Observer, Speech} but holder :̸ U.System.
4. CC‑ELIG‑2. Validators MUST reject any RoleAssignment record where role.family ∈ {Epistemic‑Status, Normative‑Status, Service‑Governance} but holder :̸ U.Episteme.
5. CC‑ELIG‑3. Validators MUST reject any RoleAssignment record whose holder ∈ {U.Role, U.RoleAssignment} (no badge‑of‑badge chains).
Role algebra (in‑Context)
See A.2.7 U.RoleAlgebra (CC‑ALG‑1, 2, 3).
Time & gating
9. CC‑WIN‑1. Record‑keeping systems and models MUST NOT delete historic RoleAssignment records; they close windows instead. If window is absent, the record MUST retain a traceable assignment start time (e.g., via a U.RoleAssigning SpeechAct Work or other evidence).
10. CC‑ENACT‑1. Conformant Work records MUST cite performedBy = some U.RoleAssignment; validators MUST be able to check that the Work interval fits the assignment window (or that an open‑ended window contains it).
11. CC‑ENACT‑2. At the Work time, validators MUST be able to (a) locate/derive a StateAssertion supporting an enactable RSG state for the cited assignment, and (b) verify that the assignment’s role satisfies the executed MethodStep’s requiredRoles in that same Context (directly or via ≤; ⊗ expands to conjunctions).
12. CC‑ENACT‑3. Runtime gates and validators MUST block enactment while the assignment lacks a supporting StateAssertion for an enactable state (e.g., during Suspended).
Strict distinction & category hygiene
13. CC‑SD‑1. Models and tools MUST NOT place Roles into BoM/structure trees; roles do not participate in mereology.
14. CC‑SD‑2. Models and tools MUST NOT treat Epistemes as Work actors; validators MUST enforce RE‑1 (by.holder : U.System).
Lexical hygiene 15. CC‑LX‑1. Authors MUST NOT use appointment as a synonym for Role Assignment in normative clauses.
Traceability
16. CC‑TRC‑1. From any U.Work, reviewers MUST be able to trace performedBy → RoleAssignment → Role → (RCS,RSG) → Context and retrieve supporting StateAssertion evidence.
RSCR (regression harness)
Run these mental “diff checks” whenever you change roles, contexts, or states.
RSG & gating
- RSCR‑RSG‑E01. After editing an RSG, verify that each enactable state still has a live Conformance Checklist and that historic StateAssertions remain interpretable (no silent renames).
- RSCR‑RSG‑E02. If a state flips enactable⇄non‑enactable, re‑evaluate pending or recurring
U.Workplans (no hidden authorisations).
SoD & windows
- RSCR‑SOD‑E01. On adding
⊥constraints, scan for overlapping assignments that newly violate SoD; schedule revocations or rescheduling. - RSCR‑SOD‑E02. On removing
⊥, confirm that governance rationale is recorded elsewhere (policy change Episteme).
Context churn
- RSCR‑CTX‑E01. When a Context edition updates, freeze prior RoleAssignments; create new assignments in the new Context rather than mutating old ones.
- RSCR‑CTX‑E02. Bridges referencing affected roles are reviewed for CL/loss adjustments.
Eligibility drift
- RSCR‑ELIG‑E01. If a role family changes (e.g., reclassifying Offerer from behavioral to status), audit all assignments for holder‑type violations.
Trace continuity
- RSCR‑TRC‑E01. Spot‑check that
U.Work → RoleAssignment → StateAssertionchains still resolve after refactors. - RSCR‑TRC‑E02. Randomly sample old incidents/runs to ensure reproducible authorisation verdicts.
Name stability
- RSCR‑NAME‑E01. If a role label changes, maintain the role identity; treat renamed labels as aliases inside the same Context rather than minting a new role unless RCS/RSG changed materially.
Common Anti-Patterns and How to Avoid Them
Consequences
Benefits
- No type explosion. Structure stays stable; function lives in RoleAssignments with small, local lattices.
- Traceable authority. Every
U.Workhas a clean chain: performedBy → RoleAssignment → Role → (RCS,RSG) → Context. - Safe heterogeneity. Different Contexts can use the same badge name differently; conflicts are dissolved by locality and explicit Bridges.
- Didactic economy. One mental form —
Holder#Role:Context@Window— covers factories, clouds, labs, and libraries. - Strong SoD. Incompatibilities (
⊥) and bundles (⊗) are first‑class; audits become mechanical. - Assurance‑ready. RSG + StateAssertions convert checklists into explicit gates; CL penalties quantify Cross‑context risk.
- Temporal honesty. Windows encode the ebb and flow of assignments without history loss.
Costs / discipline required
- RoleDescription work. Each Context needs a minimal RoleDescription (name, RCS, RSG, checklists).
- Bridge authorship. Cross‑context work requires explicit Bridges with CL & loss notes.
- Vocabulary hygiene. Teams must stop using context‑less role labels.
Teaching distillation (60‑second recap)
“Give every action a badge with a Context. The badge is a
U.RoleAssignment:Holder#Role:Context@Window. The badge is valid in time (window) and green in state (RSG + StateAssertion). A Method step names the badges it needs; a Work cites the exact badge that enacted it. If a badge comes from another Context, cross with a Bridge and respect its CL penalty. Keep SoD with⊥, reuse expertise with≤, and require combos with⊗. Documents don’t act — they hold status roles; only systems enact Work. With this, factories, clouds, and knowledge all speak the same, small grammar.”
So what? Adoption test (1 minute)
If a team claims to “use A.2.1”, a random audit sample should pass all of these in minutes:
- Badge locality: every role label is always read as
Role:Context(or explicitly bridged), never as a global name. - Work attribution: each sampled
U.Workcites a concreteperformedBy = U.RoleAssignment, not just a person/system string. - Window + state gate: at the Work time, the assignment window fits and an enactable RSG
StateAssertionexists (or the run is correctly blocked/exceptioned). - No badge‑of‑badge: no assignment ever binds a
U.RoleorU.RoleAssignmentas its holder. - Status hygiene: no Episteme (Standard/Requirement/Evidence) is ever an actor of Work; it only gates/justifies/evaluates.
Rationale
- Strict Distinction (A.7). Keeps identity (Holon) separate from assignment (RoleAssignment), behaviour (Method/Work), and knowledge (Episteme).
- Ontological Parsimony (A.11). One universal binding, three tiny in‑Context relations (
≤, ⊥, ⊗), no global role types. - Universal core (A.8). The same mechanism works across systems (machines, software, teams) and epistemes (standards, requirements), demonstrated in §5.
- Lexical discipline (E.10.D1 & E.10.D2). Roles are context‑local; descriptions (RCS, RSG) are descriptions of intensional roles, not the roles themselves.
- Assurance posture. Windows + RSG + StateAssertions make authorisation explicit and reviewable; Bridges + CL make cross‑Context reuse explicit and risk‑graded (B.3).
SoTA-Echoing (notes)
Relations
Builds on / depends on
- A.1 Holonic Foundation —
U.Holon(holders). - A.1.1
U.BoundedContext— the Context of meaning. - A.2 Role Taxonomy — role kinds for Systems vs Epistemes; context‑local naming.
- A.2.7
U.RoleAlgebra— in‑Context≤/⊥/⊗relations used for substitution, SoD, and bundles. - E.10.D1 (D.CTX) & E.10.D2 (Strict Distinction of intensional vs description) — locality & description discipline.
Enables / instantiated by
- A.15 Role–Method–Work Alignment — step gating, performer linking, evaluation hooks.
- B.1 Γ‑algebra — constructors/observers are simply roles enacted by systems.
- B.3 Trust & Assurance Calculus — CL penalties on Bridges; evidence from StateAssertions.
- D.2 Multi‑Scale Ethics — duties attach to roles; SoD encoded via
⊥. - F‑cluster (Unification Method) — Context definitions (F.1–F.4) and Bridges (F.9) consumed here.
Interacts with
- C.* Patterns (Sys‑CAL, KD‑CAL, Method‑CAL, CHR‑CAL) — enactment hooks, measurement via Observations.
- Service & Deontics (Part D/E) — obligations and acceptance evaluated against role‑gated Work.
A.2.1:End
A.2.2 — U.Capability
Context (plain‑language motivation)
In real projects we must answer two different questions:
- “Can this system do X?” — this is about an ability inherent to the system.
- “Is this system assigned to do X here and now?” — this is about an assignment (a Role assignment) inside a bounded context.
Teams frequently blur the two, and then further mix them with how the work is done (the Method) and what actually happened (the Work). U.Capability isolates ability as a first‑class concept so that you can plan realistically, staff responsibly, and audit cleanly.
Problem (what goes wrong without this concept)
- Permission ≠ ability. A Role assignment authorizes execution in a context; it does not prove the system can meet the required WorkScope and WorkMeasures.
- Recipe ≠ ability. A Method says how to do something; it does not guarantee that this holder can meet the target outcomes under the required constraints.
- Execution log ≠ ability. A past Work record does not, by itself, establish a stable ability; conditions may have been favorable or unique.
- Cross‑team confusion. Enterprise terms like “capability”, “service”, and the old “function” are used interchangeably; planning, staffing, and assurance become fragile.
Forces (what we must balance)
Solution — define the ability explicitly
A.2.2:4.1 Definition
U.Capability is a dispositional property of a U.System that states its ability to produce a class of outcomes (i.e., execute a class of Work) within a declared U.WorkScope (conditions/assumptions) and meeting stated U.WorkMeasures. It is not an assignment (Role), not a recipe (Method), and not an execution (Work).
One-liner to remember: Capability = “can do (within its WorkScope and measures)”, independent of “is assigned now” or “did do at time t”.
Capability declaration (summary). A capability SHALL declare, as separate items:
U.WorkScope(Work scope) — the set ofU.ContextSliceunder which the capability can deliver the intendedU.Work(see A.2.6 §6.4);U.WorkMeasures— measurable targets with units evaluated on a JobSlice (R‑lane facet);U.QualificationWindow— the time policy that governs operational admissibility atΓ_time(R‑lane facet). Note. This separation supersedes the legacy “envelope + measures + validity interval” bundle. Work scope is the set of conditions (USM), not a Characteristic; measures are CHR‑characteristics; capability packages both.
Reminder (measurement & scope). WorkScope is a set‑valued USM object (membership, set algebra) and not a CHR Characteristic; WorkMeasures are CHR Characteristics with declared scales/units. Admission checks these separately (see § 10.3 WG‑2/WG‑3).
A.2.2:4.2 Conceptual descriptors (not a data schema)
When you describe a capability in a model or a review, anchor it by answering these five didactic prompts:
- Holder: Whose ability is this? → a specific
U.System. - Context: In which bounded context were the measures established? →
U.BoundedContext(strongly recommended for clarity and comparability). - Task family: Ability to do what kind of work? → reference the relevant MethodDescription(s) or method family the system can execute.
- WorkScope: Under what conditions? → inputs/resources/environment assumptions (e.g., voltage, pressure, ambient, tool head).
- Performance measures: With what bounds? → CHR‑style measures (throughput, precision, latency, reliability, MTBF…) with ranges/targets.
Optional descriptors that improve trust without adding bureaucracy:
- QualificationWindow: calibration/qualification window for the stated WorkScope (abilities drift).
- Evidence: links to test reports, certifications, prior Work summaries (as Episteme).
- Degradation/upgrade notes: known change points that affect the WorkScope.
Didactic guardrail: Capabilities are stated in positive, measurable terms (“can weld seam type W at ±0.2 mm up to 12/min at 18 °C–30 °C”). Avoid role words (“welder”) or recipe detail (step flows) here.
A.2.2:4.3 Shorthand for everyday speech
To keep discussions terse yet precise, teams often write:
- “S#17 can <MethodDescription / task family> @ <WorkScope> → <measures>.”
- Or as a bullet in a capability table scoped to a context, e.g., AssemblyLine_2025 Capability Sheet.
This is not a formal notation—just a consistent way to keep the five prompts in view.
Clear distinctions (litmus tests managers can apply)
Two useful corollaries
- A step in a Method may require a Role; optionally it may also stipulate a capability threshold (e.g., precision ≤ 0.2 mm). assignment and ability are checked separately.
- A promise content clause depends on having the needed capabilities and being assigned/committed to deliver under the clause’s context (bind as
U.Commitmentwhen it is an obligation).
Archetypal grounding (parallel structural and organizational examples)
A.2.2:6.1 Physical system on a line (structural example)
- Holder:
RobotArm_A(U.System). - Task family: seam welding per
Weld_MIG_v3MethodDescription. - WorkScope: workpiece steel grades S235–S355; ambient 18–30 °C; argon mix 92–95 %; torch T‑MIG‑07.
- Measures: bead width 6.0 mm ± 0.2 mm; throughput ≤ 12 seams/min; defect rate < 0.5 %.
- Context:
AssemblyLine_2025. - Readable claim: RobotArm_A can execute Weld_MIG_v3 within the stated WorkScope at the stated measures (AssemblyLine_2025).
- What this is not: It is not “the welder”—that is a Role assignment when assigned on a shift. It is not the weld recipe— that is the MethodDescription.
A.2.2:6.2 Software service in operations (structural, cyber-physical)
- Holder:
PlannerService_v4(deployed system). - Task family: job‑shop schedule generation per
JS_Schedule_v4MethodDescription. - WorkScope: 50–500 jobs; 5–40 machines; hard deadlines only; network latency ≤ 20 ms.
- Measures: schedule completion within 0.95 of theoretical optimum (benchmark set), 98 % on‑time delivery in simulation.
- Context:
PlantScheduling_2025. - Use: Steps that “require ScheduleGeneration capability ≥ 0.90 optimality” will only pass if the holder’s capability meets or exceeds that bound.
A.2.2:6.3 Organizational unit (enterprise sense)
- Holder:
FinanceDept(U.Systemas OrgUnit). - Task family: period close per
CloseBooks_v3MethodDescription. - WorkScope: IFRS; ERP v12; 8 legal entities; staffing ≥ 6 FTE; cut‑off rules X.
- Measures: close in ≤ 5 business days; adjustment error rate < 0.2 %.
- Context:
OperatingModel_2025. - Distinction: This is ability; the service promise clause “Provide month‑end close” is the external promise derived from this ability once formally offered.
Bias‑Annotation (as in cluster‑E patterns)
- Lenses tested:
Arch,Prag,Did,Epist. - Scope declaration: Universal; holder constrained to
U.System. - Rationale: Gives the kernel a clean, reusable ability concept so Role (assignment), Method (recipe), Work (execution), and promise content (external promise clause) do not collapse into each other. Keeps planning talk truthful and checkable without introducing governance machinery here.
U.Capabilityis a dispositional property of aU.Systemthat states its ability to produce a class of outcomes (i.e., execute a class of Work) within a declaredU.WorkScope(conditions/assumptions) and meeting statedU.WorkMeasures.
Conformance Checklist (normative)
CC‑A2.2‑1 (Holder type).
A capability belongs to a U.System (physical, cyber, socio‑technical, or organizational). Capabilities are not assigned to U.Episteme.
CC‑A2.2‑2 (Separation of concerns).
A capability is not a Role, not a Method/MethodDescription, not a Work, and not a promise content clause (U.PromiseContent). Models SHALL NOT use capability declarations to stand in for assignments, recipes, executions, or promises.
CC‑A2.2‑3 (WorkScope required for operational use).
When a capability is used to qualify a step or to support planning, its statement MUST name a WorkScope (conditions/assumptions) and WorkMeasures (targets/ranges). Guards that admit Work MUST test that the holder’s WorkScope covers the step’s JobSlice (i.e., WorkScope ⊇ JobSlice) and that WorkMeasures meet the step’s thresholds, with an explicit Γ_time window bound. Without a WorkScope and measures, a capability is advisory and SHALL NOT be used for step admission or assurance claims.
CC‑A2.2‑4 (Context anchor).
Capability statements that drive operational decisions MUST be anchored to a U.BoundedContext (the “Context” whose vocabulary and test norms apply).
CC‑A2.2‑5 (QualificationWindow).
When capabilities are used operationally (e.g., to gate Work), the statement MUST carry a QualificationWindow (calibration window, software version window, etc.) and the guard MUST name the Γ_time window used for the check. Outside the QualificationWindow, the claim is not admissible for gating.
CC‑A2.2‑6 (Past work remains past). Updates to a capability statement SHALL NOT retroactively invalidate already recorded Work. Past Work is judged against the capability declaration that was valid at the time of execution.
CC‑A2.2‑7 (Threshold checks are orthogonal to roles).
A step that requires both a Role and a capability threshold admits a Work only if both are satisfied: (i) the performer’s Role assignment is active in the step window; (ii) the holder’s capability meets or exceeds the threshold with WorkScope ⊇ JobSlice and within the QualificationWindow at the named Γ_time.
CC‑A2.2‑8 (Derived capabilities). If a capability is claimed for a composite system (assembled by Γ), the claim MUST be stated as a property of that composite holder (not of its parts) with clear dependency notes (e.g., “valid while Subsystem B meets X”). Details of derivation belong to the context’s methodology, not to this definition.
CC‑A2.2‑9 (No capability for epistemes). Algorithms, standards, and documents provide evidence or recipes; they do not “have capability.” Only systems do.
CC-A2.2-10 (Γ_time selector in guards).
Scope-sensitive guards (including Method–Work gates) MUST include an explicit Γ_time selector indicating the window W over which ScopeCoverage and WorkMeasures are evaluated.
Capability thresholds on steps (how A.15 uses this concept)
A step in a Method may define required roles (assignment) and capability thresholds (ability). A Work passes the gate if:
- assignment check: the Work’s
performedBypoints to a valid Role assignment that covers the step window and satisfies the role relation (including specialization≤inside the context). - Ability check: the holder of that Role assignment has a capability whose WorkScope covers the step’s JobSlice (i.e., declared superset) and whose WorkMeasures meet the step’s threshold(s) within
Γ_time(W)and while the capability’s QualificationWindow includes W.
Idioms managers can reuse (plain text):
- “S1 requires
IncisionOperatorRoleand Precision ≤ 0.2 mm (OR_2025 norms) in window W.” - “S2 requires
PlannerRole, WorkScope ⊇ JobSlice[W], and Optimality ≥ 0.90 onJS_Schedule_v4.”
What to avoid:
- Putting “Precision ≤ 0.2 mm” into the Role name. Keep thresholds attached to the step; keep ability on the holder.
Time and change (calibration, drift, upgrades)
Capabilities are stable but not static. Three simple practices keep reasoning honest:
- Qualification windows. Abilities drift. Put a QualificationWindow on the statement (e.g., “valid for software v4.2; recalibration due 2025-09-30”).
- Change points. Note upgrades/downgrades that affect the WorkScope or measures.
- Snapshot at execution. When Work is recorded, it is implicitly tied to the then‑current capability statement; later edits do not rewrite history (see CC‑A2.2‑6).
Manager’s rule of thumb: if you would reschedule a job after a tool change, the capability statement needs a new window.
Composition and Γ (how assembled systems “can do”)
Γ builds a new holder (a composite system). Its capability is not the algebraic sum of parts; it is an ability of the whole under its own WorkScope.
- Express at the whole. “Cell_3 can place 12 PCB/min with ±0.1 mm” — that is a capability of Cell_3, not of the pick‑and‑place head alone.
- State dependencies. “Valid while Feeder_A delivers reels at ≥ X; vision subsystem calibrated ≤ 72 h ago.”
- Constructor vs. transformer. The ConstructorRole builds the composite (Γ); the resulting TransformerRole may later act on products. Capability belongs to the holder relevant to the action (builder’s ability vs operator’s ability).
Interaction with Service Promise Clauses (external promise content)
A service promise clause (a U.PromiseContent) is a consumer‑facing external promise statement. It relies on capability but is not identical to it.
Note. The bare head noun service is polysemic; in normative prose it is treated as an always‑unpack token. Use A.6.8 (RPR‑SERV) to name the intended facet (promise clause vs endpoint vs work vs commitment).
- From capability to service promise clause. You normally derive a service promise clause by taking a capability and fixing the promise outward (e.g., “We guarantee close ≤ 5 days”).
- From service promise clause back to capability. If the promise raises the bar (e.g., tighter SLA), the underlying capability must meet or exceed it under the promise clause’s context.
- Staffing. Delivering on a service promise clause still requires Role assignments; capability alone does not authorize action.
Memory aid: Capability = can do; service promise clause = promise to others that we will do.
Interaction with Dynamics (laws vs. abilities)
- Dynamics describe how states evolve (models, laws, trajectories).
- Capability says what this system can achieve within an WorkScope.
- Dynamics often serve as evidence or explanatory models for capability but are not the capability itself.
Physics example: an “isothermal process” (process here as transformation) is a Work instance whose path is explained by a Dynamics episteme; a lab rig’s ability to run that path repeatably is its capability.
Anti‑patterns (and the right move)
- Role‑as‑capability. “Welder role ensures ±0.2 mm.” → Keep role as assignment; put precision in a capability on the holder; put the threshold on the step.
- Recipe‑as‑capability. “We have the ‘Etch_Al2O3’ capability.” → Recipe is Method/MethodDescription; ability is “can execute Etch_Al2O3 within WorkScope E at measures M.”
- Work‑as‑capability. “We did it once, so we can.” → One Work log is not a stable ability; state envelope and measures if you want a capability claim.
- Context‑less claims. “This tool can machine titanium.” → Say where and under what bounds (context + WorkScope + measures).
- Stuffing capabilities into BoM/PBS. Structure lists what it is; capabilities belong to what it can do (the holder), not inside the parts list.
- Service‑as‑capability. “We have the Month‑end Close capability (promise).” → Promise is a service promise clause (
U.PromiseContent); ability is internal, promise is external.
Migration notes (quick wins for existing texts)
- Underline WorkScopes. For every “can do” sentence, add conditions and measures; otherwise treat it as background color, not a gate.
- Pull thresholds out of roles. Move “≤ 0.2 mm”, “≥ 0.90 optimality” from role labels into step requirements; leave roles clean (assignments).
- Pin contexts. Add the bounded context name to each capability table (“Capability Sheet — AssemblyLine_2025”).
- Snapshot validity. Add a “valid through” column (software version or calibration horizon).
- Separate recipe/execution. Move flowcharts under MethodDescription, runs under Work; link the capability to the holder with references to those specs.
Consequences
Relations
- Builds on: A.1 Holonic Foundation; A.1.1
U.BoundedContext; A.2 Role; A.2.1U.RoleAssignment. - Coordinates with: A.3 (Transformation & role masks); A.15 (Role–Method–Work Alignment).
- Constrains: Step design: thresholds belong on steps; BoM/PBS must stay structural.
- Informs:
U.PromiseContentdefinitional pattern (external promises derive from capabilities);U.Dynamicsdefinitional pattern (models used as evidence or predictors); Γ/aggregation (capability of composites is stated at the whole). - Lexical guards: E.10.x L‑FUNC (do not call capability “function”); E.10.y L‑PROC (do not call capability “process”).
Didactic quick cards (reuse in specs and slides)
- Capability = can do (within bounds). assignment ≠ ability ≠ recipe ≠ execution ≠ promise.
- Gate every critical step with two checks: badge (Role assignment) + bounds (Capability).
- Write the Context on every claim: context name, WorkScope, measures, QualificationWindow/valid-through.
A.2.2:End
U.PromiseContent (Promise Content)
Context
Across domains the word service is used for many different things: a server or provider, an API, a procedure, a run, a department, even a product bundle. Such polysemy is productive in everyday speech but toxic in a normative model.
FPF therefore reserves U.PromiseContent for exactly one kernel meaning: promise content — a promise content (a consumer‑facing promise statement). Any other “service” sense MUST be modeled explicitly as U.System, U.RoleAssignment/principal, U.MethodDescription, or U.Work inside an appropriate U.BoundedContext and, in normative prose, MUST be written with an explicit facet head phrase per A.6.8 (RPR‑SERV).
This keeps the kernel minimal while keeping the prose readable to non‑mathematicians: the canonical symbol is U.PromiseContent, and the head kind in normative text is always promise content.
Modularity note. A.2.3 defines only the promise‑content object (the promise content) and its direct links to roles, access specification, acceptance criteria, and work evidence. The multi‑facet “service situation” bundle that also names provider principals/systems/access points/commitments/acts is handled as a precision‑restoration lens in A.6.8 (serviceSituation(…)). Contract‑talk unpacking (and routing of “contract / SLA / guarantee” language) is handled by A.6.C, which calls A.6.8 when service‑cluster tokens appear.
In the Role–Method–Work alignment, the promise content must say something external‑facing and consumer‑oriented, yet remain separate from how the provider does it (Method/MethodDescription) and what actually happened (Work).
Intuition: the consumer-facing promise clause is what you advertise and are judged by (
U.PromiseContent); work is what you do to keep that promise; method/spec is how you know what to do. (See A.6.8 for full “service” polysemy unpacking.) (Normative head-kind rewrite): a promise content is the promise clause you advertise and are judged by; work is what you do (and what can be evidenced) to satisfy that promise; method/spec is how you know what to do.
Lexical note (L‑SERV / RPR‑SERV)
The surface forms service/service‑level/service use/service access (and the adjacent cluster service provider, server) are ambiguous across domains. In the kernel, U.PromiseContent is reserved for promise content only and is written in prose as a promise content.
Normative prose therefore SHALL treat the bare head noun service as always‑unpack (PTG=Guarded): every head‑noun occurrence MUST be rewritten to a facet head phrase (promise content / service provider principal / service access point / service delivery system / …) or to the correct underlying FPF object (team, ticket, endpoint host, procedure, work item), per A.6.8 (RPR‑SERV).
E.10’s lexical anchor L‑SERV SHOULD be implemented as “pointer + lint rule” to A.6.8: the short rule names the hazard, while A.6.8 provides the full rewrite recipe and the facet head phrase set.
Problem
Without a first‑class U.PromiseContent, models drift into five recurring errors:
- Provider = Service. Calling the system or team “the service” collapses structure with promise.
- API = Service. Treating an interface/endpoint as the service hides the consumer‑oriented promise (effect + acceptance).
- Process = Service. Mapping a procedure/Method (or a WorkPlan) to “service” confuses recipe/schedule with the external commitment.
- Run = Service. Logging Work as “a service” erases the Standard/promise layer and breaks SLA reasoning.
- Business ontology lock‑in. Large domain schemes (e.g., “business service” stacks) are imported wholesale, losing FPF’s universality and comparability across contexts.
Forces
Solution — The unified concept U.PromiseContent
Definition (normative).
Within a U.BoundedContext, a U.PromiseContent is an externally oriented promise clause: a context‑local statement of (i) a promised external effect, (ii) eligibility + access (how a consumer may request/use), and (iii) acceptance criteria (SLO/SLA‑like targets) by which fulfillment is judged.
U.PromiseContent is promise content (U.Episteme), not a deontic binding. One or more explicit U.Commitment objects (A.2.8) MAY reference a U.PromiseContent as payload to bind an accountable principal/role‑assignment; the clause itself does not “obligate” anyone until such a commitment is represented.
In normative prose, the head phrase for U.PromiseContent is promise content (or service offering clause / service promise clause) per A.6.8; the bare noun service is not a valid shorthand for this kernel object.
- Type:
U.Episteme(a promise clause on a carrier). - Scope: design‑time concept; judged at run‑time by evidence from
U.Work. - Time stance: design-time concept; judged at run-time by evidence from
U.Work. - Orientation: consumer‑facing (“what you can rely on”), as opposed to capability (“what we can do”).
- Prose head (normative): promise content (Tech) / service offering clause (Plain; service promise clause acceptable synonym). (Both twins retain an explicit clause head‑kind to avoid act/content ambiguity and to comply with A.6.8 headword governance.)
Core structure (minimal fields)
promisedOutcomeSpecRefMUST point to aU.OutcomeSpec(A.7:5.10). It is the promise‑facing outcome template (work‑only / result‑only / composite), not aU.Workepisode and not an extensional delivered object.providerRoleandconsumerRoleare role kinds; the actual performers are RoleAssignments at run‑time.acceptanceSpecdefines what counts as fulfilled (the test).accessSpecis how to ask (eligibility, protocol, counter, desk, API).- Internal delivery methods/runbooks are not part of the promise content. Model them as
U.MethodDescriptionand relate them to the clause viaserviceSituation(…)(A.6.8) or explicit context relations; providers retain Method autonomy.
Promised outcome spec (disambiguation: work vs post-work result)
promisedOutcomeSpecRef points to an U.OutcomeSpec episteme that makes explicit what exactly is promised — in kind/spec form — without collapsing it into either:
- the promise content clause itself (
U.PromiseContent), - the delivery work that happens at run‑time (
U.Work), or - the resulting state/object after the work.
This is a controlled semantic precision restoration for the everyday metonymy “outcome/service outcome”, which different communities use to mean (i) the work performed, (ii) the achieved result, or (iii) both.
Terminology bridge (informative). In loose contract talk people say promiseOutcomeSpec (the description of what will be delivered) and promiseOutcome (what was actually delivered). Those surface forms are metonymic: sometimes they mean “the work performed”, sometimes “the post‑work result”, and sometimes the pair.
In FPF:
-
promiseOutcomeSpec →
U.OutcomeSpec(A.7:5.10), referenced viapromisedOutcomeSpecRef. -
promiseOutcome → an extensional delivered outcome instance. It is not a single kernel object; it is the run‑time reality that satisfies the outcome spec, understood according to
U.OutcomeSpec.mode:WorkOnly→ the set of deliveryU.Workepisode(s) that satisfyworkSpec(and, if present, the promisedmethodConstraintRef).ResultOnly→ the post‑work state of the described referent(s) on the declaredstatePlaneRefthat satisfiesresultSpec.postConditionRef(regardless of how it was achieved).Composite→ the pair: (delivery Work episode(s), post‑work state).
FPF points to this extensional delivered outcome instance by citing: (i) the relevant
U.Workoccurrence(s) and (ii) their Δ anchors (affected referents + pre/post anchors) on the declared state‑plane (A.15.1:4.2 item 10). Evidence carriers/telemetry are epistemic witnesses used to justify those anchors and acceptance verdicts—they are not themselves the delivered outcome.
If a Context needs an explicit handle for the delivered instance (e.g., for bundling, invoicing, or dispute cases), it MAY introduce a local kind such as OutcomeInstance with separate slots for: {workRefs, affectedEntityRefs, postStateAnchors, evidenceRefs}. Such a local reification MUST keep (a) the extensional delivered instance, (b) the evidence about it, and (c) the outcome spec (U.OutcomeSpec) distinct.
A conforming U.OutcomeSpec uses the canonical shape from A.7:5.10.2:
workSpeccorresponds to the work‑as‑promised facet: it states the consumer‑facing kind of work (optionally constraining method) and the work predicate (e.g., duration, method ban, safety bound).resultSpeccorresponds to the result‑as‑promised facet: it states the post‑work entity/state kind and the postcondition predicate.- Counting is not part of
U.OutcomeSpec. Counting lives onU.PromiseContent.unitOfDeliveryas thecountingRulemini‑schema (A.7:5.10.3). Outcome specs say what counts as delivery; unit‑of‑delivery specs say how much to count and how to avoid double counting.
Examples (informative):
- “Work 5 minutes” →
mode=WorkOnly;workPredicateRefstates duration ≥ 5 min;methodConstraintRefmay be omitted. - “Dig a hole” →
mode=ResultOnly;postConditionRefdescribes the hole’s target state; method choice remains provider‑autonomous. - “Hairstyle in ≤ 20 min, must be haircut+styling (not a wig)” →
mode=Composite;workSpecexpresses time + method constraint;resultSpecexpresses the target hairstyle state.
Naming note (normative).
The head noun outcome is intentionally broad. Do not replace it with result when referring to the combined promise payload. If a passage means the post‑work entity/state only, say result and bind it to resultSpec. If it means the work episode(s) promised, say work as promised and bind it to workSpec.
Recommended acceptanceSpec mini‑schema (informative, non‑kernel)
acceptanceSpec : U.Episteme is intentionally open‑ended in Core. However, to keep acceptance computable (and to avoid the legacy “pass verdict separate from delivery” mistake), Contexts are encouraged to express acceptanceSpec as a small bundle of references:
targetOutcomeSpecRefmakes explicit which promised outcome is being judged; if omitted, it is the containing promise content’spromisedOutcomeSpecRef.criteriaRefsare the acceptance criteria (SLO targets, quality gates, compliance predicates, etc.). Each criterion is an evaluation over the same evidence base used to establish delivery of the targetedU.OutcomeSpec:U.Workfacts/evidence plus the relevant Δ anchors (affected referents + pre/post anchors) on the declared state‑plane, and any admissibleU.Observationwitnesses.verdictScaledeclares the decision scale (boolean, trichotomy, graded). It MUST define what happens when the outcome is not delivered (e.g.,fail,N/A,Inconclusive, or a dedicated grade).Γ_timePolicyRefkeeps windowing explicit and non‑retroactive (F.10/F.12): it states whether judgement is per Work episode, per reporting window, per population, etc.
This mini‑schema is a recommendation only: it is not a kernel object and may be flattened, encoded in a canonical SLO vocabulary, or carried in local contract artefacts. Its purpose is to keep acceptance discussable, auditable, and bridge‑ready.
What U.PromiseContent is not
- Not a provider: use
System#ServiceProviderRole:ContextU.RoleAssignment. - Not a deontic commitment: that is
U.Commitment(A.2.8) referencing the promise content as payload. - Not an access point: addressable “services/servers/desks/endpoints” are
U.System(see A.6.8: service access point / service delivery system). - Not a method/recipe: that is
U.Method/MethodDescription. - Not a run/incident/ticket: that is
U.Work. - Not a schedule: that is
U.WorkPlan. - Not a capability: capability is provider‑intrinsic ability; service is outward promise. A service may require certain capabilities, but it is not the capability.
- Not a scope label: do not use applicability, envelope, generality, or validity as names for scope objects; declare Claim scope (G) or Work scope explicitly where needed (A.2.6).
Position in the enactment chain
-
Design‑time: The context declares Claim scope (G) for acceptance (operating conditions, populations, locales) per A.2.6. The context may assert:
bindsCapability(ServiceProviderRole, Capability). Providers chooseMethod/MethodDescriptionto realise the promised effect described by the promise content. -
Run‑time: A consumer performs
Work(e.g., a request/visit) —performedBy: ConsumerRoleAssigning. The provider performsWorkto fulfil the promise content —performedBy: ProviderRoleAssigning. DeliveredWorkinstances are evaluated againstacceptanceSpec, linked topromisedOutcomeSpecRef, and counted viaunitOfDelivery. SLA/SLO outcomes are therefore functions over Work evidence, not over the promise content object itself.(Terminology note: use
…RoleAssignmentconsistently for the run‑time enactor relation; avoid the “RoleAssigning” variant unless it is a separately defined kind in the Context.)
Memory hook: Promise content promises, Method describes, Work proves.
Didactic card: The service delivery chain (clause → commitment → situation → work → acceptance)
Didactic (non‑normative). This is a one‑screen “map” that stitches the modular pieces together:
U.PromiseContent(A.2.3) →U.Commitment(A.2.8) → providerU.RoleAssignment(A.2.1) → serviceSituation(...) facet slots (A.6.8 lens) →U.Work + carriers(A.15) → acceptance verdict (A.2.3).This is not new ontology. It is a reader‑safety diagram that prevents two common category errors: (i) treating
U.PromiseContentas something addressable (“the service you call”), and (ii) treatingserviceSituation(...)as semantics rather than a binding lens over already‑defined kinds.
Reading guide (one breath).
- The promise content is what is promised (promise content).
- The commitment is who is bound (deontic accountability) and it references the clause.
- The provider role assignment is the accountable subject that can act in a given Context/window.
serviceSituation(...)(A.6.8) is a facet‑binding lens that names the common “service talk” participants (access spec / access point / delivery system / delivery method) without collapsing them into the clause.- Work + evidence is what happened; the acceptance verdict is computed by applying the clause’s
acceptanceSpecto work evidence (not by reading the clause, and not by “looking at the service” as a system).
Litmus rule (addressability). If you can call / connect to / visit / restart / scale it, you are talking about a service access point (system facet), not the promise content (promise content).
Archetypal grounding (engineer‑manager friendly)
Key takeaway: the same kernel object models S3, a plant utility, and a government service: a promise with access and acceptance. Everything else (APIs, compressors, clerks, workflows, tickets) is mapped via Role/Method/Work.
Mapping the common “service” picture to FPF (didactic bridge)
The popular service diagrams (provider ↔ access ↔ use ↔ capability/activity) map to FPF as follows:
-
Agent (as Service Provider) →
System#ServiceProviderRole:Context(U.RoleAssignment). -
Service Level Objective (SLO) / acceptance targets →
U.PromiseContent.acceptanceSpec(+ optionalWorkPlanfor windows). -
Service Level Agreement (SLA) (binding obligation) →
U.Commitmentreferencing the relevantU.PromiseContent(and, where needed, its acceptance/evidence specs); use A.6.C Contract Bundle when packaging “the SLA” as an artefact set. -
SLA document / published terms →
U.SpeechAct(promise/offer act) + the clause carrier (U.Episteme), per A.2.9 + A.7. -
Operating conditions / “where the promise holds” →
claimScope : U.ClaimScope (G)(or embedded inacceptanceSpec) per A.2.6. -
Subject of service (“customer material”: asset/data/person/case whose state is changed) →
promisedOutcomeSpecRef.resultSpec.describedEntityRef(and the affected referents in deliveryU.Work.Δ). “Ours vs theirs” (ownership/custody) is modeled as a role/relationship inside the Context (e.g.,OwnerRole:…,CustomerRole:…, operated‑by/owned‑by), not as a Kernel‑global property. -
Service Presence / Access →
accessSpec : MethodDescription(interface/eligibility); actual endpoints are systems playing interface roles. -
Individual Service Use → consumer and provider
U.Workinstances linked to theU.PromiseContentthey fulfil. -
Service‑Enabled Capability / Activity → effects on the consumer side: either a Capability gained/used, or Work performed; do not reify as a new kernel type.
(Where a domain needs richer structures—catalogs, exposure layers, charging, entitlement—model them in the domain context and relate them to U.PromiseContent via U.RoleAssignment and alignment bridges.)
Conformance Checklist (normative)
CC‑A2.3‑0 (Prose head phrase).
In normative prose, an instance of U.PromiseContent SHALL be referred to as a promise content (or service offering clause / service promise clause) and SHALL NOT be referenced by the bare head noun service. Unqualified service usage (and the co‑moving cluster service provider / server) SHALL be unpacked per A.6.8 (RPR‑SERV).
CC‑A2.3‑1 (Type).
U.PromiseContent IS an U.Episteme (a consumer‑facing promise content on a carrier). It is not a U.System, not a U.Method/MethodDescription, not a U.Work, and not a U.WorkPlan.
CC‑A2.3‑2 (Context).
Every promise content MUST be declared inside a U.BoundedContext. Names and meaning are local; cross‑context reuse requires a Bridge (U.Alignment).
CC‑A2.3‑3 (Role kinds, not people/systems).
providerRole and (if used) consumerRole MUST be role kinds (see A.2). Actual performers at run‑time are U.RoleAssignments.
CC-A2.3-4 (Acceptance).
acceptanceSpec MUST be present and MUST define how delivered U.Work is judged (pass/fail/graded) against declared targets (SLO‑style; any SLA deontics bind via U.Commitment), and MUST declare Claim scope (G) where relevant (operating conditions, populations, locales). Every verdict binds to an explicit Γ_time window.
If the acceptance criteria mention measurable characteristics (availability, latency, accuracy, cost, safety, …), each such characteristic MUST be introduced via the Characterization patterns (C.16 / C.25): an explicit U.Characteristic (with scale/unit and measurement procedure / evidence carrier), referenced by id rather than only by a bare KPI name.
CC‑A2.3‑5 (Access).
If consumers must request/obtain service delivery work through a request‑facing interface, accessSpec MUST reference the MethodDescription that defines eligibility and invocation rules (API/desk/SOP). If the service access point is ambient (e.g., compressed air on a manifold), accessSpec MAY be omitted, but the eligibility condition MUST be stated in the Context.
CC‑A2.3‑6 (Unit of delivery + counting rule).
If performance is counted/charged, unitOfDelivery SHOULD be declared (e.g., “request”, “kWh”, “case”).
When declared, unitOfDelivery MUST include a countingRule that maps accepted delivery work episodes (W✓) to unit counts (A.7:5.10). If omitted, the default is “1 unit per accepted delivery work episode”.
CC‑A2.3‑7 (No actuals on Promise Content).
Resource/time actuals and incident logs MUST attach to U.Work only (A.15.1). Promise contents carry no actuals.
CC‑A2.3‑8 (Capability requirement).
If the context requires provider abilities, it MUST express them as bindsCapability(providerRole, Capability) in the context, not by stuffing capabilities into the Service object.
CC‑A2.3‑9 (Versioning & timespan).
Promise contents MAY carry version/timespan. A U.Work that claims/fulfils a promise content MUST record which service‑clause version it used.
CC‑A2.3‑10 (Lexical rule). Unqualified head‑noun uses of service (and the co‑moving cluster service provider / server) in normative prose MUST be disambiguated per A.6.8 (RPR‑SERV) and its lexical anchor L‑SERV (E.10).
CC‑A2.3‑11 (No mereology). Do not place a promise content clause in PBS/SBS or treat it as a part/component. Structural assemblies live in PBS/SBS; the promise clause is an episteme (A.2.3) and “service” talk must be facet‑unpacked (A.6.8).
CC‑A2.3‑12 (Plan–run split).
Windows and calendars belong to U.WorkPlan (A.15.2). Fulfilment evidence belongs to U.Work (A.15.1).
CC-A2.3-13 (Scope lexicon & guards).
Deprecated labels applicability/envelope/generality/validity MUST NOT appear as names for scope objects in guards or conformance blocks. Use U.ClaimScope (G) for epistemes and U.WorkScope for capabilities (A.2.6/A.2.2). Scope-sensitive guards MUST use ScopeCoverage with explicit Γ_time selectors.
CC-A2.3-14 (Bridges & CL). Cross-context mappings via Bridges keep F/G stable; CL penalties apply to R. A mapping MAY recommend narrowing the mapped Claim scope (G) as best practice (A.2.6/B-line).
CC-A2.3-15 (OutcomeSpec typing).
promisedOutcomeSpecRef MUST resolve to U.OutcomeSpec (A.7:5.10). It MUST NOT be used to point at a concrete U.Work episode or at an extensional delivered object.
CC-A2.3-16 (OutcomeSpec is explicit and mode‑complete).
promisedOutcomeSpecRef MUST be present and MUST reference an U.OutcomeSpec that declares mode ∈ {WorkOnly, ResultOnly, Composite} and satisfies A.7:5.10 mode completeness:
WorkOnly→workSpecpresent,resultSpecabsentResultOnly→resultSpecpresent,workSpecabsentComposite→ bothworkSpecandresultSpecpresent
CC-A2.3-17 (OutcomeSpec ⇄ Work anchoring).
For any U.Work that claimsPromiseContent(-, SC) (and especially for fulfilsPromiseContent(-, SC)), the Context MUST be able to derive an evidence link from that Work to SC.promisedOutcomeSpecRef:
- if
SC.promisedOutcomeSpecRef.workSpecis present, the Work is compatible withmethodConstraintRef(if present) and satisfiesworkPredicateRef; - if
SC.promisedOutcomeSpecRef.resultSpecis present, the Work’s outputs / affected referents / effect‑delta (and cited evidence carriers) satisfypostConditionRefon the referencedstatePlaneRef(or its declared default plane). (You MAY materialize this asdeliversPromisedOutcome(Work, OutcomeSpec)per A.2.3:8.1 for auditability.)
CC-A2.3-18 (AcceptanceSpec ⇄ OutcomeSpec binding).
acceptanceSpec MUST be written as an evaluation over the same evidence base used to establish delivery of SC.promisedOutcomeSpecRef. In particular, a Work MUST NOT be judged “pass” for a promise content unless it also delivers the promised outcome spec (see fulfilsPromiseContent in A.2.3:8.1). If the Context uses multi‑grade verdicts, it MUST declare how “non‑delivery” is represented (fail, N/A, separate grade).
CC-A2.3-19 (OutcomeSpec ↔ unitOfDelivery coherence).
If unitOfDelivery is present, its countingRule.selectorRef MUST select only Work episodes that are eligible to satisfy SC.promisedOutcomeSpecRef (WorkOnly / ResultOnly / Composite) and MUST define how to avoid double counting (via an explicit dedupeKeyRef or a policy cited by id) when a single Work episode can satisfy multiple clauses/bundles. The selector MAY be “all fulfilments” (fulfilsPromiseContent) but MUST NOT count non‑delivering Work episodes.
CC-A2.3-20 (Unit-of-delivery is computable from Work evidence).
If unitOfDelivery is present, then it MUST declare how delivered units are computed from Work evidence (duration, quantity, cases, kWh, etc) per A.7:5.10.3. The default “1 unit per fulfilment Work” is permitted only when unitOfDelivery is a pure count of fulfilment episodes.
Evidence relations & operators (Promise content ⇄ Work)
To keep the promise → evidence path explicit:
Core relations
claimsPromiseContent(Work, PromiseContent)— the Work instance intends to fulfil the promise content (pre‑verdict).deliversPromisedOutcome(Work, OutcomeSpec)— the Work instance evidences delivery of the promised outcome spec (work facet and/or result facet); derived from Work’s I/O/Δ plus theU.OutcomeSpec(and MAY be asserted explicitly for auditability).acceptanceVerdict(Work, PromiseContent)→ {pass,fail,partial, context‑specific grades} — computed by applyingacceptanceSpec(with its declared Γ_time and claim scope) to the same Work facts/evidence used to establish delivery.fulfilsPromiseContent(Work, PromiseContent)— the Work instance both (i) delivers the promised outcome spec and (ii) passes the promise content’sacceptanceSpec.usesAccess(Work, MethodDescription)— consumer Work that invokes the service via itsaccessSpec(when applicable).
Invariant:
fulfilsPromiseContent(W,SC)⇒claimsPromiseContent(W,SC)anddeliversPromisedOutcome(W, SC.promisedOutcomeSpecRef)andacceptanceVerdict(W,SC)=pass. Invariant: A Work can claim/fulfil multiple promise contents only if the context declares a counting policy (no silent double‑counting).
Service‑clause performance operators
Let W(SC, T) be the set of Work that claimsPromiseContent(-,SC) within time window T. Let W✓(SC, T) be those with fulfilsPromiseContent.
- Delivered units:
delivered(SC, T)is computed from the setW✓(SC, T)usingunitOfDelivery’s countingRule (A.7:5.10). Default (whenunitOfDeliveryis absent):delivered(SC, T) = |W✓(SC, T)|(one unit per accepted delivery work). - Rejection rate:
rejectRate(SC, T) = 1 − |W✓(SC,T)| / |W(SC,T)|(declare handling ofpartial). - Lead time: average/percentile of
duration(Work)or of request→completion delta (declare definition). - Availability/Uptime: computed from Work/telemetry events per the context’s definition (declare availability source).
- Cost‑to‑serve: sum of
Γ_workoverW✓per resource category (A.15.1).
All metrics are functions of Work evidence; the promise content object is never the bearer of actuals.
Aggregation across time uses Γ_time policies (union vs convex hull) chosen by the KPI owner.
Anti‑patterns (and the right move)
-
“The microservice is the service.” Rewrite to facet‑explicit terms (A.6.8): the microservice is typically a service delivery system (
U.System) and/or a service access point (U.System). Keep the promise content as a promise content inU.PromiseContent, and bind accountability viaU.Commitmentif needed. -
“The API is the service.” The API is typically a service access spec (
accessSpec : MethodDescription) (and systems playing interface roles). The promise content is the promise content judged byacceptanceSpec. -
“Our process is the service.” Process/recipe is
U.Method/MethodDescription; schedule isU.WorkPlan. The promise content is what is promised to the consumer. -
“The ticket is the service.” A ticket/case is
U.Work(and perhaps aWorkPlanitem). Evidence and outcomes sit on Work, not on the promise content. -
“Attach cost to the service.” Actual cost/time attach to
U.Workonly (A.15.1). Service metrics are computed from Work. -
“Put service under BoM.” Services are not structural parts. Keep PBS/SBS clean.
-
“Hard‑code people into the service.” Name role kinds in the promise content (
U.PromiseContent); run‑time performers areU.RoleAssignments.
Migration notes (quick wins)
- Name the promises. List 5–15 consumer‑facing promises your context lives by; reify each as
U.PromiseContentwithacceptanceSpecand, if needed,accessSpecandunitOfDelivery. - Separate provider from promise content. Keep systems/teams as
U.System; make them providers via…#ServiceProviderRole:Context. - Wire evidence. Ensure every relevant
U.WorkhasclaimsPromiseContent(andfulfilsPromiseContentpost‑verdict). - Choose metrics. For each Service/promise content, define 2–4 KPIs and the exact Work-based formulas (availability, lead-time, rejection rate, cost-to-serve), declare the Claim scope (G) and Γ_time policy used for each KPI, and—when KPIs are numeric/comparable—define the underlying
U.Characteristic+ measurement procedure/evidence (C.16/C.25) and pin{UnitType, ScaleKind, ReferencePlane, EditionId}. → For each promise content, define 2–4 KPIs and the exact Work-based formulas, with explicitΓ_time. - Bridge domains. If a business ontology already exists (“business/technical/internal service”), keep it in its own context and map to FPF Kinds via Bridges.
- Tidy language. Apply A.6.8 (RPR‑SERV) / L‑SERV: ban unqualified “service” as a synonym for server/team/process/ticket in normative prose; map them explicitly.
Relations
- Builds on: A.1.1
U.BoundedContext; A.2U.Role; A.2.1U.RoleAssignment; A.2.2U.Capability; A.2.6U.Scope/U.ClaimScope (G)/U.WorkScope. - Coordinates with: A.3.1
U.Method; A.3.2U.MethodDescription; A.15.1U.Work; A.15.2U.WorkPlan; A.6.8 (RPR‑SERV) for normative prose unpacking of the service cluster; B-line Bridges & CL (CL→R; may recommend ΔG narrowing). - Constrained by lexical rules: E.10 L‑SERV (service disambiguation); also L‑FUNC, L‑PROC, L‑SCHED, L‑ACT.
- Informs: Reporting/assurance patterns (service KPIs, SLA dashboards); catalog/exposure patterns in domain contexts.
Didactic quick cards (engineer‑manager ready)
- Promise content = Promise content. What we advertise and are judged by.
- Method/Spec = Recipe. How we usually do it (provider‑internal).
- Work = Evidence. What actually happened and consumed resources.
- Provider/Consumer = Roles. assignment via RoleAssigning at run‑time.
- Metrics from Work. Uptime, lead time, quality are computed from Work, not from the Service object.
- Keep PBS/SBS clean. Services are not parts; they are promises.
A.2.3:End
U.EvidenceRole
This pattern defines how a knowledge artefact (“episteme”) serves as evidence for a specific claim or theory inside a bounded context. It is a non-behavioural role enacted via
U.RoleAssignment; the evidence-role assignment must declare the target claim, the claim-scope, and a timespan of relevance. Evidence is a classificatory status of an episteme; it is not an action and it is not an assignment of an actor.
Context and intent
FPF separates what exists (holons and their kinds) from what acts (systems under roles performing work) and from what is known (epistemes carried on symbols). Roles are contextual masks that holons may wear; role meanings are local to a U.BoundedContext. In this setting, we need a kernel‑level way to say that this episteme counts as evidence about that claim, here, and for this period, without confusing evidence with services, methods, or work.
Intent. Provide one uniform, discipline‑neutral role by which an episteme can be assigned as evidence, while keeping:
- Agency on systems performing
U.Work(not on epistemes). - Promise and Standardual language on
U.PromiseContent(not on evidence). - Recipe and eligibility on
U.Method/U.MethodDescription(not on evidence).
Problem
- Anthropomorphising epistemes. Models say “the paper proves…”, implicitly treating a document as an actor.
- Citation without scope. Links exist but lack explicit target claim, applicability scope, and time window.
- Deductive versus empirical conflation. A formal derivation and a lab dataset are both called “support” although their semantics and ageing differ.
- Staleness and drift. Empirical evidence ages; without explicit validity windows, stale evidence keeps influencing conclusions.
- Cross‑context leakage. Evidence is interpreted as “global,” skipping the bridge that is required to move meaning across contexts.
Forces
Solution — Term and definition
Term.
U.EvidenceRole — a non-behavioural role that a U.Episteme may play inside a U.BoundedContext to serve as evidence for a declared target claim (or theory/version).
The target claim, its applicability scope, polarity, weighting model, and other normative facets are properties of the U.EvidenceRole definition itself within that bounded context.
How it is enacted.
The role is enacted by a standard U.RoleAssignment that connects:
The normative properties of the role (e.g., claimRef, claimScope, polarity, weightModelRef) are set in the role’s definition in the given U.BoundedContext, not in the evidence-role assignment.
U.RoleAssignment carries only the linkage between a concrete episteme and a role already defined and attributed in that context.
Non-behavioural guard. The holder is an episteme; any actions that produced it are
U.Workperformed by systems. Evidence classifies an artefact’s evidential status; it does not itself enact behaviour.
Minimal readable grammar (informative).
<Episteme>#<EvidenceRole>:<Context> — where <EvidenceRole> in <Context> already normatively specifies polarity Claim / Scope [weight].
Examples.
-
In
Cardio_2026,ModelFitEvidenceRoleis defined with:claim = β-blocker > placebo,claimScope = adults 40–65,polarity = supports,weightModelRef = KD:SupportMeasure. Binding:Trial-R3.csv#ModelFitEvidenceRole:Cardio_2026. -
In
Theory_T,AxiomaticProofRoleis defined with:claim = Theorem-12,claimScope = all x ∈ D,polarity = supports. Binding:Lemma-12.proof#AxiomaticProofRole:Theory_T.
Role family and specialisations
U.EvidenceRole is a role kind refined by specialisation (no mereology of roles). The recommended, substrate‑neutral specialisations are:
5.1 Axiomatic line (deductive inside a fixed theory)
AxiomaticProofRole— a proof that entails a target statement in a declaredU.TheoryVersion.CounterexampleRole— a witness that refutes a universally quantified claim in the theory.DerivationRole— a lemma or intermediary derivation establishing a dependency in the proof spine.EquiconsistencyEvidenceRole— a metaproof establishing equiconsistency or relative strength, often used to constrain theory choice.
Semantics. In a fixed theory version, these roles are boolean and non‑decaying. If the axiom base or definitions change, the binding must be re‑issued for the new version; there is no silent carry‑over.
5.2 Experimental line (empirical, inductive, and model‑selection)
ObservationEvidenceRole— raw or processed observations under a declared method.MeasurementEvidenceRole— calibrated measurements with an error model and traceability.ModelFitEvidenceRole— comparative fit or likelihood of data to competing models; supports one over another within the declared scope.ReplicationEvidenceRole— independent replication status (full, partial, failed).CalibrationEvidenceRole— evidence about the measurement chain (instrument validity), typically constraining claims.BenchmarkEvidenceRole— standardised tasks or suites producing comparable scores.
Semantics. Experimental roles require a claim‑scope and a relevance timespan. Their contribution to confidence is graded and may decay; the same artefact may carry multiple bindings for different claims or scopes (distinct role assignments).
Specialisation, not stacking. Do not build chains like “transformer‑agent‑observer role.” A system enacts behavioural roles (e.g.,
TransformerRole) to perform work; an episteme enactsU.EvidenceRoleto classify its evidential function. Keep enactment lines separate.
Clear distinctions (Strict Distinction, litmus tests)
Core invariants (concept level)
- Holder type.
U.EvidenceRoleis held by aU.Epistemeonly; never by a system, work, method, or service. # [M‑0] - Context anchor. Every evidence-role assignment must name a
U.BoundedContext; meaning is local and does not propagate implicitly. - Target claim. Every evidence-role assignment must reference a resolvable claim or theory statement and declare polarity
{supports | refutes | constrains | neutral}. - Claim-scope. Every evidence-role assignment must declare an applicability scope; for the axiomatic line this can be the theory’s domain.
- Timespan. Every evidence-role assignment must declare a relevance interval. Axiomatic roles may be open-ended for a fixed theory version; experimental roles require finite or refreshable windows. Gating: narrative only at M-0; explicit
timespan&decayClassat M-2; version fence &proofChecksat F-. # [M/F] - Non-self-evidence. The provenance of experimental evidence-role assignments must trace to external
U.Workperformed by systems under roles; an episteme cannot “evidence itself.” - No mixing of stances. Do not mix design‑time proof artefacts and run‑time traces in one provenance chain; relate them via separate bindings if needed.
- No role mereology. Roles have no parts; refine by specialisation only. This prevents confusing “sub‑role” with “subsystem”. Profile note: The constraint is universal (applies to all profiles). # [all]
Minimal readable grammar (informative).
<Episteme>#<EvidenceRole>:<Context> — where <EvidenceRole> is defined inside <Context> with normative facets (claimRef, claimScope, polarity, optional weightModelRef, decay policy).
Examples (illustrative only):
Cardio (empirical line)
Role definition in Cardio_2026:
ModelFitEvidenceRole with
claimRef = (β-blocker > placebo), claimScope = adults 40–65, polarity = supports, weightModelRef = KD:SupportMeasure.
Binding:
Trial-R3.csv#ModelFitEvidenceRole:Cardio_2026
Graph theory (formal line)
Role definition in GraphTheory:
AxiomaticProofRole with claimRef = Theorem-12, claimScope = all finite DAG, polarity = supports (entails), fenced to TheoryVersion = 3.1.
Binding:
Lemma-12.proof#AxiomaticProofRole:GraphTheory
Facets and semantics (normative)
This section deepens the definition of U.EvidenceRole by specifying which normative facets are attached to its definition within a U.BoundedContext, how decay is handled, what provenance anchors are required, and how the role contributes to assurance computation.
Claim-scope schema
Every U.EvidenceRole definition within a U.BoundedContext MUST declare a claim-scope record. This record ties the role’s meaning to the exact target claim and its claim scope, and aligns with the typed-claim form used in B.3:
Timespan and decay
Evidence is perishable unless proven otherwise.
- Formal (axiomatic) roles MAY have open-ended
timespan.to = nullonly if fenced to a specificU.TheoryVersionand justified innotes. - Empirical roles MUST have a finite or refreshable
timespan. Decay parameters (half-life, renewal window) are set by the context policy and referenced in the role definition.
When the relevance window closes (validUntil reached), the evidence incurs Epistemic Debt (ED). Per B.3.4, debt must trigger one of three managed actions:
- Refresh — new work produces fresh evidence for the same claim and scope.
- Deprecate — role is retired; claim support is reduced or removed.
- Waive — explicit steward decision to accept the stale evidence temporarily.
Provenance hooks
Each U.EvidenceRole MUST anchor into the Evidence–Provenance DAG (A.10):
- Formal:
verifiedBy→ proof artefact carrier(s), with optionalcheckedBymetadata for proof-checker runs. - Empirical:
validatedBy→ data carriers from observedU.Workruns;protocolRef→U.MethodDescription;fromWorkSet→ IDs of those runs. - SCR/RSCR anchors (A.10) are mandatory for all carriers.
No self-evidence rule: the producing U.Work must have been performed by a system in an external role; an episteme cannot “prove itself” without independent generation.
Contribution to assurance
A U.EvidenceRole classifies an artefact; its contribution to the target claim’s assurance tuple ⟨F, G, R⟩ is computed in B.3 using:
- F (formality) — lower-bounded by the least formal constituent in the provenance path.
- G (ClaimScope) — limited to the claim scope; unsupported regions are dropped (WLNK).
- R (reliability) — computed as:
Here:
min_claimR(path)is the smallest justified reliability along the path from the role to the claim in the context’s support graph.CL_min(path)is the lowest congruence level on that path.Φis the penalty function defined by the context policy; it must be monotonic (lower CL → greater penalty).
If any element in the support chain is postulative, the aggregate epistemicMode is postulative.
TA/VA/LA distinctions:
- TA (Typing assurance) — primary effect is to improve
CLon edges, reducing penalties in R computation. - VA (Verification assurance) — primarily raises F and the logical component of R.
- LA (Validation assurance) — raises empirical R and constrains G to the validated envelope.
Worked examples
Formal line — Proof as evidence for a theorem
Role definition (in GraphTheory)
AxiomaticProofRole
claimRef = Theorem-12(“Every finite acyclic graph admits a topological ordering”),claimScope = all finite DAG,polarity = supports(entails),epistemicMode = formal,assuranceUse = VA,- fenced to
TheoryVersion = 3.1(open-ended relevance as long as that version stands).
Role assignment(s)
Lemma-12.proof#AxiomaticProofRole:GraphTheory
Provenance sketch
verifiedBy → Carrier#Proof_p1 (machine-checked), usedCarrier → Carrier#Def_graph.
Effect on assurance (informative)
High F (machine-checked proof), G = “finite DAG”, R from proof-obligation integrity; potential CL penalty if an ontology bridge is used.
Empirical line — Sensor calibration as evidence for an accuracy claim
Role definition (in Cardio_2026)
ModelFitEvidenceRole
claimRef = “Sensor S achieves ±0.3 °C accuracy in [0,70] °C under lab conditions L”,claimScope = temperature [0,70] °C; humidity 30–50%; environment L,polarity = supports,epistemicMode = postulative,assuranceUse = LA,weightModelRef = KD:SupportMeasure,decayPolicy = annual recalibration.
Role assignment(s)
Trial-R3.csv#ModelFitEvidenceRole:Cardio_2026
Provenance sketch
validatedBy → Carrier#Dataset_calib_v5, protocolRef → MethodDescription#ThermoCalibration, fromWorkSet → {cal_run_0502, cal_run_0503}.
Effect on assurance (informative)
F from formalised procedure, G = measured envelope, R from replication and CL on unit mapping; R decays after the policy window unless refreshed.
Conformance checklist (normative)
CC-ER-01 (Type & holder)
U.EvidenceRole MUST be held by a U.Episteme via U.RoleAssignment. Systems, services, methods, or works MUST NOT hold this role.
CC-ER-02 (Context)
Every evidence-role assignment MUST name a U.BoundedContext. Role meanings are local and do not propagate without an explicit bridge.
CC-ER-03 (Target claim)
Every evidence-role assignment MUST reference a resolvable claimRef@version and declare polarity ∈ {supports | refutes | constrains | neutral}.
CC-ER-04 (Claim-scope)
Every evidence-role assignment MUST declare claimScope. For formal proofs this may be the theory’s domain; for empirical evidence it is mandatory to state population, environment, and parameter envelope.
CC-ER-05 (Timespan)
Every evidence-role assignment MUST carry a non-empty timespan. Formal line may have open-end only if fenced to a fixed theory version; empirical line must have a finite or refreshable end.
CC-ER-06 (Provenance)
Every evidence-role assignment MUST anchor into the EPV-DAG (A.10). For empirical line, fromWorkSet must point to external U.Work; self-evidence is prohibited.
CC-ER-07 (Reproducibility)
Empirical evidence-role assignments MUST state reproducibility ∈ {replicated-independent, replicated-internal, not-replicated, irreproducible}, with references where applicable.
CC-ER-08 (Weight discipline)
If weight.score is present, weight.modelRef MUST be named and all required inputs supplied.
CC-ER-09 (Cross-context)
Cross-context reuse MUST go via U.Alignment bridge; record CL_min on the path for assurance penalties.
CC-ER-10 (Version fences) If the claim or episteme versions, create a new binding; do not mutate in place.
CC-ER-11 (No role-of-role) Roles never hold roles; there is no chaining of behavioural sub-roles into non-behavioural ones.
CC-ER-12 (Terminology) Use specialisation for role refinements; reserve sub for mereology of systems or artefacts only.
CC-ER-13 (Lane declaration)
Every binding SHALL declare assuranceUse ∈ {TA | VA | LA} and, for empirical (LA) bindings, expose timespan/valid_until and decayPolicy so that SCR can report lane‑separated contributions and freshness (B.3).
Anti-patterns and remedies
Operators (conceptual, tooling-agnostic)
These operators extend E.6.1 citation graph capabilities for evidence analysis inside a U.BoundedContext:
12.1 Per-claim evidence
evidenceFor(claim, t?) → Set[EvidenceRoleAssigning]
counterEvidenceFor(claim, t?) → Set[EvidenceRoleAssigning]
weight(claim, t?, model?) → score # returns ordinal at M‑mode; numeric at M‑2/F‑mode. # [M/F]
12.2 Decay and windows
window(claim, [t0,t1]) — filter evidence-role assignments by timespan.
decayedWeight(assignment, t) — apply context decay policy.
12.3 Replication and provenance
replicationLedger(binding) → Ledger
isIndependentReplication(binding) → boolean
12.4 Formal line hooks
proofChecks(binding) → {assistant, status, hash, kind∈{classical, constructive}} # [F‑*]
dependsOnAxioms(binding) → Set[AxiomId]
12.5 Empirical line hooks
fromWorkSet(binding) → Set[WorkId]
protocol(binding) → MethodDescriptionId
Relations
Builds on:
A.2 U.Role, A.2.1 U.RoleAssignment (role as mask, binding as assignment), A.10 Evidence Graph Referring (EPV-DAG), B.3 Trust & Assurance Calculus.
Coordinates with:
A.3.2 U.MethodDescription (protocols, proof obligations), E.6.1 Epistemic Roles via U.RoleAssignment (didactic gateway).
Informs:
KD-CAL (knowledge dynamics, assurance cases), Norm-CAL (policy claims with evidence), planned U.PromiseFulfillmentEvaluation (services judged from work and reported as epistemes with evidence bindings).
Migration notes (quick wins)
- Enumerate claims: For each evidence collection, identify claims and create explicit bindings with polarity.
- Separate work from reports: Facts stay on
U.Work; create report epistemes to link as evidence. - Name the calculus: Replace free-form confidence with context-declared weight model and required inputs.
- Fence by version/time: Bindings carry
timespanand version fences; add decay class if applicable. - Bridge explicitly: Cross-context evidence goes through
U.Alignment, not by fiat.
Didactic quick cards (engineer-manager ready)
These are short reminders for non-specialist readers to apply U.EvidenceRole correctly:
- Evidence ≠ Work — Work is what happened; Evidence is a documented argument (episteme) about a claim in a context.
- Local, not global — Evidence links in a room (context). Outside that room, you need a bridge (
U.Alignment). - Two lines of trust — Formal line: proof artefacts checked in a declared theory version. Empirical line: observations from Work under a declared method. Both are epistemes wearing
U.EvidenceRole. - Services are promises; Work proves — KPIs are measured from Work; service evaluations can be bound as evidence for policy claims.
- Specialise, don’t stack — Use specialisations of
U.EvidenceRoleto refine meaning; never chain behavioural roles into evidence.
SCR/RSCR audit stubs (assurance scaffolding)
These stubs allow concept-level validation of evidence-role assignments, without implying any specific tooling.
SCR-A2.4-E1 (Assignment integrity)
Assert: holder is U.Episteme; context present; claimRef resolves; timespan non-empty; provenance anchored to EPV.
SCR-A2.4-E2 (Weight discipline)
Assert: if weight.score present → weight.modelRef present and all required inputs provided; recompute to check.
SCR-A2.4-E3 (Traceability)
For empirical evidence-role assignments: assignment → fromWorkSet → each U.Work has performer U.RoleAssignment and timestamps; no missing hops.
RSCR-A2.4-R1 (Regression on version bump)
When claimRef or holder episteme versions change, ensure new bindings are created; no in-place mutation.
RSCR-A2.4-R2 (Decay check)
Bindings past timespan.to or with expired decayClass are flagged for review per context policy.
Minimal evidence-role assignment schema (informative)
Memory hooks and acceptance cross-checks (informative)
Memory hook: “Evidence links a document to a claim in a Context, for a time, with a trail.” (document = episteme; claim = scoped thesis; Context = bounded context; time = timespan/decay; trail = provenance)
Acceptance cross-checks before publishing a binding:
- Holder: Is it a
U.Episteme? - Context: Is the
U.BoundedContextdeclared? - Claim: Does
claimRefresolve? Ispolarityset? - Scope: Is
claimScopecomplete? For empirical, are population/env/parameters given? - Timespan: Is it finite or fenced (formal line)?
- Provenance: Is EPV anchored? Any self-evidence?
- Reproducibility: For empirical, is it declared?
- Weight: If scored, is the model named and inputs complete?
- Cross-context: If imported, is
U.Alignmentbridge in place with CL_min recorded? - No role-of-role: Is this role bound directly to an episteme without chaining behavioural roles?
A.2.4:End
U.RoleStateGraph: The Named State Space of a Role
Purpose & scope (why this exists)
A role is not only a name; it is a trajectory of admissible states that governs when, and under which conditions, a holder of that role may enact steps of a U.MethodDescription. FPF therefore introduces a first‑class intensional object:
U.RoleStateGraph(RSG) — the finite, named state space of aU.Rolein a givenU.BoundedContext, with transitions guarded by conditions over the Role Characterisation Space (RCS) and contextual events.
The RSG is the gate between assignment (U.RoleAssignment) and action (U.Work). A step may be performed only when the performer’s assignment is in an enactable RSG state at the relevant Window (time slice) and this is proven by a contemporaneous StateAssertion (verdict of U.Evaluation against the state’s Checklist).
Problem frame (what goes wrong without an RSG)
- Readiness blur. Teams conflate “has the badge” with “is fit to act now”. Without explicit states (Ready, Calibrated, Authorized, Suspended…), enactment checks dissolve into ad‑hoc judgement.
- Checklist drift. Criteria for “ready/approved” live in scattered documents; there is no single conceptual anchor tying them to the role.
- Workflow/role confusion. “State” of a workflow (according to workplan) is mistaken for the state of a role (eligibility to enact).
- Status ≠ enactment. Epistemic/Normative roles (e.g., NormativeStandard, ApprovedSpecification) need statuses that are not enactable, yet are used to gate decisions.
- Cross‑context substitution by name. Labels like Approved or Ready silently cross contexts with different criteria; the loss is hidden and unaudited.
Consequences. Violations of Strict Distinction (A.7) and Didactic Primacy (E.12): ambiguous authority to act, unsafe SoD, and non‑reproducible evaluations.
Core idea (didactic)
Think of a Role as a mask, and the RSG as the traffic lights for that mask inside one context of meaning.
- The nodes are named states (Ready, Degraded, Suspended, Approved, Obsolete…).
- The edges are transitions with guards (checkable conditions over RCS characteristics and contextual events, e.g., CalibrationAge ≤ 30d; AuthorizationSpeechAct recorded).
- Each state is paired with a Checklist (criteria you test to issue a StateAssertion for a given Window).
- Some states are enactable = true (green lights); others are not enactable (status lights) and therefore can gate decisions but cannot directly authorize
U.Work.
One sentence. RSG says when a badge is green. The Checklist proves it, the StateAssertion records it, and the Method step may proceed.
Minimal vocabulary (this pattern only)
-
U.RoleStateGraph(RSG). Intensional object owned by(Role, Context). Finite set of named States and typed Transitions with guards. -
RSG.State. Intensional named place. Properties:
enactable ∈ {true,false}— whether being in this state authorizes enactment of steps that require this role.initial?,terminal?— optional markers for lifecycle reasoning.
-
RSG.Transition. Edge
state_i → state_jwith Guard (predicate over RCS characteristics and/or contextual events such asU.SpeechAct,U.Observation,U.Evaluationresults). -
RCS (Role Characterisation Space). The characteristic bundle that characterises this role in this Context (e.g., CalibrationAge, AuthorizationScope, FatigueIndex, IndependenceFlag, EvidenceFreshness). (Defined in A.2 Role Taxonomy / RoleDescription.)
-
State Checklist (description). A RoleDescription component that enumerates criteria to test whether a holder can legitimately be treated as in a given state for a Window. (Description, not the state itself.)
-
U.Evaluation→ StateAssertion (verdict). The result of applying the state’s Checklist to a concrete holder at a time window, yielding a verdict “IN‑STATE(S) @Window” with provenance to observations/evidence. -
Window. Temporal interval to which the StateAssertion applies (e.g.,
[2025‑05‑01, 2025‑06‑01]).
Strict distinction note.
- RSG and its States are intensionals (what the role is allowed to be).
- Checklists and StateAssertions are descriptions/evaluations (how we know a specific holder is in that state now).
What an RSG is not (guardrails)
- Not a workflow. RSG transitions do not encode task order; they encode eligibility changes of the role.
- Not a capability list. RSG is authorization/readiness over time, distinct from
U.Capability(ability). - Not a global status set. RSG lives inside one Context; the label Ready in another Context is a different state unless bridged (F.9).
- Not a log. RSG is not a history. Histories are StateAssertions over Windows;
U.Workis the record of enactments. - Not a document lifecycle. Epistemic role RSGs can look like document lifecycles, but they remain role‑status graphs; the carrier lifecycle stays separate (A.7,
U.Carrier).
Invariants (preview)
- Locality.
RSG(Role, Context)is defined only within thatU.BoundedContext. - Finiteness. The State set is finite and named.
- Checklist pairing. Every State has a Checklist in the Role’s RoleDescription; every enactable State has at least one observable criterion.
- Green‑gate discipline. A Method step requiring
Rolemay proceed only if a contemporaneous StateAssertion exists for an enactable State. - No silent Cross‑context reuse. Cross‑Context reuse requires a Bridge with CL and loss notes; local
⊥/≤/⊗always prevail.
Formal structure of an RSG (intensional, context‑local)
Definition. For a given
U.Rolein a givenU.BoundedContext, itsU.RoleStateGraphis the tupleRSG(Role, Context) = ⟨S, S_en, T, Guard, init?⟩, where:
-
S— a finite set of named States (StateName ∈ Tech register, with a Plain label). Names are local to(Role, Context). -
S_en ⊆ S— the subset of enactable states (“green lights”). States inS \ S_enare status‑only (not enactable). -
T ⊆ S × S— a set of typed transitionssᵢ → sⱼ. Transitions are optional; the RSG may be acyclic or cyclic. -
Guard— for each transition (and optionally for state maintenance), a predicate over:- the role’s RCS snapshot at a Window (values on named characteristics; see A.2.3), and
- Context events (e.g., presence of a
U.SpeechAct, freshness ofU.Observation, validity of a priorU.Evaluation).
-
init? : S → {true,false}— optionally marks initial state(s). (Useful for lifecycles; not required for gating.)
Naming discipline (RSG‑N1…N3).
- RSG‑N1 (Minimal set).
|S| ≥ 1. At least one state must exist; if no state is enactable, the role is status‑only in this Context. - RSG‑N2 (Disjoint labels). State names are unique within
(Role, Context); reusing global labels (e.g., “Ready”) across contexts is allowed only via Bridges (F.9). - RSG‑N3 (Human scale). For didactics, ≤ 7 states is the default target; exceeding it requires a one‑sentence rationale (“distinct gate we will actually use”).
Enactability & Checklist semantics (how a state is known, now)
An RSG does not determine history; it determines what counts as being in a state, and which states authorize enactment.
State Checklists (description, not the state)
For each s ∈ S, the RoleDescription (A.2.3) includes a State Checklist Checklist(s) — a named set of criteria that can be evaluated at a Window to test “holder is in state s”.
-
Criterion kinds (illustrative):
- Threshold over RCS characteristic:
CalibrationAge ≤ 30 days. - Presence of act:
AuthorizationSpeechAct exists within 90 days. - Evidence freshness:
Evidence(type=SafetyTest).age ≤ 12 months. - SoD flag:
IndependenceFlag = true. - External status:
StandardStatus = Approved.
- Threshold over RCS characteristic:
Strict distinction.
Checklist(s)is a description; the statesis an intensional place in the role’s RSG.
From Checklist to StateAssertion (verdict of U.Evaluation)
Evaluating Checklist(s) at a Window produces an U.Evaluation verdict:
StateAssertion(holder, Role, Context, s, Window)— “For this Window, this holder is in states”, with provenance to the actual observations/evidence.
Rules (RSG‑C1…C5).
- RSG‑C1 (All‑must‑hold). A
StateAssertionMUST justify that all required criteria inChecklist(s)hold at the Window. - RSG‑C2 (Window freshness). Each criterion MUST define its freshness window; if omitted, default is instantaneous at the Window’s end time.
- RSG‑C3 (No guess). Pure opinion is disallowed; every criterion is grounded in observable facts (
U.Observation,U.Workrecord,U.SpeechAct, or a derivedU.Evaluation). - RSG‑C4 (Non‑monotonic over time). A
StateAssertionis not permanent; once the Window ends, a new evaluation is needed unless a maintenance guard keeps it valid (see 8.3). - RSG‑C5 (Uniqueness not required). Multiple states may be asserted for the same Window if their criteria do not conflict (e.g.,
ReadyandAuthorized). Enactability is governed by §8.4.
Transitions & guards (admission, maintenance, exit)
RSG transitions express how eligibility changes when guards fire. Guards are predicates; the RSG stays notation‑neutral.
- Admission guard (
→ s) declares conditions to enter states. - Maintenance guard (
s ↺) must hold to remain ins(e.g., FatigueIndex < 0.8, checked every shift). - Exit guard (
s →) declares conditions to leaves(e.g., CalibrationAge > 30d).
Rules (RSG‑G1…G3).
- RSG‑G1 (Checklists vs guards). Checklists decide recognition (“am I in
snow?”). Guards describe change (“what moves me in/out ofs?”). They may reuse the same predicates; their roles are distinct. - RSG‑G2 (No control‑flow). Guards may refer to events (e.g., “Calibration completed”), but RSG is not a task graph; it does not prescribe task order.
- RSG‑G3 (Observable basis). Every guard references observable RCS characteristics or recorded events (no hidden timers).
The Green‑Gate Law (enactment gating)
Law (RSG‑E1). A
U.MethodDescriptionstep that requires roleRmay be enacted at WindowWiff there exists aStateAssertion(holder, R, Context, s, W)withs ∈ S_en.
Corollaries:
- RSG‑E2 (Specialization lift). If the step requires a general role
R, and the holder has aStateAssertionfor a specialist roleR' ≤ Rin an enactable state whose lift (see §9.1) is enactable forR, the gate passes. - RSG‑E3 (Bundle gate). If the step requires a bundle
R* = R₁ ⊗ … ⊗ Rₙ, enactment requires n distinctStateAssertionsmeeting RSG‑E1 for eachRᵢ(unless the Context defines a CompositeRole with its own RSG; see §9.3). - RSG‑E4 (Status‑only roles). Roles with
S_en = ∅can never authorize enactment; they may gate decisions (e.g., ApprovedSpecRole) but notU.Work.
Interaction with role algebra (≤, ⊥, ⊗) and refinement
Specialization (≤) — RSG refinement map
When R' ≤ R (Specialist role refines General role) in the same Context, their RSGs must align by a refinement map.
Rule (RSG‑R1 Refinement). There exists a surjective mapping
π : S(R') → S(R)such that:
- Enactability preservation:
s' ∈ S_en(R') ⇒ π(s') ∈ S_en(R).- Checklist entailment:
Checklist_R'(s') ⇒ Checklist_R(π(s'))(each specialist state’s criteria imply the general state’s criteria).- Guard monotonicity (informal): Transitions in
R'do not weaken the general readiness implied byR(entering/exiting patterns respect π).
Interpretation. Being in s' for R' guarantees being in π(s') for R. Thus StateAssertions lift along π, enabling RSG‑E2.
Design note. RCS for R' may extend that of R; specialist states can be stricter (more criteria) but not looser than their general counterparts.
Incompatibility (⊥) — state‑aware SoD
R_A ⊥ R_B (within the same Context) states that a single holder must not have overlapping, enactable authority for both roles.
Rule (RSG‑I1). At Window
W, a holder violatesR_A ⊥ R_Biff there exist StateAssertions… in s_A ∈ S_en(R_A)and… in s_B ∈ S_en(R_B)both valid atW.
Optional refinement (soft ⊥). Contexts may tighten incompatibility by listing state pairs that are forbidden (e.g., Ready_A ⊥ Authorized_B), while allowing benign combinations (e.g., Suspended_A + Ready_B). By default, any enactable pair conflicts.
Didactic payoff. SoD is checked by states in Windows, not by static role labels.
Bundles (⊗) — conjunction without product explosion
A bundle role R* := R₁ ⊗ … ⊗ Rₙ expresses “must wear all these badges at once”.
Rule (RSG‑B1). If
R*exists only as a requirement macro, do not construct a product RSG. The gate for a step requiringR*is satisfied by n separate StateAssertionssᵢ ∈ S_en(Rᵢ)at the same Window.
Rule (RSG‑B2 CompositeRole). If the Context declares
R*as a first‑classU.Role, it MUST also specify anRSG(R*)and an embeddingιᵢ : S(R*) → S(Rᵢ)that preserves enactability; being in an enactable state ofR*implies being enactable in eachRᵢ.
Rationale. Avoid combinatorial blow‑up by default; allow a composite role only when the organization genuinely maintains its own readiness graph.
Readiness monotonicity across specialization & bundles
- RSG‑M1 (Specialist suffices). If a step requires
R, anyR' ≤ Rwhose lifted state is enactable suffices. - RSG‑M2 (Bundle conjunctivity). If a step requires
R₁ ⊗ R₂, the performer must produce both gates (two StateAssertions), unless a CompositeRole with RSG exists and is used.
Guard design (types and discipline)
To keep RSGs operational but not procedural, guards draw on observable inputs only.
Guard types (non‑exhaustive).
- Threshold guards over RCS characteristics
FatigueIndex < 0.8,CalibrationAge ≤ 30d,EvidenceFreshness(role=Tester) ≤ 90d. - Event guards (occurrence since last Window)
exists SpeechAct(type=Authorization),exists Evaluation(verdict=Pass, checklist=SafetyKit). - Temporal guards (time within range)
now ∈ AuthorizationValidityWindow,MaintenanceWindow not active. - Relational guards
IndependenceFrom(holder=X) = true(for SoD),NoOpenIncident(severity≥High).
Rules (RSG‑G4…G6).
- RSG‑G4 (Observable only). Each guard MUST be checkable from observable artefacts (observations, work logs, speech acts, evaluations) or present RCS values.
- RSG‑G5 (Context‑local semantics). Guard semantics are scoped to Context; Cross‑context reuse requires a Bridge (§14 in Part 1/4, F.9).
- RSG‑G6 (Didactic sparseness). Prefer few, stable guards over many brittle micro‑conditions. If a guard encodes task order, you are drifting into workflow; refactor back to eligibility.
Allowed guard evidences include:
- Observation facts (measurements/metrics),
- Evaluation verdicts (checklist results),
- SpeechAct occurrences (communicative
U.Work), identified by role, act kind, and window (e.g., “Approved(change=4711)”).
A SpeechAct can change the state (e.g., Prepared→Authorized) but does not by itself satisfy operational steps; it only opens their Green‑Gate.
Putting it together (one‑screen mental model)
At any Window:
- RoleAssignment exists (A.2.1):
Holder#Role:Context. - StateAssertion(s) exist: the holder is in one or more states as proven by checklists (
U.Evaluation). - Green‑Gate Law applies: if at least one asserted state is enactable, role‑gated Method steps may be enacted; if all are status‑only, the role can gate decisions but not perform work.
- Role algebra checks: specialization lifts readiness; bundles require conjunction; incompatibilities are detected when two enactable states coincide for the same holder at the same Window.
This yields a clean separation:
- assignment (RoleAssignment)
- Readiness (RSG + Checklists + StateAssertions)
- Action (
U.Work, gated by RSG)
…and keeps meaning local, evidence observable, and reasoning testable.
Archetypal RoleStateGraphs (cross‑domain patterns)
Below are didactic, reusable RSG skeletons for the three principal behavioural role families and for epistemic/status roles. Names and criteria are context‑local; treat them as templates to specialise inside your U.BoundedContext (E.10.D1). For each RSG we list:
S— candidate States (enactable states marked [E]);- Checklist gist — the recognition criteria (cf. §8.1);
- Guards — illustrative admission/maintenance/exit predicates (cf. §8.3).
Reminder. Only enactable states (
S_en) can open the Green‑Gate forU.Work(RSG‑E1). Status‑only states gate decisions but never execution.
AgentialRole (decision‑capable actor)
Context sketch: Ops_ChangeManagement_2025.
RCS (characteristics, examples): CompetenceLevel, FatigueIndex, IndependenceFlag, AuthorizationValidity, IncidentLoad, RiskClass.
States S
- Unprepared — training incomplete; checklists fail.
- Prepared — training + competence thresholds met.
- Authorized — valid approval window present. [E]
- Ready —
Prepared ∧ Authorized ∧ FatigueIndex < τ. [E] - Active — contemporaneous
U.Workstep is underway under this role (with a valid StateAssertion in the window). [E] - Suspended — temporary block (incident/conflict).
- Revoked — authorization expired/withdrawn.
Checklist gist
- Prepared: certificates valid; recency of practice ≤ X; simulator score ≥ Y.
- Authorized:
exists SpeechAct(type=Approval, scope=Role, age≤30d). - Ready: Prepared ∧ Authorized ∧ independence from conflicting work; fatigue within limits.
Guards
- Admission
→ Prepared:ExamPassed ∧ SimulatorScore≥Y. - Admission
→ Authorized: presence of approval speech‑act within window. - Maintenance
Ready ↺:FatigueIndex<τ ∧ IncidentLoad≤k. - Exit
Ready → Suspended: high‑severity incident assigned OR SoD violation detected. - Exit
Authorized → Revoked: window elapsed or explicit revoke speech‑act.
TransformerRole (non‑agential executor of change)
Context sketch: PlantOps_Pipeline_2025.
RCS: CalibrationAge, SafetyInterlock, SelfTestPass, EnvRangeOK, DegradationIndex.
States S
- Unavailable — offline, missing prerequisites.
- Calibrated — calibration fresh; self‑test ok.
- Permitted — safety interlocks clear; clearance token valid.
- Ready —
Calibrated ∧ Permitted ∧ EnvRangeOK. [E] - Running — executing a method step (with contemporaneous StateAssertion). [E]
- Degraded — still operable under derated envelope. [E] (if policy allows)
- Quarantined — suspected hazard; no enactment.
Checklist gist
- Calibrated:
CalibrationAge≤30d ∧ SelfTestPass=true. - Permitted:
SafetyInterlock = Clear ∧ NoOpenIncident(sev≥High). - Ready: Calibrated ∧ Permitted ∧ environment in spec.
Guards
- Admission
→ Calibrated: calibration record timestamp ≤30d. - Maintenance
Ready ↺: env sensors within limits; no new hazard event. - Exit
Ready → Quarantined: detected leak OR hazard alarm. - Transition
Running → Ready: step completed ∧ cool‑down satisfied. - Transition
Ready → Degraded:DegradationIndex∈[d₁,d₂]∧ derate policy active.
ObserverRole (measurement actor, incl. SOSA/SSN style)
Context sketch: Lab_Thermo_2025.
RCS: CalibrationAge, TraceabilityChainOK, DriftRate, SyncError, CleanlinessScore.
States S
- Unqualified — no metrological chain.
- Calibrated — with traceability to standard.
- Synchronized — time/phase sync within tolerance.
- In‑Range — drift & environment within spec.
- Measuring — performing observation. [E]
- Stale — calibration or sync expired.
- Quarantined — suspect bias/contamination.
Checklist gist
- Calibrated: traceability cert valid; calibration within period.
- Synchronized:
SyncError≤ε. - In‑Range: drift ≤ threshold; contamination tests passed.
- Measuring: Calibrated ∧ Synchronized ∧ In‑Range AND observation procedure active.
Guards
- Admission
→ Calibrated: calibration event recorded < 180d. - Exit
Calibrated → Stale: calibration age > threshold. - Exit
In‑Range → Quarantined: contamination alert OR failed control sample. - Transition
Measuring → In‑Range: procedure complete.
Note. Many ObserverRole states are pre‑enactment gates; only Measuring is enactable.
Epistemic/status roles (no enactment)
These roles are status‑only; S_en = ∅. They gate decisions (e.g., can be cited, can constrain), but can never authorize U.Work.
NormativeStandardRole
States: Draft, Candidate, Approved, Superseded, Deprecated. Checklist gist: governance decision records; publication identifiers; supersession links. Guards: Approved → Superseded on adoption of newer edition; Candidate → Approved after ratification vote.
EvidenceRole
States: Collected, Verified, Validated, Obsolete, Contested.
Checklist gist: verification/validation U.Evaluation present; freshness window; reproducibility tag.
Guards: decay to Obsolete by age; transition to Contested upon counter‑evidence.
RequirementRole
States: Proposed, Accepted, Implemented, Verified, Waived.
Checklist gist: acceptance decision; trace links to U.Work; verification report; waiver authorization.
Guards: Accepted → Implemented when linked executions close; Implemented → Verified on passed acceptance checklist; Any → Waived by authorized speech‑act.
One‑screen authoring templates (didactic cards)
Keep each RSG teachable on one screen. Use the following notation‑neutral templates when drafting RoleDescriptions (A.2.3).
RSG card (per Role, per Context)
State checklist snippet (per State)
Specialization refinement map (R' ≤ R)
SoD focus (⊥) — enactable pairs
Didactic cue. If your “template” spills beyond a screen, you’re drifting into workflow. Pull back to eligibility (RSG) and recognition (checklists).
Cross‑context adjustments (via Bridges, not imports)
RSGs are context‑local. When similar roles appear in different Contexts, relate them with an Alignment Bridge (F.9), never by silently importing state names.
State name correspondence (lossy mapping)
Bridge example: Observer readiness across two contexts:
Rule (RSG‑X1). A Bridge MUST record losses and extra criteria; it MUST NOT assert identity without a stated CL (congruence level).
Authorization vocabulary drift (deontic vs operational)
Bridge note: In some IT change contexts, “Authorized” (deontic) overlaps with “Permitted” (operational). A Bridge can explain the design choice:
Authorized(AgentialRole@ITIL)↔Permitted(TransformerRole@IEC)with CL=1 and a note: operational interlock ≠ managerial approval; both required to lift to Ready under our policy.
Payoff. Bridges keep local honesty while enabling Cross‑context reasoning with explicit penalties (B.3).
Author conformance (write good RSGs)
When you define or revise an RSG, check these concept‑level rules. They are easy to hold in mind; no tooling implied.
CC‑RSG‑01 (Locality). State names and meanings are scoped to (Role, Context). Reuse across contexts only via a Bridge (F.9).
CC‑RSG‑02 (Enactability). Mark which states are enactable (S_en). If none are, the role is status‑only (valid); then it cannot open the Green‑Gate.
CC‑RSG‑03 (Observable criteria). Every checklist item must be observable (Observation, Work record, SpeechAct, or derived Evaluation). No opinions.
CC‑RSG‑04 (Guard discipline). Guards gate change, checklists recognise state. Don’t smuggle task order into guards; workflow lives elsewhere (A.15).
CC‑RSG‑05 (Refinement map). If you declare R' ≤ R, provide a π‑map and ensure entailment (RSG‑R1). Specialist states may be stricter, never weaker.
CC‑RSG‑06 (SoD by state). Define ⊥ in terms of enactable pairs. Avoid blanket ⊥ if finer, state‑aware rules reduce false conflicts.
CC‑RSG‑07 (Human scale). Default to ≤ 7 states. If you exceed, add a one‑sentence didactic rationale (“distinct gate we will actually use”).
CC‑RSG‑08 (Green‑Gate wiring). Ensure every MethodDescription step that requires this Role names the ◉ states it expects, or relies on the default “any ◉”.
CC‑RSG‑09 (Window clarity). Checklists specify freshness windows; state assertions are Window‑bound and non‑permanent.
CC‑RSG‑10 (Status/behaviour split). Epistemic/status roles: S_en = ∅. They gate decisions, not Work. Behavioural roles require U.System holders (A.2.1).
Extended grounding across four disciplines
Each vignette shows (i) the Context, Role, RCS characteristics, States (◉ = enactable), Green‑Gate condition, and how a U.Work is gated by a U.RoleAssignment+RSG. Names are context‑local.
Clinical surgery (medicine)
Context. Hospital.OR_2026
Role. SurgeonRole (AgentialRole)
RCS characteristics. CompetenceLevel, FatigueIndex, AuthorizationValidity, CaseComplexityBand, TeamSoD.
States.
- Unprepared — training/recency incomplete.
- Prepared — credentials valid; recency ≤ 90 days.
- Authorized — procedure‑specific approval active.
- Ready —
Prepared ∧ Authorized ∧ FatigueIndex<τ ∧ TeamSoD_OK. ◉ - Operating — currently performing steps. ◉
- Suspended — incident or conflict raised.
- Revoked — approval expired/withdrawn.
Green‑Gate. A MethodDescription step tagged requires: SurgeonRole is enactable iff the performer’s RoleAssignment asserts Ready at the Window.
Work gating.
performedBy = Dr.Kim#SurgeonRole:Hospital.OR_2026 is valid for step “Incision” only when Ready(Dr.Kim, SurgeonRole, OR_2026, W) holds (checklist items: approval id, fatigue score, SoD against AuditorRole).
Software operations (SRE)
Context. SRE_Prod_Cluster_EU_2026
Role. IncidentCommanderRole (AgentialRole)
RCS characteristics. OnCallStatus, PageFreshness, AuthorityToken, CognitiveLoad, ConflictSoD.
States.
- Off‑Duty — not on call.
- On‑Call — rota active; page reachable.
- Authorized — escalation token valid.
- Ready —
On‑Call ∧ Authorized ∧ CognitiveLoad≤k ∧ SoD_OK. ◉ - RunningIncident — commanding an active incident. ◉
- CoolingDown — post‑incident refractory period.
- Blocked — conflict with ChangeAuthorRole detected.
Green‑Gate. Steps in “Major Incident Process” that require: IncidentCommanderRole open only with Ready.
Work gating.
performedBy = Dana#IncidentCommanderRole:SRE_Prod_Cluster_EU_2026 is invalid for “Declare SEV‑1” if ConflictSoD(ChangeAuthorRole) holds or PageFreshness>5 min.
Laboratory metrology
Context. Metrology_Thermo_2026
Role. ThermometerObserverRole (ObserverRole)
RCS characteristics. CalibrationAge, DriftRate, TraceabilityChainOK, CleanlinessScore, SyncError.
States.
- Unqualified — missing traceability.
- Calibrated — cert valid (≤ 180 d); drift within baseline.
- Synchronized —
SyncError≤ε. - In‑Range — contamination absent; env OK.
- Measuring — procedure active. ◉
- Stale — calibration/sync expired.
- Quarantined — suspected bias.
Green‑Gate. MethodDescription step “Record temperature” is enactable only in state Measuring (which requires Calibrated ∧ Synchronized ∧ In‑Range).
Work gating.
performedBy = SensorT‑17#ThermometerObserverRole:Metrology_Thermo_2026 is rejected if CalibrationAge>180 d or ControlSampleBias>δ.
Governance / compliance
Context. Finance_Audit_2026
Role. IndependentAuditorRole (AgentialRole) and EvidenceRole (status‑only)
RCS (auditor). CertificationLevel, IndependenceFlag, AssignmentToken, CaseLoad.
States (auditor). Ready/Auditing as in §12.1; ⊥ with DeveloperRole.
RCS (evidence). VerificationStatus, ValidationStatus, Age, ProvenanceChainOK.
States (evidence). Collected, Verified, Validated, Contested, Obsolete (status‑only).
Green‑Gate. Audit step requires: IndependentAuditorRole — enactable only with Ready and ⊥ DeveloperRole at the Window. Evidence states gate decisions (e.g., “accept finding”), never open Work.
Work gating.
performedBy = Alice#IndependentAuditorRole:Finance_Audit_2026 fails if Alice holds any overlapping DeveloperRole binding in the same context.
Acceptance harness (static conformance)
Author‑facing checks; notation‑free, concept‑level. Use them when drafting or reviewing an RSG.
SCR‑A.2.5‑S01 - Local scope. Every state name is qualified by (Role, Context). No global states.
SCR‑A.2.5‑S02 - Enactability mark. The set S_en is explicit; each ◉ state is listed.
SCR‑A.2.5‑S03 - Observable checklists. Each state has a Checklist of observable predicates (Observation / Evaluation / SpeechAct / Work evidence).
SCR‑A.2.5‑S04 - Green‑Gate wiring. Every MethodDescription step that names the Role either (a) names its ◉ state(s) or (b) relies on the default “any ◉” policy; the RSG declares which.
SCR‑A.2.5‑S05 - Guard discipline. Guards only gate transitions; they do not encode task order.
SCR‑A.2.5‑S06 - SoD by state. Incompatibilities (⊥) are declared over states (or “any ◉”), not over bare role names.
SCR‑A.2.5‑S07 - Specialisation entailment. For every R' ≤ R, a refinement map π: S(R')→S(R) is provided; each mapped pair has an entailment note (why Checklist_R' ⇒ Checklist_R).
SCR‑A.2.5‑S08 - Human scale. |S| ≤ 7 unless a one‑line didactic rationale is recorded.
SCR‑A.2.5‑S09 - Status‑only roles. If S_en=∅, the Role is explicitly tagged status‑only; it cannot open the Green‑Gate.
SCR‑A.2.5‑S10 - Bridge discipline. Any cross‑context reuse is via an Alignment Bridge (F.9) with recorded CL and losses; no silent imports.
Regression harness (evolution checks)
Use when adding/removing states, changing criteria, or bridging across contexts.
RSCR‑A.2.5‑R01 - State churn impact. For every added/removed/renamed state, list affected MethodDescription steps and Work validators; confirm the Green‑Gate policy remains decidable.
RSCR‑A.2.5‑R02 - Entailment stability. When R' ≤ R changes, update the π map and re‑justify entailments; fail the check if any previously valid entailment breaks.
RSCR‑A.2.5‑R03 - SoD coverage. After edits, recompute the set of enactable pairs; verify declared ⊥ still blocks all intended conflicts and no longer blocks permitted cases.
RSCR‑A.2.5‑R04 - Evidence freshness. If any checklist predicate uses age/freshness, ensure default Windows are documented and existing state assertions re‑evaluate accordingly.
RSCR‑A.2.5‑R05 - Bridge congruence drift. If a Bridge maps states with CL=k, and either side’s checklist changes, revisit the mapping; do not keep CL unchanged by default—raise or lower with a short rationale.
RSCR‑A.2.5‑R06 - Status/behaviour split. Verify behavioural roles still require U.System holders (A.2.1); status‑only roles still have S_en=∅.
RSCR‑A.2.5‑R07 - One‑screen rule. If cumulative edits push the RSG beyond one screen, split states or tighten criteria; record a one‑line teaching rationale if you must exceed.
Common failure modes (and quick remedies)
Didactic script (90 seconds): how A.2.5 ties to A.2.1 & A.2.3
*“A role assignment says who wears which mask where (A.2.1). The RoleStateGraph says when that mask is actually wearable. Each role’s RSG is a small named state space with checklists for each state. Some states are enactable (◉): they open the Green‑Gate for
Work. Others are status‑only: they gate decisions, never execution.A RoleDescription (A.2.3) is where you publish the role’s RCS (characteristics), its RSG (states + checklists + guards), and any role algebra (≤, ⊥, ⊗) specific to your context.
In practice: a
MethodDescriptionstep lists required roles; at runtime, aWorkrecord is valid only if its performer is aRoleAssignmentwhose RSG asserts an enactable state at the Window. That’s the Green‑Gate.Different Contexts may use the same role labels. We never assume global meaning; we relate Contexts with Bridges that map states and record losses.
Keep each RSG on one screen, with observable checklists. If you’re writing task order, you’ve slipped into workflow—move it to the Method. If you’re writing opinions, convert them into observables or drop them. That’s the whole trick.”*
Relations (quick pointers)
- Builds on: A.2.1
U.RoleAssignment(the binding that can assert states); A.2.3U.RoleDescription(the carrier of RSG); E.10.D1 (Context discipline). - Enables. A.15 (Role‑Method‑Work Alignment via Green‑Gate); B.3 (Trust penalties when crossing Bridges with lower
CL). - Interacts with. D‑cluster deontics (speech‑acts gate Authorized‑like states for agential roles); F.9 (state‑level alignment across contexts).
A.2.5:End
Unified Scope Mechanism (USM): Context Slices & Scopes
One-line summary. Introduces a single, context-local scope mechanism for all holons:
U.ContextSlice(where we reason and measure) and a family of set-valued scope types (USM scope objects,U.Scope), specialized asU.ClaimScopefor epistemes (G in F–G–R),U.WorkScopefor system capabilities, andU.PublicationScopefor publication carriers; with one algebra (∩ / SpanUnion / translate / widen / narrow / refit) and uniform Cross-context handling (Bridge + CL).
Replaces / deprecates. This pattern supersedes the scattered use of labels applicability, envelope, generality, universality and capability envelope where they tried to stand in for the one scope mechanism. From now on:
- For epistemes, the only scope type is
U.ClaimScope(nick G in F–G–R). - For system capabilities, the only scope type is
U.WorkScope. - For publication carriers (views/cards/lanes), the only scope type is
U.PublicationScope. - The abstract architectural notion is
U.Scope— a set-valued USM object overContextSliceSetwith its own algebra (∩ / SpanUnion / translate / widen / narrow / refit); it is not aU.Characteristicand MUST NOT appear in anyCharacteristicSpace.
Legacy words (applicability / envelope / generality / capability envelope) MAY appear only as explanatory aliases in non‑normative notes.
Cross‑references.
— C.2.3 (Unified Formality F) and C.2.2 (F–G–R): this pattern defines G as U.ClaimScope.
— A.2.2 (Capabilities): capability gating now SHALL use U.WorkScope.
— Part B (Bridges & CL): Cross‑context transfers MUST declare a Bridge with CL; CL affects R, not F/G.
— Part E (Publication discipline; e.g., E.17 MVPK): publication views/cards/lanes MAY declare U.PublicationScope to bound where a publication is admissible; U.PublicationScope MUST NOT widen the underlying U.ClaimScope/U.WorkScope. (USM supplies the scope calculus; Part E supplies publication discipline.)
Purpose & Audience
This pattern gives engineering managers and assurance architects one vocabulary, one model, and one set of operations to talk about where a claim holds and under which conditions a system can deliver a piece of Work. It removes the need to remember whether a document said “applicability,” a model said “envelope,” or a safety plan said “capability envelope.” Scope is scope. The only distinction that matters is what carries it:
- Knowledge/episteme → Claim scope (G).
- System/capability → Work scope (conditions under which Work at the promised measures is deliverable).
With USM, teams can:
- specify, compare, and compose scope without translation games;
- gate ESG and Method–Work steps with observable, context‑local scope checks;
- cross Contexts safely using Bridges and explicit CL penalties applied to R.
This pattern defines the scope mechanism (Context slices, set‑valued scopes, algebra, and guard usage) and the canonical lexicon (Claim scope (G), Work scope). It does not prescribe which Contexts must widen/narrow scope, nor which assurance levels are required; those are set by context‑local ESG and Method–Work policies, which SHALL reference the mechanisms defined here.
Context
Cross‑disciplinary pressures
Modern projects couple formal specs, data‑driven models, safety cases, and operational playbooks. Each artifact must say where it is valid—yet terminology drifts:
- Standards and specs often say applicability or scope.
- Modeling communities say envelope.
- Safety and performance documents speak about capability envelope.
- Knowledge patterns have used generality (G) as if it were “more abstract,” when we actually need “where the statement holds.”
context‑local reasoning
FPF is context‑local: decisions, checks, and state assertions are valid inside a bounded context. Every practical question—Is this claim usable here? Can this capability deliver that Work now?—must be answered on a concrete slice of context (terminology, versions, environmental parameters, time selector Γ_time). USM provides a first‑class object for such slices and a single scope calculus atop them.
Minimal, composable trust math
In F–G–R:
- F (formality) is “how strictly a claim is expressed” (C.2.3).
- G must be “where it holds,” not “how abstract it sounds.”
- R measures evidence and decays/penalties (freshness, CL).
When G is a set‑valued scope, composition becomes precise: serial dependencies intersect scopes; parallel, independently supported lines can publish a SpanUnion—but only where each line is supported.
Problem
- Synonym soup. Applicability, envelope, generality, capability envelope—different labels for the same mechanism led to mismatches in gating, review, and reuse.
- Abstraction confusion. Calling G “generality” invited teams to treat “more abstract wording” as “broader scope,” silently masking unstated assumptions.
- Split mechanics. Episteme vs system text used different algebra and guard language, though the same set operations were meant.
- Cross‑context opacity. Transfers between Contexts lacked a shared carrier and a rule for what changes (trust) vs what stays (scope).
- Overloaded words. Validity clashed with Validation Assurance (LA); operation/operational clashed with Work/Run in A.15, producing governance ambiguity.
Forces
Solution — Overview (preview; full definitions in Part 2)
USM introduces:
U.ContextSlice— an addressable slice of a bounded context (terminology, parameter ranges, versions/Standards, and a mandatory Γ_time selector). All scope checks are performed on slices.U.Scope— the abstract set‑valued scope object overU.ContextSlice.- Specializations:
U.ClaimScope(nick G) onU.Episteme(“where the claim holds”),U.WorkScopeonU.Capability(“where the capability can deliver Work at declared measures within qualification windows”), andU.PublicationScopeon publication carriers (“where the publication surface is admissible”). - One algebra: serial intersection, parallel SpanUnion (only where supported), translate via Bridge (CL affects R, not F/G), and widen / narrow / refit operations for scope evolution.
Lexical commitments (normative):
— In normative text and guards, use Claim scope (G), Work scope, and Publication scope.
— Do not name the characteristic “applicability/envelope/generality/capability envelope/publication applicability/validity.” Those words are permitted only as explanatory aliases in notes.
Normative Definitions
USM as a U.Mechanism.Intension (normalization for A.6.1/A.6.5)
Intent. This subsection makes the USM definition in A.2.6 explicitly conform to the
U.Mechanism intension requirements (A.6.1) and the …Slot / …Ref lexical discipline (A.6.5),
without changing USM’s meaning.
USM Mechanism.Intension (normative; A.6.1 decomposition).
- Imports (USM).
U.ContextSlice,U.ContextSliceSet, Part B Bridge/CL (U.Bridge,U.CongruenceLevel), andU.GammaTimePolicy. - BaseType (USM).
U.ContextSliceSet(set‑valued scope objects range over sets of addressableU.ContextSlice). - SliceSet (USM).
U.ContextSliceSet(addressableU.ContextSlices; see §6.1). - SubjectKind (USM).
U.Scopewith kind specialisations:
U.ClaimScope ⊑ U.Scope,U.WorkScope ⊑ U.Scope,U.PublicationScope ⊑ U.Scope. - ExtentRule (USM). The quantifier domain is the set of well‑formed scope objects over the SliceSet:
Extension(U.Scope, slice) = { S | S ⊆ U.ContextSliceSet }. - ResultKind? (USM).
U.Scope(for operators that return scopes, e.g.,∩,SpanUnion,translate).
SlotIndex (USM) for operators/guards (normative; A.6.0:4.1.1 + A.6.5).
These SlotKinds are stable names for signatures, substitution laws, and guard templates; they are not additional data slots on carriers.
OperationAlgebra (USM) with SlotSpecs (normative).
member(SliceSlot, ScopeSlot)— surface form:SliceSlot ∈ ScopeSlot.subset(LeftScopeSlot, RightScopeSlot)— surface form:LeftScopeSlot ⊆ RightScopeSlot.intersect(LeftScopeSlot, RightScopeSlot) → U.Scope— surface form:LeftScopeSlot ∩ RightScopeSlot.spanUnion(ScopeFamilySlot) → U.Scope— surface form:SpanUnion(ScopeFamilySlot).translate(BridgeRef, ScopeSlot) → U.Scope— Cross‑context mapping via Bridge.widen(LeftScopeSlot, RightScopeSlot)— Δ‑move, requiresLeftScopeSlot ⊂ RightScopeSlot.narrow(LeftScopeSlot, RightScopeSlot)— Δ‑move, requiresRightScopeSlot ⊂ LeftScopeSlot.refit(LeftScopeSlot, RightScopeSlot)— normalization, requiresLeftScopeSlot = RightScopeSlot.
Derived guard predicates (USM).
coversSlice(ScopeSlot, SliceSlot) := (SliceSlot ∈ ScopeSlot).coversSet(ScopeSlot, SliceSetSlot) := (SliceSetSlot ⊆ ScopeSlot).
LawSet (USM). Serial composition uses intersection; parallel publication uses SpanUnion only with an explicit independence justification (§7.3).
AdmissibilityConditions (USM). Scope coverage predicates MUST be tri‑state under unknowns: unknown inputs yield unknown, and guards MUST either (a) abstain (fail closed) or (b) degrade trust in the admitting decision via R; unknown MUST NOT be implicitly coerced to false/0. (See also §7.1 and §10.1.)
Applicability (USM). USM governs Claim/Work/Publication scope objects inside a U.BoundedContext; coverage judgments are evaluated on explicit U.ContextSlice tuples (§6.1) and are not comparable/scorable as CHR values.
Audit (USM). Record scope‑aware decisions with the TargetSlice tuple, guard outcomes, and any Bridge+CL used (see §14.1).
Transport (USM). Cross‑context usage is Bridge‑only with explicit CL; CL penalties apply to R_eff = R · Φ(CL) and MUST NOT rewrite F or G (§7.4/§7.5).
Γ_timePolicy (USM). Γ_time is mandatory in slices and guards (§8.2); implicit “latest” is forbidden.
PlaneRegime (USM). Not applicable to set‑valued scope objects (no CL^plane effect on scopes).
Mechanism specialisation (USM; A.6.1:4.2.1). A bounded context MAY publish a specialisation of USM as either a refinement USM′ ⊑ USM (tighten LawSet/AdmissibilityConditions) or an extension USM ⊑⁺ USM′ (add new operators/slots). Any such specialisation SHALL (i) name its parent (USM), (ii) declare the morphism kind (⊑ vs ⊑⁺), (iii) preserve the same BaseType and SlotKinds for inherited operators (no renaming), (iv) avoid adding new mandatory inputs to inherited signatures. It MAY narrow ValueKinds/refModes monotonically and add admissibility constraints, but MUST remain substitutable for the inherited USM operators.
U.ContextSlice — where scope is evaluated
Definition. U.ContextSlice is an addressable, context‑local selection of a bounded context comprising:
- Vocabulary & roles. The active terminology, role bindings, and local dictionaries.
- Standards & versions. Concrete versioned interfaces, schemas, notations, or service Standards in force.
- Environment selectors. Named parameters/ranges (e.g., temp, humidity, platform, jurisdiction, dataset cohort).
- Time selector
Γ_time. A mandatory selector for the temporal frame of reference (point, window, or policy), disallowing implicit “latest”.
Semantics. All scope checks, guards, and compositions are evaluated inside an explicitly named U.ContextSlice. Cross‑context or cross‑slice usage MUST be mediated by a Bridge (Part B) with an explicit CL rating; see §7.4.
Addressability. A slice MUST be identifiable via a canonical tuple (Context, vocab‑id, Standard/version ids, env selector(s), Γ_time). A slice MAY be a singleton or a finite set if a guard tests multiple coherent sub‑conditions.
Slice key (minimal). A U.ContextSlice SHALL be addressable by a tuple containing at least: (Context, Standard/version ids (if any), environment selectors, Γ_time). Contexts MAY extend this tuple (e.g., vocab/roleset ids).
U.Scope — the abstract set‑valued scope property (USM kind; not a CSLC measurement)
Definition. U.Scope ⊆ ContextSliceSet is a set‑valued USM property whose values are sets of U.ContextSlice where a given statement, behavior, or capability is fit‑for‑use. It is not numeric; its internal order is the subset relation ⊆. There is no “unit”. The primitive judgement is membership: slice ∈ Scope.
Guard (normative). U.Scope, U.ClaimScope (G), U.WorkScope, and U.PublicationScope are not U.Characteristics in the A.17/CSLC sense; do not include them as slots in any U.CharacteristicSpace, and do not attach normalizations/scores to them. They are USM scope objects.
Operations. USM admits:
- Intersection
∩(serial composition). - SpanUnion (parallel, independently supported coverage) only when an explicit named independence assumption is declared (features/axes named, validity window stated, evidence class cited). See A.6.1/USM LawSet for the normative template.
- Translate (Cross‑context mapping via Bridge).
- Widen / Narrow (monotone changes to the set).
- Refit (content‑preserving re‑expression; set equality).
Locality. U.Scope values are defined and reasoned about context‑locally. Translation between Contexts never occurs implicitly; see §7.4.
U.ClaimScope (nick G) — scope of a claim (episteme)
Carrier. U.Episteme (claims, specifications, theories, policies).
Meaning. The set of U.ContextSlice where the claim holds as stated. This is G in the F–G–R triple. G is not “abstraction level”; it is the applicability area of the claim.
Expression. Authors SHALL declare Claim scope as explicit predicates or condition blocks (assumptions, parameter ranges, cohorts, platform/Standard versions, Γ_time windows).
Path composition (serial). Along any essential dependency path supporting the claim, the effective scope is the intersection of contributors’ Claim scopes (see §7.2). Empty intersection makes the path inapplicable.
Parallel support. Where independent lines of support justify disjoint areas, the episteme MAY publish a SpanUnion (see §7.3) limited strictly to the covered slices.
Δ‑moves.
- ΔG+ (widen). Replace scope S with S′ such that S ⊂ S′.
- ΔG− (narrow). Replace scope S with S′ such that S′ ⊂ S.
- Refit. Replace S with S′ where S′ = S (normalization, re‑parametrization).
- Translate. Map S across Contexts via a declared Bridge; CL penalties apply to R, not to F/G.
Orthogonality. Changes in F (form of expression) or D/AT (detail/abstraction tiers) do not change G unless the declared area of validity changes.
U.WorkScope — scope of doing Work (capability)
Carrier. U.Capability (a system’s ability to deliver specified U.Work).
Meaning. The set of U.ContextSlice (conditions, Standards, platforms, operating parameters, Γ_time) under which the capability can deliver the intended Work at the declared measures, within declared qualification windows.
Expression. Capability owners SHALL declare U.WorkScope as explicit conditions/constraints over U.ContextSlice only (environment, platforms, Standards by version, resource regimes, Γ_time). Quantitative deliverables and operation windows are not part of the scope value:
- Declare targets as
U.WorkMeasures(e.g., latency ≤ L, throughput ≥ T, tolerance ≤ ε) bound in guards (WG‑2). - Declare inspection/recertification policies as
U.QualificationWindowbound in guards (WG‑3).
The use‑time admission requires all of:WorkScope covers JobSliceANDWorkMeasures satisfiedANDQualificationWindow holds.
Method–Work gating. A Work step’s guard MUST check that the target slice is covered by the capability’s Work scope and that required measures and qualification windows are satisfied.
Composition and Δ‑moves. Work scope uses the same algebra as Claim scope (∩ / SpanUnion / translate / widen / narrow / refit). Translation across Contexts follows §7.4.
Separation from knowledge. Work scope does not assert a proposition about the world; it asserts deliverability of Work under conditions. Evidence for deliverability feeds R (Reliability) via measurements and monitoring.
Required guard facets (capabilities).
U.WorkMeasures(mandatory). A set of measurable targets with units and tolerated ranges, evaluated on the JobSlice.U.QualificationWindow(mandatory for operational use). A time policy (point/window/rolling) stating when the capability is considered qualified; evaluated atΓ_time.
These facets are separate fromU.WorkScopeand live in the R‑lane (assurance). They MUST be referenced in Method–Work guards (see §10.3 WG‑2/WG‑3).
U.PublicationScope — scope of a publication (view/surface)
Carrier. Publication carriers (e.g., PublicationSurface/InteropSurface views/cards/lanes in Part E; MVPK faces).
Meaning. The set of U.ContextSlice where a publication (a view/card/lane about some object or morphism) is admissible for use without introducing claims beyond its underlying carrier.
Relation to other scopes (normative).
- If the publication is about an episteme
E:
PublicationScope(view_E) ⊆ ClaimScope(E). - If the publication is about a capability
C:
PublicationScope(view_C) ⊆ WorkScope(C). - If the publication is about a composition and/or crosses Contexts:
PublicationScope(view) ⊆ translate(Bridge, ⋂ scopes of contributors); CL penalties apply to R only (scope set membership is unaffected).
Expression. Authors SHALL declare U.PublicationScope as explicit predicates over U.ContextSlice (Context, Standard/version ids, environment selectors, Γ_time). It MAY be narrower than the underlying scope (e.g., due to pin availability, labeling, or audience constraints) but MUST NOT be wider.
Algebra & Δ‑moves. Inherits the USM algebra (∩ / SpanUnion / translate / widen / narrow / refit). Widen is permitted only when the underlying U.ClaimScope/U.WorkScope widens accordingly; otherwise the publication MAY refit or narrow.
Orthogonality to measurement. U.PublicationScope is a USM scope object (set‑valued), not a CHR Characteristic and MUST NOT appear as a slot in a U.CharacteristicSpace.
View refinement (profiles). When a stricter publication profile/view refines another (e.g., a typed card that requires additional pins), its U.PublicationScope MUST NOT be wider than that of the less formal view.
Scope Algebra
Membership & Coverage
-
Membership judgement.
slice ∈ Scopeis the primitive check. -
Coverage guard. A guard “Scope covers TargetSlice” means either:
- singleton:
TargetSlice ∈ Scope, or - set:
TargetSet ⊆ Scope.
- singleton:
-
No implicit expansion. Absent an explicit declaration, guards MUST NOT treat “close” slices as covered; widening requires a ΔG+ change.
Tri‑state admissibility under unknowns (normative; aligns A.6.1).
- If any required input to a membership/coverage check is unknown (missing slice selector, unknown Standard version, unmappable Bridge leg, unspecified
Γ_time, etc.), the check result is unknown, notfalse. - Guards MUST either abstain (fail closed) or explicitly route the outcome through an R‑lane degradation policy; unknown MUST NOT be coerced to
false/0.
Serial Composition (Intersection)
Rule S‑INT (serial). For an essential dependency chain C1 → C2 → … → Ck that supports a claim/capability, the effective scope along that chain is:
If Scope_serial = ∅, the chain is inapplicable and MUST NOT contribute to published scope.
Monotonicity. Adding a new essential dependency can only narrow (or leave unchanged) the serial scope.
Parallel Support (SpanUnion)
Rule P‑UNION (parallel). If there exist independent support lines L₁,…,Lₙ for the same claim/capability, each with serial scope S_i, the publisher MAY declare:
Constraints.
- Independence MUST be justified (different support lines must not rely on the same weakest link).
- The union MUST NOT exceed the union of supported slices; “hopeful” areas are disallowed.
- Publishers SHOULD annotate coverage density/heterogeneity (informative) to aid R assessment, but numeric “coverage” is not part of G.
- Independence criterion. Support lines in a SpanUnion MUST be partitioned so that each line has a set of essential components disjoint from the others’ essential components (no shared weakest link). The partition (or a certificate thereof) SHALL be referenced in the publication.
Why a G-ladder/levels/scales is not needed (and must not be introduced)
1) G is not an ordinal scale; it is set-valued.
Under USM, U.ClaimScope is a set‑valued USM scope object over U.ContextSlice. The only well‑typed primitives are membership and set operations (⊆, ∩, ⋃). Imposing ordinal “levels” such as G0…Gk violates the type discipline and produces non‑invariant behavior (the same set could be “rated” with different numbers under different heuristics). (See also LEX‑CHR‑STRICT.)
2) G composes via ∩ / SpanUnion, not via min / avg.
USM already fixes composition: along a dependent path use intersection; across independent support lines publish SpanUnion. None of these operations relies on (or preserves) any linear order. An ordinal “G ladder” invites people to take minimums/averages, which is incorrect for sets and breaks the established algebra.
3) A G ladder drags in “abstraction level,” which is orthogonal.
Early “G ladders” effectively encoded abstraction/typing (instances → patterns → formal classes/types → up‑to‑iso). That is valuable didactics, but not applicability. We have already separated these concerns: abstraction is captured, if needed, by U.AbstractionTier (AT) as an optional facet; applicability is U.ClaimScope (G).
4) A G ladder breaks locality and Bridge semantics.
Cross‑context transfer maps a set Scope via a Bridge and penalizes R by CL. There is no canonical way to “translate” an ordinal G level between Contexts: the mapped area may be strictly narrower or differently factored. Level numbers would become non‑portable, causing hidden loss or inflation of trust. With USM, we translate sets and keep the CL penalty where it belongs—in R, not in G.
5) A G ladder duplicates ESG guards without adding decision power.
What teams often want to “compress into a G number” is actually (a) the quality of expression and (b) the completeness of the declared scope. The first is an F threshold (e.g., require U.Formality ≥ F4 so the scope is predicate‑like and addressable); the second is handled by explicit ESG guards: “Scope covers TargetSlice,” “Γ_time is specified,” and “freshness window holds” (R‑lane). A ladder for G adds confusion but no additional control.
Normative directive.
U.ClaimScope (G) SHALL remain a set‑valued USM scope object; no ordinal or numeric ladder SHALL be defined for G. If a profile needs scalar reporting, it MAY publish an explicit report‑only proxy CoverageMetric(G), but CoverageMetric(G) MUST NOT substitute for G in norms, gates, bridge semantics, or CL routing. Authoring and gating SHOULD use F thresholds (C.2.3) and explicit guard predicates (A.2.6) rather than pseudo‑levels of G.
Translation across Contexts (Bridge & CL)
Rule T‑BRIDGE. To use a scope in a different bounded context (room), an explicit Bridge MUST be declared with:
- Mapping. A documented mapping from source to target
U.ContextSlicevocabulary/characteristics. - Congruence Level (CL). A rating of mapping congruence.
- Loss notes. Any known losses, assumptions, or non‑isomorphisms.
Effect. The mapped scope is T(Scope) in the target Context. CL penalties apply to R (the trust in support/evidence), not to F or G. If mapping is coarse, the publisher SHOULD also narrow the mapped scope to the area where losses are negligible (best practice, not a requirement).
Δ‑Operations (Widen, Narrow, Refit)
- ΔG+ (widen). Monotone expansion:
S ⊂ S′. Requires new support or stronger bridges. - ΔG− (narrow). Monotone restriction:
S′ ⊂ S. Often used to remove areas invalidated by new findings. - Refit.
S′ = Safter normalization (e.g., re‑parameterization, changing units, factoring common predicates). Refit MUST NOT alter membership.
Refit (normalization). A refit MUST preserve membership exactly (S′ = S). Any change that alters boundary inclusion (due to rounding, unit conversion, discretization) is a ΔG± change, not a refit.
Edition triggers. Any change that alters the published set (ΔG±) is a content change and MAY trigger a new edition per Context policy (see A.2.x on editions). Refit is not a content change.
Invariants
- I‑LOCAL. All scope evaluation is context‑local. Cross‑context usage MUST follow §7.4.
- I‑SERIAL. Serial scope is an intersection; it cannot grow by adding dependencies.
- I‑PARALLEL. Parallel scope MAY grow by union, but only where independently supported.
- I‑WLNK. Weakest‑link applies to F and R on dependency paths; G follows set rules (∩ / ⋃).
- I‑IDS. Idempotence: Intersecting or unioning a set with itself does not change it.
- I‑EMPTY. Empty scope is a first‑class value; guards MUST treat it as “not applicable”.
Empty & Partial Scopes
- Empty scope (
∅). The claim/capability is currently not usable anywhere in the Context; guards MUST fail. - Partial scope. Publishers SHOULD avoid “global” language when actual scope is thin; instead, publish explicit slices and (informatively) coverage hints to guide R assessment.
Locality, Time & Version Semantics
context‑locality
Scopes are owned and evaluated within a U.BoundedContext. State assertions (ESG/RSG) and Method–Work gates MUST NOT assume that a scope declared in another Context applies verbatim; see §7.4.
Time selector Γ_time
Every scope declaration and every guard MUST specify a Γ_time selector (point, window, or policy such as “rolling 180 days”) whenever time‑dependent assumptions exist. Implicit “latest” is forbidden. When Γ_time differs between contributors, serial intersection resolves the overlap.
Standards, versions & notations
Scope predicates SHALL name Standards/interfaces/schemas by version. Changing symbols/notations with a faithful mapping does not change G (it may change CL for the mapping and thus affect R).
Determinism of evaluation
Given fixed inputs (slice tuple, declared scope), the membership judgement MUST be deterministic. Guards SHALL fail closed (no membership ⇒ no use).
Interaction with R (freshness & decay)
For empirical claims and operational capabilities, R typically binds evidence freshness windows. Scope does not decay with time; trust in the support does. Guards MAY combine “Scope covers” with “Evidence freshness holds” as separate predicates.
Lexical Discipline (Part E compliance)
L‑USM‑1 (names). Use Claim scope (G) for epistemes, Work scope for capabilities, and Publication scope for publication carriers. Use Scope only when discussing the abstract mechanism. Avoid naming any characteristic as “applicability,” “envelope,” “generality,” “capability envelope,” or “validity”.
L‑USM‑2 (Work/Run). Prefer Work/Run vocabulary from A.15 for system execution contexts. Do not introduce “operation/operating” as characteristic names; use Work scope.
L‑USM‑3 (Validation). “Validation/Validate” remain reserved for LA in assurance lanes (Part B). Do not name a scope object “validity”.
L‑USM‑4 (Domain). “Domain” is a descriptive convenience. Scopes are evaluated on Context slices; guards SHALL reference slices, not generic “domains”.
L‑USM‑5 (First mention). On first use in a Context, include the parenthetical nick: “Claim scope (G)” to preserve the F–G–R mapping.
Guard Patterns (ESG & Method–Work)
Common guard shape
A scope‑aware guard has the form:
Admissibility note (normative; A.6.1 alignment). If ScopeCoverage is unknown (due to unknown slice keys, unmappable translation, missing Γ_time, etc.), the guard MUST NOT silently treat this as false. It MUST either abstain (fail closed) or apply an explicit R‑lane degradation policy.
Where:
- ScopeCoverage:
Scope covers TargetSlice(singleton or finite set), see §7.1. - TimePolicy: explicit
Γ_timeselector(s); implicit “latest” is forbidden (§8.2). - EvidenceFreshness: optional R‑lane freshness/decay predicates; separate from ScopeCoverage (§8.5).
- BridgePolicy: required if the Scope and TargetSlice are in different Contexts; declares Bridge, CL, loss notes (§7.4).
The guard fails closed (no membership ⇒ denial), and evaluation is deterministic given the slice tuple (§8.4).
ESG guard families (epistemes)
EG‑1 - ClaimScopeCoverage (mandatory). The state transition MUST include a predicate:
- Singleton:
TargetSlice ∈ ClaimScope. - Finite set:
TargetSet ⊆ ClaimScope.
EG‑2 - Formality threshold (if required by ESG). When rigor is gated, the guard MUST reference C.2.3:
EG‑3 - Evidence freshness (R‑lane). If the state implies trust, a separate predicate MUST assert freshness windows for bound evidence:
EG‑4 - Cross‑context usage.
If TargetSlice.Context ≠ episteme.Context, the guard MUST require a declared Bridge and CL:
Effect: CL penalties apply to R, not to F/G (§7.4). The ESG guard MAY also narrow the mapped Claim scope when mapping losses are known.
EG‑5 - ΔG triggers. If the transition publishes a wider Claim scope (ΔG+), the guard MUST capture the new support or the new Bridge and, if Context policy so dictates, mint a new edition (PhaseOf).
EG‑6 - Independence for SpanUnion (when claiming parallel scope). When the episteme declares a SpanUnion across independent lines, the guard MUST include an independence justification (pointer to the support partition). No independence ⇒ no union.
(Informative note.) Managers often combine EG‑1 (coverage) + EG‑2 (F threshold) + EG‑3 (freshness) for “Effective” or “Approved” states, and EG‑4 when adopting claims across Contexts.
Method–Work guard families (capabilities)
WG‑1 - WorkScopeCoverage (mandatory). A capability can be used to deliver a Work step only if:
WG‑2 - U.WorkMeasures satisfied (mandatory for deliverables).
Guards MUST bind quantitative measures that the capability promises in the JobSlice:
WG‑3 - U.QualificationWindow holds (mandatory for operational use).
Operational guards MUST assert that qualification windows (qualification/inspection/recert intervals) hold at Γ_time:
WG‑4 - Cross‑context use of capability. If the JobSlice is in another Context:
CL penalties affect R (confidence in deliverability), not Work scope; however, the guard SHOULD narrow the mapped Work scope to account for known mapping losses.
WG‑5 - Δ(WorkScope). When widening Work scope (new operating ranges/platforms), the guard MUST require evidence at the new slices (measures + qualification windows). Refit (e.g., new units/parametrization) requires no new evidence.
Bridge‑aware guard macro (reusable)
A reusable macro for Cross‑context guards:
- Owner(Scope). The carrier that declares the scope: an Episteme (for
U.ClaimScope), a Capability (forU.WorkScope), or a Publication carrier (forU.PublicationScope). - Translate(b, Scope). The partial mapping of a set of source slices to target slices induced by Bridge b. If a source slice is unmappable, it is dropped. The result is a set of target slices; CL penalties apply to R only.
- Penalty to R: applied per trust calculus; F and G remain as declared.
Selector policy (Γ_time)
All ESG and Method–Work guards MUST spell out Γ_time:
- Point (“as of 2026‑03‑31T00:00Z”).
- Window (“rolling 180 days”).
- Policy (“last lab calibration within 90 days”).
Implicit “latest” is not allowed. If multiple contributors declare different policies, serial intersection computes the overlap (§8.2).
Conformance Checklist (USM)
Worked Examples
Each example declares the Context, the scope, the target slice, and shows the guard outcome. Where relevant, serial intersection, SpanUnion, and Bridge & CL are illustrated.
Research claim (controlled narrative → predicate)
- Context:
MaterialsLab@2026. - Episteme: claim “Adhesive X retains ≥85 % tensile strength on Al6061 for 2 h at 120–150 °C.”
- Claim scope (G):
{substrate=Al6061, temp∈[120,150]°C, dwell≤2h, Γ_time = window(1y), rig=Calib‑v3}. - Target slice:
{substrate=Al6061, temp=140 °C, dwell=90 min, Γ_time=2026‑04‑02, rig=Calib‑v3}. - Guard (EG‑1, EG‑2):
covers(TargetSlice)true;U.Formality ≥ F4true (predicates in spec). - Outcome: state transition allowed (freshness checked separately under R).
Cross‑context use of the research claim
- target Context:
AssemblyFloor@EU‑PLANT‑B. - Bridge: declared mapping of rigs and temp measurement correction; CL=2 (loss: ±2 °C bias).
- Mapped Claim scope:
translate(Bridge, G)narrows temp to[122,148]°C. - Guard (EG‑4): Bridge present,
CL≥2true; R is penalized per Φ(CL). - Outcome: allowed; G remains the mapped set; R lowered.
Capability: robotic weld Work scope
- Context:
RobotCell‑Weld@2026. - Capability: “Weld seam W at bead width 2.5 ± 0.3 mm, cycle ≤ 12 s.”
- Work scope:
{humidity<60 %, current∈[35,45]A, wire=ER70S‑6, Γ_time=rolling(90d), controller=FW‑2.1}. - Job slice:
{humidity=55 %, current=40A, wire=ER70S‑6, Γ_time=now, controller=FW‑2.1}. - Guards (WG‑1..3): coverage true; measures satisfied; qualification window true (controller certified 60 d ago).
- Outcome: capability admitted for this Work.
Serial intersection (API + dataset compatibility)
- Claim A (API Standard):
v2.3request schema with constraint “idempotent under retry”. - Claim B (Dataset cohort): “metrics valid for cohort K with schema
ds‑14”. - Composition: service S depends on both A and B → serial intersection of Claim scopes:
{api=v2.3} ∩ {cohort=K, schema=ds‑14}. - Target slice:
{api=v2.3, cohort=K, schema=ds‑14}→ membership true. - Any drift (e.g.,
ds‑15) empties the intersection ⇒ path inapplicable.
Parallel support (SpanUnion) in a safety case
- Line L1: tests on dry asphalt support braking property; scope
S1={surface=dry, speed≤50 km/h}. - Line L2: simulations for wet asphalt; scope
S2={surface=wet, speed≤40 km/h}. - Published scope:
SpanUnion({S1,S2})={(dry, ≤50), (wet, ≤40)}with independence note (L1 empirical, L2 model‑validated). - Guard: allowed; union does not include
(wet, 45)because not supported.
ML model deployment across Contexts
- Model claim: “AUC ≥ 0.92 on cohort K, pipeline P, features F,
Γ_time=rolling(180d).” - Claim scope:
{cohort=K, pipeline=P, features=F, Γ_time=rolling(180d)}. - target Context: product
On‑Device@v7, featuresF’(subset), pipelineP’. - Bridge: declared mapping
F→F’,P→P’, CL=1 (notably lossy). - Guard: Bridge present;
translate(G)covers a strict subset; CL=1 penalizes R strongly; ESG requires F≥F5 (executable semantics) and freshness < 90 d. - Outcome: allowed only for the covered subset; adoption flagged with reduced R.
Playbooks (Informative)
Manager’s 6‑step adoption checklist
- Name the TargetSlice. Write the tuple (Context, versions, environment params,
Γ_time). - Check scope coverage. “Claim/Work scope covers TargetSlice?” If no, either ΔG+ (publish wider scope with support) or decline.
- Check rigor if gated. If ESG requires it, ensure
U.Formality ≥ F_k. - Check evidence freshness (R). Validate windows/decay policies; do not conflate with coverage.
- Bridge if Cross‑context. Require declared Bridge, CL, and loss notes; accept R penalties.
- Record the decision. Keep the slice and guard outcomes with the StateAssertion (auditability).
Architect’s design rubric for scopes
- Prefer predicates over prose. Name parameters, ranges, Standards by version, and
Γ_time. - Factor common conditions. Use Refit to normalize units and factor shared predicates; do not widen by stealth.
- Partition support lines. If you plan a SpanUnion, document independence up front.
- Keep scope thin & honest. Publish what you can support; add slices as support appears (ΔG+).
- Design Bridges early. When interop is planned, sketch mapping characteristics and expected CL; plan R penalties.
Review anti‑patterns & fixes
Minimal DSL snippet for scope blocks (illustrative)
(Illustrative only; the specification does not mandate a particular syntax.)
Profiles as Scope configurations (informative)
Idea. A Scope profile is a named, editioned configuration that expands to a concrete U.Scope predicate block (over U.ContextSlice), used to avoid repetition and to keep declarations consistent across carriers.
Rules.
- P1 (Expansion). Profiles are macros: guards MUST expand them to explicit predicates before evaluating
Scope covers TargetSlice. - P2 (Edition). Profiles are editioned; changing a profile’s predicates is a content change for any carrier that references it.
- P3 (No stealth widen). A profile update MUST NOT implicitly widen a carrier’s published scope; ΔG+ must be explicit in that carrier.
- P4 (Bridge awareness). If a profile implies Cross‑context use, it MUST name the Bridge and CL policy; CL penalties apply to R only.
- P5 (Locality). Profiles are context‑local conveniences; they do not introduce new scope types.
Examples (illustrative).
— An engineering context defines Ops‑Lab‑v3 as a profile pinning Standards, environment selectors, and a rolling Γ_time policy; claims, capabilities, and publications may reference it as a shorthand.
— A publication stack defines TechCard‑Lite@Σ as a profile that narrows U.PublicationScope to slices where required pins are available.
Governance Hooks & Audits
Governance metadata (normative)
Contexts that adopt USM SHALL record, per scope‑aware decision:
- Owner. Episteme (for Claim scope) or Capability (for Work scope).
- TargetSlice tuple. Context, vocab/roles, versioned Standards, environment selectors,
Γ_time. - Guard outcomes. Membership result, Bound measures (for Work scope), Freshness predicates (R).
- Bridge info (if any). Mapping summary, CL, loss notes, applied R penalty.
- ΔG log. Widen/narrow/refit; edition policy outcome.
USM compliance levels (informative)
- USM‑Ready. Context declares adoption; editors trained; lexicon updated.
- USM‑Guarded. All ESG/Method–Work guards use Claim/Work scope and
Γ_time. - USM‑Auditable. Decision records include TargetSlice tuples and Bridge/CL details.
- USM‑Composed. Serial intersection and SpanUnion are implemented in composition tooling.
Audit checklist (informative)
- Does each guard name a concrete TargetSlice?
- Is membership deterministically recomputable from published predicates?
- Are freshness and coverage separate predicates?
- For Cross‑context use: is there a Bridge with CL and loss notes?
- For parallel support: is independence justified?
Risk controls (informative)
- Silent widening. Require ΔG+ review; flag any scope increase without new support/Bridge.
- Opaque slices. Disallow “domain” placeholders; enforce addressable selectors.
- Time drift. Require
Γ_timepolicies (rolling windows) for time‑sensitive scopes.
Cross‑Pattern Coordination
With F–G–R (C.2.2)
- G is Claim scope. Use set algebra (∩ / SpanUnion).
- F remains the expression rigor (C.2.3); R captures evidence freshness and CL penalties.
- Weakest‑link. On dependency paths: F_composite = min(F), R_composite = min(R); G follows §7.2–§7.3 (set rules).
With Formality (C.2.3)
- No conflation. Raising F does not change G unless scope predicates change.
- Guarding rigor. ESG may use
U.Formality ≥ F_kalongside scope coverage.
With Work & Run (A.15)
- Work scope aligns with the execution context of
U.Work. - Method–Work gates use Work scope coverage plus measures and qualification windows.
With Bridges & CL (Part B)
- CL only impacts R. CL penalties reduce trust; they never rewrite F or G.
- Best practice. Narrow mapped scopes where mapping losses are material.
With Capability governance (A.2.2)
- Capabilities MUST declare Work scope, measures, qualification windows; gates MUST verify all three.
- Capability refits that preserve the set (unit changes) are Refit, not Δ(WorkScope).
Extended FAQ (informative)
Q1. Is “Claim scope” the same as “domain”?
No. “Domain” is descriptive and often fuzzy. Claim scope is addressable: it names concrete U.ContextSlice conditions and a Γ_time policy. Guards MUST reference slices, not generic “domains”.
Q2. How do we express partial coverage across different cohorts or platforms?
Declare each supported serial scope (S₁, S₂, …) and publish SpanUnion({Sᵢ}) with independence justification. Do not include unsupported slices.
Q3. Can raising F (formalizing) widen G? Only if the formalization explicitly changes the scope predicates (ΔG+). Formalization alone does not widen scope.
Q4. What is the difference between Work scope and SLOs? Work scope is where the capability can deliver; measures within the guard are what it promises there (SLO targets). Both are required at use time (WG‑1..3).
Q5. Can we assign numeric coverage to G?
Not normatively. G is set‑valued. You MAY attach an informative, explicitly declared CoverageMetric(G) (e.g., a proportion under a pinned policy) to aid R assessment, but guards use set membership and CoverageMetric(G) MUST NOT replace G.
Q6. How do we handle “latest data” scopes?
You don’t. Declare a Γ_time policy (e.g., rolling 90 days). “Latest” is forbidden to ensure reproducible evaluation.
Q7. How do we move a scope to another Context?
Declare a Bridge with CL and loss notes; compute translate(Bridge, Scope); apply CL penalty to R; consider narrowing the mapped set.
Q8. What about abstraction level or detail? Keep AT (AbstractionTier) and D (Detail/Resolution) as orthogonal, optional annotations. They never substitute for Claim/Work scope.
Q9. Can a capability’s Work scope be broader than a predecessor claim’s Claim scope on a dependency path? They are on different carriers. In a serial dependency, the effective scope is the intersection; the broader one does not dominate.
Q10. When does an empty scope make sense? It indicates “not usable anywhere (here, now)”. Guards MUST fail. This is common during early drafting or after a refutation.
Annexes (informative)
Legacy → USM dictionary
(Use legacy terms only in explanatory notes; not in guards or conformance text.)
Minimal data model hints
ContextSlice tuple (suggested keys):
Context, vocabId, rolesetId?, Standards: [{name, version}], env: {param: range/value}, gamma_time: {point|window|policy}.
Claim scope block:
assumptions, cohorts, platforms/Standards, env, gamma_time.
Work scope block:
conditions (env/platform/Standards), measures (targets & units), validity_windows, gamma_time.
(These are informative; the spec does not mandate a concrete serialization.)
Pseudocode membership (illustrative)
A.2.6:17. 4 Rationale - F‑Cluster Unification for A.2.6 (F.17 / F.18)
Intent. This annex applies the F‑cluster method to triangulate USM terms against a diverse set of post‑2015 sources and communities (“Contexts”), and then fixes the Unified Tech and Plain names used in A.2.6. Results are ready for downstream lexicon entries (Part E) and guard templates (ESG / Method–Work).
F.17 Unified Term Survey (UTS) — Method & Scope
Contexts surveyed (SoTA, diverse):
- ISO/IEC/IEEE 42010 (architecture description)
- OMG Essence (Kernel: Alphas, Work Products, States)
- NIST AI RMF 1.0/1.1 (trustworthy AI)
- ASME V&V 40–2018 / FDA 2021–2023 (model credibility)
- W3C SHACL (2017+) / SHACL‑AF (data constraints)
- OWL 2 / ontology engineering (2012+, current practice)
- IETF BCP 14 (RFC 2119/8174) (normative keywords & guard style)
- DO‑178C + DO‑333 (avionics, formal methods supplement)
- ISO 26262:2018/2025 (automotive functional safety)
- IEC 61508 (2010+, current revisions) (basic safety)
- ACM Artifact Review & Badging v1.1 (reproducibility signals)
- MLOps/Cloud SLO practice (SRE / platform) (operational guardrails)
Survey focus (terms we align): U.ContextSlice, generic Scope and set algebra, Claim scope (G), Work scope, Bridge & CL, Γ_time, widen/narrow/refit/translate, SpanUnion / serial intersection, separation from F and R, avoidance of overloaded validity/operation terms.
UTS Table (F.17) — Cross‑context term mapping
Summary. Across all Contexts, two stable notions recur: (1) evaluate in a concrete context (→ U.ContextSlice), and (2) declare where something holds/is deliverable (→ set‑valued Scope). “Context of use,” “operating modes,” “targets,” “class extension,” and “OSED” are all Context‑flavored presentations of Claim scope or Work scope. Terms like validity and operation are semantically close but collide with LA and FPF’s Work/Run lexicon; we therefore do not adopt them as characteristic names.
F.18 Term Selection — Unified Tech & Plain names
Selected names (normative)
Why these names (decision grounds):
- “Scope” wins over “envelope/applicability/validity”. It is short, self‑documenting, and already idiomatic in SRE/SW, while “validity” clashes with Validation Assurance (LA) and “envelope” suggests geometry, not membership.
- “Claim scope” vs “Work scope”. Two‑word compounds meet the FPF clarity rule: the first token reveals the carrier (Claim vs Work/Capability), the second the mechanism (scope).
- Keep G. The F–G–R triple is canonical; we retain G as nickname for Claim scope.
- “Context slice” is the only term that makes the evaluation target addressable (Context, versions, params, Γ_time).
- “Operation/operating/validity” avoided. They are overloaded in existing FPF lanes (Work/Run, LA) and create policy ambiguities in guards.
Phrasebook (for editors, normative)
- Use “Claim scope (G) covers TargetSlice” and “Work scope covers JobSlice” in guards.
- Always spell
Γ_time; never say “latest”. - To compose, say: “intersection along dependency paths; SpanUnion across independent support lines.”
- For Cross‑context use, say: “via Bridge; CL penalties apply to R (trust), not to F/G (content/scope).”
- When widening/narrowing, write “ΔG+ / ΔG−” and log the support change; use “Refit” for unit/param normalization.
Rosetta summary (informative, for rationale box)
Outcome. The UTS shows strong convergence across SoTA Contexts on addressable context and set‑valued applicability. F.18 therefore fixes: Context slice, Scope, Claim scope (G), Work scope, Publication scope with the algebra and guard clauses mandated in A.2.6. This closes synonym drift while remaining readable for engineering managers and precise for assurance tooling.
A.2.6:End
U.RoleAlgebra: In‑Context Role Relations
Type: Definitional (D) Status: Stable Normativity: Normative
with requiredRoles substitution, SoD (⊥), and bundle (⊗) hooks
Builds on: A.1.1 U.BoundedContext, A.2 Role Taxonomy.
Coordinates with: A.2.1 U.RoleAssignment, A.15 Role–Method–Work Alignment.
Problem frame
Intent. Provide a tiny, explicit algebra over role types inside one Context so engines can (a) substitute specialisations, (b) enforce separation of duties, and (c) treat frequent conjunctions as named bundles—without encoding taxonomy in RoleAssignments.
Scope.
- Defines three in‑Context relations/operators: specialization
≤, incompatibility⊥, and bundle⊗. - States substitution semantics used when checking
MethodStep.requiredRoles. - States overlap‑prohibition semantics used to validate RoleAssignments.
Non‑goals.
- No cross‑Context equivalence by label; cross‑Context reuse is Bridge‑only (F.9).
- No mereology; role algebra does not describe part‑of or structure membership.
- No capability model; intrinsic ability evidence lives in
U.Capabilityand related patterns.
Disambiguation. Do not confuse role specialization ≤ with kind subsumption ⊑ (Kind‑CAL).
≤ is requirement substitution between role types in one Context; ⊑ is typing between kinds.
Solution (the three operators)
Role algebra relates role types inside one U.BoundedContext. It is not mereology.
Specialization (narrower assignment)
- Notation:
RoleS ≤ RoleG - Semantics (normative): For any
U.RoleAssignmentwithrole = RoleSin this Context, the holder also satisfies requirements forRoleGin this Context. - Use: Stable expertise ladders; privilege inheritance; “junior→senior” substitution.
- CC‑ALG‑1. Engines that check
requiredRolesMUST treat≤as admissible substitution.
Incompatibility (conceptual role incompatibility)
- Notation:
RoleA ⊥ RoleB - Semantics (normative): Overlapping
windows on the same holder for assignments to both roles in this Context are ill‑formed. - Use: Separation‑of‑duties (SoD); independence constraints (e.g., performer vs reviewer).
- CC‑ALG‑2. Validation MUST reject overlapping assignments that violate
⊥.
Bundles (conjunctive requirement)
- Notation:
RoleC := Role1 ⊗ Role2 ⊗ … - Semantics:
RoleCis satisfied iff the holder has simultaneous valid assignments for each conjunct role (in this Context). - Use: Frequent conjunctions (e.g., “On‑call Incident Commander” = Engineer ⊗ Communicator ⊗ Decision‑Maker).
- CC‑ALG‑3. Engines that check
requires: [RoleC]MUST expand to conjunctive checks.
Didactic guardrails. Use
≤for lasting ladders,⊥for critical safety/governance,⊗for frequent conjunctions. Prefer listing multiplerequiredRoleson Method steps to avoid ornate lattices.
Relations
Builds on / depends on
- A.1.1
U.BoundedContext— the locality boundary within which the algebra holds. - A.2 Role Taxonomy — role families and context‑local naming.
Used by
- A.2.1
U.RoleAssignment— avoids chained assignments; uses≤/⊥/⊗for checking and validation. - A.15 Role–Method–Work Alignment — expands
requiredRolesand enforces SoD requirements. - D.2 ethics/governance patterns — encode SoD and independence via
⊥.
A.2.7:End
U.Commitment (Deontic Commitment Object)
Type: Definitional (D) Status: Stable Normativity: Normative (unless explicitly marked informative) Placement: Part A → A.2 Roles & Agency Kernel Refines: A.2 (Role Taxonomy) Builds on: E.8 (authoring template), A.2.1 (RoleAssignment), A.2.6 (Scope &
Γ_time), A.7 (Object≠Description≠Carrier), A.2.3 (U.PromiseContentas promise), A.15.1 (U.Work) Purpose (one line): Provide a minimal, reusable kernel object for deontic commitments (who is accountable, under what modality, in what scope/window, with respect to which referents, with which adjudication hooks), explicitly separating the commitment object from its utterance descriptions (A.7), so deontics stop “living” in naming patterns and become stable across A.6 and later governance patterns.
Terminology: “binding” is overloaded (normative)
The word family “bind/binding” is used throughout FPF for technical binding (name/slot binding, parameter binding, etc.). This pattern introduces a narrower lexical constraint: do not use “binding” as the Tech-level term for deontic governance relations. Use commitment and model it as U.Commitment. If source material uses “binding contract/promise” rhetoric, rewrite it into explicit U.Commitment fields (subject, modality, scope/window, referents, and—when auditable—adjudication).
This pattern therefore treats commitment as the canonical Tech-level term and uses U.Commitment as the kernel object.
If your source material uses “binding” rhetoric (e.g., “binding contract”, “legally binding promise”), treat it as Plain-level phrasing that MUST be rewritten into explicit U.Commitment fields (subject, modality, scope/window, referents, and—when auditable—adjudication).
Problem frame
FPF needs to express boundary governance and socio-technical obligations in a way that is:
- role/agent-grounded (someone is accountable),
- scope-and-window explicit (where/when the commitment holds),
- reference-based (no paraphrase drift; refer to claim IDs),
- adjudicable (if intended to be checkable, it has an evidence story).
In practice, texts use “MUST/SHALL/should”, “commits to”, “guarantees”, “SLA”, “contract”, etc. Without a stable kernel object for “the deontic binding”, authors either:
- assign agency to descriptions (“the API guarantees…”),
- smuggle admissibility gates into deontics (or vice versa),
- treat evidence as semantic truth,
- or create multiple inconsistent “contracts” across faces.
A.6.B provides routing discipline (L/A/D/E), and A.6.C provides contract-language unpacking, but both benefit from a kernel-level object that pins down what a U.Commitment is structurally (so “contract/binding” rhetoric does not leak back in as ontology).
Problem
How can FPF represent a deontic commitment relation so that:
- The accountable subject is explicit (role or role-enactor; not “the spec/interface/service”),
- Modality is explicit and lintable (obligation / permission / prohibition / strength),
- Scope and validity window are explicit (bounded context + time + conditions),
- The content is referenceable via stable referent claim IDs (promise contents, gates, evidence targets, etc.),
- Adjudication hooks exist when the binding is meant to be testable/auditable (links to evidence claims and carrier expectations),
- Conflicts can be represented (without requiring this pattern to solve them).
Forces
Solution
U.Commitment is the kernel object representing a deontic commitment relation: it links an accountable subject (role/role-enactor) to one or more referents via an explicit modality within an explicit scope/window, optionally with adjudication hooks.
This pattern defines:
- a normative minimal structure for
U.Commitment, - how
U.Commitmentrelates toU.PromiseContent,U.Work, and evidence, - how it is used as the canonical payload for D-quadrant claims (A.6.B),
- and what must be stated for a commitment to be considered auditable.
Normative definition
A U.Commitment is a governance object representing a deontic relation that constrains an accountable subject (role or role-enactor) with respect to one or more referents under an explicit modality and explicit scope/window, optionally with explicit adjudication hooks.
Per A.7, a U.Commitment is not the text that states it: it is an object that is typically instituted by (and recorded via) one or more speech acts and utterance descriptions and may be carried by artifacts.
Minimal structure (normative)
A conforming U.Commitment SHALL be representable by the following minimal record (field names are illustrative; the presence/meaning constraints are normative). Required fields are: id, subject, modality, scope, validityWindow, referents. adjudication and source are optional (but may become required by other patterns when auditability or authority must be made explicit).
Normative constraints:
- (C1) Subject must be accountable.
subjectMUST resolve to an accountable role/party; it MUST NOT be “the interface/spec/service/system” as an episteme. - (C2) Modality must be explicit and normalized.
modalityMUST be present for normative commitments and MUST be normalized toDeonticModalityToken. - (C3) Scope + validity must be explicit.
scopeandvalidityWindowMUST be present. Defaults are allowed only when an explicit context policy is cited as the source of those defaults (do not rely on “implied defaults”).validityWindowexpresses in-force conditions; per-action admissibility gates belong in referencedA-*predicates. - (C4) Referents must be non-empty.
referentsMUST contain at least one referent (what is being obligated/permitted/prohibited). - (C5) Referents must be by reference when possible. If the bound content already exists as claim IDs,
referentsSHOULD cite those IDs rather than restating them. - (C6) Auditable commitments must have adjudication hooks. If a commitment is intended to be audited/adjudicated by observation,
adjudication.evidenceRefsSHALL include the evidence claim IDs (typicallyE-*) that carry the adjudication substrate. - (C7) Evidence belongs in adjudication by default. If an
E-*claim is referenced only to define how to measure/verify a commitment, it SHALL be listed inadjudication.evidenceRefs(not inreferents). AnE-*claim MAY appear inreferentsonly when the commitment’s content is itself an evidence-producing/retaining duty (e.g., “MUST retain traces”). - (C8) Default auditability stance is explicit. If
adjudicationis absent, the commitment SHALL be treated as non-auditable by default (aspirational / governance-only), unless another pattern or Context policy explicitly supplies adjudication hooks by reference.
Interaction rules (normative)
-
U.PromiseContentis promise content;U.Commitmentis the governance relation. A service promise clause (what is promised) is not, by itself, an accountable commitment. AU.Commitmentmakes an accountable subject responsible for providing/satisfying the service promise (or for satisfying other governance clauses). -
U.Commitmentis notU.Work. Work is execution; commitment is governance. A commitment may reference evidence targets, but it does not “contain” evidence. -
Commitments may reference admissibility predicates; they must not become predicates. If compliance requires satisfying a gate predicate, the commitment should reference the gate (
A-*) as a referent, rather than rewriting the predicate as prose inside the commitment. -
A
U.Commitmentis a governance object, not a law. Commitments are not truth-conditional invariants. If something is intended to be an invariant, it belongs as law/definition (L), and a commitment can reference it. -
Lifecycle changes are explicit (no silent mutation). When a commitment is updated, narrowed, broadened, superseded, or revoked, the change SHOULD be represented as a new
U.Commitment(new ID) and an institutingU.SpeechAct(A.2.9) that references the affected commitment IDs (e.g., viaU.Commitment.source.speechActRefand a status/supersession claim), rather than editing a published commitment in place without an auditable change record.
Canonical use in boundary claim registers (recommended)
When using the A.6 stack, represent each D-quadrant atomic claim as a U.Commitment payload with:
id = D-*,subject = accountable role/party,modality = DeonticModalityToken(normalized from RFC-keyword family usage),referents = {PromiseContentRef, MethodDescriptionRef, L-*, A-* … as needed}(content/targets),adjudication.evidenceRefs = {E-* …}when the commitment is meant to be checkable.
Archetypal Grounding (Tell–Show–Show)
Tell (universal rule)
A deontic statement becomes stable and reviewable when it is represented as a U.Commitment with an accountable subject, an explicit modality, explicit scope/window, referent claim IDs, and—if auditable—explicit evidence hooks.
Show #1 (system archetype: incident response SLO discipline, post‑2015 SRE practice)
A production org states: “Severity‑1 incidents must be responded to within 4 hours.”
A routable commitment:
subject:RoleAssignmentRef(OpsTeam as ProviderRole)(or at leastRoleRef(ProviderRole)),modality:MUST,scope: bounded contextIncidentManagement,validityWindow:calendarYear2026(or “while contract edition X is active”),referents:{PromiseContentRef(SVC-SLO-RESP-4H), A-SEV1-CLASS-1}whereA-SEV1-CLASS-1is the admissibility predicate for “counts as Sev‑1”.adjudication.evidenceRefs:{E-SLO-RESP-1}whereE-SLO-RESP-1defines the measurement substrate and evidence carriers (tickets + timestamps + clock source).
This makes the statement auditable by construction and keeps “classification gate” separate from “duty”.
Show #2 (episteme archetype: protocol specification with behavioural typing motif)
A protocol spec states: “Participants MUST follow the state machine; violations are rejected; traces are retained for audit.”
Model as:
-
A set of
L-*claims defining the state machine and safety/progress properties within the model, -
A-*claims defining what runtime checks count as “admissible trace”, -
D-*commitments instantiated asU.Commitmentwith:subject = RoleRef(ParticipantImplementer)modality = MUSTreferents = {L-STATE-MACHINE-1, A-TRACE-VALID-1, MethodDescriptionRef(TraceRetentionProcedure_v1)}adjudication.evidenceRefs = {E-TRACE-LOG-1}
This mirrors common post‑2015 “protocols as types” practice: semantics and progress live in the model; compliance is agent governance; evidence is trace-based.
Bias-Annotation
Lenses tested: Gov, Arch, Onto/Epist, Prag, Did. Scope: Kernel universal (any place FPF needs deontic binding).
- Gov bias: prioritizes accountable subjects and adjudication hooks; may increase authoring overhead.
- Arch bias: pushes reference-by-ID and explicit scope/window to preserve evolvability and reduce drift.
- Onto/Epist bias: enforces “descriptions don’t promise”; commitments bind agents/roles.
- Prag bias: aligns with common spec-language practice (RFC keywords) but makes the structure explicit.
- Did bias: favors a small record that can be taught and linted.
Conformance Checklist (normative)
-
CC‑A.2.8‑1 (Accountable subject). A normative
U.CommitmentMUST name an accountablesubject(role/role-enactor/party) and MUST NOT use an episteme (spec/interface/document) as subject. -
CC‑A.2.8‑2 (Explicit modality). A normative
U.CommitmentMUST specifymodalityasDeonticModalityToken(with any RFC-keyword synonyms normalized to it). -
CC‑A.2.8‑3 (Scope & validity explicit). A normative
U.CommitmentMUST specifyscope(U.ClaimScope) andvalidityWindow(U.QualificationWindow), or explicitly cite the context policy that supplies defaults (do not rely on “implied defaults”). -
CC‑A.2.8‑4 (Referents present and by ID).
referentsMUST be non‑empty. If the bound content exists as claim IDs, the commitment SHOULD reference those IDs inreferentsrather than restating their content. -
CC‑A.2.8‑5 (Auditable commitments have hooks). If the commitment is intended to be auditable, it SHALL include
adjudication.evidenceRefsreferencing the evidence claims (typicallyE-*) that make adjudication possible. -
CC‑A.2.8‑6 (Evidence separation). If an
E-*claim is referenced only for measurement/verification, it SHALL appear inadjudication.evidenceRefs(not inreferents).
Common Anti-Patterns and How to Avoid Them
Consequences
Benefits
- Makes deontic statements first-class and lintable (subject/modality/scope/referents/hooks).
- Enables clean integration with boundary routing (A.6.B) and contract unpacking (A.6.C) without embedding ontology in naming patterns.
- Improves auditability by making evidence expectations explicit only when intended.
Trade-offs / mitigations
- Adds structure to authoring; mitigated by allowing conceptual evidence hooks and default scope policies.
- Does not resolve conflicts between commitments; mitigated by capturing
source/precedencetags and delegating resolution to governance patterns (Part D) and context policy.
Rationale
The triad “promise / utterance / commitment” is useful for language discipline, but deontic ontology should not be anchored in a naming-focused pattern. A kernel object:
- stabilizes what a “commitment” structurally is,
- ensures “MUST/SHALL” talk is representable without category mistakes,
- and provides the missing bridge between governance claims and adjudication (via explicit hooks), which is essential for boundary engineering and for later ethics/governance work.
SoTA-Echoing (informative; post‑2015 alignment)
Informative. Alignment notes; not normative requirements.
- BCP 14 (RFC 2119 + RFC 8174) / modern spec-language discipline (2017+). Treating modality tokens as a controlled family is standard;
U.Commitment.modalitymakes this family explicit and lintable. - Policy-as-code ecosystems (2016+). Modern governance stacks often encode gates as code (e.g., Kubernetes admission controls, OPA/Rego-style policy evaluation) and obligations as process controls; the
U.Commitmentstructure helps keep “gate predicates” separate from “actor duties”, while still linking them by reference. - ODRL-style duty/permission/prohibition modeling (W3C ODRL 2.2, 2018). The minimal “subject + modality + constraint/window + target” shape is widely used;
U.Commitmentadopts the kernel of that idea while keeping FPF’s boundary routing and evidence discipline. - Trace-based compliance and audit (2018+ supply-chain / reproducibility practice). “Compliance is evidenced by artifacts” is mainstream;
adjudication.evidenceRefscaptures this without turning evidence into semantics. - Supply-chain attestations (2021+). Attestation-oriented schemes (e.g., SLSA-style provenance, transparency logs) operationalize “claims + evidence carriers”;
adjudication.evidenceRefsis the bridge point without collapsing evidence into truth.
Relations
Uses / builds on
- A.2.1 for identifying accountable roles vs role-enactors (role assignments).
- A.2.6 for expressing scope and time/window (
U.ClaimScope,U.QualificationWindow). - A.7 for keeping “binding” distinct from “utterance” and from “carriers”.
Used by
- A.6.B (Quadrant D) as the canonical payload shape for deontic statements.
- A.6.C (Contract Unpacking) as the formal anchor for the “Commitment” component of the bundle.
- Part D governance/ethics patterns (future work) for expressing layered, conflicting, multi-authority commitments.
Coordinates with
- A.2.3 (
U.PromiseContent): services are promise clauses; commitments bind accountable subjects to those clauses. - A.2.9 (
U.SpeechAct):U.Commitment.source.speechActRefpoints to the instituting communicative work occurrence when provenance matters. - A.15.1 (
U.Work) and evidence patterns: adjudication hooks refer to evidence in work, not to text.
A.2.8:End
A.2.9 — U.SpeechAct (Communicative Work Object)
Type: Definitional (D) Status: Stable Normativity: Normative (unless explicitly marked informative) Placement: Part A → A.2 Roles & Agency Kernel Refines: A.2 (Role Taxonomy) Builds on: A.2.1 (RoleAssignment), A.2.6 (
Γ_time/ windows), A.7 (Object≠Description≠Carrier), A.10 (SCR/RSCR carrier discipline), A.15.1 (U.Work) Purpose (one line): Provide a minimal, lintable kernel object for communicative enactments (approvals, authorizations, revocations, notices, declarations, publications) asU.Work, explicitly separating the act from its utterance descriptions and evidence carriers, so governance and gating can citeSpeechActRefwithout “contract soup” or episteme‑as‑agent mistakes.
FPF already treats communicative acts as observable events used in role-state checklists and grounding (“presence of act: AuthorizationSpeechAct exists…”, and
U.SpeechActis listed as an observable basis for state assertions). The spec’s micro-examples and conformance gates distinguish communicative Work (“performed a SpeechAct”) from operational Work (“executed Work”) while keeping both insideU.Work(cf. CC‑A15‑10 GateSplit). F.18 currently framesU.SpeechActas the “utterance” label in the promise/utterance/commitment triad; A.2.9 keeps that as naming intuition while putting the ontology and conformance discipline in Part A where it can be linted and reused.
A.2.9:1 — Problem frame
FPF repeatedly needs to reference “someone said/did the approving/authorizing/declaring thing”:
- Role eligibility and enactability checklists often depend on the presence of an approval/authorization act within a freshness window.
- Governance patterns and boundary writing (A.6 stack) need provenance: “this obligation/commitment/permission was instituted by that act”.
- Operational patterns need auditable notices (“depletion notice”, “override invoked”) whose existence and timing matter.
Without a first‑class kernel object for such communicative events, authors tend to:
- attribute agency to descriptions (“the spec approves…”, “the interface guarantees…”),
- collapse “utterance text” and “speech act event”,
- leave provenance dangling as “if modeled”,
- encode gates as prose obligations, or treat obligations as gates.
This pattern makes “speech act” an explicit, queryable Work‑kind with clear boundaries to U.Commitment and to utterance surfaces.
A.2.9:2 — Problem
How can FPF represent communicative enactments so that:
- Agency is explicit: a concrete accountable subject performs the act (role/role‑enactor), not a document/spec/interface.
- The act is locatable in time: the act has an explicit Window (and thus freshness can be evaluated).
- The act is locatable in meaning: the act is recognized inside a declared bounded context (the
U.Workjudgement context), not viaU.ClaimScope(which expresses applicability of claims/commitments, not the judgement context for Work occurrences). - The act is auditable: it has at least one declared utterance description and/or evidence carrier when used for gating or governance.
- Institutional effects are linkable: the act can institute (or update/revoke) commitments, role assignments, statuses, etc., by reference.
- Ambiguity is handled pragmatically: the model supports multi‑function / multi‑party communication without requiring full linguistic pragmatics.
A.2.9:3 — Forces
A.2.9:4 — Solution
U.SpeechAct is a kernel Work object: a recorded communicative enactment performed by an accountable role‑enactor within a bounded context, optionally addressed to others, that is recognized (in that context) as updating an information and/or governance state. The act is not the utterance text; it points to utterance descriptions and evidence carriers.
A.2.9:4.1 — Normative definition
A U.SpeechAct is a U.Work occurrence whose primary (intended) effect is communicative: it places an utterance into a context in a way that is recognized by that context’s institutional semantics (policies, procedures, protocol rules) as potentially:
- asserting/informing,
- requesting/directing,
- promising/committing (as an instituting act),
- declaring/authorizing/revoking (status-changing acts),
- notifying (event announcement relevant for downstream work).
Per A.7, U.SpeechAct is an object/event; its utterance descriptions are descriptions (epistemes/spec clauses/messages‑as‑content), and its carriers are artifacts/traces that support observation and audit. (Note: “Surface” is reserved for MVPK publication/interoperability surfaces; do not use it here.)
Whether a given actType institutes commitments/permissions/status changes is entirely context‑policy dependent. Absent an explicit policy, treat a U.SpeechAct as a communicative Work occurrence with observable provenance only; do not infer deontic bindings from the act by default.
A.2.9:4.2 — Minimal structure (normative)
A conforming U.SpeechAct SHALL be representable by the following minimal record (field names are illustrative; the constraints are normative):
Normative constraints:
- (SA‑C0) Work conformance applies. Because
U.SpeechAct <: U.Work, a speech‑act record MUST satisfyU.Workconformance (A.15.1), including the required anchors (isExecutionOf,performedBy,executedWithin,window, and state‑plane / judgement‑context anchoring). A speech act MUST have at least oneaffectedreferent (the thing it is about/updates), even if it is purely governance‑state. - (SA‑C1) PerformedBy must be an accountable actor.
performedByMUST resolve to aRoleAssignmentRefwhose holder is an accountable system/party in the named scope. It MUST NOT be a spec/interface/document as an episteme. - (SA‑C2) ActTypes are required and context-local.
actTypesMUST contain at least oneSpeechActTypeRefrecognized in the Work’s judgement context (local meaning). Free‑text verbs are nonconformant unless registered as a context token. - (SA‑C3) Time honesty.
windowMUST be explicit (or inherited from the parentU.Workrecord) so freshness rules can be evaluated. - (SA‑C4) If used for gating/audit, it must be observable. If a speech act is used as a checklist criterion, guard condition, or provenance hook for a
U.Commitment, the model SHALL include at least one observable handle:utteranceRefsand/orcarrierRefs. When the act is used as evidence, at least one carrier reference SHOULD be SCR/RSCR‑resolvable per A.10. - (SA‑C5) Institutional effects are references, not paraphrases. When the act is intended to institute/update commitments, role assignments, or statuses,
institutes.*SHOULD reference the corresponding object IDs/claim IDs rather than restating content. - (SA‑C6) Cross-context use is Bridge-only. If a
SpeechActRefis used for checking/gating/provenance in a different bounded context than the act’s judgement context, the referencing object MUST satisfy the spec’s cross-context discipline by citing an explicit Bridge/policy that licenses the interpretation (and surfacing congruence vs loss where applicable), rather than assuming equivalence by label.
A.2.9:4.3 — SpeechActRef discipline (normative)
A SpeechActRef is a reference to U.SpeechAct.id.
- If another object (e.g.,
U.Commitment.source.speechActRef) cites aSpeechActRef, the referencedU.SpeechActMUST satisfy SA‑C0…SA‑C4 (and SA‑C6 when used cross‑context). - A
SpeechActRefMUST NOT be replaced by anEpistemeRef(“see the document”) when provenance is needed; the episteme is an utterance description, not the act. - If a system cannot record a full
U.SpeechAct, it may record a stub that still satisfies SA‑C0…SA‑C4 (minimalactTypes, performer, judgement context, window,affected, plus at least one observable handle). When a requiredU.Workanchor is unknown, the stub MUST use an explicit placeholder (e.g., an “AdHocCommunication” MethodDescription) rather than omitting the field.
A.2.9:4.4 — Separation rules with U.Commitment and U.PromiseContent (normative)
-
Speech act is not the deontic binding. A speech act may institute a
U.Commitment, but the deontic relation itself is theU.Commitmentobject (A.2.8). Do not encode obligations/permissions insideU.SpeechActas prose; instead, create/point toU.CommitmentIDs ininstitutes.commitments. -
Speech act is not the service promise clause.
U.PromiseContent/ promise contents are promise content; a speech act may be the act of offering/issuing that promise, but the promise content lives in the service/promise content objects and is referenced from the resulting commitments. -
Speech act is not the carrier. A “signed approval PDF”, “ticket record”, “Slack message”, or “API call log” is a carrier (and may carry an episteme as utterance content); the speech act is the Work occurrence that produced/issued it.
-
Publishing a spec is not a commitment by default. Default interpretation rule (normative). A conformant model/interpreter MUST NOT infer
U.Commitmentobjects solely fromPublish/Approvespeech acts. Publication MAY institute publication/status claims (e.g., “Published”, “Approved”, “Deprecated”), but any obligations/permissions on implementers/operators/providers MUST be modeled explicitly asU.Commitmentobjects (A.2.8). If a Context defines a policy that maps publication acts to commitment-instituting effects (e.g., a namedSpecPublicationPolicy@Context), that policy MUST be named and cited where the implication is used.
A.2.9:4.5 — Multi-function and multi-party support (normative)
-
Multi-function:
actTypesis a set. If one utterance performs multiple recognizable acts (e.g., “approve + instruct + warn”), the model may either:- represent one
U.SpeechActwith multipleactTypesentries, or - represent multiple
U.SpeechActrecords that share the samecarrierRefs/utteranceRefs. In either case, institutional effects must remain referenceable (SA‑C5).
- represent one
-
Multi-party:
addressedTois a set and may include roles/parties/assignments. If addressees matter for validity (e.g., “approval by CAB chair to deployment bot”), they should be explicit.
A.2.9:5 — Archetypal Grounding (Tell–Show–Show)
A.2.9:5.1 — Tell (universal rule)
When governance or gating depends on “someone said/did X”, model that saying/doing as a U.SpeechAct (a Work occurrence), and keep the utterance text and carriers separate. If the saying/doing creates obligations, model those obligations as U.Commitment objects instituted by the speech act.
A.2.9:5.2 — Show #1 (system archetype: change-control approval gates a deployment)
Situation (messy prose): “Change is approved, so the pipeline may deploy.”
Conformant modeling sketch:
-
U.SpeechAct SA-Approve-4711actTypes = {SpeechActTypeRef(Approval@ChangeControl)}performedBy = RoleAssignmentRef(CAB_Chair as ApproverRole@ChangeControl)isExecutionOf = MethodDescriptionRef(ChangeApprovalProcedure_v3)executedWithin = ChangeControlBoardSystemwindow = [t,t]affected = {ChangeRequestId(4711), WorkRef(Deploy-4711)}utteranceRefs = {EpistemeRef(ChangeTicket#4711)}carrierRefs = {CarrierRef(TicketSystemRecord#4711)}institutes.commitments = {CommitmentIdRef(D-Deploy-Authorized)}
-
U.Commitment D-Deploy-Authorizedsubject = RoleAssignmentRef(OpsBot#DeployerRole:CD_Pipeline_v7)modality = MAY(permission to enact)referents = {A-Gate-Deploy-4711}source.speechActRef = SA-Approve-4711
-
Gate predicate
A-Gate-Deploy-4711may include:exists SpeechAct(type=Approval, affected includes ChangeRequestId(4711), performedBy role=ApproverRole, within 90d).
This preserves:
- act vs text vs carrier,
- explicit performer,
- time window for freshness,
- explicit provenance from commitment back to the instituting act.
A.2.9:5.3 — Show #2 (episteme archetype: publishing a spec edition without making the spec an agent)
Situation (anti-pattern): “The interface spec declares MUST/SHALL requirements.”
Conformant modeling sketch:
-
U.SpeechAct SA-Publish-API-v12actTypes = {SpeechActTypeRef(Publish@APISpecContext), SpeechActTypeRef(DeclareNorms@APISpecContext)}performedBy = RoleAssignmentRef(StandardsEditor as PublisherRole@APISpecContext)isExecutionOf = MethodDescriptionRef(SpecReleaseProcedure_v12)executedWithin = SpecPublicationSystemwindow = [t,t]affected = {EpistemeRef(APISpec_v12)}utteranceRefs = {EpistemeRef(APISpec_v12)}carrierRefs = {CarrierRef(GitTag:v12), CarrierRef(SignedReleaseArtifact:v12)}institutes.statusClaims = {ClaimIdRef(D-StdStatus-APISpec_v12-Published)}(if modeled)
Norms live in the published utterance surfaces (spec clauses as routed claims), but the act of publication is a speech act performed by an accountable role. This avoids “the spec promises/commits” category errors while preserving auditability.
A.2.9:6 — Bias-Annotation
Lenses tested: Gov, Arch, Onto/Epist, Prag, Did. Scope: Kernel universal for speech-act usage that matters for governance, eligibility, gating, provenance, and protocol boundaries.
- Gov bias: favors explicit accountable performers and auditable records; increases clarity but adds modeling overhead.
- Arch bias: optimizes evolvability by keeping institutional effects referenceable rather than embedded in prose.
- Onto/Epist bias: enforces act≠utterance≠carrier and prevents episteme-as-agent metaphors.
- Prag bias: models only what is needed for decisions/audit (not full intention/sincerity/perlocutionary psychology).
- Did bias: keeps the record minimal and queryable for state checklists and boundary reviews.
A.2.9:7 — Conformance Checklist (normative)
- CC‑A.2.9‑1 (Accountable performer). A normative
U.SpeechActrecord MUST identifyperformedByas an accountableRoleAssignmentRefand MUST NOT use an episteme (spec/interface/document) as performer. - CC‑A.2.9‑2 (ActTypes declared). A
U.SpeechActrecord MUST include at least oneSpeechActTypeRefrecognized in its judgement context. - CC‑A.2.9‑3 (Window explicit). A
U.SpeechActrecord MUST have an explicitwindow(or inherit a window from its parent work record) so freshness and gating can be evaluated. - CC‑A.2.9‑4 (Observable when used for gating/provenance). If a speech act is cited by a checklist/guard or by
U.Commitment.source.speechActRef, it SHALL have at least oneutteranceReforcarrierRefthat supports observation/audit in the given context; evidence‑critical uses SHOULD anchor at least one carrier via SCR/RSCR per A.10. - CC‑A.2.9‑5 (Effects by reference). If the act is intended to institute/update commitments/roles/statuses, those effects SHOULD be referenced in
institutes.*by stable IDs. - CC‑A.2.9‑6 (Bridge-only cross-context use). If a
SpeechActRefis interpreted for gating/provenance in a different bounded context than the act’s judgement context, the referencing object MUST cite the Bridge/policy that licenses that cross-context interpretation (no “same label implies same force”).
A.2.9:8 — Common Anti-Patterns and How to Avoid Them
A.2.9:9 — Consequences
Benefits
- Makes approvals/authorizations/notices first-class and queryable, enabling clean RSG checklists and guard rules.
- Provides stable provenance: commitments and status transitions can cite the instituting act explicitly.
- Prevents recurring category errors: “documents promise”, “interfaces commit”, “logs prove”.
Trade-offs / mitigations
- Requires recording a small structured object for communicative events; mitigated by allowing minimal stubs that still satisfy CC‑A.2.9‑1…4.
- Requires context-local
SpeechActTypeRefregistration; mitigated by starting with a small set (Approve, Revoke, Publish, Notify, Authorize) and extending as needed.
A.2.9:10 — Rationale
FPF already relies on communicative acts (approvals, notices, overrides) as operationally meaningful events, but without a kernel object they blur into examples, naming choices, or prose. A.2.9 anchors speech acts where they belong: as a Work-kind with explicit performer, scope, and time, and with disciplined links to utterance surfaces, carriers, and deontic bindings (U.Commitment).
This also improves modularity:
- F.18 can remain a lexical anchor for naming (why “SpeechAct/utterance” as a label family is useful),
- while A.2.9 carries the ontology and conformance discipline for how speech acts behave as objects and how they connect to commitments and evidence.
A.2.9:11 — SoTA‑Echoing (informative; post‑2015 alignment)
Informative. Alignment notes; not normative requirements.
- Adopt — ISO 24617‑2:2020 / multi-dimensional communicative functions. Modern dialogue‑act standards treat communicative behavior as potentially multi‑functional. A.2.9 mirrors this by allowing
actTypesto be a set and by supporting shared carriers across multiple acts. - Adapt — commitment-based semantics for communication (multi-agent/protocol practice, 2015+). A pragmatic way to avoid mental-state modeling is to track communication by its social/institutional effects, especially on commitments and protocol states. A.2.9 reflects this via
institutes.commitmentsand explicit links toU.Commitmentwithout modeling sincerity or intention. - Adopt (warning) — illocutionary pluralism in multiparty discourse (2015+). One utterance commonly performs multiple recognizable functions. A.2.9 avoids the “single force” trap by permitting multi‑type acts and/or multiple acts sharing the same utterance and carriers.
A.2.9:12 — Relations
Uses / builds on
- Uses A.15.1 (
U.Work) for the event/work backbone (performedBy + window + stance). - Uses A.7 for the strict act≠description≠carrier split.
- Coordinates with A.2.6 for scope/window discipline.
Used by
- A.2.8 (
U.Commitment) as a concrete target forsource.speechActRefprovenance. - A.2.5 (RSG checklists/guards) when “presence of authorization/approval act” is a criterion.
- A.6.C (Contract unpacking) as the “utterance/instituting act” hook that prevents episteme-as-agent claims and improves provenance.
A.2.9:End
Transformer Constitution (Quartet)
Intent
Establish a single, substrate‑neutral way to say who acts, under which role, according to which description, by which capability, and what actually happened—without “self‑magic” and without blurring design‑time and run‑time. The pattern fixes the Transformer Quartet so all kernel and Γ‑patterns reuse the same four anchors. It builds directly on Holon‑Role Duality (A.2) and Temporal Duality (A.4) and is guarded by Strict Distinction (A.7) and Evidence Graph Referring (A.10).
Context
- Holonic substrate. FPF separates what things are (Holon → {System, Episteme, …}) from what they are being right now via roles. Only systems can bear behavioural roles and execute methods/work; epistemes are changed via their symbol carriers.
- Role as mask; behaviour as method/work. A role is a mask, not behaviour; behaviour is a Method (order‑sensitive capability) that may be executed as Work (dated occurrence).
- Design‑time vs run‑time. A holon’s states belong to disjoint scopes Tᴰ and Tᴿ; transitions are physically grounded by a system bearing TransformerRole.
- Evidence & carriers. Claims about outcomes must anchor to carriers (SCR/RSCR) and to an external evidencing transformer.
Problem
Legacy phrasing (“actor / process / blueprint”) causes recurrent failures:
- Self‑magic: “the system configures itself” (no external acting side, causality lost).
- Plan = event: blueprint/algorithm reported as if execution happened.
- Capability = result: possession of a method counted as evidence of work.
- Episteme as doer: documents/models treated as actors.
- Scope leak: design‑time and run‑time mixed; run traces lack carriers/method ties. A.2/A.4/A.7/A.10 collectively forbid these, but A.3 must give the canonical quartet that authors can apply consistently.
Forces
Solution — The Transformer Quartet
A.3 defines four anchors, tied together by Role Assignment (U.RoleAssignment) and aligned with Temporal Duality.
The four anchors (terms & types)
-
Acting side: a system bearing TransformerRole — the only holon kind allowed to enact transformations (behavioural role). Canonical phrase: “system bearing TransformerRole”. Local shorthand: after explicit binding in the same subsection, you MAY write “Transformer” to denote that same system; re‑bind on context change and do not use shorthand where the domain already has a conflicting “transformer” term.
-
MethodDescription (design‑time description): protocol / algorithm / SOP / script — all are idioms of MethodDescription; they live in Tᴰ and are epistemes with carriers (SCR/RSCR).
-
Method (design‑time capability): order‑sensitive composition the system can enact at run‑time (Γ_method); it is not an occurrence.
-
Work (run‑time occurrence): dated execution producing state change and consuming resources (Γ_work); every Work isExecutionOf exactly one MethodDescription version and is performedBy exactly one performer (possibly a collective system).
Safe memory line: MethodDescription → (describes) Method → (executed as) Work. Roles are masks (A.2/A.7); methods/work are behaviour.
Contextual Role Assignmnent (U.RoleAssignment) for transformations
Use the universal assignment to state who plays which role where and when:
- A role is local to context and time‑indexed.
- The same system may bear multiple roles if the context allows compatibility.
- For epistemes, the target of change is their symbol carriers; the acting side is still a system.
Boundary & externality
Every transformation is modelled with two sides and an explicit U.Interaction boundary: acting (system bearing TransformerRole) and target (system being transformed, or the carrier of an episteme). There is no self‑doing; “self‑like” stories are handled by the reflexive split (regulator vs regulated subsystems) or by promoting a meta‑holon and keeping evidence external (A.12).
Temporal alignment (A.4 bridge)
- MethodDescription lives in Tᴰ;
- Method is defined at design-time and executed as
U.Workat run-time by aU.Systemwith a validU.RoleAssignment(window-aligned) and a live StateAssertion for an enactable RSG state; - Work lives in Tᴿ;
- transitions Tᴰ → Tᴿ and Tᴿ → Tᴰ are grounded by executions of appropriate methods by an external transformer (e.g., fabrication or observation).
Evidence Graph Referring
Each Work anchors to carriers and to the MethodDescription it instantiates; evidencing transformers are external (no self‑evidence). This sits in the EPV‑DAG and never in mereology.
Didactic dictionary (safe mappings)
- “Process / Workflow / SOP / Algorithm” ⇒ MethodDescription (design‑time description).
- “Operation / Job / Run / Performance” ⇒ Work (run‑time occurrence).
- “Function (equipment spec)” ⇒ Method (or MethodDescription if purely textual).
- “Creator” (legacy) ⇒ Transformer (shorthand for system bearing TransformerRole after local binding).
Illustrative scenarios (substrate‑neutral)
Physical system — Cooling loop
PumpUnit#3 (system bearing TransformerRole) executes ChannelFluid (Method) as per centrifugal_pump_curve.ld (MethodDescription), producing run‑2025‑08‑08‑T14:03 (Work, 3.6 kWh; ΔT=6 K). Evidence goes to carriers in SCR; resource spend goes to Γ_work.
Epistemic change — Proof revision
LeanServer (system bearing TransformerRole) edits proof_tactic.lean (carrier) per MethodDescription; lemma‑42‑check‑2025‑08‑08 is Work; the episteme (theorem) changes through its carriers; evidence is attributed to the external transformer.
Reflexive maintenance — “calibrates itself”
Split into Regulator (calibration module, acting side) and Regulated (sensor suite, target) with an interaction boundary; credit evidence to the regulator; no self‑evidence.
Conformance Checklist (normative)
CC‑A3‑0 - U.RoleAssgnment presence.
Every claim that a holon “performs a transformation” MUST be backed by at least one RoleAssignment triple:
U.RoleAssignment(holder: U.Holon, role: U.Role=TransformerRole, context: U.BoundedContext, timespan?).
This is the canonical way to say who acts, in which role, where (semantically), and when. See A.2.1 for the universal U.RoleAssignment Standard and its invariants.
CC‑A3‑1 - External transformer discipline.
The bearer of TransformerRole MUST NOT be the same model instance as the object‑under‑change within the same assignment. Self-modification is modelled via two U.RoleAssignments (same holder playing two roles) or via an explicit controller–plant split. This upholds Agent Externalization (A.12).
CC‑A3‑2 - Design–Run separation.
U.MethodDescription (recipe, definition) is a design‑time artefact; U.Method (mask‑of‑work) and U.Work (executed work) are run‑time. It is non‑conformant to mutate a MethodDescription inside a Work log or to treat a Work as a MethodDescription. This enforces the kernel’s Temporal Duality (A.4) and the A.15 alignment.
CC‑A3‑3 - Boundary‑crossing evidence. A conformant transformation that changes a system’s state MUST reference the boundary effects it induces: interactions, flows, or state transitions attach to the target system’s boundary (per Γ‑defaults for additive, min/AND/OR folds). Conservation‑class effects MUST satisfy B‑invariants (e.g., B‑1 Conservation).
CC‑A3‑4 - Method ←→ Work traceability.
Every U.Work MUST (i) name the U.Method it instantiates and (ii) trace the U.MethodDescription it claims to follow (versioned). If a deviation occurs, it MUST be logged as a policy override or exception path; silent drift is non‑conformant. (A.15 guards the vocabulary; Γ_work aggregates resource deltas.)
CC‑A3‑5 - Episteme as object‑under‑change. When the changed holon is an episteme (document, dataset, theory), the transformer is still a system; the episteme’s history MUST be recorded via PhaseOf (versioning) and ConstituentOf/PortionOf as appropriate (not via component trees). See A.14’s mereology firewalls and Γ_epist hooks.
CC‑A3‑6 - Units and measures for resource effects.
Any resource consumption/production in U.Work MUST specify the measure μ and units (e.g., kg, J, bytes); “percentage” effects MUST be grounded in a PortionOf μ to be Γ‑aggregatable. (A.14 POR‑axioms; Γ_work usage.)
CC‑A3‑7 - Provenance minimum.
For each U.RoleAssignment and U.Work, the following fields are REQUIRED: {authority?, justification?, provenance?} where justification: U.Episteme and provenance: U.Method/process evidence. This aligns with the kernel’s governance and B‑cluster lineage practices.
CC‑A3‑8 - Policy–Plan–Action separation for agentic cases.
If the transformer bearer is agentic, the log MUST separate D.Policy → U.PlannedAction → U.Action (A.15/A.13), preserving where failure occurred (strategy, plan, or execution).
CC‑A3‑9 - Context‑local conflicts.
Conflicts among roles (including TransformerRole) are only within the same bounded context; cross‑context differences are admissible if bridges are declared. Non‑conformance arises only when a context’s own incompatibility rules are violated. (A.2.1 U.RoleAssignment invariants.)
CC‑A3‑10 - Γ‑compatibility. Descriptions MUST be sufficient for the relevant Γ‑aggregations to run: Γ_method for recipe composition, Γ_work for resource deltas, Γ_sys for boundary integration, Γ_time for ordering. Each Γ flavour declares its A.14 hooks (Portion/Phase) and inherits B‑invariants.
Consequences
Benefits
- Explainability by construction. Every transformative claim carries who/what/when/why/how via
U.RoleAssignment+ provenance fields; audits become mechanical rather than heroic. (B‑invariants and Γ tables do the heavy lifting.) - No category errors. Keeping methods/roles out of mereology and enforcing design/run separation prevents the usual “process‑as‑part” and “version‑as‑component” mistakes. (A.14 + A.15.)
- Composable analytics. With measures and boundary folds explicit, cross‑scale proofs (Σ/Π/min/∧/∨) are predictable.
- Contextual pluralism without chaos. Divergent domain practices coexist as distinct bounded contexts with bridges; disagreements are localised and tractable.
Trade‑offs
- More declarations up‑front.
U.RoleAssignment+ units + policy/plan/action feels verbose, but yields deterministic Γ‑runs and reproducible audits. - Discipline for “self‑modifiers.” Modellers must split controller vs plant or dual‑role the same carrier; this adds one line but avoids hidden identity conflations.
Rationale (post‑2015 cross‑domain support)
Constructor theory (post‑2015).
Our Transformer Principle mirrors constructor theory’s shift from dynamics to tasks: what transformations are possible vs impossible, and why. By making the transformer (constructor) an explicit bearer of a role and keeping recipes as MethodDescription, A.3 captures the core “tasks & constructors” distinction and aligns with constructor‑theoretic thermodynamics linking work, heat, and informational constraints. (Royal Society Publishing, arXiv, Constructor Theory)
Active inference & free‑energy mechanics (2017→).
Where transformers are agentic, A.3’s policy–plan–action split and boundary‑centred accounting dovetail with active inference and free‑energy formulations of self‑organising systems (Markov blankets; Bayesian mechanics). This legitimises U.Objective/cost function links and makes design–run duality natural (prior vs posterior policies). (MIT Press Direct, PubMed, arXiv)
Provenance and FAIR packaging (2016→). Provenance minima in CC‑A3‑7 reflect FAIR principles (machine‑actionable reuse), RO‑Crate (methods+data+context packaged together), and operational lineage standards such as OpenLineage and ML Metadata (TFX) that treat artefacts, runs, and jobs as first‑class, with typed facets and versioning — exactly what enactment + Γ_work need. (Nature, researchobject.org, SAGE Journals, openlineage.io, GitHub, arXiv)
Together, these lines of work argue for explicit role‑bearing transformers, recipe/run separation, boundary‑grounded deltas, and traceable contexts — the four pillars that CC‑A3 enforces.
Relations
A.7 Strict Distinction.
A.3 operationalises A.7 by keeping object ≠ description ≠ observation:
object = target holon; description = MethodDescription; observation/log = Work. Violations (e.g., treating a recipe as a part) are non‑conformant and usually surface as Γ failures.
A.12 Agent Externalization & External Transformer. A.3’s CC‑A3‑1 is the mechanical guard‑rail for A.12: even in self‑modification, the modelling split keeps the agent (transformer bearer) distinct from the object‑under‑change.
A.13 Agential Role.
When the bearer is an Agent, A.3 defers identity and states management to Agent‑CAL (U.Agent, U.Intent, U.Action), while still requiring RoleAssigning + Γ compatibility. This is where policy/plan/action pipelines live.
A.15 Role–Method–Work Alignment. A.3 relies on A.15’s vocabulary guard‑rails (roles are not parts; methods are masks of work; specs are recipes). CC‑A3‑2/‑4 are enforceable precisely because A.15 fixes the naming discipline.
A.14 Advanced Mereology. A.3 consumes A.14’s PortionOf (for quantitative deltas) and PhaseOf (for versioning) and forbids role/recipe leakage into part–whole trees. Γ‑flavours declare which A.14 hooks they use.
B‑cluster (Γ‑sections). A.3 is executable only because Γ‑operators provide aggregation and invariants:
- Γ_sys enforces boundary folds and conservation;
- Γ_epist preserves document/data provenance and versioning;
- Γ_time orders work;
- Γ_method composes recipes;
- Γ_work accounts resource deltas; each inherits B‑invariants (e.g., B‑1 Conservation, B‑2 No‑Duplication).
Indexing to the glossary. Terms used here (TransformerRole, Work, Method, MethodDescription, PortionOf, PhaseOf, BoundedContext) remain exactly as defined in Annex A; see A.1/A.2/A.14/A.15 entries for lexical registers.
A.3:End
U.Method
Context (plain‑language motivation)
Teams must talk about how something is done without entangling:
- Who is assigned (that is Role/RoleAssigning),
- Whether the holder can do it (that is Capability), and
- What actually happened (that is Work).
U.Method supplies the how—the abstract way of performing a transformation, independent of a specific run, a specific assignee, or a specific notation. It works across paradigms:
- Imperative (step‑graphs, SOPs, BPMN),
- Functional (pure mappings and compositions, no “steps”),
- Logical/constraint/optimization (goals, rules, admissible solutions).
In FPF, a system bearing a TransformerRole enacts a U.Method (producing Work) by following a MethodDescription—an episteme that describes the method in some representation.
Problem (what goes wrong without a clean notion of “method”)
- Process soup. “Process” gets used for recipe, execution, schedule, or org area. Planning, staffing, and audit blur together.
- Spec = run fallacy. A flowchart (or code) is taken as if execution already happened; conversely, logs get mistaken for the recipe.
- Role leakage. People encode assignments inside the recipe (“this step is the surgeon”), tying who to how and making reuse impossible.
- Notation lock‑in. When “method” is defined as “a set of steps,” functional or logical styles become second‑class citizens and cannot be modeled cleanly.
Forces (what the definition must balance)
Solution — the method as an abstract, paradigm‑agnostic “way of doing”
Definition
U.Method is a context‑defined abstract transformation type—the semantic “way of doing” a kind of work.
It is:
Described (never identical) by one or more U.MethodDescription epistemes (code/SOP/diagram/rules),
Enacted by a U.System bearing an appropriate Role (usually a TransformerRole) to produce U.Work, and
Independent of who is assigned, what instance ran, or which notation was used.
Strict Distinction (didactic):
- Method = how in principle (semantic Standard).
- MethodDescription = how it is written (artifact on a carrier).
- Work = how it actually went this time (dated execution).
Representation‑agnostic stance (specs may be imperative/functional/logical)
A U.Method does not require an imperative step structure. Representations live in U.MethodDescription, not in the Method itself.
Typical MethodDescription forms include:
- Imperative MethodDescription: step‑graph/flow (serial/parallel/branch).
- Functional MethodDescription: a composition
f ∘ g ∘ hwith typed interfaces/constraints, no “steps”. - Logical/constraint MethodDescription: a goal/constraint set with admissible solutions and search/optimization semantics.
- Hybrid MethodDescription: imperative scaffolding with functional kernels and/or solver calls.
Semantic identity criterion (context‑local). Two MethodDescriptions describe the same U.Method in a given U.BoundedContext iff, for all admissible inputs and conditions recognized by that context, they entail the same preconditions, guarantee the same postconditions/effects, and satisfy the same non‑functional bounds (allowing permitted non‑determinism). Internal control‑flow/search details may differ.
Method vs MethodDescription vs Work (quick litmus)
Didactic rule: when referencing the idea of “how”, say Method; when referencing the document or code, say MethodDescription; when referencing the run, say Work.
Interface and effect (conceptual descriptors)
When presenting a U.Method in a review, anchor it with these paradigm‑neutral elements (not a data schema):
- Interface — what is required/provided in general (inputs/outputs/types or resources/roles/ports).
- Preconditions — what must already hold (guards, invariants, Standard “requires”).
- Postconditions / Effects — what is guaranteed after successful enactment (Standard “ensures”).
- Non‑functional constraints — latency, accuracy, cost, safety envelope (ties to Capability thresholds).
- Failure modes — known failure classes and recoverability hints.
- Compositional hooks — whether this method composes serially/parallel/choice/iteration (see §4.5).
Method mereology (composition without confusing it with runtime)
Methods compose into bigger methods; executions compose into bigger executions—do not conflate the two.
Method composition (design‑time): serial (-), parallel (‖), choice (|), iteration (*), refinement/substitution—yield new U.Methods.
Work composition (run‑time): the corresponding Work may split/merge/overlap differently due to scheduling, failures, or environment, yet it is still execution of the same Method.
Mapping advice: avoid naming run‑time artifacts inside the method definition (no “this thread”, “this person”); keep those in Role/Work.
Constructor‑theoretic reading (why Method ≠ algorithm ≠ spec)
Constructor Theory views a constructor as a physical entity that effects transformations. In FPF:
- A
U.Systemwith TransformerRole is the constructor (the performer). - A
U.Methodis the abstract transformation type it enacts (semantic Standard). - An algorithm artifact is a
U.MethodDescriptionfor an information‑transformation Method. - A universal transformer generalizes the Turing machine by executing any
U.Methoddescribed by a physically admissibleU.MethodDescription(not only informational ones).
Thus, welding, milling, reagent mixing, and proof construction are all Methods; textbooks/code/derivations are their MethodDescriptions; Work are the concrete runs.
Context anchoring
U.Method is local to a U.BoundedContext: terminology, admissible pre/postconditions, and non‑functional constraints are interpreted inside that context. If two teams or theories use the same name for different “ways of doing,” they are different Methods in different contexts unless bridged explicitly.
Archetypal grounding (cross-paradigm examples: imperative / functional / logical)
Industrial transformation (imperative flavor)
- Method:
Etch_Al2O3. - MethodDescription: SOP document; a PLC program that controls gas mix and timing.
- Enactment:
Tool_42#TransformerRole:FabLine_Aproduces Work runs W‑101, W‑102…. - Notes: Step diagram exists, but a later functional spec may also exist (composition of gas‑flow functions). Both specs describe the same Method.
Operational planning (functional/optimization flavor)
- Method:
JS_Schedule_v4(job‑shop scheduling). - MethodDescription: a MILP model + solver configuration; documentation of constraints/objective.
- Enactment:
PlannerService_v4#TransformerRole:PlantScheduling_2025produces WorkRun_2025‑W32‑P1. - Notes: No “steps” are visible at the method level; the solver’s search is internal. Still a
U.Method.
Scientific proof (logical flavor)
- Method:
Gauss_Elimination. - MethodDescription: formal rules in a proof assistant; textbook chapter as a second spec.
- Enactment:
CAS_Alpha#TransformerRole:MathLab_2025generates a Work proof instance for a concrete matrix. - Notes: The Episteme (spec) is not the ability (that belongs to the CAS system) and not the execution (the proof run).
Didactic quick grammar (for managers)
- Who?
Holder#Role:Context(Role assignment) - Can?
Capability(holder)within envelope/measures - How (in principle)?
Method, described byMethodDescription - Did?
Work(execution), linked byperformedBy → RoleAssigningandisExecutionOf → MethodDescription
Keep the four words apart and plans become dependable.
Bias‑Annotation (as in cluster‑E patterns)
- Lenses tested:
Arch,Prag,Did,Epist. - Scope declaration: Universal; semantics are context‑local via
U.BoundedContext. - Rationale: Gives FPF a paradigm‑neutral “how” that bridges MethodDescription (knowledge on a carrier) and Work (execution), while staying independent of Role (assignment) and Capability (ability).
Conformance Checklist (normative)
CC‑A3.1‑1 (Strict Distinction).
U.Method is the semantic “way of doing”. It is not a U.MethodDescription (artifact on a carrier), not a U.Work (dated execution), not a U.Role/assignment, and not a U.PromiseContent/promise.
CC‑A3.1‑2 (Context anchoring).
Every U.Method MUST be defined within a U.BoundedContext. Identity, admissible pre/postconditions, and non‑functional bounds are interpreted in that context.
CC‑A3.1‑3 (Specification linkage).
A U.Method SHOULD be described by ≥1 U.MethodDescription. For operational gating, at least one MethodDescription MUST be present and named. Multiple specs may coexist (imperative/functional/logic), see CC‑A3.1‑7.
CC‑A3.1‑4 (assignment‑free).
A U.Method SHALL NOT hard‑code holders or assignments. If a step “needs a surgeon”, express that as a role requirement (to be satisfied via U.RoleAssignment at run time), not as a named person/unit inside the method.
CC‑A3.1‑5 (Runtime‑free).
A U.Method SHALL NOT contain schedule, calendar slots, or run IDs; those belong to U.WorkPlan (plans) and U.Work (executions). Methods are timeless.
CC‑A3.1‑6 (Interface & effects).
A U.Method MUST admit a context‑local statement of interface (inputs/outputs or ports/resources), preconditions, postconditions/effects, and (when relevant) non‑functional bounds. These anchor semantic identity beyond a particular notation.
CC‑A3.1‑7 (Multi‑spec semantic identity).
Two or more U.MethodDescription describe the same U.Method in a given context iff they entail the same admissible preconditions, guarantee the same effects, and satisfy the same non‑functional bounds for all inputs/conditions recognized by that context (allowing permitted non‑determinism). Internal control‑flow/search differences are irrelevant.
CC‑A3.1‑8 (Composition vs execution). Composition of Methods (design‑time) and composition of Work (run‑time) MUST be kept distinct. Method composition yields new Methods; Work composition yields composed executions. They may correspond but are not identical.
CC‑A3.1‑9 (Parameterization).
If a Method is parameterized, parameters are declared at the Method/MethodDescription level; concrete values are bound at U.Work creation. Avoid freezing parameter values inside the Method definition.
CC‑A3.1‑10 (Dynamics ≠ Method).
Laws/trajectories (U.Dynamics) are models of state evolution and SHALL NOT be labeled as Methods. A Method may rely on a Dynamics model (e.g., for control), but they remain distinct artifacts/concepts.
CC‑A3.1‑11 (Capability checks are orthogonal).
A step may impose capability thresholds; those thresholds are checked against the holder’s U.Capability independently of assignment and independently of the Method’s description.
CC‑A3.1‑12 (Constructor‑theoretic alignment).
Algorithm artifacts are U.MethodDescription for information‑transforming Methods. Physical Methods are equally valid (matter/energy transformations). A “universal transformer” is a system that can enact any physically admissible MethodDescription; this does not collapse Method into “algorithm.”
Method mereology (composition) — design‑time only
Operators (conceptual, context‑scoped):
- Serial composition (
-) — do A then B →A - Bis a new Method. - Parallel composition (
‖) — do A and B concurrently (with declared independence/joins). - Choice (
|) — do one of {A, B} under guard/selector. - Iteration (
*) — repeat A under a loop invariant/termination condition. - Refinement (
≤ₘ) — Method M' preserves M’s interface/effects and strengthens preconditions or tightens non‑functional bounds (context‑defined lattice). - Substitution — replace a Method factor with a semantically equivalent one (
M ≡ Nin context) without changing the whole’s Standard.
Design‑time laws (intuitive, not mechanized here):
- Associativity for
-and, where admissible, for‖. - Distributivity over guarded choice under context rules.
- Identity elements (e.g.,
Skipthat preserves state and satisfies neutral bounds). - Monotonicity: refinement of a factor should not break the whole’s postconditions.
Run‑time mapping (do not conflate):
U.Work instances of A - B may interleave differently due to scheduling or failure‑handling and still be executions of A - B. The mapping is “execution semantics,” not part of Method mereology.
How Methods interact with Roles, Capability, Work, Dynamics (manager’s view)
- Roles (assignment). Steps stipulate role kinds (e.g.,
IncisionOperatorRole), not people. At run time,U.Workreferences aU.RoleAssignmentthat satisfies the role kind. - Capability (ability). Steps may require thresholds (e.g., “precision ≤ 0.2 mm”). They are checked against the holder’s
U.Capabilityin the context/envelope. - Work (execution). Each run records
isExecutionOf → MethodDescription(the spec used) andperformedBy → RoleAssigning. Logs, resources, and timestamps live here. - Dynamics (laws/models). Methods may cite or assume a Dynamics model; runs may attach traces that are explained by that model. Do not label the model itself as the Method.
Anti‑patterns (and the right move)
- Spec = Method. “The BPMN is the Method.” → The BPMN is a MethodDescription; the Method is the semantic way it denotes.
- Run = Method. “Yesterday’s process is our Method.” → Yesterday’s run is Work.
- Role leakage. “Step 3 is done by Alice.” → Step 3 requires
SurgeonRole; Alice may be assigned via RoleAssigning. - Schedule leakage. “Run at 02:00 daily” inside the Method. → This belongs to WorkPlan; Methods are timeless.
- BoM entanglement. Putting parts/assemblies inside Method definition. → Structure stays in PBS/SBS; Method references interfaces/resources, not a BoM.
- Algorithm‑only bias. Declaring that only code counts as a Method. → Physical transformations (welding, mixing) are Methods too; their SOPs/parameters are MethodDescriptions.
- Hard‑coding capability. Baking “≤ 0.2 mm” into a role name or Method name. → Keep thresholds on steps; capability lives on the holder.
Migration notes (quick wins)
- Rename wisely. Where texts say “process/method” but mean a diagram or code repo, label it MethodDescription; where they mean the abstract “how,” label it Method.
- Extract assignments. Replace named people/units in specs with role kinds; enforce assignments via RoleAssigning at run time.
- Pull time out. Move calendars/schedules from specs into WorkPlan.
- Parameter hygiene. Declare parameters at Method/MethodDescription; bind values in Work.
- Equivalence notes. When two specs are intended as the same Method, write an equivalence note in the context (pre/post/bounds parity).
Consequences
Relations
- Builds on: A.1 Holonic Foundation; A.1.1
U.BoundedContext; A.2U.Role; A.2.1U.RoleAssignment; A.2.2U.Capability. - Coordinates with: A.3 (role masks for transformers/constructors/observers); A.15 (Role–Method–Work Alignment); B.1 Γ (aggregation) for method families vs assembly of systems.
- Informs:
U.WorkPlandefinitional pattern (plans reference Methods they schedule);U.PromiseContentdefinitional pattern (promises cite Methods as delivery means);U.Dynamicsdefinitional pattern (models that Methods may assume).
Didactic quick cards (reuse in specs and onboarding)
- Method / MethodDescription / Work = how in principle / how it is written / how it went this time.
- Four‑slot grammar: Who? → RoleAssigning. Can? → Capability. How? → Method (via MethodDescription). Did? → Work.
- Design‑time vs run‑time: Composition of Methods ≠ composition of Work.
- No steps required: Functional, logical, and hybrid MethodDescriptions are first‑class.
- Keep time and people out: Schedules → WorkPlan; assignees → RoleAssigning.
A.3.1:End
U.MethodDescription
Context (plain‑language motivation)
Projects need a stable way to express “how it is written”—the recipe, code, SOP, rule set, or formal proof—without confusing it with:
- the semantic “way of doing” (that is
U.Method), - the assignment (that is
U.RoleAssignment), - the ability (that is
U.Capability), - the execution (that is
U.Work), or - the calendar plan (that is
U.WorkPlan).
U.MethodDescription gives this anchor. It treats algorithms, programs, proofs, SOPs, BPMN diagrams, solver models, playbooks as one class of epistemes: knowledge on a carrier that describes a Method. This unifies software and “paper” procedures and lets teams switch notations without breaking the model.
Problem (what breaks without a clear MethodDescription)
- Spec/run conflation. A flowchart or code is mistaken for the run; audits and SLOs become unreliable.
- Who/time leakage. People and calendars creep into the recipe; reuse and staffing agility die.
- Step‑only bias. Functional or logical styles are treated as “not real methods”; designs get contorted into faux steps.
- Algorithm‑centrism. Only code is considered “the method”, leaving SOPs and scientific procedures second‑class.
- Structure entanglement. BoM/PBS elements end up inside the recipe; method and product structure tangle.
- Unstated equivalence. Two specs intended to mean “the same method” are not declared equivalent; teams fork semantics by accident.
Forces (what we must balance)
Solution — the specification as an episteme describing a Method
Definition
U.MethodDescription is an U.Episteme that describes a U.Method in a concrete representation (text, code, diagram, model). It is knowledge on a carrier that can be reviewed and validated; at run-time a U.System uses it to execute the U.Method as U.Work under a U.RoleAssignment.
Strict Distinction (memory aid): Method = how in principle (semantic Standard). MethodDescription = how it is written (artifact/description). Work = how it went this time (dated execution).
Representation‑agnostic stance (independent of “algorithmic paradigm”)
U.MethodDescription does not privilege any single notation. Typical forms include (non‑exhaustive):
- Imperative Spec — SOP, BPMN/flowchart, PLC ladder, shell/pipeline scripts.
- Functional Spec — compositions of pure functions, typed pipelines, category‑style combinators.
- Logical/Constraint Spec — rules/goal sets, SAT/SMT/MILP models, theorem‑prover scripts.
- Statistical/ML Spec — model definitions, training/evaluation procedures, inference pipelines.
- Reactive/Event‑driven Spec — statecharts, observers/triggers, stream/CEP rules.
- Hybrid Spec — mixtures (e.g., imperative orchestration calling solver kernels).
Same Method, different MethodDescriptions. In a single U.BoundedContext, several MethodDescriptions may describe the same U.Method if they entail the same preconditions, guarantee the same effects, and meet the same non‑functional bounds (cf. A.3.1).
What a good MethodDescription states (paradigm‑neutral content)
Not a schema—these are content prompts for reviewers:
- Purpose & Name of the Method it describes (link to
U.Method). - Interface/ports (inputs/outputs/resources/Standards) in the context’s vocabulary.
- Preconditions (guards, invariants, required states).
- Postconditions / Effects (what is guaranteed upon success).
- Non‑functional constraints (latency, precision, cost, safety envelope).
- Role requirements for enactment (kinds, not people)—to be satisfied at run time via
U.RoleAssignment. - Capability thresholds the performer must meet (checked against
U.Capabilityof the holder). - Failure semantics (detectable failures, compensations, rollback/forward strategies).
- Compositional hooks (how this spec composes: serial/parallel/choice/iteration), without embedding calendars.
- Parameter declarations (what may vary per run; values bound at
U.Workcreation).
Didactic guardrail: A MethodDescription does not embed a schedule, assignees, or BoM. Calendars →
U.WorkPlan; people/units →U.RoleAssignment; product structure → PBS/SBS.
Epistemic roles for MethodDescriptions (via U.RoleAssignment)
Being an Episteme, a MethodDescription may itself play epistemic roles via U.RoleAssignment in a context (classification, not action), e.g.:
ApprovedProcedureRole,RegulatedProcedureRole,SafetyCriticalProcedureRole,De‑factoStandardRole.- These do not make the spec an actor; they classify its status within the context (who may use it, in which settings).
Constructor‑theoretic note (unifying “algorithms” and “physical recipes”)
In the constructor‑theoretic reading used by FPF:
- Algorithms, programs, solver models, proofs are all
U.MethodDescription—descriptions of Methods that transform information. - SOPs, control recipes, lab protocols are
U.MethodDescription—descriptions of Methods that transform matter/energy. - A universal transformer (a system with sufficient capability) enacts any physically admissible MethodDescription—not only informational ones.
This keeps software and “wet lab” on equal footing.
Clear distinctions (quick litmus for managers)
Archetypal grounding (parallel cases)
Industrial SOP (imperative)
- Method:
Etch_Al2O3. - MethodDescription:
SOP_Etch_v7.pdf+ PLC ladder file. - Role requirements:
EtchOperatorRole; Capability: gas‑control precision ≤ threshold. - Execution:
Tool_42#TransformerRole:Fab_Aenacts the spec → Work runs W‑143…W‑155.
Optimization model (logical/constraint)
- Method:
JS_Schedule_v4. - MethodDescription: MILP model + solver config; admissible solution definition.
- Execution:
PlannerService_v4#TransformerRole:Plant_2025produces WorkRun_2025‑W32‑P1.
Clinical guideline (epistemic, status via RoleStateGraph + State Assertion)
- Method:
AcuteAppendicitis_Triage. - MethodDescription: clinical decision rule set; Epistemic Role:
RegulatedProcedureRole:Hospital_Context. - Execution:
ER_Team#TransformerRole:ER_Shiftenacts the spec on a case → Work visit V‑8842.
Bias‑Annotation (as in E‑cluster)
- Lenses tested:
Did,Prag,Arch,Epist. - Scope declaration: Universal; semantics are context‑local via
U.BoundedContext. - Rationale: Elevates all procedural artifacts—code, SOPs, proofs, models—to a single class, avoiding algorithm‑centrism and step‑only bias. Keeps the strict split among Method / MethodDescription / Work / Role / Capability.
Conformance Checklist (normative)
CC‑A3.2‑1 (Episteme status).
U.MethodDescription IS an U.Episteme (knowledge on a carrier). It is not a U.Method (semantic way), not a U.Work (execution), not a U.Role/RoleAssigning (assignment), not a U.WorkPlan (schedule), and not PBS/SBS content.
CC‑A3.2‑2 (Context anchoring).
Every U.MethodDescription MUST be interpreted within a U.BoundedContext. Names, Standards, and admissible non‑functional bounds are local to that context.
CC‑A3.2‑3 (Method linkage).
A U.MethodDescription MUST declare the U.Method it describes. Multiple MethodDescriptions MAY describe the same Method (see CC‑A3.2‑8).
CC‑A3.2‑4 (assignment/time‑free).
A MethodDescription SHALL NOT embed assignees, org units, or calendars. People/units are bound via U.RoleAssignment at run time; calendars belong to U.WorkPlan.
CC‑A3.2‑5 (Structure‑free). BoM/PBS/SBS artifacts SHALL NOT be embedded in MethodDescriptions. Reference interfaces/resources and constraints instead of listing parts/assemblies.
CC‑A3.2‑6 (Role and capability requirements).
A MethodDescription MAY state role kinds and capability thresholds required for enactment. These are requirements, not bindings. They are checked at run time against U.RoleAssignment and U.Capability.
CC‑A3.2‑7 (Parameterization).
Parameters MUST be declared in the Method/MethodDescription; concrete values are bound when creating U.Work. Default values in a spec are allowed but SHALL NOT force a schedule or assignee.
CC‑A3.2‑8 (Semantic equivalence).
Two MethodDescriptions describe the same U.Method in a given context iff they entail the same preconditions, guarantee the same postconditions/effects, and satisfy the same non‑functional bounds for all admissible inputs/conditions of that context (per A.3.1 CC‑A3.1‑7). Differences in control flow, search, or notation do not break equivalence.
CC‑A3.2‑9 (Refinement).
Spec₂ refines Spec₁ for the same Method iff it preserves interface, does not weaken postconditions/effects, and tightens (or equal) non‑functional bounds under equal or stronger preconditions. Declare refinement explicitly in the context.
CC‑A3.2‑10 (Compatibility claims). Claims such as “sound but incomplete” or “complete but potentially unsound” relative to another MethodDescription MUST be stated explicitly and scoped to the context (e.g., solver approximations).
CC‑A3.2‑11 (Executable specs). Executability does not change status: an executable artifact (program, script) is still a MethodDescription. Its runs are Work; its semantics are the Method it denotes.
CC‑A3.2‑12 (Epistemic roles via U.RoleAssignment).
A MethodDescription MAY play epistemic roles via U.RoleAssignment (e.g., ApprovedProcedureRole, RegulatedProcedureRole) that classify its status. Such bindings do not make the spec an actor.
CC‑A3.2‑13 (Non‑determinism declaration). If a MethodDescription permits non‑determinism (e.g., search/optimization), the space of admissible outcomes and acceptance criteria MUST be stated (so that Work can be judged).
CC‑A3.2‑14 (Bridging across contexts).
If two contexts use different MethodDescriptions for “the same‑named way,” an explicit Bridge (U.Alignment) SHOULD be provided to map terms/assumptions. Do not assume cross‑context identity by name alone.
MethodDescription mereology (epistemic composition; not method composition)
Keep two worlds separate:
- Method composition (design‑time semantic): combines Methods into new Methods (A.3.1 §9).
- MethodDescription mereology (epistemic): combines documents/code/models into larger spec artifacts. This is about parts of the description, not about the semantic method algebra.
Epistemic part relations (illustrative):
ConstituentOf— a chapter/module/snippet is a constituent of a larger spec.Imports/Uses— this spec reuses a library/rule set.VariantOf— this spec is a variant (e.g., for different equipment) with declared deltas.RepresentationOf— this visual diagram is a representation of the textual rule set.
Didactic rule: Do not infer that a spec with two modules means a Method with “two steps.” Modules are parts of the description, not necessarily steps of the Method.
Parameterization & variability (templates, defaults, configs)
Templates. A MethodDescription may serve as a template with parameters (e.g., temperature set‑points, solver tolerances, objective weights).
Binding time.
- Declare parameters in the spec;
- Bind values when creating
U.Work(or at an agreed “compile” stage); - Keep bound values visible in the Work record (so runs can be compared).
Defaults and guards.
- Defaults are allowed; list valid ranges and guards (e.g., safety constraints).
- If a default has safety impact, state it explicitly as part of preconditions.
Variants.
- When variants differ only by parameter ranges → keep one Method with one MethodDescription template.
- When variants differ by Standard (effects/bounds) → either declare a refinement or introduce a distinct Method (context decision).
Equivalence & compatibility (across notations and contexts)
Within one context.
- Use semantic equivalence (CC‑A3.2‑8) to assert that BPMN vs code vs solver model are the same Method.
- Prefer a short equivalence note showing parity of pre/post/bounds.
Across contexts.
- Treat identity as not guaranteed.
- Provide Bridges (
U.Alignment) that map terms, units, roles, and acceptance criteria. - Be explicit if one spec is only sound (never returns forbidden outcomes) vs complete (can return all allowed outcomes).
Observational perspective (pragmatic). Two specs are observationally equivalent for stakeholders if, under declared conditions, they are indistinguishable by the acceptance tests of that context (even if internal strategies differ).
Anti‑patterns (and the right move)
- Spec = run. “Yesterday’s process log is our spec.” → The log is Work; write a MethodDescription and link runs to it.
- Who/time in the spec. “Step 3 by Alice at 02:00 daily.” → Use RoleAssigning at run time; schedule via WorkPlan.
- Stuffing BoM. Listing parts/assemblies inside the spec. → Reference interfaces/resources; keep PBS/SBS separate.
- Algorithm‑only bias. Treating code as “real spec” and SOPs as “notes.” → Both are MethodDescription; judge by Standards, not by format.
- Hiding non‑determinism. Solver model with no acceptance criteria. → Declare admissible outcome set and tests.
- Silent parameter capture. Hard‑coding values without declaring parameters. → Declare parameters with ranges; bind at Work creation.
- Undeclared variant drift. Copy‑pasting specs and tweaking silently. → Use VariantOf with stated deltas or declare a refinement.
Migration notes (quick wins)
- Label the artifacts. Wherever a repo/diagram/document “is the process,” rename it MethodDescription and link it to a named Method.
- Extract people and calendars. Move all assignees to RoleAssigning and all schedules to WorkPlan.
- Introduce parameter blocks. Add a small “Parameters” section with ranges/defaults and safety guards.
- Write acceptance criteria. Especially for search/optimization or ML specs.
- Declare equivalence/refinement. Where two notations intend “the same way,” add an equivalence note; where the new one tightens bounds, declare refinement.
- Bridge domains. If two departments use different vocabularies, add a Bridge (
U.Alignment) rather than forcing a single spec.
Consequences
Relations
- Builds on: A.3.1
U.Method(the semantic way it describes); A.1.1U.BoundedContext. - Coordinates with: A.2
U.Role, A.2.1U.RoleAssignment(who enacts it); A.2.2U.Capability(ability thresholds); A.15 Role–Method–Work (linkingisExecutionOfto runs). - Informs:
U.WorkPlan(plans reference MethodDescriptions);U.Dynamics(models that specs may assume); Epistemic Role patterns (status of specs RoleStateGraph + State Assertion). - Lexical guards: E.10.y L‑PROC (do not call MethodDescription “process” when you mean Work/WorkPlan); E.10.x L‑FUNC (avoid “function/functionality” confusion).
Didactic quick cards
- Spec ≠ Method ≠ Work. Written recipe ≠ semantic way ≠ dated execution.
- Keep people/time out. Assignees → RoleAssigning; schedules → WorkPlan.
- Declare parameters & acceptance. Bind values at Work; state how success is judged.
- Same method, different specs. BPMN/code/solver can be equivalent if pre/post/bounds match.
- Bridge, do not blur. Cross‑team/domain differences go through
U.Alignment, not wishful thinking.
A.3.2:End
U.Dynamics
Context
Teams need one place to say how a thing changes. Physicists call this “dynamics” (equations of motion, state‑transition maps). In IT and enterprise change, we often talk about evolution of characteristics (latency, cost, reliability, compliance, architectural fitness) across time. In knowledge work, KD‑CAL (knowledge dynamics) reasons about how the status of claims shifts as evidence arrives. All these are the same modeling need: a context‑local description of state space and allowed transitions.
FPF already separates:
- what a holon is (structure, PBS/SBS),
- how we act (Method/MethodDescription, Work),
- what we promise (Service).
What is missing without U.Dynamics is the law of change—the model that tells us how states evolve with or without our interventions.
Intuition: Method tells an agent what to do; Dynamics tells everyone how the world (or a model of it) changes when something happens (or even when nothing happens).
Lexical note. Terms like process and thermodynamic process are mapped by L‑PROC:
- the recipe is
U.Method/MethodDescription, - the dated run is
U.Work, - the law/trajectory model is
U.Dynamics.
Problem
Without a first‑class U.Dynamics, models suffer predictable failures:
- Recipe = Law. Teams put the procedure (Method/MethodDescription) where the state law should be, so simulations and predictions become impossible to compare with reality.
- Run = Law. Logs of Work are mistaken for dynamics; past events are treated as if they defined what must happen.
- No state space. Discussions jump between metrics (latency! throughput!) without an explicit characteristic space or invariants, so “improvements” cannot be reasoned about.
- Domain lock‑in. “Dynamics” is left to domain vocabularies (physics, control, finance), losing a trans‑disciplinary way to speak about change in a single kernel.
Forces
Solution — The unified concept U.Dynamics
Definition (normative).
Within a U.BoundedContext, U.Dynamics is an U.Episteme that specifies a state space and a state‑transition law (deterministic or stochastic, continuous/discrete/hybrid) for one or more holons, possibly under exogenous inputs and constraints. It does not prescribe what an agent should do (that is U.Method/MethodDescription) and is not the dated evolution itself (that is U.Work evidence).
- Type:
U.Episteme(design‑time model/law on a carrier). - Orientation: descriptive/predictive about how states evolve; can be used by Methods but remains separate from them.
- Judged by: conformance of observed Work‑derived traces to the law and invariants.
Core structure (minimal fields)
stateSpaceuses FPF characteristics (not “characteristics”) so we can talk about architecture fitness (e.g., latency, MTBF, cost) just like temperature/pressure/volume in physics.transitionLawis paradigm‑agnostic: ODE/PDE, finite‑state relation, Petri net firing, queueing kernel, Bayesian update, etc.observationseparates what exists from what we measure (key for monitoring/assurance).
What U.Dynamics is not
- Not a Method/MethodDescription: no imperative steps or prescriptions.
- Not Work: no timestamps/resources attached; evidence lives on
U.Work. - Not a Service: no consumer promise; dynamics may underpin service SLOs but does not define the promise.
- Not PBS/SBS: do not place dynamics inside structural BoMs.
Where U.Dynamics sits in enactment
-
Design‑time: Methods may reference Dynamics for planning/control (e.g., MPC uses a plant model). Services may derive acceptance targets from Dynamics (e.g., queueing predictions → SLO).
-
Run‑time: Work produces state samples/telemetry; applying the observation map yields traces. Conformance/violation is decided by comparing traces with constraints and predictions from the transition law. Updates to model parameters flow via calibration (design‑time again).
Memory hook: Method decides, Dynamics predicts, Work reveals.
Prediction Use In Gating (normative)
When predicted coordinates (from a dynamics model) are used for comparison or gating, one of the following MUST hold:
- a fresh observation is available for the gate’s window; or
- the applied flow/map
Φ_{Δt}is proven non‑expansive (Lipschitz ≤ 1) under the declared distance overlay (see § 5.1.7), and it commutes with the invariantization step (§ 5.1.6) — i.e.,Quot/Fix_g ∘ Φ_{Δt} = Φ_{Δt} ∘ Quot/Fix_gon the domain of use.
If neither condition is satisfied, using prediction for gating is forbidden; the system MUST fall back to observation. Any use of Φ_{Δt} SHALL declare its validity window (range, Δt).
Archetypal grounding (engineer‑manager friendly)
Key takeaway: one kernel object captures trajectories in a characteristic space, from thermodynamics to software quality and knowledge confidence.
Conformance Checklist (normative)
CC‑A3.3‑1 (Type).
U.Dynamics IS an U.Episteme (design‑time model/law on a carrier). It is not a U.Method/MethodDescription, not U.Work, and not a structural part of any PBS/SBS.
CC‑A3.3‑2 (Context).
Every U.Dynamics MUST be declared inside a U.BoundedContext. Units, characteristic names, admissible regions, and time base are local to the context; cross‑context reuse requires a Bridge (U.Alignment).
CC‑A3.3‑3 (Explicit state space).
stateSpace MUST enumerate characteristics with units/scales (continuous/discrete/ordinal) and any topology/geometry needed for trajectories. Do not refer to informal “axes”.
CC‑A3.3‑4 (Transition law).
transitionLaw MUST specify a state‑transition relation/map/kernel suitable for the declared time base (continuous|discrete|hybrid) and stochasticity (deterministic or with a likelihood/noise model).
CC‑A3.3‑5 (Observation model).
If evidence from U.Work is to be checked against the law, an observation mapping MUST be provided (identity is acceptable only if explicitly stated). Sampling rate/granularity SHOULD be declared.
CC‑A3.3‑6 (Constraints & validity).
If safety/envelope constraints apply, they MUST be declared under constraints. Operating region, approximations, version, and timespan SHOULD be stated under validity.
CC‑A3.3‑7 (Separation from Method).
A U.Dynamics SHALL NOT prescribe imperative steps or responsibilities. Planning/control algorithms that use the dynamics belong to U.Method/MethodDescription.
CC‑A3.3‑8 (No actuals on Dynamics).
Resource/time actuals and telemetry MUST attach to U.Work. Calibration outcomes produce new versions of U.Dynamics; the law object itself carries no run‑time logs.
CC‑A3.3‑9 (Multi‑scale declaration).
If state is aggregated across parts or time, the aggregation policy (Γ_time, Γ_work, averaging vs. sum vs. percentile) MUST be stated to prevent incoherent comparisons.
CC‑A3.3‑10 (Lexical hygiene). Ambiguous uses of process/processual (laws vs. runs vs. recipes) MUST be resolved per L‑PROC/L‑ACT:
- law →
U.Dynamics, - recipe →
U.Method/MethodDescription, - run →
U.Work.
CC‑A3.3‑11 (Link to Services—optional).
If service SLOs are derived from a dynamics model, the service promise clause (U.PromiseContent) SHOULD reference that U.Dynamics (A.2.3), but the promise clause remains the promise, not the law.
Evidence and operators (traces, prediction, conformance)
Let D be a U.Dynamics in context C. Let W be a set of U.Work records produced under C. Let obs_D(-) be the declared observation map for D.
Derived evidence
-
trace(W, D)→ Sequence<t, y>: derive an ordered sequence of observed valuesyat timestby applyingobs_Dto Work/telemetry associated withW. (Not a kernel type; a derived artifact for analysis/assurance.) -
inputs(W)→ Series: exogenous inputs/control signals recovered from Work metadata if the model declaresinputs. -
initialState(W, D)→ x₀: the assumed/estimated state at trace start (from Work context or a stated estimation rule).
Prediction & simulation
-
predict(D, x₀, inputs?, horizon)→ Trajectory: propagate the law to obtain a predicted trajectory in the declared state space. -
admissible(D, x)→ bool: test whether statexsatisfiesconstraints. -
reach(D, S₀, S₁, inputs?, horizon)→ bool: reachability: can states inS₀evolve intoS₁under the law.
Conformance & drift
-
residuals(D, trace)→ Series: discrepancies between predicted and observed series under a stated alignment (point‑wise, windowed, distributional). -
fits(D, trace, tol)→ {pass|fail|partial}: verdict under tolerance policytoldefined by the context (e.g., sup‑norm ≤ ε, percentile bands, likelihood threshold). -
drift(D₁, D₂, domain)→ Measure: divergence between two model versions over a declared operating domain (e.g., max deviation of eigenvalues, KL between predictive distributions).
Invariants
fits(D, trace, tol)=pass⇒ every sample lies inadmissible(D,-)unless the context explicitly permits out‑of‑envelope transients.- If two traces are generated under identical
inputsand initial conditions, recorded differences must be explainable by the declared stochasticity/noise model or flagged as violations.
Didactic hook: Dynamics predicts; Work reveals; Conformance compares.
Anti‑patterns (and the right move)
-
“Dynamics = procedure.” Control recipes/step graphs belong to
Method/MethodDescription. Keep the law inU.Dynamics. -
“Telemetry = dynamics.” Logs are
Workevidence. Buildtrace(Work, D)and compare to the law; do not store logs inside the law. -
“No state space.” KPI lists without an explicit
stateSpaceturn into dashboard folklore. Name characteristics with units and ranges. -
“Hard‑coding SLO inside the law.” Service targets are promises (
U.PromiseContent.acceptanceSpec). Keep predictions and promises separate; link them. -
“Stuffing Dynamics into BoM.” A model is not a component. Leave PBS/SBS for structure.
-
“One size fits all time base.” If parts of the system evolve on different clocks, declare
hybridand separate update rules.
Migration notes (quick path to value)
- Name the changing things. Pick 3–7 characteristics that matter (physical or architectural). Declare
stateSpacewith units and ranges. - Write the law you already use. Even if it is a queueing approximation or a simple ARIMA—put it under
transitionLawand state assumptions undervalidity. - Separate recipe from law. Move control procedures to
Method/MethodDescription; keep forecasting/plant equations inU.Dynamics. - Wire evidence. Ensure production
Workemits the measurements needed byobservation. Buildtrace(Work, D). - Start conformance. Define a simple
toland computefits(D, trace, tol)weekly. Raise issues on drift; version the model when calibrating. - Link to promises (optional). If SLOs depend on the law, reference
U.DynamicsfromU.PromiseContentand derive targets transparently. - For KD‑CAL. Treat belief/support as characteristics; declare a Bayesian/likelihood update in
transitionLaw; evaluate conformance against evidence arrivals.
Relations
-
Builds on:
A.1.1 U.BoundedContext(local meaning/units),A.2 Role/A.2.1 RoleAssigning(agents that use the law),A.15.1 U.Work(run‑time evidence). -
Coordinates with:
A.3.1 U.Method/A.3.2 U.MethodDescription(planning/control using the law),A.2.3 U.PromiseContent(promises informed by predictions), KD‑CAL (knowledge dynamics as a specialisation: belief‑update laws), Resrc‑CAL (cost/energy models as dynamics over resources). -
Constrained by lexical rules: E.10 L‑PROC (process disambiguation), L‑ACT (activity/action), L‑FUNC (function).
Didactic quick cards (engineer‑manager ready)
- Dynamics = Law of Change. A design‑time model of how states evolve.
- State space = Named characteristics with units. No vague “axes”.
- Method vs Dynamics. Method decides what we do; Dynamics predicts what will happen.
- Work = Evidence. Only Work has timestamps and resource actuals.
- Conformance = Prediction vs Trace. Fit, residuals, drift.
- Keep promises separate. Services are promises; Dynamics informs them but does not replace them.
Memory hook: Method decides - Dynamics predicts - Work reveals.
A.3.3:End
Temporal Duality & Open‑Ended Evolution Principle
“A holon is born in design‑time, lives in run‑time,
and is reborn when the world talks back.”
Problem frame
A holon’s blueprint and its lived reality are never identical for long. Pumps wear out, theories meet anomalous data, workflows face unanticipated load. FPF therefore requires a temporal framework that:
- Physically grounds every modification (via the Transformer Principle, A 3).
- Supports unbounded improvement cycles (P‑10 Open‑Ended Evolution).
- Works identically for physical, epistemic, operational (method, work) and future holon flavours.
Problem
Forces
Solution - Temporal Duality Model
FPF assigns every holon state to one—and only one—of two temporal scopes:
Temporal invariants
Open‑Ended Evolution Principle
A holon may repeat the cycle ad infinitum:
Observation itself is a transformation:
An External Transformer (U.System playing transformerRole ⊑ TransformerRole)
executes a measurement method whose output is an epistemic holon
containing observations. Thus the traditional “External Observer Pattern” collapses into
the universal external Transformer pattern.
Archetypal Grounding
(Diagrammatic lineage table omitted for brevity but included in annex.)
Conformance Checklist
Consequences
Rationale (extended)
-
Why separate scopes?
Real‑world artefacts SCR the as‑intended versus as‑is gap. By formalising that gap, FPF prevents silent assumption of perfect fidelity and allows quantified error (U.Error) to drive evolution. -
Why treat observation as transformation?
Physics tells us measurement changes state (energy, information, even quantum collapse). Making the observer just anotherTransformermeans: no special metaphysics, full energy/provenance accounting, seamless tie‑in with Constructor Theory (see A 3 Rationale §2). -
Why insist on open‑endedness?
Perfect finality is unattainable outside mathematics mandates that holons must be improvable in principle; this pattern encodes that mandate structurally: version n+1 is always possible. -
Why no overlap (Tᴰ ∩ Tᴿ)?
The instant a holon is mutable (design) it ceases to be the “same” operational asset relied upon for guarantees. Overlap would break trust calculations and violate A.7 Strict Distinction.
This pattern therefore realises three core principles in concert:
- Temporal Duality – explicit tagging of states.
- Open‑Ended Evolution – guaranteed pathway for refinement.
- Ontological Parsimony – one mechanism (Transformer) for all state changes, avoiding specialised “observer” or “installer” types.
“Blueprints dream; instances speak.
Evolution is the conversation between them.”
A.4:End
Open‑Ended Kernel & Extension Layering
Status. Transitional stub (informative). This section defines no dedicated “module” subsystem. Enforceable boundary discipline lives in A.6.0 U.Signature and A.6.1 U.Mechanism, with guard‑rails in E.5.3 (Unidirectional Dependency) and E.10 (LEX‑BUNDLE stratification).
Problem frame
FPF’s ambition is to act as an “operating system for thought.” That ambition can only be realised if the framework:
- (i) remains stable and self‑consistent over multi‑decade timespans;
- (ii) invites, rather than resists, the continual influx of new disciplinary knowledge; and
- (iii) allows multiple, even competing, explanatory lenses to coexist without forcing a “winner‑takes‑all” unification.
Historically, grand “total” ontologies—Aristotle’s Categories, Carnap’s Logical Construction of the World, Bunge’s TOE—failed precisely because each tried to embed every domain’s primitives directly into a single monolith. Once the monolith cracked under domain pressure, the whole edifice became unmaintainable.
Problem
If FPF were to let domain‑specific primitives creep into its Kernel, two pathologies would follow:
A minimal, extensible design is therefore mandatory.
Forces
Solution
FPF’s modularity is declarative, not “callable”: pattern texts publish law‑governed declarations (vocabulary + laws + applicability) that can be reused and specialised. They are not subroutines, services, or protocol endpoints in the software‑architecture sense; treat “module” as a metaphor at most.
To keep the Kernel open‑ended without a bespoke plug‑in patterns standard, FPF relies on the boundary stack that already exists elsewhere in Part A/E/F:
- Kernel minimality (C‑5). Domain knowledge (physics, biology, economics, …) stays outside the Kernel by default; it enters as extension vocabularies and laws.
- Boundary packaging via
U.Signature(A.6.0). Reusable bundles are published as signatures with an explicitSignatureManifest(imports,provides). - Dependency vs specialisation are separate relations.
importsforms a dependency DAG constrained by E.5.3; refinement/extension (⊑,⊑⁺) is expressed separately (e.g., A.6.1U.MechMorph) and should not be conflated withimports. - Registry references stay references. Bridges, policy‑ids, and edition‑ids (Part F) are registry identifiers: they are cited/pinned where needed, not treated as exported symbols in
provides.
This section is intentionally lightweight: it provides architectural intent and routing pointers only. Any new enforceable modularity constraints belong in the A.6.* boundary patterns (or in E.* guard‑rails), not here.