@@ -101,6 +101,13 @@ and only when, they appear in all capitals, as shown here.
101101 delegation chain to a resource domain.
102102- ** Access PoAR:** The Proof-of-Action receipt written by the enforcing CEP
103103 (defined in PSP-2).
104+ - ** Local Availability:** An artifact (Grant, revocation state, lattice
105+ snapshot, comparator or other evaluation input) is "locally available" at
106+ enforcement if it can be accessed by the CEP without network I/O, within
107+ TAP-defined resource bounds, at the moment verification begins.
108+ Pre-enforcement resolution (governed by TAP) MAY populate local storage before
109+ verification starts. During Program evaluation, any missing required input
110+ MUST cause denial.
104111- ** TAP (Threat and Acceptance Policy):** The acceptance policy that governs
105112 time discipline, chain depth and anchoring requirements, resolver/mirroring
106113 allowances, replay defenses, and other deployment-specific constraints used by
@@ -536,14 +543,15 @@ action in A over any resource in R"). Use PairSet when the matrix is irregular.
536543- CEPs MUST verify subset relations hop-by-hop along the delegation chain using
537544 the same normalization and comparators; failures or unknowns MUST cause deny.
538545
539- ### 5.8 Specification Profiles
546+ ### 5.8 TAP constraints
540547
541- This specification standardizes exactly three Declaration kinds: PairSet,
542- ActionSet, ResourceSet. Specification Profiles MAY further constrain their usage
543- (e.g., disallow ResourceSet for certain actions) or prescribe default
544- comparators per scheme. A CEP MUST deny if a Program references a declaration
545- kind not supported by the active profile or if a required comparator is not
546- available.
548+ PSP-1 standardizes exactly three declaration kinds: PairSet, ActionSet and
549+ ResourceSet. Deployments may impose additional acceptance rules via their Threat
550+ & Acceptance Policy (TAP). For example, a TAP MAY disallow certain declaration
551+ kinds for particular actions or restrict which resource schemes are acceptable.
552+ When TAP forbids a declaration kind or a required scheme comparator is
553+ unavailable, the CEP MUST deny. These TAP constraints do not alter the semantics
554+ defined in this specification.
547555
548556## 6. Semantic Pinning
549557
@@ -1245,16 +1253,17 @@ A CEP MUST deny if any of the following holds:
12451253 ` { ("secret:read","vault:.../team/*"), ("secret:derive","vault:.../svcX") } `
12461254 - Child PairSet = ` { ("secret:read","vault:.../team/appA") } ` (valid subset).
12471255
1248- ### 11.9 Profiles
1249-
1250- - Profiles MAY introduce additional declaration kinds or builtins, but MUST
1251- preserve monotonicity, purity, bounded evaluation, and pinned semantics
1252- (` builtinsId ` ) with chain-wide compatibility. When a profile introduces new
1253- declaration kinds (e.g., a PolicyBundle), child bundles MUST be subsets of
1254- parent bundles under the registry-defined comparator for that kind.
1255- - Anchoring mechanics and acceptance policies are TAP-governed. PSP-1 is
1256- agnostic to how anchors are established; CEPs enforce anchoring only when TAP
1257- declares an applicable method for the resource domain.
1256+ ### 11.9 Extensibility
1257+
1258+ Future Polykey Standard Proposals MAY introduce additional declaration kinds or
1259+ builtins. Such extensions MUST preserve the core invariants of PSP-1:
1260+ monotonicity, purity, bounded evaluation and pinned semantics (` builtinsId ` )
1261+ with chain-wide compatibility. When a new specification introduces a declaration
1262+ kind (for example, a policy bundle), derived grants MUST ensure that child
1263+ bundles are subsets of parent bundles under the registry-defined comparator for
1264+ that kind. Anchoring mechanics and acceptance policies remain TAP-governed; this
1265+ specification remains agnostic to how anchors are established, and CEPs enforce
1266+ anchoring only when TAP declares an applicable method for the resource domain.
12581267
12591268## 12. Revocation and Rotation
12601269
0 commit comments