rcf-lite 0.28.2 → 0.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/bin/rcf.js +4 -0
  3. package/fixtures/canary-manifest.json +9 -9
  4. package/package.json +1 -1
  5. package/rcf/adrs/adr-4120-canonical-json-hashing.json +30 -0
  6. package/rcf/adrs/adr-4121-define-sidecars.json +30 -0
  7. package/rcf/adrs/adr-4122-define-gates-blocking-and-optout.json +30 -0
  8. package/rcf/adrs/adr-4123-readiness-single-object.json +30 -0
  9. package/rcf/code-nodes/cn-700.json +23 -0
  10. package/rcf/code-nodes/cn-701.json +14 -0
  11. package/rcf/code-nodes/cn-702.json +14 -0
  12. package/rcf/code-nodes/cn-703.json +16 -0
  13. package/rcf/code-nodes/cn-720.json +15 -0
  14. package/rcf/code-nodes/cn-721.json +15 -0
  15. package/rcf/code-nodes/cn-722.json +15 -0
  16. package/rcf/code-nodes/cn-723.json +18 -0
  17. package/rcf/code-nodes/cn-724.json +14 -0
  18. package/rcf/code-nodes/cn-725.json +21 -0
  19. package/rcf/code-nodes/cn-726.json +17 -0
  20. package/rcf/code-nodes/cn-727.json +14 -0
  21. package/rcf/code-nodes/cn-728.json +21 -0
  22. package/rcf/code-nodes/cn-729.json +18 -0
  23. package/rcf/code-nodes/cn-730.json +14 -0
  24. package/rcf/fbs/fbs-190.json +37 -0
  25. package/rcf/fbs/fbs-191.json +34 -0
  26. package/rcf/fbs/fbs-192.json +17 -0
  27. package/rcf/fbs/fbs-193.json +37 -0
  28. package/rcf/fbs/fbs-194.json +35 -0
  29. package/rcf/fbs/fbs-195.json +37 -0
  30. package/rcf/fbs/fbs-196.json +37 -0
  31. package/rcf/fbs/fbs-197.json +41 -0
  32. package/rcf/requirements/req-001.json +2 -1
  33. package/rcf/requirements/req-002.json +2 -1
  34. package/rcf/requirements/req-003.json +2 -1
  35. package/rcf/requirements/req-004.json +2 -1
  36. package/rcf/requirements/req-005.json +2 -1
  37. package/rcf/requirements/req-006.json +2 -1
  38. package/rcf/requirements/req-007.json +2 -1
  39. package/rcf/requirements/req-008.json +2 -1
  40. package/rcf/requirements/req-009.json +2 -1
  41. package/rcf/requirements/req-010.json +5 -2
  42. package/rcf/requirements/req-011.json +2 -1
  43. package/rcf/requirements/req-012.json +2 -1
  44. package/rcf/requirements/req-013.json +2 -1
  45. package/rcf/requirements/req-014.json +2 -1
  46. package/rcf/requirements/req-015.json +2 -1
  47. package/rcf/requirements/req-016.json +5 -2
  48. package/rcf/requirements/req-017.json +6 -2
  49. package/rcf/requirements/req-018.json +5 -2
  50. package/rcf/requirements/req-019.json +5 -2
  51. package/rcf/requirements/req-020.json +5 -2
  52. package/rcf/requirements/req-021.json +5 -2
  53. package/rcf/requirements/req-022.json +5 -2
  54. package/rcf/requirements/req-023.json +6 -4
  55. package/rcf/requirements/req-024.json +5 -2
  56. package/rcf/requirements/req-025.json +5 -2
  57. package/rcf/requirements/req-026.json +5 -2
  58. package/rcf/requirements/req-027.json +5 -2
  59. package/rcf/requirements/req-028.json +5 -2
  60. package/rcf/requirements/req-029.json +5 -2
  61. package/rcf/requirements/req-030.json +5 -2
  62. package/rcf/requirements/req-040.json +5 -2
  63. package/rcf/requirements/req-041.json +5 -2
  64. package/rcf/requirements/req-042.json +5 -2
  65. package/rcf/requirements/req-043.json +5 -2
  66. package/rcf/requirements/req-050.json +5 -2
  67. package/rcf/requirements/req-051.json +5 -2
  68. package/rcf/requirements/req-052.json +5 -2
  69. package/rcf/requirements/req-053.json +5 -2
  70. package/rcf/requirements/req-054.json +5 -2
  71. package/rcf/requirements/req-060.json +5 -2
  72. package/rcf/requirements/req-061.json +5 -2
  73. package/rcf/requirements/req-062.json +5 -2
  74. package/rcf/requirements/req-063.json +5 -2
  75. package/rcf/requirements/req-070.json +5 -2
  76. package/rcf/requirements/req-071.json +5 -2
  77. package/rcf/requirements/req-072.json +5 -2
  78. package/rcf/requirements/req-073.json +5 -2
  79. package/rcf/requirements/req-074.json +5 -2
  80. package/rcf/requirements/req-075.json +5 -2
  81. package/rcf/requirements/req-076.json +5 -2
  82. package/rcf/requirements/req-077.json +5 -2
  83. package/rcf/requirements/req-080.json +5 -2
  84. package/rcf/requirements/req-081.json +5 -2
  85. package/rcf/requirements/req-082.json +5 -2
  86. package/rcf/requirements/req-083.json +5 -2
  87. package/rcf/requirements/req-084.json +5 -2
  88. package/rcf/requirements/req-085.json +5 -2
  89. package/rcf/requirements/req-086.json +5 -2
  90. package/rcf/requirements/req-090.json +5 -2
  91. package/rcf/requirements/req-091.json +5 -2
  92. package/rcf/requirements/req-092.json +5 -2
  93. package/rcf/requirements/req-093.json +5 -2
  94. package/rcf/requirements/req-094.json +5 -2
  95. package/rcf/requirements/req-100.json +5 -2
  96. package/rcf/requirements/req-101.json +5 -2
  97. package/rcf/requirements/req-102.json +5 -2
  98. package/rcf/requirements/req-103.json +5 -2
  99. package/rcf/requirements/req-104.json +5 -2
  100. package/rcf/requirements/req-110.json +5 -2
  101. package/rcf/requirements/req-111.json +5 -2
  102. package/rcf/requirements/req-112.json +5 -2
  103. package/rcf/requirements/req-113.json +5 -2
  104. package/rcf/requirements/req-114.json +5 -2
  105. package/rcf/requirements/req-115.json +5 -2
  106. package/rcf/requirements/req-120.json +5 -2
  107. package/rcf/requirements/req-121.json +5 -2
  108. package/rcf/requirements/req-122.json +5 -2
  109. package/rcf/requirements/req-123.json +5 -2
  110. package/rcf/requirements/req-124.json +5 -2
  111. package/rcf/requirements/req-125.json +5 -2
  112. package/rcf/requirements/req-130.json +6 -2
  113. package/rcf/requirements/req-131.json +6 -2
  114. package/rcf/requirements/req-132.json +6 -2
  115. package/rcf/requirements/req-133.json +6 -2
  116. package/rcf/requirements/req-134.json +6 -2
  117. package/rcf/requirements/req-140.json +5 -2
  118. package/rcf/requirements/req-145.json +5 -2
  119. package/rcf/requirements/req-150.json +6 -2
  120. package/rcf/requirements/req-151.json +6 -2
  121. package/rcf/requirements/req-152.json +6 -2
  122. package/rcf/requirements/req-153.json +6 -2
  123. package/rcf/requirements/req-154.json +5 -2
  124. package/rcf/requirements/req-155.json +4 -1
  125. package/rcf/requirements/req-156.json +4 -1
  126. package/rcf/requirements/req-157.json +4 -1
  127. package/rcf/requirements/req-158.json +4 -1
  128. package/rcf/requirements/req-159.json +4 -1
  129. package/rcf/requirements/req-160.json +4 -1
  130. package/rcf/requirements/req-161.json +4 -1
  131. package/rcf/requirements/req-162.json +4 -1
  132. package/rcf/requirements/req-163.json +5 -2
  133. package/rcf/requirements/req-164.json +5 -2
  134. package/rcf/requirements/req-165.json +5 -2
  135. package/rcf/requirements/req-170.json +33 -0
  136. package/rcf/requirements/req-171.json +44 -0
  137. package/rcf/requirements/req-172.json +25 -0
  138. package/rcf/requirements/req-173.json +25 -0
  139. package/rcf/requirements/req-174.json +25 -0
  140. package/rcf/requirements/req-175.json +25 -0
  141. package/rcf/tacs/tac-4120-define-delta-and-freeze.json +21 -0
  142. package/rcf/tacs/tac-4121-define-ledgers.json +23 -0
  143. package/rcf/tacs/tac-4122-define-gates.json +25 -0
  144. package/rcf/tacs/tac-4123-define-readiness.json +25 -0
  145. package/rcf/test-suites/ts-204.json +30 -0
  146. package/rcf/test-suites/ts-205.json +22 -0
  147. package/rcf/test-suites/ts-206.json +22 -0
  148. package/rcf/test-suites/ts-207.json +22 -0
  149. package/rcf/test-suites/ts-208.json +22 -0
  150. package/rcf/test-suites/ts-209.json +22 -0
  151. package/rcf/test-suites/ts-210.json +22 -0
  152. package/rcf/test-suites/ts-211.json +22 -0
  153. package/rcf/test-suites/ts-212.json +22 -0
  154. package/rcf/test-suites/ts-213.json +50 -0
  155. package/rcf/test-suites/ts-214.json +74 -0
  156. package/rcf/test-suites/ts-215.json +67 -0
  157. package/rcf/test-suites/ts-216.json +78 -0
  158. package/rcf/test-suites/ts-217.json +62 -0
  159. package/rcf/user-stories/us-15601.json +4 -4
  160. package/rcf/user-stories/us-17001.json +27 -0
  161. package/rcf/user-stories/us-17002.json +22 -0
  162. package/rcf/user-stories/us-17003.json +22 -0
  163. package/rcf/user-stories/us-17004.json +22 -0
  164. package/rcf/user-stories/us-17005.json +22 -0
  165. package/rcf/user-stories/us-17006.json +21 -0
  166. package/rcf/user-stories/us-17007.json +21 -0
  167. package/rcf/user-stories/us-17008.json +22 -0
  168. package/rcf/user-stories/us-17101.json +22 -0
  169. package/rcf/user-stories/us-17102.json +22 -0
  170. package/rcf/user-stories/us-17201.json +38 -0
  171. package/rcf/user-stories/us-17301.json +38 -0
  172. package/rcf/user-stories/us-17401.json +58 -0
  173. package/rcf/user-stories/us-17501.json +48 -0
  174. package/releases/releases.yaml +21 -1
  175. package/src/cli/feedback.js +126 -10
  176. package/src/cli/help.js +11 -0
  177. package/src/cli/ledger.js +399 -0
  178. package/src/cli/readiness.js +280 -0
  179. package/src/core/store/writer.js +86 -6
  180. package/src/define/freeze-record.js +232 -0
  181. package/src/define/ledgers.js +513 -0
  182. package/src/feedback/redact.js +105 -19
  183. package/src/query/delta.js +276 -0
  184. package/src/query/gates.js +832 -0
  185. package/src/query/index.js +36 -0
  186. package/src/query/readiness.js +333 -0
  187. package/src/server/index.js +37 -0
  188. package/src/server/routes.js +65 -3
  189. package/src/view/doc-renderers/helpers.js +2 -2
  190. package/src/view/doc-renderers/req.js +10 -2
  191. package/src/view/doc-renderers/user-story.js +10 -5
  192. package/src/view/html-page.js +347 -28
  193. package/src/view/index.js +14 -1
  194. package/src/view/live-client.js +22 -2
  195. package/src/view/product-map.js +751 -0
  196. package/src/view/style.css +378 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T16:21:15.850Z",
