A.2.9:5 — Archetypal Grounding (Tell–Show–Show)
Preface node
heading:a-2-9-5-archetypal-grounding-tell-show-show:6477
What this page is
This is generated FPF reference text from the specification preface or supporting sections. It helps interpret FPF; it is not FPF Reference product documentation.
Methodology
Use it to understand how the specification wants to be read, then return to a route, pattern, or work packet for active work. Cite generated IDs only when the wording changes the task decision.
Content
A.2.9:5.1 — Tell (universal rule)
When governance or gating depends on “someone said/did X”, identify that saying/doing as an actual Work occurrence SA : U.SpeechAct. Add a SpeechActRecord only to state relied-on claims about it, and keep the utterance text and carriers separate. If the occurrence creates obligations, recommendations-as-duty, or prohibitions, cite explicit U.Commitment objects; if it creates strong permission, cite an explicit GrantedPermissionRelation@Context. The act institutes neither effect without the exact context policy.
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. The first line names the actual Work individual. The following episteme reports claims about it; those claims must be true independently.
-
Actual occurrence:
SA-Approve-4711 : U.SpeechAct -
SA-Approve-4711-Record : SpeechActRecordspeechActOccurrenceRef = SpeechActRef(SA-Approve-4711)actTypes = {SpeechActTypeRef(Approval@ChangeControl)}performedBy = U.EntityRef(CAB_Chair_A)whereCAB_Chair_A : U.SystemperformedUnderAssignment = RoleAssignmentRef(CAB_Chair_A@ApproverRole@ChangeControl)enactsMethodRef = U.EntityRef(ChangeApprovalMethod_v3); the actualenactsMethodrelation independently obtainsmethodDescriptionRef = EpistemeRef(ChangeApprovalProcedure_v3)reliancePosture = relianceReadyexecutedWithin = ChangeControlBoardSystemwindow = [t,t]judgementContextRef = ChangeControlutteranceSubjectRefs = {ChangeRequestId(4711)}institutionalTargetRefs = {GrantedPermissionRelationRef@ChangeControl(PER-Deploy-4711)}utteranceRefs = {EpistemeRef(ChangeTicket#4711)}carrierRefs = {CarrierRef(TicketSystemRecord#4711)}institutes.permissions = {GrantedPermissionRelationRef@ChangeControl(PER-Deploy-4711)}
-
GrantedPermissionRelation@ChangeControl PER-Deploy-4711beneficiaryRef = RoleAssignmentRef(OpsBot#DeployerRole:CD_Pipeline_v7)permittedActionSpecificationRef = EpistemeRef(DeployChange4711WorkSpecification)institutingSpeechActRef = SA-Approve-4711grantorAssignmentRef = RoleAssignmentRef(CAB_Chair_A@ApproverRole@ChangeControl)grantValidityPolicyRef = EpistemeRef(ChangeControlGrantPolicy_v3)scope,validityWindow, and revocation stance are explicit.
The utterance is about ChangeRequestId(4711); its policy-selected institutional target and demonstrated effect are the separately obtaining grant occurrence. Nothing here claims that the change-request entity itself changed.
- Gate predicate
A-Gate-Deploy-4711independently states whether deployment entry conditions hold. It may checkexists SpeechAct(type=Approval, utteranceSubjectRefs includes ChangeRequestId(4711), performedBy=CAB_Chair_A, performedUnderAssignment role=ApproverRole, within 90d), consume the current grant occurrence, and apply other prerequisites; passing the gate neither institutes nor equals the grant.
This preserves:
- kind vs actual act vs record vs utterance text vs carrier vs enduring grant,
- explicit performer and grant beneficiary,
- time window and policy for currentness,
- explicit provenance from the grant to the instituting act, and
- the distinction between strong permission and an admissibility gate.
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. SA-Publish-API-v12 is the actual occurrence; the record is a separate episteme about it.
-
Actual occurrence:
SA-Publish-API-v12 : U.SpeechAct -
SA-Publish-API-v12-Record : SpeechActRecordspeechActOccurrenceRef = SpeechActRef(SA-Publish-API-v12)actTypes = {SpeechActTypeRef(Publish@APISpecContext), SpeechActTypeRef(DeclareNorms@APISpecContext)}performedBy = U.EntityRef(StandardsEditor_A)whereStandardsEditor_A : U.SystemperformedUnderAssignment = RoleAssignmentRef(StandardsEditor_A@PublisherRole@APISpecContext)enactsMethodRef = U.EntityRef(SpecPublicationMethod_v12); the actualenactsMethodrelation independently obtainsmethodDescriptionRef = EpistemeRef(SpecReleaseProcedure_v12)reliancePosture = relianceReadyexecutedWithin = SpecPublicationSystemwindow = [t,t]judgementContextRef = APISpecContextutteranceSubjectRefs = {EpistemeRef(APISpec_v12)}institutionalTargetRefs = {EpistemeRef(APISpec_v12)}utteranceRefs = {EpistemeRef(APISpec_v12)}carrierRefs = {CarrierRef(GitTag:v12), CarrierRef(SignedReleaseArtifact:v12)}institutes.publicationRelations = {EpistemePublicationRelationRef(APISpec-v12-Publication)}
-
APISpec-v12-Publication : EpistemePublicationRelationseparately names the selectedAPISpec_v12edition, audience declaration, bounded-use declaration, publication form, and exact carrier; it obtains only while that edition is available under E.24.PUB.
The same APISpec_v12 episteme is both the subject of the publication utterance and the object made available by the publication relation, but those are different relations. The act does not thereby change the spec's claim content or make the episteme an actor. If D-StdStatus-APISpec_v12-Published is needed, keep it as a separate C.2.1 claim about the publication occurrence and cite its evidence through A.10; do not put the claim in institutes. Norms live in the published utterance descriptions, while the act of publication is performed by StandardsEditor_A under its publisher assignment.
Last Updated: 2026-07-28 — upstream FPF commit 17edd955 (github.com/ailev/FPF)