Domain Principle Framework Authoring and Publication-or-Access Carrier Assembly
About this pattern
This is a generated FPF pattern page projected from the published FPF source. It is canonical FPF content for this ID; it is not a FPF Reference product feature page.
How to use this pattern
Read the ID, status, type, and normativity first. Use the content for exact wording, the relations for adjacent concepts, and citations to keep active work grounded without pasting the whole specification.
Type: Architectural (A) Status: Stable Normativity: Normative unless marked informative.
Use this pattern when a group needs to create a domain principle framework or local practice framework grounded in FPF: for example a hydroponic-cucumber framework, a neural-network architecture framework, or a Codex-process framework.
Relations
Content
Problem frame
Use this pattern when a group needs to create a domain principle framework or local practice framework grounded in FPF: for example a hydroponic-cucumber framework, a neural-network architecture framework, or a Codex-process framework.
Primary EntityOfConcern: the authoring method for a bounded FPF-grounded framework edition. The first useful output is not a list of candidate pattern names. It is an authoring spine with context, SoTA source pack, architecture decision, name-card route, pattern drafts, relation and edition records, publication carrier, access carrier, quality loop, and currentness route.
Default artifact contract for a request such as "make a DPF about this topic" separates developer and user carriers. In a campaign or repository setting, create a developer decision carrier such as SUBSTANTIVE-DRR.md or DPF-DRR.md governed by E.9 and checked by E.9.DA; it carries the source basis, selected architecture, PFAD decision, candidate pattern split, relation plan, quality plan, and rejected alternatives. Create a user-facing framework publication or access carrier named by the individual framework, such as <DomainOrPractice>-PRINCIPLES-FRAMEWORK.md, <PublicFrameworkName>.md, a split readme, pattern, and appendix set, a skill pack, or an MCP-backed access service; it is the access route through which readers or agents use the DPF edition. Optional source-pack, PFR, quality-run, package-evaluation, skill-manifest, or access-service files may be separate when they need independent maintenance, but they must not be copied into the user carrier as process state.
Use this pattern when the work creates a framework. Use E.11 or E.17 when the work only changes how existing material is exposed to readers.
Plain vocabulary for adoption:
Old intake labels such as SPF, TPF, or broad xPF remain source aliases until F.18 settles a durable public name and any admissible short form. ZPF has a campaign-local F.18 name card that selects FoundationalPrinciplePatternSet / "foundational principle pattern set" as the primary name and keeps ZPF only as a mnemonic alias, not as a public "zero principles" framework name.
Problem
Domain and local framework authors often have strong source material and urgent local needs, but they can lose FPF discipline in three ways. They copy FPF terms without settling the domain ontology. They publish a framework carrier before deciding the framework architecture. Or they produce a useful checklist that is local process guidance but not yet an FPF-grounded pattern framework.
A working framework needs more than a good table of contents. It needs source-grounded pattern selection, architecture decisions, relation records, edition dependencies, names, worked cases, quality evaluation, and refresh conditions.
A DPF is not a domain ontology, glossary, literature survey, or guide to talking about a topic. It exists so an intended practitioner or assisting agent can enter typical problem situations in the domain, avoid known failure modes, and apply source-grounded SoTA solution moves with visible boundaries and refresh conditions. Those failure modes include beginner mistakes and experienced-practitioner failures caused by stale, local-only, or non-SoTA practice. Ontology and vocabulary matter only insofar as they make those problem-solving moves safer and more reusable.
Forces
Solution
Author the framework through a spine whose outputs are inspectable at each step:
First-hour route for a first framework:
- Write a one-paragraph context note: domain or local context, intended reader, first use, and non-use boundary.
- Create a source-pack stub: source traditions to inspect, rival traditions to avoid losing, first examples, and claim status.
- Draft one PFAD question: what framework family is being created, which domain or local problem-situation architecture and solution-move architecture the first pattern set will render, what depends on FPF Core, and what must not land in Core.
- Mark public names provisional: use
Domain Principle FrameworkorLocal Practice Frameworkin prose, and send durable names or abbreviations toF.18. - Draft one to three first pattern candidates through
E.8, each with a recognizable problem frame, known failure mode or local anti-pattern, positive SoTA-informed solution move, worked slice, and boundary. In the first hour these are pattern seeds unless they already pass the declaredE.21pattern-quality use. - Add relation and edition rows for those candidates: source reuse, specialization, publication, dependency, compatibility, or refresh as needed.
- Pick the first-entry and publication or access carrier: readme, preface, table of contents, card set, all-in-one local carrier, split document set, skill pack, MCP-backed access service, or another access face.
- Name the first quality and refresh route: what will be evaluated, what can improve next, and what source, Core edition, or local-use change reopens the framework.
Stop the first hour when those outputs exist, even if every pattern body is still rough. A rough framework with context, source basis, decision question, provisional names, first pattern candidates, relation rows, publication carrier, quality route, and refresh trigger is inspectable. A long all-in-one carrier without those outputs is not yet an FPF-grounded framework. Do not promote this rough output to a reliance-bearing DPF publication carrier until the DRR or decision carrier is checked for the intended authoring use, the pattern bodies are hardened as normal FPF patterns, and the package is evaluated through E.4.DPF.DA.
Prompt-shaped starter for SoTA harvesting and first candidate generation:
- Context declaration. State the domain or local bounded context, intended reader, first use, and non-use boundary.
- Source pack. Use
[G.2](/generated/patterns/G.2)to gather SoTA traditions, claim sheets, examples, source-use decisions, rejected alternatives, and source-currentness notes. - Architecture decision. Use
[E.9](/generated/patterns/E.9)and[E.4.PFAD](/generated/patterns/E.4.PFAD)to decide purpose, framework family, domain or local problem-and-solution architecture, pattern split, relation structure, publication carrier, access carrier, dependency boundary, and source-return obligations. - Name preparation. Use
[E.10](/generated/patterns/E.10)for kind discipline and[F.18](/generated/patterns/F.18)for durable names before public pattern heads or abbreviations are stabilized. - Carrier admission. Use
[C.33](/generated/patterns/C.33),[C.34](/generated/patterns/C.34), or[C.35](/generated/patterns/C.35)before relying on all-in-one carriers, tables of contents, relation graphs, source summaries, search outputs, transformed views, or generated candidates as architecture evidence. - Pattern drafting. Draft patterns with
[E.8](/generated/patterns/E.8): recognition text, positive solution, worked cases, boundary, local anti-patterns, SoTA-Echoing, conformance checks, and relations. In a DPF, those pattern bodies are the pattern-language rendering of selected domain or local problem-situation architecture and solution-move architecture.[E.8](/generated/patterns/E.8)means a normal action-guiding pattern body, not only a section skeleton. A thin skeleton, prompt seed, or compressed design note remains a pattern seed until[E.21](/generated/patterns/E.21)says it is adequate for the declared DPF use. - Relation and edition discipline. Use
[E.4.PFR](/generated/patterns/E.4.PFR)for relation functions, dependency direction, compatibility boundary, deprecation, supersession, and edition effects. - Quality cycle. Use
[E.22](/generated/patterns/E.22)to frame the evaluation purpose, quality floor, trade-off question, and expected improvement proposal when that frame is not already scoped. Use[E.4.DPF.DA](/generated/patterns/E.4.DPF.DA)to evaluate the package as a DPF or local-framework package,[E.21](/generated/patterns/E.21)to evaluate individual pattern quality,[E.23](/generated/patterns/E.23)for repeated improvement, and[E.19](/generated/patterns/E.19)only when admission or profile gating is actually being claimed. If an evaluation result needs a carrier, publish or refresh that carrier through the direct publication or currentness owner rather than through[E.22](/generated/patterns/E.22). - Admission review. Use
[E.19](/generated/patterns/E.19)when the local process asks whether a pattern or framework slice is ready for admission. - Framework publication-or-access carrier assembly. Publish or expose the framework in its own DPF or local-framework carrier: all-in-one local carrier, split readme, preface, and pattern files, table of contents, cards, skill pack, MCP-backed access service, retrieval route, or another first-entry form. Do not land domain or local frameworks into
FPF-Spec.mdby default. - Currentness route. Use
[G.11](/generated/patterns/G.11)for refresh plans, edition pins, source decay, deprecation, and supersession conditions.
For an all-in-one DPF publication carrier, assemble the content in a reproducible order. This order is a publication shape, not a new framework kind:
- Public framework title and package edition ref: use a domain- or practice-specific framework name such as
<DomainOrPractice> Principles Framework;Principles Frameworkalone is only the head or kind phrase, not an individual framework name. Do not putlocal monolith,draft, process status, or file-layout slang in the public title. - Dependency declaration: FPF Core edition, depended-on DPF or local-framework editions, and blocked reverse dependency.
- Table of contents: pattern bodies first as the main language of use; support maps and relation records reachable but not front-loaded as required reading.
- Readme or first practical entries: intended reader, first use, non-use boundary, first outputs, and a short statement of which selected domain or local structures this carrier exposes for that reader.
- Preface or framework context: cross-cutting ideas that make the pattern set cohere, plus the selected structure families the carrier foregrounds, deliberately coarsens, defers, or sends back to sources and pattern bodies.
- Package carrier structure-account: intended reader and use, selected source-structure denominator, recurring problem-situation structures, reusable solution-move structures, captured structure, deliberately coarsened, abstracted, omitted, or lost structure, source-return condition, and quality or epiplexity route. This may be a short subsection in the readme or preface when the carrier is compact.
- Package boundary and owner routing: Core owners reused, local terms bounded, and source, evidence, assurance, publication, and refresh exits named.
- Pattern index: pattern ids, titles, first use, and any local prefix discipline.
- Pattern bodies: each drafted through
[E.8](/generated/patterns/E.8), with recognition text, positive solution, worked cases, local anti-patterns, SoTA-Echoing, conformance checks, and relations, and each evaluated or explicitly marked as a seed under[E.21](/generated/patterns/E.21)before the package is claimed for public, teaching, enterprise, or reliance-bearing use. - Heterogeneous acceptance cases or transfer probes: examples that force the pattern set to work across unlike uses rather than only repeating the motivating case.
- Support maps or appendices: architecture bridge, source-use map, precision map, package-name route, or other reference material placed after pattern bodies unless a short front-door trigger table is needed.
- Source use and refresh map: source rows with adopted payload, rejected or bounded readings, currentness triggers, and
[G.2](/generated/patterns/G.2)/[G.11](/generated/patterns/G.11)return conditions. - Pattern-framework relation and edition records:
[E.4.PFR](/generated/patterns/E.4.PFR)rows for dependency, specialization, publication, source reuse, evaluation, generated-carrier, teaching publication-carrier, ethics, deprecation, or supersession relations. - Refresh route: what returns to source, pattern quality, package adequacy, edition dependency, or publication carrier when source, Core edition, local use, telemetry, or evaluation changes.
Every DPF publication or access carrier bears or serves a publication/access expression that makes selected domain or local structures available for a declared reader and use; the carrier is not itself the framework edition, the domain, or a narrative by type. In an all-in-one publication carrier, the readme and preface usually carry the first explanatory route, and sometimes a narrative rendering, through the domain. They must therefore say what they are telling, for whom, which structures they foreground, which structures are deliberately coarsened, abstracted, omitted, or left to source return, and where a reader returns for fuller pattern, source, evidence, or relation detail. This is not only text-to-text summarization: the source-bearing side may be actual or possible holon structure, an architecture description, a view, a source pack, a model, a graph, or a pattern set. In architecture-mediated narrative-rendering use, read the return chain as
narrative rendering carried by a publication or access carrier -> architecture description or view -> architecture as selected structures in context -> wider source structures. When no narrative rendering is present, read the first step asframework publication or access carrier -> selected source structures. Each step has selected structure, captured structure, coarsening, abstraction, omission, loss, and return conditions. An architecture description is often already a coarsened representation of selected real, expected, candidate, or actual structures, so the DPF carrier must not hide that second-step loss. This does not make every DPF a literary narrative or make every carrier a narrative; it makes the publication/access representation relation inspectable. When a sequential narrative rendering is load-bearing, use[A.6.3.NAR](/generated/patterns/A.6.3.NAR); when the publication expression deliberately keeps only a narrower-use coarsened rendering, use[A.6.3.CSC](/generated/patterns/A.6.3.CSC); for structure capture and loss, use[C.33](/generated/patterns/C.33); for same-enough or preservation claims, use[C.34](/generated/patterns/C.34); for first-entry publication, use[E.11](/generated/patterns/E.11)and[E.17](/generated/patterns/E.17); for package adequacy, use[E.4.DPF.DA](/generated/patterns/E.4.DPF.DA).
Keep process state out of the carrier. DRR text, handoff notes, ledger rows, review status, helper state, admission blockers, and landing evidence may shape the package, but the publication carrier should contain only durable user-facing package content, source-use boundaries, relation records, quality routes, and refresh conditions. A short source-use or relation record may appear in the user carrier when it helps readers and maintainers use the DPF; a DRR argument, review transcript, or quality proof does not.
For skill packs and MCP-backed access, keep the same framework edition identity and relation records visible. A skill or endpoint may help a user find, select, retrieve, render, or apply DPF patterns, but it is an access carrier until another governing pattern makes a stronger claim. If the carrier generates candidate text, use [C.35](/generated/patterns/C.35); if it performs work or triggers tools, use [A.15](/generated/patterns/A.15) and the local tool or work owner; if it claims currentness, evidence, assurance, or decision authority, use [G.11](/generated/patterns/G.11), [A.10](/generated/patterns/A.10), [B.3](/generated/patterns/B.3), [E.9](/generated/patterns/E.9), or the direct owner. Do not read a skill manifest, MCP tool name, endpoint schema, or protocol route as the DPF architecture.
Starter evaluation characteristics for a principle-framework improvement loop:
These are evaluation characteristics for selecting and framing improvement work. They are not measurement programs by themselves. If the pass needs a DPF package adequacy result, use [E.4.DPF.DA](/generated/patterns/E.4.DPF.DA); if it needs individual pattern quality, use [E.21](/generated/patterns/E.21); if it needs DRR adequacy, FPF-level Pillar adequacy, measurement, evidence, or architecture-characteristic evaluation, use the pattern that owns that object, such as [E.9.DA](/generated/patterns/E.9.DA), [E.2.DA](/generated/patterns/E.2.DA), [C.16](/generated/patterns/C.16), [A.10](/generated/patterns/A.10), or the relevant architecture-characteristic pattern.
The spine is complete only when a reader can answer: what framework edition is being authored, what problem-and-solution architecture it renders, which sources and decisions shaped it, which patterns and relations were selected, where it is published, how quality improves, and when it returns for refresh or repair.
Archetypal Grounding
Tell: A hydroponic-cucumber framework begins with crop-production concerns, horticulture and greenhouse-control sources, local examples, and FPF Core dependency. Its first all-in-one publication carrier is for domain users, while relation records, source packs, and quality evaluations remain separately recoverable.
Show: A neural-network architecture framework may draw on dataflow architecture, model components, training and inference concerns, evaluation practice, and recent architecture-analysis work. The framework can describe layers, blocks, flows, optimization constraints, and interpretability concerns, but each pattern must still be grounded through G.2, drafted through E.8, and related through E.4.PFR.
Show: A workspace-specific Codex process framework can contain prelanding and baton-handoff patterns. It should state its local context, dependency on FPF Core, process sources, local carriers, and refresh route. A useful local checklist stays a local checklist until it has source grounding, pattern bodies, relation records, and quality evaluation.
Show: An enterprise local practice framework for architecture review starts from the organization's review context, internal policies, proprietary examples, and approval path. It can depend on FPF Core and on a domain principle framework, but its confidential evidence, role assignments, training plan, and rollout telemetry stay local.
Enterprise local-practice slice:
Replayable authoring slice:
Bias-Annotation
The first drift is source-summary confidence: a summary feels sufficient because it names the right domain terms. The repair is to turn sources into a G.2 source pack with adopted and rejected payload, then carry that payload into pattern solutions and examples.
The second drift is publication-carrier-first authoring. The repair is not to delay publication forever; it is to publish after the architecture decision, relation records, and source-return notes are recoverable.
Conformance Checklist
Common Anti-Patterns and How to Avoid Them
Adoption risk tripwires:
Consequences
The authoring spine adds overhead before a local framework becomes durable. That overhead prevents hidden source loss, hidden Core change, hidden relation semantics, and hidden currentness debt.
The pattern also makes local publication more useful. Readers get a coherent publication carrier or first-entry carrier, while maintainers can still inspect the framework edition, source pack, relation records, decision records, and quality route.
Rationale
Domain and local frameworks are not mere subsets of FPF. They are FPF-grounded framework editions in bounded contexts. They need domain source work, FPF authoring discipline, architecture decisions, relation records, quality loops, and refresh routes.
The pattern keeps the work practical by using existing FPF owners instead of inventing a second framework-development ontology. Its contribution is the ordered spine and the requirement that each produced artifact has a receiving owner.
SoTA-Echoing
Relations
- Uses:
G.2for source pack and SoTA synthesis. - Uses:
E.8,E.10, andF.18for pattern drafting, kind discipline, and names. - Coordinates with:
E.4for family membership andE.4.PFADfor architecture decisions. - Coordinates with:
E.4.PFRfor relation, dependency, edition, compatibility, deprecation, and supersession records. - Coordinates with:
C.33,C.34, andC.35for carrier preservation and admission. - Coordinates with:
E.22for quality-evaluation framing when needed,E.4.DPF.DAfor DPF package adequacy,E.21for pattern-quality evaluation,E.23for repeated improvement,E.19for admission or profile gating when claimed, andG.11for currentness. - Exits to:
E.11andE.17when the live problem is publication or first-entry discoverability rather than framework authoring.
E.4.DPF:End
Last Updated: 2026-06-30 — this section last modified in upstream FPF commit 9087581a (github.com/ailev/FPF)