3
- "updatedAt": "2026-09-04T16:22:11.909Z",
3
+ "updatedAt": "2026-09-21T17:00:00.000Z",
4
4
  "description": "rcf-schemas 0.6.0 lands the EVAL doc type and the AC-level determinism marker. rcf-lite consumes both: rcf audit eval coverage as a sibling of rcf audit coverage, EVAL-MISSING and EVAL-BELOW-THRESHOLD as per-AC verdicts on the verify report, finalise refusal with a mandatory-reason ship-without-eval opt-out, and a determinism flag on rcf define create ac plus the LLM-as-judge subprocess spawn wired to a runRecord entry on the EVAL doc. The eval-node discipline lives in the schema tier; rcf-lite is the first consumer to make it observable at every stage of the build cycle.",
5
5
  "reqId": "REQ-016",
6
6
  "prdId": "PRD-001",
@@ -33,5 +33,8 @@
33
33
  "match": "schema"
34
34
  }
35
35
  ]
36
- }
36
+ },
37
+ "tags": [
38
+ "capability:requirements-authoring"
39
+ ]
37
40
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T17:59:20.149Z",
3
- "updatedAt": "2026-09-04T17:59:34.348Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-017",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Blueprint-shipped browser-verify probe packs with FBS-scoped applicability",
@@ -14,5 +14,9 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-04T17:59:20.168Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:verify",
20
+ "capability:blueprint-library"
21
+ ]
18
22
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T20:05:06.758Z",
3
- "updatedAt": "2026-09-04T20:05:16.473Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-018",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Application-datatable v1.0.0 blueprint on the shelf with its Playwright probe pack and sample-app fixture",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-04T20:05:06.779Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:applications-shelf"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T21:08:13.117Z",
3
- "updatedAt": "2026-09-04T21:08:13.139Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "The rcf-lite shelf ships the application-charts v1.0.0 blueprint (blueprints/application-charts/) with 15 contributions (4 REQs, 6 USs binding runtime-observable ACs, 2 TACs, 3 ADRs), a shipped Playwright probe pack (blueprints/application-charts/probe-packs/application-charts.pack.mjs) whose three checks (AC-18102-1 non-colour distinction, AC-18103-1 text-alternative table, AC-18104-1 keyboard traversal with reduced motion) are anchored to blueprint AC ids per T-0 AC-1701-3, and a dependency-free sample-app fixture (packages/rcf-lite/test/fixtures/probe-pack-application-charts/) the pack probes at the shelf gate. The blueprint is the ratification of the visual round T-2 (spec 2026-09-04 section 5.2), the second shipped consumer of T-0's probe-pack runner extension, and the leaf blueprint the application-dashboard T-3 consumes.",
5
5
  "category": "functional",
6
6
  "domain": "application",
@@ -34,5 +34,8 @@
34
34
  "match": "dashboard"
35
35
  }
36
36
  ]
37
- }
37
+ },
38
+ "tags": [
39
+ "capability:applications-shelf"
40
+ ]
38
41
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T22:10:00.000Z",
3
- "updatedAt": "2026-09-04T22:10:00.000Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-020",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Application-dashboard v1.0.0 blueprint on the shelf with its packaged design-guidance asset, Playwright probe pack and sample-app fixture",
@@ -9,5 +9,8 @@
9
9
  "domain": "application",
10
10
  "priority": "must",
11
11
  "version": "0.1.0",
12
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
13
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-04T23:59:00.000Z",
3
- "updatedAt": "2026-09-04T23:59:00.000Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-021",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Application-notifications-in-app v1.0.0 blueprint on the shelf with its Playwright probe pack and sample-app fixture",
@@ -9,5 +9,8 @@
9
9
  "domain": "application",
10
10
  "priority": "must",
11
11
  "version": "0.1.0",
12
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
13
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-05T01:30:00.000Z",
3
- "updatedAt": "2026-09-05T01:30:00.000Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-022",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Capability-declaration mechanism (capabilities[], elicits[], apply-time discovery, refusal and custom-auth elicitation) and four auth-blueprint 1.1.0 minors adopting it",
@@ -9,5 +9,8 @@
9
9
  "domain": "application",
10
10
  "priority": "must",
11
11
  "version": "0.1.0",
12
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
13
16
  }
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "createdAt": "2026-09-05T01:30:00.000Z",
3
- "updatedAt": "2026-09-05T01:30:00.000Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-023",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Application-admin-console v1.0.0 blueprint on the shelf with capability-gated surfaces, a Playwright probe pack and a sample-app fixture",
7
- "description": "The rcf-lite shelf ships the application-admin-console v1.0.0 blueprint (blueprints/application-admin-console/) with 23 contributions (6 REQs on the console shell with no dead links to unapplied capabilities, the users surface conditional on principalDirectory, the roles surface conditional on roleModel with Owner + Admin + Member + Viewer baseline, the orgs surface conditional on tenancy, the audit-log surface conditional on the auditLog logging companion, and the access-denied and request-access states per WCAG; 9 USs 21101-21109 binding runtime-observable ACs plus the conditional-refusal apply-time behaviour; 4 TACs 2201-2204 on the console shell reading the surface manifest, the apply-time capability discovery, the permission matrix as an ARIA APG grid, and the audit view consuming application-datatable; 4 ADRs 2201-2204 on the capability vocabulary, baseline roles with elicited additions, invite transport with email default delegated to the email sibling and elicited, and audit-log retention window elicited). The blueprint declares requiresAppliedCapabilities: [principalDirectory] and allowSkipFlag: allow-no-auth-yet so a bare-SPA apply refuses with exit 3 and the spec 5.5.1 verbatim message naming security-auth-*; the override records a note on the applied record. Declares elicits[] gating baselineRoles (only when roleModel is applied), tenancyShape (only when tenancy is applied), inviteTransport, and auditRetentionDays (only when auditLog is applied). Declares suggestedCompanions logging and errorHandling with the ratified spec section 5.5 reasons; providesRoles absent per spec 5.5.3 (the console is a consumer of principalDirectory, never a provider). Ships a Playwright probe pack under blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs whose four checks (AC-21102-1 users directory, AC-21103-1 permission matrix, AC-21104-1 org switcher, AC-21105-1 audit-log surface) each carry an appliesTo predicate that reads manifest.blueprints[] and the read-back capabilities so an inapplicable check records applicable: false and the aggregate verdict treats it as neither pass nor fail. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-admin-console/ with a CAPS env or query switch selecting which surfaces exist (mirrors the applied capability set so the sample app plays every fixture), a console shell whose nav only links applied surfaces, a users directory table with per-row invite and deactivate controls enumerated by data-user-id, a permission matrix rendered as an ARIA APG grid with role=grid, role=row, role=gridcell, role=rowheader on role rows and role=columnheader on permission columns announcing the exact permission string on focus (WCAG 4.1.3), an org switcher (only under tenancy), an audit-log table with actor / target / before / after / timestamp / correlation id enumerated by data-audit-id, an access-denied route with a request-access control, request log on window.__adminFetches and /__requests, and break switches for the negative runs (matrix-grid, denied, audit-fields). Reads applied capabilities from the rcf/blueprints/application-admin-console.applied.json sidecar or from an ADMIN_CONSOLE_CAPS env override so the fixture can play fixtures (b) SPA + magic-link, (c) SPA + clerk + logging, and (d) custom-auth elicited capabilities. Fifth shipped consumer of T-0's probe-pack runner extension; consumes application-datatable (T-1) for the users directory and audit views."
8
- ,
7
+ "description": "The rcf-lite shelf ships the application-admin-console v1.0.0 blueprint (blueprints/application-admin-console/) with 23 contributions (6 REQs on the console shell with no dead links to unapplied capabilities, the users surface conditional on principalDirectory, the roles surface conditional on roleModel with Owner + Admin + Member + Viewer baseline, the orgs surface conditional on tenancy, the audit-log surface conditional on the auditLog logging companion, and the access-denied and request-access states per WCAG; 9 USs 21101-21109 binding runtime-observable ACs plus the conditional-refusal apply-time behaviour; 4 TACs 2201-2204 on the console shell reading the surface manifest, the apply-time capability discovery, the permission matrix as an ARIA APG grid, and the audit view consuming application-datatable; 4 ADRs 2201-2204 on the capability vocabulary, baseline roles with elicited additions, invite transport with email default delegated to the email sibling and elicited, and audit-log retention window elicited). The blueprint declares requiresAppliedCapabilities: [principalDirectory] and allowSkipFlag: allow-no-auth-yet so a bare-SPA apply refuses with exit 3 and the spec 5.5.1 verbatim message naming security-auth-*; the override records a note on the applied record. Declares elicits[] gating baselineRoles (only when roleModel is applied), tenancyShape (only when tenancy is applied), inviteTransport, and auditRetentionDays (only when auditLog is applied). Declares suggestedCompanions logging and errorHandling with the ratified spec section 5.5 reasons; providesRoles absent per spec 5.5.3 (the console is a consumer of principalDirectory, never a provider). Ships a Playwright probe pack under blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs whose four checks (AC-21102-1 users directory, AC-21103-1 permission matrix, AC-21104-1 org switcher, AC-21105-1 audit-log surface) each carry an appliesTo predicate that reads manifest.blueprints[] and the read-back capabilities so an inapplicable check records applicable: false and the aggregate verdict treats it as neither pass nor fail. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-admin-console/ with a CAPS env or query switch selecting which surfaces exist (mirrors the applied capability set so the sample app plays every fixture), a console shell whose nav only links applied surfaces, a users directory table with per-row invite and deactivate controls enumerated by data-user-id, a permission matrix rendered as an ARIA APG grid with role=grid, role=row, role=gridcell, role=rowheader on role rows and role=columnheader on permission columns announcing the exact permission string on focus (WCAG 4.1.3), an org switcher (only under tenancy), an audit-log table with actor / target / before / after / timestamp / correlation id enumerated by data-audit-id, an access-denied route with a request-access control, request log on window.__adminFetches and /__requests, and break switches for the negative runs (matrix-grid, denied, audit-fields). Reads applied capabilities from the rcf/blueprints/application-admin-console.applied.json sidecar or from an ADMIN_CONSOLE_CAPS env override so the fixture can play fixtures (b) SPA + magic-link, (c) SPA + clerk + logging, and (d) custom-auth elicited capabilities. Fifth shipped consumer of T-0's probe-pack runner extension; consumes application-datatable (T-1) for the users directory and audit views.",
9
8
  "category": "functional",
10
9
  "domain": "application",
11
10
  "priority": "must",
12
11
  "version": "0.1.0",
13
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
14
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T15:38:14.226Z",
3
- "updatedAt": "2026-09-06T15:38:14.250Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "category": "functional",
5
5
  "domain": "application",
6
6
  "priority": "must",
@@ -65,5 +65,8 @@
65
65
  "match": "form"
66
66
  }
67
67
  ]
68
- }
68
+ },
69
+ "tags": [
70
+ "capability:applications-shelf"
71
+ ]
69
72
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T16:55:02.404Z",
3
- "updatedAt": "2026-09-06T16:56:22.580Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "The rcf-lite shelf ships the application-file-upload v1.0.0 blueprint (blueprints/application-file-upload/) with 18 to 22 contributions (5 REQs on the input contract with a labelled file input plus drop-zone plus keyboard alternative per WCAG 2.5.7, the progress contract with per-file percent plus aggregate percent plus polite live-region tick, the refusal contract with MIME-type refusal and size-limit refusal and virus-scan hit and aria-describedby error binding and focus-to-retry, the transport contract with chunked-and-resumable and multipart POST default and tus.io elicited alternative, and the completion contract with an assertive-slot announcement on success per WCAG 4.1.3 and per-file remove and retry; 7 USs 23101 to 23107 one per REQ plus two cross-cutting cases network-interruption resumption and background-tab progress; 3 TACs 2401 input surface, 2402 transport contract, 2403 progress announcer; 3 ADRs 2401 transport across multipart POST and tus.io and per-vendor SDK with recommendedDefault true on multipart and elicited true, 2402 accepted MIME set and per-file size cap with elicited true, 2403 virus-scan integration via operator-supplied verifier through a capability plus elicit with elicited true). Declares suggestedCompanions logging and errorHandling with reasons from spec section 5.2; providesRoles absent; capabilities absent; requiresAppliedCapabilities absent. Ships a Playwright probe pack under blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs with four surface-observable checks anchored to TAC-2401 or an operator-configured upload-route glob. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-file-upload/ realising both transport branches multipart POST and tus.io honestly plus break switches so each check refuses on its own defect. Seventh shipped consumer of T-0's probe-pack runner extension.",
5
5
  "reqId": "REQ-025",
6
6
  "prdId": "PRD-001",
@@ -55,5 +55,8 @@
55
55
  }
56
56
  ]
57
57
  },
58
- "rationale": "Per visual round 4 spec section 5.2 (2026-09-06)."
58
+ "rationale": "Per visual round 4 spec section 5.2 (2026-09-06).",
59
+ "tags": [
60
+ "capability:applications-shelf"
61
+ ]
59
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T19:03:15.348Z",
3
- "updatedAt": "2026-09-06T19:07:15.107Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "The rcf-lite shelf ships the application-forms-wizard v1.0.0 blueprint (blueprints/application-forms-wizard/) with 19 contributions (5 REQs on the task-list contract with the closed GOV.UK vocabulary Cannot start yet plus Not started plus In progress plus Completed with an ARIA progressbar wrapper, the per-step validation timing rule on-blur before first submit then on-change after first failure and a full pass on submit reusing SPA forms-engine TAC-205 per WCAG 2.2 SC 3.3.1 and 3.3.3, the error-summary contract with a top-of-page summary and skip links per failed field with aria-invalid true on the field and aria-describedby to the per-field error message and focus moved to the summary heading on submit failure, the summary-review contract with a summary-list rendering per step with Change links returning to each step and every other answer retained on save per WCAG 2.2 SC 3.3.4, the save-and-return contract with a server-side draft table or a client-side local buffer with a per-write ISO-8601 sync tick with the pack refusing to ship if neither is wired per WCAG 2.2 SC 3.3.7; 8 USs 24101 to 24108 one per REQ plus three cross-cutting cases linear-vs-free navigation, in-progress list and no-in-progress empty state delegated to application-empty-error-states; 3 TACs 2501 task-list shell and 2502 error-summary contract and 2503 draft store; 3 ADRs 2501 navigation posture linear default with elicited free branch, 2502 save-and-return transport across server-draft-table and client-local-buffer elicited with NO recommendedDefault because the abandoned-draft loss class does not ship silently, 2503 step indicator across task-list ARIA progressbar and breadcrumb with recommendedDefault true on task-list). Declares suggestedCompanions logging and errorHandling with reasons from spec section 5.3; providesRoles absent; capabilities absent; requiresAppliedCapabilities absent. Ships a Playwright probe pack under blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs with four surface-observable checks anchored to TAC-2501 or an operator-configured wizard-route glob. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-forms-wizard/ realising the four wizard surfaces honestly plus both save-and-return transports server default and local elicited plus four break switches so each check refuses on its own defect. Eighth shipped consumer of T-0 probe-pack runner extension. Consumes application-empty-error-states for the no-in-progress empty state on the /in-progress list surface.",
5
5
  "reqId": "REQ-026",
6
6
  "prdId": "PRD-001",
@@ -150,5 +150,8 @@
150
150
  "match": "form"
151
151
  }
152
152
  ]
153
- }
153
+ },
154
+ "tags": [
155
+ "capability:applications-shelf"
156
+ ]
154
157
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T21:11:33.252Z",
3
- "updatedAt": "2026-09-06T21:11:33.281Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-4 shelf-blueprint track: application-account-settings v1.0.0 with 24 contributions 6 REQs 10 USs 25101 to 25110 4 TACs 2601 to 2604 4 ADRs 2601 to 2604; requiresAppliedCapabilities principalDirectory with allow-no-auth-yet override; 8 elicits; probe pack with 5 capability-gated checks anchored to AC-25101-1 AC-25102-1 AC-25105-1 AC-25106-1 AC-25108-1; sample-app fixture with 5 conditional surfaces and 4 break switches; rides with clerk 1.3.0 keycloak 1.2.0 oauth2 1.2.0 magic-link 1.2.0 doc-only observability-logging 1.2.0; mechanism minor for Q3 refusal and refusal template. Ninth shipped consumer of T-0 probe-pack runner.",
5
5
  "reqId": "REQ-027",
6
6
  "prdId": "PRD-001",
@@ -29,5 +29,8 @@
29
29
  "match": "template"
30
30
  }
31
31
  ]
32
- }
32
+ },
33
+ "tags": [
34
+ "capability:applications-shelf"
35
+ ]
33
36
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T23:02:59.779Z",
3
- "updatedAt": "2026-09-06T23:21:56.789Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-5 shelf-blueprint track of the ratified visual round 4 spec (2026-09-06 section 5.5): the application-onboarding-tour v1.0.0 blueprint on the shelf with 17 contributions (4 REQs step-manifest + tooltip-as-dialog + checklist-slot + completion-state; 7 USs 26101 to 26107; 3 TACs 2701 step-runner / 2702 checklist-slot / 2703 completion-store; 3 ADRs 2701 dismissal-policy / 2702 completion-store-shape / 2703 checklist-anchor). No requiresAppliedCapabilities (composes on SPA, dashboard, notifications-in-app, account-settings, any auth without hard dependency; documented fallback per Q4 spa-local-storage). Ships a Playwright probe pack with four surface-observable checks anchored to AC-26101-1 AC-26102-1 AC-26103-1 AC-26104-1, and a dependency-free sample-app fixture with the three-to-five step tour honestly realised plus four break switches (no-role, focus-escape, no-collapse, no-persist). Composes on application-dashboard for the dashboard-top anchor slot (with settings-page fallback), application-notifications-in-app for the checklist-completion announcement, application-account-settings for the restart-tour control home, application-spa for routing and iconography. suggestedCompanions logging and errorHandling; providesRoles absent; capabilities absent. Tenth shipped consumer of the T-0 probe-pack runner extension.",
5
5
  "reqId": "REQ-028",
6
6
  "prdId": "PRD-001",
@@ -9,5 +9,8 @@
9
9
  "domain": "application",
10
10
  "priority": "must",
11
11
  "version": "0.1.0",
12
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
13
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T09:09:31.207Z",
3
- "updatedAt": "2026-09-07T09:09:31.236Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-0 track of the ratified Cloudflare round 6 spec (2026-09-06 section 5.0). The rcf-lite shelf bumps the deploy-cloudflare-workers blueprint from v1.1.0 to v1.2.0 with an additive-minor delta that blesses the Workers-with-static-assets shape as the SPA-on-Workers deploy shape. The blueprint gains two new REQ contributions (deploy-cloudflare-workers-REQ-013 for the Workers-with-static-assets shape and deploy-cloudflare-workers-REQ-014 for the SPA fallback discipline via run_worker_first), three new US contributions in the existing 12xx band (deploy-cloudflare-workers-US-12113 SPA-on-Workers deploy; deploy-cloudflare-workers-US-12114 assets-directory elicitation; deploy-cloudflare-workers-US-12115 migrate-from-Pages guidance), one new ADR contribution (ADR-1306-deploy-cloudflare-workers-spa-shape carrying the verbatim Cloudflare Pages landing-page recommendation, standardsTraceClause Cloudflare Pages landing-page recommendation 2026-09-06, recommendedDefault true), one new source-tree scan probe module (assets-manifest-scan.mjs, accountBound false, anchorAcId matching the assetsBlockEmitted AC) that parses the applied fixture wrangler.toml and asserts the [assets] block presence, the run_worker_first presence and absence of any Pages-only pages_build_output_dir field, and two new elicited parameters on blueprint.json elicits[] (assets-directory kind string default empty for the bare-Worker shape; run-worker-first kind boolean default false). The shipped v1.1.0 contribution set (REQs 001 through 012, USs 12101 through 12112, TACs 1301 through 1306, ADRs 1301 through 1305, deploymentTarget global topic, suggestedCompanions logging and errorHandling) carries through unchanged. No capability minted, no new global topic, no runtime dependency added. Ships packages/rcf-lite/test/fixtures/cf-platform/ as the shared sample-app fixture that T-1 through T-3 and T-5 extend. HQ sequential chain-id block: REQ-029 / US-2901 / US-2902 / TS-073 / TS-074 / FBS-063 / CN-209 minted via --id after HQ round-4 T-5 landed at REQ-028 and Dex round-5 T-3 landed at REQ-042 per HQ mid-flight ruling on repo-chain id blocks per train.",
5
5
  "category": "functional",
6
6
  "domain": "deploy",
@@ -53,5 +53,8 @@
53
53
  "match": "page"
54
54
  }
55
55
  ]
56
- }
56
+ },
57
+ "tags": [
58
+ "capability:deploy"
59
+ ]
57
60
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T09:09:31.409Z",
3
- "updatedAt": "2026-09-07T09:09:31.438Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-0 SPA fallback discipline half of the Cloudflare round 6 T-0 delta (2026-09-06 section 5.0). The blueprint gains one new REQ contribution (deploy-cloudflare-workers-REQ-014 SPA fallback discipline via elicited run_worker_first: when true, the Worker script runs before asset lookup for arbitrary routing; when false or unanswered, static asset lookup runs first and the Worker handles only unmatched paths), one new US contribution (deploy-cloudflare-workers-US-12115 migrate-from-Pages guidance in the guide section) that links the Cloudflare migrate-from-Pages guide from the ADR-1306 verbatim landing-page quote, one new elicit (run-worker-first kind boolean default false; the spec's intended when-predicate {elicitedNonEmpty: [assets-directory]} is NOT shipped this round because the loader's supported when block only accepts requiresCapability arrays per src/blueprint/loader.js validateElicits, and the elicit fires unconditionally with the guide teaching that a non-empty assets-directory is what makes run_worker_first meaningful; the loader extension is captured under CONCERNS on the PR, not blocking T-0). The T-0 probe module assets-manifest-scan.mjs anchors AC-2902-1 (the spaFallbackShape canonical AC) via a Node-only source-tree scan of the applied fixture wrangler.toml. The one new ADR ADR-1306-deploy-cloudflare-workers-spa-shape carries the verbatim Cloudflare Pages landing-page quote (Workers supports most Pages use cases and offers a broader feature set. It is Cloudflare's primary platform for building applications. Start new projects with Workers.), standardsTraceClause Cloudflare Pages landing-page recommendation 2026-09-06, recommendedDefault true. HQ sequential chain-id block: REQ-030 / US-3001 / TS-075 minted via --id.",
5
5
  "category": "functional",
6
6
  "domain": "deploy",
@@ -63,5 +63,8 @@
63
63
  "match": "page"
64
64
  }
65
65
  ]
66
- }
66
+ },
67
+ "tags": [
68
+ "capability:deploy"
69
+ ]
67
70
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T16:59:00.000Z",
3
- "updatedAt": "2026-09-06T16:59:00.000Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-040",
5
5
  "prdId": "PRD-001",
6
6
  "title": "Persistence-data-postgres v1.0.0 blueprint on the shelf with six Node-only probes proven against a postgres:17-alpine container",
@@ -9,5 +9,8 @@
9
9
  "domain": "application",
10
10
  "priority": "must",
11
11
  "version": "0.1.0",
12
- "status": "draft"
12
+ "status": "draft",
13
+ "tags": [
14
+ "capability:applications-shelf"
15
+ ]
13
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T17:49:13.077Z",
3
- "updatedAt": "2026-09-06T17:49:13.110Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "The rcf-lite shelf ships the object-storage-s3 v1.0.0 blueprint (blueprints/object-storage-s3/) with 21 contributions per the ratified infra round 5 spec section 5.2: 6 REQs (facade sole-reader over the S3 client; put / get / delete / list on typed keys; presigned GET URL with bounded TTL; multipart-upload above elicited threshold; four lifecycle events with metadata-only fields; credential-pair discipline via security-secrets-management), 8 USs 28101-28108 binding runtime-observable ACs, 3 TACs (2901 facade, 2902 multipart uploader, 2903 event sink), 4 ADRs (2901 adapter elicited between @aws-sdk/client-s3 and aws4fetch, 2902 presigned TTL default 15 minutes floor 1 minute, 2903 multipart threshold default 8 MiB, 2904 objectStorageContract scope global). The blueprint declares suggestedCompanions logging and errorHandling with spec section 5.2 reasons, providesRoles absent, capabilities [objectStorage], requiresAppliedCapabilities absent. Contributes ADR-2904 as scope:global on new topic objectStorageContract so future non-S3-shape siblings (object-storage-native-gcs, object-storage-native-azure) conflict here by design. Ships six Node-only probes under blueprints/object-storage-s3/contributions/probes/ (facade-round-trip, put-get-round-trip, presigned-url, multipart-upload, event-secrecy, r2-real-account-smoke) each exporting the spec section 3.2 verdict envelope with an anchorAcId matching a contributed AC id, and matching run-<probe-name>.mjs shims writing per-blueprint reports at .rcf/reports/blueprints/object-storage-s3/<probe-name>.json per spec section 3.4. Five probes are local-first (accountBound false); r2-real-account-smoke carries accountBound:true and records the accountBoundSkipped shape per spec section 3.5 without CI_HAS_CLOUDFLARE_ACCOUNT. Ships the T-2 side of the shared sample-app fixture at packages/rcf-lite/test/fixtures/infra-s3-and-queue/ (T-3 shares the fixture and adds its own wrangler-dev src branch) with MinIO under docker compose, @aws-sdk/client-s3 as the fixture's own runtime dep, an S3 facade over MinIO, a security-secrets-management shim realising the secretRef opaque-string contract from a project-local .rcf/secrets/dev.env file, and a README naming docker and podman incantations plus four wired induced-failure switches. Extends packages/rcf-lite/docs/blueprint-authoring.md section 6a capability-declaration table with one row for objectStorage per spec section 5.6. Appends one row for object-storage-s3 at US band 28101-28899 / ADR-TAC suffix block 29xx to the shelf-wide id-band registry table under docs/topics.md on every shipped blueprint. Refuses composition when security-secrets-management is not applied with exit 3 and stable message id object-storage-s3-no-secrets on stderr; --allow-no-secrets-yet override records a note on source.notes for later reconciliation. Minted with HQ's reserved round-5 chain-id block via --id (REQ-041 / US-4101 / TS-071 / FBS-061 / CN-203..205) after T-1 minted at 040 / 4001 / 070 / 060 / 200..202; the block reservation avoids next-id racing with HQ's train while T-1 sits open.",
5
5
  "category": "functional",
6
6
  "domain": "application",
@@ -121,5 +121,8 @@
121
121
  "match": "storage"
122
122
  }
123
123
  ]
124
- }
124
+ },
125
+ "tags": [
126
+ "capability:applications-shelf"
127
+ ]
125
128
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T19:16:55.365Z",
3
- "updatedAt": "2026-09-06T19:16:55.402Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "category": "functional",
5
5
  "domain": "application",
6
6
  "priority": "must",
@@ -55,5 +55,8 @@
55
55
  "match": "page"
56
56
  }
57
57
  ]
58
- }
58
+ },
59
+ "tags": [
60
+ "capability:applications-shelf"
61
+ ]
59
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-06T20:28:34.000Z",
3
- "updatedAt": "2026-09-07T10:18:08.299Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "category": "functional",
5
5
  "domain": "application",
6
6
  "priority": "must",
@@ -35,5 +35,8 @@
35
35
  "match": "endpoint"
36
36
  }
37
37
  ]
38
- }
38
+ },
39
+ "tags": [
40
+ "capability:applications-shelf"
41
+ ]
39
42
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T10:18:25.168Z",
3
- "updatedAt": "2026-09-07T10:20:10.276Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-050",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-1 platform-cloudflare-kv v1.0.0 blueprint: the KV facade module is the sole reader of the KV binding and opens on boot with facadeReady",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T10:18:25.198Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T10:18:25.373Z",
3
- "updatedAt": "2026-09-07T10:20:10.276Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-051",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-1 typed put get delete list verbs with metadata field pattern realise the Workers KV binding shape behind the facade",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T10:18:25.402Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T10:18:25.579Z",
3
- "updatedAt": "2026-09-07T10:20:10.276Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-052",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-1 cache-aside helper reads local first falls back to origin and writes back with elicited TTL floor 1 second",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T10:18:25.608Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T10:18:25.784Z",
3
- "updatedAt": "2026-09-07T10:20:10.276Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-053",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-1 lifecycle events facadeReady kvHit kvMiss kvWrite carry metadata-only fields key size ttl timestamp",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T10:18:25.813Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T10:18:25.999Z",
3
- "updatedAt": "2026-09-07T10:20:10.276Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-054",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-1 eventual-consistency note in the guide: a write may not appear on a global read within the same request and the elicited TTL sets the staleness ceiling",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T10:18:26.039Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T12:26:47.779Z",
3
- "updatedAt": "2026-09-07T12:26:47.813Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-2 platform-cloudflare-cron-triggers v1.0.0: one scheduled() handler in the applied project source tree is the SOLE reader of the Cloudflare Workers Cron Trigger event (the event handler shape documented at https://developers.cloudflare.com/workers/configuration/cron-triggers/). The handler binds on boot, wires the dispatcher (REQ-061) and the event sink (per TAC-3303), and emits a cronReady lifecycle event on the injected sink with a metadata-only payload. Chain: HQ round-6 T-2 reserved-block per HQ chain-block ruling 2026-09-07T12:25Z.",
5
5
  "category": "functional",
6
6
  "domain": "platform",
@@ -16,5 +16,8 @@
16
16
  ],
17
17
  "reason": "keyword-scan",
18
18
  "classifiedAt": "2026-09-07T12:26:47.812Z"
19
- }
19
+ },
20
+ "tags": [
21
+ "capability:platform-integrations"
22
+ ]
20
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T12:26:47.991Z",
3
- "updatedAt": "2026-09-07T12:28:41.280Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-2 platform-cloudflare-cron-triggers v1.0.0: the dispatcher module accepts an ordered map of cron-expression to handler pairs and, on every scheduled() invocation, matches the incoming Cron Trigger event's cron expression against the map and routes exactly to the matched handler. An unmatched expression records an unmatchedExpression event on the sink and the scheduled invocation returns without side effect. The routed handler receives a bounded context {expression, scheduledTime, sink} so its own emissions can be attributed. Chain: HQ round-6 T-2 reserved-block per HQ chain-block ruling 2026-09-07T12:25Z.",
5
5
  "category": "functional",
6
6
  "domain": "platform",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T12:29:00.000Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T12:26:48.199Z",
3
- "updatedAt": "2026-09-07T12:26:48.232Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-2 platform-cloudflare-cron-triggers v1.0.0: an elicited skew-tolerance window (default 30 seconds per ADR-3303; floor 5s, ceiling 5 minutes) governs how the dispatcher classifies a fire. If the observed handler start time is within the window of the event's scheduledTime, the fire's outcome is onTime and a cronFired event carries {expression, scheduledTime, outcome: onTime, duration}. If the observed start is outside the window, a cronSkewed event fires with the delta (observed minus scheduled, in milliseconds) and the outcome is skewed; the handler still runs. Chain: HQ round-6 T-2 reserved-block per HQ chain-block ruling 2026-09-07T12:25Z.",
5
5
  "category": "functional",
6
6
  "domain": "platform",
@@ -16,5 +16,8 @@
16
16
  ],
17
17
  "reason": "keyword-scan",
18
18
  "classifiedAt": "2026-09-07T12:26:48.230Z"
19
- }
19
+ },
20
+ "tags": [
21
+ "capability:platform-integrations"
22
+ ]
20
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T12:26:48.409Z",
3
- "updatedAt": "2026-09-07T12:26:48.442Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "description": "T-2 platform-cloudflare-cron-triggers v1.0.0: an elicited soft-budget duration (default 30 seconds per elicited answer, no floor) governs when a running handler is flagged as stalled. The dispatcher never terminates a handler on soft-budget breach (Cloudflare's platform concern is the sole terminator); it fires a cronStalled event with metadata-only payload {expression, scheduledTime, outcome: stalled, duration, softBudgetMs} at the moment the observed duration crosses the budget and lets the handler continue. Every scheduled-side event record on the sink carries only {expression, scheduledTime, outcome, duration} plus the event tag; handler input closures, PII fields and body bytes never cross the sink boundary. Chain: HQ round-6 T-2 reserved-block per HQ chain-block ruling 2026-09-07T12:25Z.",
5
5
  "category": "functional",
6
6
  "domain": "platform",
@@ -16,5 +16,8 @@
16
16
  ],
17
17
  "reason": "keyword-scan",
18
18
  "classifiedAt": "2026-09-07T12:26:48.441Z"
19
- }
19
+ },
20
+ "tags": [
21
+ "capability:platform-integrations"
22
+ ]
20
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T14:11:36.742Z",
3
- "updatedAt": "2026-09-07T14:13:26.508Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-070",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-3 platform-cloudflare-durable-objects v1.0.0 blueprint: the DO facade is the sole reader of env.CELL and env.HUB and opens on boot with namespaceReady",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T14:11:36.775Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T14:11:36.953Z",
3
- "updatedAt": "2026-09-07T14:13:26.508Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-071",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-3 single-cell shape exposes typed domain verbs and serialises concurrent invocations per instance",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T14:11:36.986Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "createdAt": "2026-09-07T14:11:37.164Z",
3
- "updatedAt": "2026-09-07T14:13:26.508Z",
3
+ "updatedAt": "2026-09-22T13:47:34.538Z",
4
4
  "reqId": "REQ-072",
5
5
  "prdId": "PRD-001",
6
6
  "title": "T-3 storage API provides typed put/get/delete on the object with an elicited backend (SQL or KV)",
@@ -14,5 +14,8 @@
14
14
  "shapes": [],
15
15
  "reason": "content-pending",
16
16
  "classifiedAt": "2026-09-07T14:11:37.197Z"
17
- }
17
+ },
18
+ "tags": [
19
+ "capability:platform-integrations"
20
+ ]
18
21
  }