@mmerterden/multi-agent-pipeline 20.33.0 → 20.35.0

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 (390) hide show
  1. package/CHANGELOG.md +98 -1
  2. package/README.md +3 -1
  3. package/README.tr.md +2 -1
  4. package/docs/adr/0018-cross-repo-links-not-a-global-graph.md +43 -0
  5. package/docs/adr/README.md +2 -1
  6. package/docs/facts.json +5 -4
  7. package/docs/features.md +1 -1
  8. package/install/_dev-only-files.mjs +1 -0
  9. package/install/catalog-history.json +1 -1
  10. package/install/claude.mjs +24 -2
  11. package/install/templates/claude-hooks.json +34 -1
  12. package/manifest.json +393 -339
  13. package/package.json +3 -1
  14. package/pipeline/agents/bulk-reader.md +3 -0
  15. package/pipeline/agents/code-reviewer.md +9 -0
  16. package/pipeline/agents/explorer.md +4 -0
  17. package/pipeline/agents/plan-critic.md +4 -2
  18. package/pipeline/commands/multi-agent/SKILL.md +17 -136
  19. package/pipeline/commands/multi-agent/channels/SKILL.md +16 -298
  20. package/pipeline/commands/multi-agent/graph/SKILL.md +5 -2
  21. package/pipeline/commands/multi-agent/language/SKILL.md +3 -3
  22. package/pipeline/commands/multi-agent/office-on/SKILL.md +7 -3
  23. package/pipeline/commands/multi-agent/office-status/SKILL.md +3 -2
  24. package/pipeline/commands/multi-agent/resume/SKILL.md +8 -22
  25. package/pipeline/commands/multi-agent/review/SKILL.md +7 -131
  26. package/pipeline/commands/multi-agent/setup/SKILL.md +19 -224
  27. package/pipeline/contract/CHANGELOG.md +9 -0
  28. package/pipeline/contract/README.md +6 -2
  29. package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
  30. package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
  31. package/pipeline/contract/fixtures/error-unsigned.json +1 -1
  32. package/pipeline/contract/manifest.json +14 -1
  33. package/pipeline/contract/types/index.d.ts +24 -2
  34. package/pipeline/lib/json-file-lock.mjs +61 -15
  35. package/pipeline/lib/office-remote.mjs +228 -0
  36. package/pipeline/lib/qr-code.mjs +360 -0
  37. package/pipeline/lib/repo-hygiene.sh +1 -0
  38. package/pipeline/lib/run-completion.mjs +17 -0
  39. package/pipeline/multi-agent-refs/channels/generator.md +146 -0
  40. package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
  41. package/pipeline/multi-agent-refs/channels/menu.md +55 -0
  42. package/pipeline/multi-agent-refs/channels/multi-repo.md +6 -0
  43. package/pipeline/multi-agent-refs/channels/preview.md +25 -0
  44. package/pipeline/multi-agent-refs/channels/reference.md +98 -0
  45. package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +1 -1
  46. package/pipeline/multi-agent-refs/features/code-graph.md +27 -0
  47. package/pipeline/multi-agent-refs/features/office-remote-protocol.md +166 -0
  48. package/pipeline/multi-agent-refs/features/office-threat-model.md +2 -2
  49. package/pipeline/multi-agent-refs/features/plan-critic.md +5 -2
  50. package/pipeline/multi-agent-refs/features/review-delta.md +4 -1
  51. package/pipeline/multi-agent-refs/features/scope-check.md +25 -1
  52. package/pipeline/multi-agent-refs/features/verify-by-test.md +10 -0
  53. package/pipeline/multi-agent-refs/keychain.md +7 -0
  54. package/pipeline/multi-agent-refs/knowledge.md +9 -0
  55. package/pipeline/multi-agent-refs/orchestrator/dispatcher.md +163 -0
  56. package/pipeline/multi-agent-refs/phases/phase-0-init.md +6 -2
  57. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +8 -10
  58. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +18 -20
  59. package/pipeline/multi-agent-refs/phases/phase-3-review.md +20 -14
  60. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +8 -7
  61. package/pipeline/multi-agent-refs/phases/phase-5-report.md +6 -3
  62. package/pipeline/multi-agent-refs/picker-contract.md +1 -1
  63. package/pipeline/multi-agent-refs/resume/details.md +35 -0
  64. package/pipeline/multi-agent-refs/review/inputs.md +87 -0
  65. package/pipeline/multi-agent-refs/review/module-guides.md +25 -0
  66. package/pipeline/multi-agent-refs/review/valven.md +42 -0
  67. package/pipeline/multi-agent-refs/rules.md +3 -2
  68. package/pipeline/multi-agent-refs/setup/accounts.md +27 -0
  69. package/pipeline/multi-agent-refs/setup/app-store-connect.md +5 -0
  70. package/pipeline/multi-agent-refs/setup/firebase.md +5 -0
  71. package/pipeline/multi-agent-refs/setup/google-play.md +4 -0
  72. package/pipeline/multi-agent-refs/setup/hooks-and-plugins.md +21 -0
  73. package/pipeline/multi-agent-refs/setup/language.md +46 -0
  74. package/pipeline/multi-agent-refs/setup/multi-repo-group.md +51 -0
  75. package/pipeline/multi-agent-refs/setup/summaries.md +63 -0
  76. package/pipeline/multi-agent-refs/setup/token-save-flow.md +51 -0
  77. package/pipeline/multi-agent-refs/tracker-contract.md +1 -1
  78. package/pipeline/office/NOTICE.md +4 -1
  79. package/pipeline/office/assets/char_12.png +0 -0
  80. package/pipeline/office/assets/char_13.png +0 -0
  81. package/pipeline/office/assets/char_14.png +0 -0
  82. package/pipeline/office/assets/char_15.png +0 -0
  83. package/pipeline/office/assets/char_16.png +0 -0
  84. package/pipeline/office/assets/char_17.png +0 -0
  85. package/pipeline/office/assets/char_18.png +0 -0
  86. package/pipeline/office/assets/char_19.png +0 -0
  87. package/pipeline/office/assets/char_20.png +0 -0
  88. package/pipeline/office/assets/char_21.png +0 -0
  89. package/pipeline/office/assets/char_22.png +0 -0
  90. package/pipeline/office/assets/char_23.png +0 -0
  91. package/pipeline/office/assets/char_24.png +0 -0
  92. package/pipeline/office/assets/char_25.png +0 -0
  93. package/pipeline/office/assets/char_26.png +0 -0
  94. package/pipeline/office/assets/char_27.png +0 -0
  95. package/pipeline/office/assets/char_28.png +0 -0
  96. package/pipeline/office/assets/char_29.png +0 -0
  97. package/pipeline/office/assets/char_30.png +0 -0
  98. package/pipeline/office/index.html +304 -55
  99. package/pipeline/office/toolkit.json +1 -1
  100. package/pipeline/rules/response-shape.md +6 -7
  101. package/pipeline/schemas/agent-state.schema.json +36 -0
  102. package/pipeline/schemas/phases.json +4 -4
  103. package/pipeline/schemas/plan-critique.schema.json +9 -2
  104. package/pipeline/schemas/planning-output.schema.json +43 -2
  105. package/pipeline/schemas/pr-reach.schema.json +55 -0
  106. package/pipeline/schemas/prefs.schema.json +37 -8
  107. package/pipeline/schemas/reviewer-output.schema.json +20 -2
  108. package/pipeline/schemas/token-budget.json +4 -4
  109. package/pipeline/schemas/triage-output.schema.json +32 -3
  110. package/pipeline/schemas/unattended-policy.json +2 -1
  111. package/pipeline/scripts/_graph-analysis.mjs +270 -0
  112. package/pipeline/scripts/_guard_rules.py +449 -1
  113. package/pipeline/scripts/_memory-policy.mjs +165 -0
  114. package/pipeline/scripts/_secret-scan.mjs +105 -0
  115. package/pipeline/scripts/_test-gaming.mjs +36 -0
  116. package/pipeline/scripts/_unified-diff.mjs +2 -2
  117. package/pipeline/scripts/agent-guard.py +79 -19
  118. package/pipeline/scripts/anonymize-findings.mjs +99 -0
  119. package/pipeline/scripts/answer-check.mjs +113 -0
  120. package/pipeline/scripts/answer-check.sh +20 -0
  121. package/pipeline/scripts/autopilot-publish.mjs +9 -2
  122. package/pipeline/scripts/capture-flush.sh +12 -2
  123. package/pipeline/scripts/check-read-size.sh +9 -0
  124. package/pipeline/scripts/code-graph-rules/android.json +8 -3
  125. package/pipeline/scripts/contract-server.mjs +71 -16
  126. package/pipeline/scripts/debt-ledger.mjs +323 -0
  127. package/pipeline/scripts/file-context.mjs +261 -0
  128. package/pipeline/scripts/file-context.sh +20 -0
  129. package/pipeline/scripts/gate-ledger.mjs +144 -21
  130. package/pipeline/scripts/graph-links.mjs +230 -0
  131. package/pipeline/scripts/graph-query.mjs +133 -1
  132. package/pipeline/scripts/graph-report.mjs +65 -0
  133. package/pipeline/scripts/learn-from-transcripts.mjs +12 -48
  134. package/pipeline/scripts/learnings-ledger.mjs +143 -24
  135. package/pipeline/scripts/office-build.mjs +276 -5
  136. package/pipeline/scripts/office-control.mjs +70 -10
  137. package/pipeline/scripts/office-pair.mjs +407 -0
  138. package/pipeline/scripts/office-remote-client.mjs +463 -0
  139. package/pipeline/scripts/phase-tracker.sh +8 -0
  140. package/pipeline/scripts/phase0-exit-gate.mjs +40 -37
  141. package/pipeline/scripts/phone-devices.mjs +9 -1
  142. package/pipeline/scripts/plan-critique-gate.mjs +11 -2
  143. package/pipeline/scripts/pre-commit-check.sh +28 -2
  144. package/pipeline/scripts/pre-push-check.sh +6 -12
  145. package/pipeline/scripts/rework-base.mjs +87 -0
  146. package/pipeline/scripts/rework-rulings.mjs +106 -0
  147. package/pipeline/scripts/run-commit-check.mjs +104 -0
  148. package/pipeline/scripts/run-scope-guard.mjs +58 -3
  149. package/pipeline/scripts/run-scope-guard.sh +13 -1
  150. package/pipeline/scripts/scope-check-gate.mjs +213 -2
  151. package/pipeline/scripts/task-mirror.mjs +106 -15
  152. package/pipeline/scripts/task-mirror.sh +3 -2
  153. package/pipeline/scripts/test-stability-gate.mjs +112 -0
  154. package/pipeline/scripts/triage-memory.mjs +64 -37
  155. package/pipeline/scripts/update-check.sh +7 -1
  156. package/pipeline/scripts/update-issue-progress.sh +73 -8
  157. package/pipeline/scripts/validate-planning.mjs +172 -4
  158. package/pipeline/scripts/validate-reviewer.mjs +20 -0
  159. package/pipeline/scripts/validate-triage.mjs +149 -4
  160. package/pipeline/scripts/work-items.mjs +119 -1
  161. package/pipeline/scripts/worktree-prepare-all.mjs +200 -0
  162. package/pipeline/scripts/worktree-prepare.sh +40 -4
  163. package/pipeline/scripts/write-state.mjs +67 -24
  164. package/pipeline/skills/.skill-manifest.json +9 -9
  165. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +5 -5
  166. package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +1 -1
  167. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  168. package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +5 -2
  169. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +4 -4
  170. package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +2 -2
  171. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +2 -0
  172. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +4 -4
  173. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +14 -0
  174. package/pipeline/skills/shared/external/android-architecture/references/patterns.md +6 -0
  175. package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +10 -0
  176. package/pipeline/skills/shared/external/android-datastore/references/patterns.md +11 -0
  177. package/pipeline/skills/shared/external/android-design-tokens-codegen/references/patterns.md +8 -0
  178. package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +6 -0
  179. package/pipeline/skills/shared/external/android-mvi-viewmodel/references/patterns.md +10 -0
  180. package/pipeline/skills/shared/external/android-performance/references/patterns.md +13 -0
  181. package/pipeline/skills/shared/external/android-security/references/patterns.md +16 -0
  182. package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +9 -0
  183. package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +12 -0
  184. package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +13 -0
  185. package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +12 -0
  186. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +9 -0
  187. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +8 -0
  188. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +10 -0
  189. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +21 -0
  190. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +9 -0
  191. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +7 -0
  192. package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -2
  193. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +10 -0
  194. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +10 -1
  195. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +22 -0
  196. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +17 -0
  197. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +22 -0
  198. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +17 -0
  199. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +9 -0
  200. package/pipeline/skills/shared/external/authentication/references/passkeys.md +11 -0
  201. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +13 -0
  202. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +9 -0
  203. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +10 -0
  204. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +15 -0
  205. package/pipeline/skills/shared/external/compose-components/references/patterns.md +7 -0
  206. package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +7 -0
  207. package/pipeline/skills/shared/external/compose-testing/references/patterns.md +15 -0
  208. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +9 -0
  209. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +11 -0
  210. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +10 -0
  211. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +13 -0
  212. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +20 -0
  213. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +16 -0
  214. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +16 -0
  215. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +14 -0
  216. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +13 -0
  217. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +10 -0
  218. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +10 -0
  219. package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +10 -0
  220. package/pipeline/skills/shared/external/gradle-kotlin-dsl/references/patterns.md +17 -0
  221. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +12 -0
  222. package/pipeline/skills/shared/external/hig-app-icons/references/icon-workflow.md +10 -0
  223. package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +10 -0
  224. package/pipeline/skills/shared/external/hig-components-layout/references/bars-and-tabs.md +11 -0
  225. package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +13 -0
  226. package/pipeline/skills/shared/external/hig-foundations/references/type-color-spacing.md +13 -0
  227. package/pipeline/skills/shared/external/hig-patterns/references/onboarding-and-states.md +11 -0
  228. package/pipeline/skills/shared/external/hig-platforms/references/ipad-layout.md +12 -0
  229. package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +16 -0
  230. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +9 -0
  231. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +18 -0
  232. package/pipeline/skills/shared/external/ios-accessibility/references/large-content-and-appearance.md +9 -0
  233. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +9 -0
  234. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +7 -0
  235. package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +13 -0
  236. package/pipeline/skills/shared/external/ios-design-review/references/appearance-matrix.md +9 -0
  237. package/pipeline/skills/shared/external/ios-design-review/references/checklist.md +15 -0
  238. package/pipeline/skills/shared/external/ios-haptics/references/core-haptics.md +11 -0
  239. package/pipeline/skills/shared/external/ios-iphone-duo/references/api-map.md +11 -0
  240. package/pipeline/skills/shared/external/ios-iphone-duo/references/fixed-assumptions.md +15 -0
  241. package/pipeline/skills/shared/external/ios-iphone-duo/references/poses-and-panes.md +11 -0
  242. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +18 -0
  243. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +19 -0
  244. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +15 -0
  245. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +7 -0
  246. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +8 -0
  247. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +12 -0
  248. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +17 -0
  249. package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +8 -0
  250. package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +14 -0
  251. package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -0
  252. package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +9 -0
  253. package/pipeline/skills/shared/external/ios-sf-symbols/references/effects-and-custom-symbols.md +9 -0
  254. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +13 -0
  255. package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +8 -0
  256. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +21 -0
  257. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +9 -0
  258. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +12 -0
  259. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +16 -0
  260. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +21 -0
  261. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +10 -0
  262. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +9 -0
  263. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +12 -0
  264. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +11 -0
  265. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +11 -0
  266. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +18 -0
  267. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +11 -0
  268. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +11 -0
  269. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +15 -0
  270. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +14 -0
  271. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +14 -0
  272. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +14 -0
  273. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +14 -0
  274. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +10 -0
  275. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +12 -0
  276. package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +14 -0
  277. package/pipeline/skills/shared/external/room-database/references/patterns.md +16 -0
  278. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +10 -0
  279. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +10 -0
  280. package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +14 -0
  281. package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +19 -0
  282. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +13 -0
  283. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +31 -0
  284. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +8 -0
  285. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +9 -0
  286. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +10 -0
  287. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +8 -0
  288. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +24 -0
  289. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +8 -0
  290. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +14 -0
  291. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +12 -0
  292. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +10 -0
  293. package/pipeline/skills/shared/external/swift-concurrency-expert/references/swift-6-2-concurrency.md +8 -0
  294. package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +10 -0
  295. package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +7 -0
  296. package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +10 -0
  297. package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +11 -0
  298. package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +9 -0
  299. package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +13 -0
  300. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +7 -0
  301. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +14 -0
  302. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +16 -0
  303. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +17 -0
  304. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +19 -0
  305. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +16 -0
  306. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +19 -0
  307. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +18 -0
  308. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +16 -0
  309. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +17 -0
  310. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +17 -0
  311. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +17 -0
  312. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +18 -0
  313. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +21 -0
  314. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +16 -0
  315. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +16 -0
  316. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +9 -0
  317. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +24 -0
  318. package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +9 -0
  319. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +11 -0
  320. package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +13 -0
  321. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +8 -0
  322. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +17 -0
  323. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +12 -0
  324. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +11 -0
  325. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +7 -0
  326. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +13 -0
  327. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +24 -0
  328. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +12 -0
  329. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +15 -0
  330. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +15 -0
  331. package/pipeline/skills/shared/external/swiftui-animation/references/scroll-effects.md +12 -0
  332. package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +11 -0
  333. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +7 -0
  334. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +13 -0
  335. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +9 -0
  336. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +9 -0
  337. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +17 -0
  338. package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +9 -0
  339. package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +10 -0
  340. package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +12 -0
  341. package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +12 -0
  342. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +13 -0
  343. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +12 -0
  344. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +12 -0
  345. package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +7 -0
  346. package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +9 -0
  347. package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +10 -0
  348. package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +18 -0
  349. package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +16 -0
  350. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +11 -0
  351. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +8 -0
  352. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +14 -0
  353. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +9 -0
  354. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +22 -0
  355. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/uikit-glass.md +14 -0
  356. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +10 -0
  357. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +10 -0
  358. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +13 -0
  359. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +10 -0
  360. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +14 -0
  361. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +30 -0
  362. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +16 -0
  363. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +11 -0
  364. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +11 -0
  365. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +10 -0
  366. package/pipeline/skills/shared/external/swiftui-performance-audit/references/code-smells.md +8 -0
  367. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/app-wiring.md +12 -0
  368. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/menu-bar.md +10 -0
  369. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/navigationstack.md +11 -0
  370. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/scroll-reveal.md +12 -0
  371. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/sheets.md +14 -0
  372. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/tabview.md +10 -0
  373. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +10 -0
  374. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +13 -0
  375. package/pipeline/skills/shared/external/swiftui-view-refactor/references/mv-patterns.md +12 -0
  376. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +8 -0
  377. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +8 -0
  378. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +14 -0
  379. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +17 -0
  380. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +11 -0
  381. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +11 -0
  382. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +27 -0
  383. package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +9 -0
  384. package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +7 -0
  385. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +9 -0
  386. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +14 -0
  387. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +8 -0
  388. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +14 -0
  389. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +9 -0
  390. package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +13 -0
package/CHANGELOG.md CHANGED
@@ -16,6 +16,104 @@ Internal file-layout changes that don't affect the slash-command surface are sti
16
16
 
17
17
  ## [Unreleased]
18
18
 
19
+ ## [20.35.0] - 2026-10-27
20
+
21
+ ### Added
22
+
23
+ - Office: each person wears their own sheet, recoloured at build time from the CC0 character sheets (`office-art/employees.json`), with a name, agent and model tier; clicking a person opens their card, and a Building window lists every room and who works there.
24
+ - Office remote layer, first part: `features/office-remote-protocol.md` (the end-to-end layer, relay, pairing and passkey tiers around the existing signed phone routes) and `lib/office-remote.mjs`, the machine side of its cryptography: P-256 ECDH with HKDF into one AES-256-GCM key per direction, counter nonces that refuse replays, the pairing envelope keyed with the one-time secret, the comparison code, and the WebAuthn assertion check.
25
+ - Office remote client: `office-remote-client.mjs` polls the relay, opens each frame with the paired device's key, applies the passkey tier (read session, low-risk window, per-request for launch), forwards only phone routes to the loopback server without an `Authorization` header and seals the reply; one audit line per frame without bodies or header values. `office-on` starts it only when a device is paired, `office-off` stops it.
26
+ - Office pairing: `office-pair.mjs start | wait | confirm <code> | cancel` registers a pairing with the relay (only the SHA-256 of the machine's relay token leaves the machine), shows the QR code on the local screen through the dependency-free encoder in `lib/qr-code.mjs`, opens the phone's sealed pairing message with the one-time secret carried in the link fragment, and enrols the device with scopes `read,answer` only after the comparison code is typed back. `phone-devices.mjs revoke` also drops the device's remote keys; `office-status` reports remote access as off, configured or paired.
27
+
28
+ - `answer-check.sh`, a PostToolUse hook on AskUserQuestion: a question the user submitted without a choice is named back to the model, so it is asked again instead of resolved to the Recommended option. Registered by `install` in every session; it only adds context.
29
+ - `worktree-prepare-all.mjs` creates a multi-repo task's worktrees in one step and, when a repo fails, rolls back what it created: worktrees without `--force`, and a branch only when it created that branch and it still points at `origin/<base>`. Phase 0 uses it for multi-repo runs; `worktree-prepare.sh` reports `newBranch`.
30
+ - `test-stability-gate.mjs` compares the repeated runs (`.pipeline/repeat-<k>.junit.xml`) of the new and changed tests: a test whose outcome differs across runs, a missing run or a test that failed every time is not GREEN.
31
+
32
+ ### Changed
33
+
34
+ - agent-guard asks on a `git commit` from the session driving an attended run (where prompts are off it denies until `confirm-command.mjs` records the user's yes), and inside that run refuses a commit subject with no conventional type or over 72 characters, and a PR, issue or Jira body with a literal `\n` or an HTML entity outside code.
35
+ - `prefs.global.attendedCommitGate.mode` defaults to `auto`: a commit by the session driving the run is refused without the run's build and test evidence, and from Phase 4 on without a passing `review-decision`, which attended runs now record. Other sessions are warned as before; `warn`, `block` and `off` still apply when set.
36
+ - Triage judges anonymized findings end to end: the verdict carries each finding's `foundBy` label (or a gate `tag`) instead of a reviewer name, `validate-triage.mjs --anonymized` refuses a verdict that names a reviewer, and `anonymize-findings.mjs --restore` writes the reviewer family back from the label map after validation.
37
+ - `scope-check-gate.mjs --rejected <triage> --rework-base <rev>` lists `rejectedTouched[]`: findings triage rejected whose lines a rework hunk changed. Phase 2 records the reviewed commit per review round with `rework-base.mjs record` (`.pipeline/rework-base-<N>`).
38
+ - `validate-planning.mjs --spec` checks UI tasks against the analysis Section 6 inventory: a task touching a view file names its component in the new `design` field, and the name must be a Section 6 row.
39
+ - `update-issue-progress.sh` exits 5 without editing the issue unless the account has commented on it since the run started with the template's `Ref: #N` footer: the comment and the Progress flags go together. `--comment-file` posts the comment first through the outbound gate; the unattended runner's issue update uses it with the PR link. Issue coordinates that are not an owner/repo and a number exit 6.
40
+ - `write-state.mjs` refuses to leave Phase 2 of an attended run with a tracked issue unless `phases["2"].trackerStatus` is `verified`, `declined` or `not-tracked`. A run already in Phase 2 when this lands records the status once before it moves on.
41
+ - `task-mirror.sh` records a phase tile's id as its `tasklist_id` and notes a tile created after a higher-numbered phase's tile.
42
+ - `write-state.mjs` refuses to leave Phase 1 of an attended full run without `phases["1"].planApprovedAt`, and refuses to change a `sessionId` already set (exit 6, nothing written). Autopilot, background launches and analysis mode are not asked for a plan approval.
43
+ - A run cannot complete while a repo's commit has no recorded push: `projects[].pushStatus` must be `pushed`, `rebase-pushed` or `skipped`, or the repo has a pull request. `pushStatus` is declared in the state schema.
44
+ - agent-guard: a closing keyword in a `gh pr create/edit --title` or in a commit message asks first; AI attribution in a gh pull request or issue title, body, body file or comment is blocked; `vercel` with `--token` is refused; `purge.sh`, `prune-logs.sh --yes` and `run-kill.mjs apply` ask first; a stored secret read with nothing capturing or consuming its output is refused.
45
+ - `pre-commit-check.sh` refuses signing material and keystores (`.p12`, `.p8`, `.mobileprovision`, `.jks`, `.keystore` ...) and `Pods/`, `.build/`, `DerivedData/` paths by name, binaries included; `.DerivedData/` joins the clone-local exclude list.
46
+ - `run-scope-guard` also registers on `Bash|WebFetch`: a Figma read over HTTP (figma.com, api.figma.com) after analysis is denied under the same phase rule, and a direct write to `agent-state.json` or `tracker-state.json` (Edit/Write, a redirect or `tee`) is denied in any session. The wrapper starts node only when the payload mentions Figma or a state file.
47
+ - The test-integrity gate flags a test switched off (`XCTSkip`, `.skip(`, `xit(`, `@Disabled`, `@Ignore`, `@pytest.mark.skip`, `t.Skip(`, a `.disabled` trait) as a blocking `disabled-test` finding; a conditional skip is left alone.
48
+ - `worktree-prepare.sh` refuses a worktree outside `<project>/.worktrees/` and a new branch outside `feature/`, `bugfix/`, `hotfix/`, `release/`; an existing branch, local or on origin, is re-entered as it is.
49
+ - agent-guard asks before a POST or PUT to a Jira comment, a Confluence page or a Slack webhook, and refuses a Bitbucket pull request PUT whose body has no reviewers, fromRef or toRef (the PUT replaces the record and would wipe them).
50
+ - agent-guard refuses a side effect from a read-only subagent (one whose definition denies it Write), identified by the hook's `agent_type`: run-state writes, git commit or push, write requests with curl-like clients, and gh pull request, issue and api writes. Reads stay open.
51
+ - `run-scope-guard` denies `AskUserQuestion` from a bound autopilot run (it derives or records a halt) and `git add -A`, `--all` or `.` inside a bound run (files are staged by name); it now registers on `Bash|WebFetch|AskUserQuestion`.
52
+ - `validate-planning.mjs --spec` refuses a raw pixel or point value in a task when the spec carries a Figma design; values are named by design token.
53
+ - `gate-ledger.mjs append` pauses the run on the fourth consecutive failing `evidence-gate/build` or `evidence-gate/test` verdict (status `paused`, `haltReason <phase>:retry-cap`, exit 5): the three-attempt fix loop ends on a record.
54
+ - A commit inside a live pipeline run is refused when its author (`--author`, `-c user.email=`, or the repository's config) is not the identity Phase 0 chose (`run-commit-check.mjs`, called from the commit hook; silent outside a bound run).
55
+ - `phase-tracker.sh init` refuses to re-initialize a tracker that already holds phases; `--force` starts it over.
56
+ - `phase0-exit-gate.mjs` fails below the published version floor, reading the answer Step 0.6 cached (`update-check.sh --cache-only`, any age, never the network).
57
+
58
+ ### Fixed
59
+
60
+ - File locks (`json-file-lock.mjs`, `write-state.mjs`) read a lock's PID and its identity through one descriptor, and reclaim a dead holder's lock by moving it aside first. Read by path twice, a lock released and re-acquired in between looked like a dead holder's, and the live one was deleted, so two writers held it and one update was lost.
61
+
62
+ ### Added
63
+
64
+ - Office: the pull request window ranks open pull requests by graph reach, the number of files that depend on what each one changes, read from that repository's own code graph. A repository with no graph says so instead of ranking. Served by a new local-only route `GET /v1/prs/reach` (`work-items.mjs reach`); contract 1.7.0 adds `pr-reach.schema.json`.
65
+
66
+ ### Changed
67
+
68
+ - Every skill companion file over 100 lines (references, patterns, templates beside a `SKILL.md`) now opens with a generated table of contents, as the multi-agent-refs already did. `gen-ref-toc.mjs` covers `pipeline/skills/` and takes `--dir <skills-tree>` for the plugin marketplace; a file with fewer than three sections at its section depth lists the depth below as well.
69
+ - Skill text that aged with the calendar no longer does: `app-store-review` drops "As of May 2026", and `google-play-compliance` points at its Rule 1 for the target API level instead of quoting a number in prose. `google-play-compliance` and `channels` name the MCP server and say when they apply.
70
+ - `google-play-compliance` Rule 1 carries the current target API requirement: 36 for new apps and updates on phones and tablets from 31 Aug 2026 (extension to 1 Nov 2026), 35 on Wear OS and Automotive, 34 on TV and XR.
71
+ - The bulk reader and Phase 3 triage write terse machine fields (a short phrase per `why` / `reason`), keeping every negation, number and path; the explorer already did.
72
+ - `test/project.test.mjs` also holds optional, peer and bundled dependencies at zero and the development tooling to its recorded set.
73
+
74
+ ## [20.34.0] - 2026-10-26
75
+
76
+ ### Added
77
+
78
+ - Plans carry `reviewFocus[]` (at most five inputs the spec implies but no task's tests exercise, each owned by a task whose tests add it) and `globalConstraints[]` (project-wide values every task brief quotes). `validate-planning.mjs` checks both and, with `--spec`, warns when a plan runs more than four times the length of its spec. Planning schema 1.1.0.
79
+ - The plan critic has two more lenses: `unstated-input`, an input the spec implies (empty, boundary, expired, concurrent) that no task's tests exercise, and `underspecified`, a decision a task leaves to its implementer that the analysis or the user should make.
80
+ - `rework-rulings.mjs`: at the rework cap every accepted finding still open gets a recorded ruling. Blocking and security findings (a `SEC-*` rule, a security criteria source, or the security auditor's `security` object) escalate to the user; the rest are parked as follow-ups and the run continues to Phase 4 instead of stopping.
81
+ - Phase 4 Step 0b lists deferred and parked findings before the commit and asks once whether to ship with them as follow-ups.
82
+ - Code graph: `graph-query.mjs --path <from> <to>` finds the shortest path between two symbols or files; an ambiguous name is refused with candidate ids and an unknown one gets its nearest names. External modules end a path but are never walked through.
83
+ - `GRAPH_REPORT.md` gains import cycles, clusters of files with a cohesion score (label propagation over imports and references) and questions worth asking before a change; `graph-report.mjs --diff <older graph>` lists what changed between two builds. All deterministic (`_graph-analysis.mjs`).
84
+ - `graph-links.mjs`: which files of one repository import another, by matching each graph's unresolved imports against what the others export (package name, Python packages, Swift targets, Go module, Kotlin types). A Kotlin link holds only files whose import names the exporting file's package, and a repository name counts only when the stack names no export. Graphs stay separate (ADR-0018).
85
+ - Kotlin graphs index a capitalised `fun` as its own `composable` kind and make it a reference target, so a change to a Compose UI function reaches its callers; an extension function is named after the function, not its receiver.
86
+ - `debt-ledger.mjs`: one list per repository of the limits accepted on purpose (`shortcut: <limit>, <when to replace>` markers a diff adds in a comment outside any string, deferred findings, parked rulings), fed by `capture-flush.sh`, secret-scanned, closable with `resolve`.
87
+ - `file-context.sh`, a PostToolUse hook on Read: once per file per session it hands the model what the repo's memory says about the file just read (ledger facts whose scope covers it and that feedback has not suppressed, its latest review findings, its open known limits) as untrusted context, after the secret scan. On inside a pipeline run, everywhere with `prefs.global.fileContext.enabled: true`, never with `false`.
88
+ - `scope-check-gate.mjs --patch` (or `--repo <dir> --patch-range <a>...<b>`, which reads the diff itself) lists hunks that only change layout (`formatOnly[]`): whitespace outside string literals and comments, never a space that keeps two operators apart, a line break after `return` or before a leading operator in Kotlin and Swift, a leading indent in Python, YAML or a Makefile, or the space around brackets and colons outside C-family languages and Python. A pure addition or deletion is never layout-only. Reported to reviewers and never fatal; the code reviewer gains a fit lens (follow the surrounding code, leave untouched lines alone) and reads `shortcut:` markers as known limits.
89
+ - `pipeline/eval/ab/write-lean.json` measures a candidate write-time rule for the GREEN step against none. It is not shipped: its run scored below the baseline.
90
+ - Ledger entries earn or lose weight: `learnings-ledger.mjs feedback --id <L:id> --outcome useful|dead_end|corrected` (Phase 5 records it for injected entries). A corrected entry, or one judged a dead end at least twice and more often than useful, leaves `brief` and `profile`; one useful at least twice ranks by a strength that fades with age. A new entry that repeats an existing one in other words (TF-IDF cosine 0.9 or more, same numbers and negations) is not added (`_memory-policy.mjs`).
91
+ - When `check-read-size.sh` turns a whole-file read away it also prints what the repo's memory says about that file (`file-context.mjs --lines`), so the delegated read starts from what is already known.
92
+ - `knowledge.md` documents progressive recall over a large ledger or triage corpus through the toolkit's existing full-text index (`context_index`, `context_search`, `context_get`).
93
+ - `npm run audit:refs` (`ref-filler-audit.mjs`): filler phrases and sentences copied verbatim across the instruction docs, with the tokens a rewrite would win back. Advisory; it rewrites nothing.
94
+ - The explorer returns its JSON with nothing around it, in short phrases, keeping negations, numbers and paths exactly as found.
95
+ - `prefs.global.memory.excludeProjects`: repos whose ledger, triage corpus and debt list are never written.
96
+ - Reviewers return `cannotVerify[]` for requirements that live in code the diff does not touch; triage settles each as verified (citing the file:line read), a finding (citing the file:line of the accepted or deferred finding) or out of scope, and `validate-triage.mjs --reviewers` or `--reviewers-dir` fails one left unsettled or settled without that evidence. Reviewer output 1.6.0, triage output 3.6.0.
97
+ - `smoke-skill-size.sh`: no `pipeline/commands/**/SKILL.md` may reach 20,000 bytes, and a file between 18,000 and 19,999 bytes is reported as a warning. After context compaction Claude Code re-attaches each invoked skill truncated at about 20k characters, so anything past that point would silently stop applying mid-run. Runs through `run-smokes.mjs` and the CI lite workflow.
98
+
99
+ ### Changed
100
+
101
+ - The five command skills over that limit now keep their step skeleton, stop conditions and hard rules, with explicit "Read <ref> before Step N" pointers to the long reference sections, moved without changing their meaning: `channels` (33,925 to 17,749 bytes; `multi-agent-refs/channels/menu.md`, `generator.md`, `preview.md`, `reference.md`, plus the Step 1 target resolution in `multi-repo.md`), `setup` (26,000 to 17,452; `setup/language.md`, `multi-repo-group.md`, `summaries.md`, `accounts.md`, `hooks-and-plugins.md`, and sections appended to `token-save-flow.md`, `app-store-connect.md`, `firebase.md`, `google-play.md`), the `/multi-agent` dispatcher (24,130 to 17,548; `orchestrator/dispatcher.md`), `review` (24,033 to 17,838; `review/inputs.md`, `module-guides.md`, `valven.md`) and `resume` (20,102 to 17,586; `resume/details.md`). `setup` and `channels` leave the token-budget grace list, now under the hard cap.
102
+ - Token ceilings: phase-3 17200 to 17260, phase-4 6600 to 6650, phase-5 5700 to 5710, total 63550 to 63710, after the review-settled contracts above (triage settles `cannotVerify`, the PR body carries deferred, parked and marked limits, Phase 5 records ledger outcomes). Existing prose in phases 1 to 5 was compressed first and absorbed every earlier addition of this release.
103
+ - The reply-shape rule keeps negations, numbers, units and paths when it shortens a list.
104
+
105
+ ### Fixed
106
+
107
+ - Office: the autopilot window could open empty with "busy" when the panel's own status poll was still running, because `GET /v1/autopilot` refused a second caller. It, `GET /v1/prs` and the maturity read now answer every concurrent caller from the one run in flight; at most two maturity reads for different issues run at once. A window that reloads after a request now redraws only if it is still the open one, so a late answer for Skills no longer replaces the autopilot window.
108
+ - `eval-ab-judge.mjs` showed the judge `blocker` as the string "true|false", so judges answered with a string and the judgement was dropped; the example is a boolean now and a quoted "true"/"false" is read as one. `MULTI_AGENT_EVAL_USER_SETTINGS=1` lets a live eval log in on a host that keeps its CLI login in user settings.
109
+
110
+ ### Security
111
+
112
+ - The learnings ledger (`add`, `from-triage`) and the triage corpus (`ingest`) run every row through the secret scan before writing it, through one shared helper (`scripts/_secret-scan.mjs`) that the transcript miner uses too. A refused row is counted in `droppedBySecretScan`; a missing scanner refuses the row instead of writing it unchecked. `<private>...</private>` spans are removed before anything is stored. Control bytes are removed from the scanned copy, so a NUL cannot make the scanner treat the text as binary and skip it. The triage corpus scans every stored field, task id, title, stack and reviewer included.
113
+ - A token hard-wrapped by a space or a line break is still refused: a run that starts with a known token prefix is scanned a second time with its whitespace removed.
114
+ - Every memory store refuses a repository slug that could leave the memory folder (a path separator, NUL, `.` or `..`); spaces and non-ASCII letters stay valid, and slugs compare in Unicode NFC, so `excludeProjects` matches either normal form. The transcript miner honours `memory.excludeProjects` for the ledger and the `CLAUDE.local.md` block alike.
115
+ - `file-context.mjs --lines`, used when a whole-file read is turned away, prints inside the same untrusted-data block as the hook and stays silent when `fileContext.enabled` is false.
116
+
19
117
  ## [20.33.0] - 2026-10-25
20
118
 
21
119
  ### Added
@@ -114,7 +212,6 @@ Internal file-layout changes that don't affect the slash-command surface are sti
114
212
  - `prefs.global.readOnlyRepos[]`: checkouts that may not be edited, committed or pushed.
115
213
  - `/multi-agent:doctor` reports template hooks that are not registered or not executable and preferences that no registered hook enforces. The installer registers the run hooks itself, records them in `multi-agent-hook-manifest.json` after settings.json is written, and does not re-add a hook the user removed.
116
214
 
117
-
118
215
  ## [20.28.0] - 2026-10-24
119
216
 
120
217
  ### Added
package/README.md CHANGED
@@ -297,7 +297,7 @@ the pipeline merges.
297
297
  - **Operations around a run.** A second launchd agent keeps the Mac awake while the mode is on (`caffeinate -s -i`, plus `-d` if you answer yes to the display question at `autopilot-on`), and each run holds a sleep lock until its tick ends. Every credential a configured repo needs is probed before the schedule is offered and again on every tick, so a locked keychain refuses with the key and the fix. A circuit breaker stops launching after consecutive attempts that produced nothing, `costCeilingUsd` caps spend over a rolling 24 hours, `maxParallelAgents` caps sessions working at once, and once a day the runner writes a cleanup report and, when enabled, a digest. [Autopilot operations](./pipeline/multi-agent-refs/features/autopilot-operations.md)
298
298
  - **A fail-closed guard.** Under the variable, the Bash guard judges a command only when it reduces to simple commands joined by `;`, `&&`, `||` and plain pipes, and refuses anything else unparsed. On what it can parse: no push, PR, issue or tracker write, no Keychain read, no fetch outside the network allowlist, no package install or manifest edit, no write into a protected path. Ticket, page and PR text reaches the model inside untrusted-data delimiters. The permission profile (`install --unattended`) is a second line; the boundary is a separate non-admin macOS user and GitHub rulesets on the default and release branches, which the operator applies. [Unattended security](./pipeline/multi-agent-refs/features/unattended-security.md)
299
299
  - **Claims are checked, not trusted.** With the quality gates active, a run's claims about the repository are checked before it commits: a localization key or endpoint the change references exists, open analysis questions are answered or park the run, a triage citation quotes the line it cites, a "pre-existing" finding points at a line the diff did not touch, the plan's steps are covered, and a test pass shows a positive executed count read with the stack's own markers (8 stacks: `ios`, `android`, `web`, `backend-node`, `python`, `go`, `rust`, `jvm`) along with a new test that fails without the change. Every verdict goes to a gate ledger, and the commit hook refuses a commit whose mandatory gates did not pass for HEAD. [Unattended gates](./pipeline/multi-agent-refs/features/unattended-gates.md), [stack adapters](./pipeline/multi-agent-refs/features/stack-adapters.md)
300
- - **Spec, plan and review discipline.** `/multi-agent:analysis` writes a project constitution (security, accessibility, architecture and licensing rules, each tied to a source), and a spec-consistency gate checks by id that every requirement has a task and a test and that nothing waives a binding rule. Phase 1 ends with one plan-critic round under four lenses (scope, feasibility, security, a cheaper alternative), answered once and judged by a script. In review, a `blocking` finding stops the run only when two independent reviewers carry it or a failing test shows it; otherwise it is lowered to `important`, never dropped. [Constitution](./pipeline/multi-agent-refs/features/constitution.md), [plan critic](./pipeline/multi-agent-refs/features/plan-critic.md), [review decision](./pipeline/multi-agent-refs/features/review-decision.md)
300
+ - **Spec, plan and review discipline.** `/multi-agent:analysis` writes a project constitution (security, accessibility, architecture and licensing rules, each tied to a source), and a spec-consistency gate checks by id that every requirement has a task and a test and that nothing waives a binding rule. Phase 1 ends with one plan-critic round under six lenses (scope, feasibility, security, a cheaper alternative, an unstated input, a decision left to the implementer), answered once and judged by a script. In review, a `blocking` finding stops the run only when two independent reviewers carry it or a failing test shows it; otherwise it is lowered to `important`, never dropped. [Constitution](./pipeline/multi-agent-refs/features/constitution.md), [plan critic](./pipeline/multi-agent-refs/features/plan-critic.md), [review decision](./pipeline/multi-agent-refs/features/review-decision.md)
301
301
  - **A client contract.** Commands and run questions are declared as data. `/multi-agent:serve` starts a localhost HTTP server over the same JSON the CLI prints, and `pipeline/contract/` ships the manifest, TypeScript types and fixtures a client builds against. Four phone routes read redacted runs, answer a parked question with one of its offered options, and, only when switched on, queue a launch; every request carries an Ed25519 signature from an enrolled device. The phone app is a separate project. [Client kit](./pipeline/contract/README.md), [phone API](./pipeline/multi-agent-refs/features/phone-api.md)
302
302
 
303
303
  **Attended use is unchanged.** Every behaviour above keys on
@@ -503,6 +503,8 @@ The **secret scan** runs as a `PreToolUse` hook on Claude Code (hard-blocks a co
503
503
  | `run-scope-guard.sh` (Figma phase rule, worktree boundary warning) | PreToolUse Figma tools, file edits | none: the phase records its own MCP calls | none |
504
504
  | `run-stop-guard.sh` (no silent stop mid-run) | Stop | none: halts stay the phase's own write | none |
505
505
  | `task-mirror.sh` (native task list into the run tracker, so the office shows it) | PostToolUse `TaskCreate`/`TaskUpdate` | none: the phase calls `phase-tracker.sh task` itself | none: the phase calls `phase-tracker.sh task` itself |
506
+ | `file-context.sh` (what the repo's memory says about a file, after it is read) | PostToolUse `Read` | none | none |
507
+ | `answer-check.sh` (an AskUserQuestion submitted without a choice is asked again, not defaulted) | PostToolUse `AskUserQuestion` | none | none |
506
508
  | `edit-syntax-gate.sh` | PostToolUse file edits | PostToolUse `apply_patch` | none: Copilot discards postToolUse output |
507
509
  | `check-read-size.sh`, capture hooks | registered | none | none |
508
510
 
package/README.tr.md CHANGED
@@ -297,7 +297,7 @@ pipeline'daki hiçbir şey merge etmez.
297
297
  - **Koşunun etrafındaki operasyonlar.** Mod açıkken ikinci bir launchd ajanı Mac'i uyanık tutar (`caffeinate -s -i`; `autopilot-on`'daki ekran sorusuna evet dersen `-d` de eklenir), her koşu da tick'i bitene kadar bir uyku kilidi tutar. Yapılandırılmış bir reponun ihtiyaç duyduğu her credential zamanlama önerilmeden önce ve her tick'te yeniden yoklanır; kilitlenmiş bir keychain, anahtarın adı ve çözümüyle reddedilir. Üst üste hiçbir şey üretmeyen denemelerden sonra bir devre kesici yeni başlatmayı durdurur, `costCeilingUsd` harcamayı 24 saatlik yuvarlanan pencerede sınırlar, `maxParallelAgents` aynı anda çalışan oturum sayısını sınırlar, koşucu günde bir kez bir temizlik raporu ve açıksa bir özet (digest) yazar. [Autopilot operasyonları](./pipeline/multi-agent-refs/features/autopilot-operations.md)
298
298
  - **Kapalı başarısız olan (fail-closed) bir guard.** Değişken açıkken Bash guard bir komutu yalnızca `;`, `&&`, `||` ve düz pipe'larla birleşen basit komutlara indirgeyebildiğinde değerlendirir, gerisini ayrıştırmadan reddeder. Ayrıştırabildiklerinde: push, PR, issue ya da tracker yazımı yok, Keychain okuması yok, ağ izin listesi dışına istek yok, paket kurulumu ya da manifest düzenlemesi yok, korunan bir yola yazma yok. Ticket, sayfa ve PR metni modele güvenilmeyen-veri sınırlayıcıları içinde ulaşır. İzin profili (`install --unattended`) ikinci hattır; sınırın kendisi ayrı, admin olmayan bir macOS kullanıcısı ve varsayılan ile release branch'lerindeki GitHub ruleset'leridir, bunları operatör uygular. [Gözetimsiz güvenlik](./pipeline/multi-agent-refs/features/unattended-security.md)
299
299
  - **İddialar güvenilmez, kontrol edilir.** Kalite kapıları açıkken koşunun repo hakkındaki iddiaları commit'ten önce kontrol edilir: değişikliğin referans verdiği lokalizasyon anahtarı ya da endpoint gerçekten var, açık analiz soruları cevaplanmış ya da koşuyu park ediyor, bir triyaj alıntısı andığı satırı birebir alıntılıyor, "önceden vardı" denen bulgu diff'in dokunmadığı bir satırı gösteriyor, planın adımları karşılanmış, ve bir test başarısı stack'in kendi işaretleriyle okunan pozitif bir çalıştırılmış test sayısı gösteriyor (8 stack: `ios`, `android`, `web`, `backend-node`, `python`, `go`, `rust`, `jvm`), yanında da değişiklik olmadan kırmızıya dönen yeni bir test. Her karar bir gate ledger'a yazılır ve commit hook'u, zorunlu kapıları HEAD için geçmemiş bir commit'i reddeder. [Gözetimsiz kapılar](./pipeline/multi-agent-refs/features/unattended-gates.md), [stack adaptörleri](./pipeline/multi-agent-refs/features/stack-adapters.md)
300
- - **Spec, plan ve review disiplini.** `/multi-agent:analysis` bir proje anayasası yazar (güvenlik, erişilebilirlik, mimari ve lisans kuralları, her biri bir kaynağa bağlı); spec-consistency kapısı id üzerinden her gereksinimin bir görevi ve bir testi olduğunu, hiçbir şeyin bağlayıcı bir kuralı askıya almadığını kontrol eder. Faz 1 dört mercekle (kapsam, uygulanabilirlik, güvenlik, daha ucuz bir alternatif) tek bir plan-critic turuyla biter; itirazlar bir kez cevaplanır ve bir script karar verir. Review'da `blocking` bir bulgu koşuyu ancak iki bağımsız reviewer aynı bulguyu taşıdığında ya da başarısız bir test onu gösterdiğinde durdurur; aksi halde `important`'a düşürülür, asla silinmez. [Anayasa](./pipeline/multi-agent-refs/features/constitution.md), [plan critic](./pipeline/multi-agent-refs/features/plan-critic.md), [review kararı](./pipeline/multi-agent-refs/features/review-decision.md)
300
+ - **Spec, plan ve review disiplini.** `/multi-agent:analysis` bir proje anayasası yazar (güvenlik, erişilebilirlik, mimari ve lisans kuralları, her biri bir kaynağa bağlı); spec-consistency kapısı id üzerinden her gereksinimin bir görevi ve bir testi olduğunu, hiçbir şeyin bağlayıcı bir kuralı askıya almadığını kontrol eder. Faz 1 altı mercekle (kapsam, uygulanabilirlik, güvenlik, daha ucuz bir alternatif, spec'in ima ettiği ama test edilmeyen girdi, uygulayıcıya bırakılmış karar) tek bir plan-critic turuyla biter; itirazlar bir kez cevaplanır ve bir script karar verir. Review'da `blocking` bir bulgu koşuyu ancak iki bağımsız reviewer aynı bulguyu taşıdığında ya da başarısız bir test onu gösterdiğinde durdurur; aksi halde `important`'a düşürülür, asla silinmez. [Anayasa](./pipeline/multi-agent-refs/features/constitution.md), [plan critic](./pipeline/multi-agent-refs/features/plan-critic.md), [review kararı](./pipeline/multi-agent-refs/features/review-decision.md)
301
301
  - **Bir istemci sözleşmesi.** Komutlar ve koşu soruları veri olarak beyan edilir. `/multi-agent:serve`, CLI'ın bastığı aynı JSON üzerinde localhost'ta bir HTTP sunucusu başlatır; `pipeline/contract/` bir istemcinin üzerine kurulacağı manifest'i, TypeScript tiplerini ve fixture'ları taşır. Dört telefon route'u redakte edilmiş koşuları okur, park etmiş bir soruyu sunulan seçeneklerden biriyle cevaplar ve yalnızca açıldığında bir başlatmayı kuyruğa alır; her istek kayıtlı bir cihazın Ed25519 imzasını taşır. Telefon uygulaması ayrı bir proje. [İstemci kiti](./pipeline/contract/README.md), [telefon API'si](./pipeline/multi-agent-refs/features/phone-api.md)
302
302
 
303
303
  **Elle kullanım değişmedi.** Yukarıdaki her davranış `MULTI_AGENT_UNATTENDED=1`
@@ -504,6 +504,7 @@ triage notu bunu belirtir.
504
504
  | `run-scope-guard.sh` (Figma faz kuralı, worktree sınırı uyarısı) | PreToolUse Figma araçları, dosya düzenlemeleri | yok: faz kendi MCP çağrılarını kaydeder | yok |
505
505
  | `run-stop-guard.sh` (koşu ortasında sessizce durmaz) | Stop | yok: duraklama fazın kendi yazımı olarak kalır | yok |
506
506
  | `task-mirror.sh` (terminaldeki görev listesini koşunun takipçisine yazar, ofis de onu gösterir) | PostToolUse `TaskCreate`/`TaskUpdate` | yok: faz `phase-tracker.sh task`'ı kendisi çağırır | yok: faz `phase-tracker.sh task`'ı kendisi çağırır |
507
+ | `file-context.sh` (okunan dosya hakkında repo hafızasının söylediklerini verir) | PostToolUse `Read` | yok | yok |
507
508
  | `edit-syntax-gate.sh` | PostToolUse dosya düzenlemeleri | PostToolUse `apply_patch` | yok: Copilot postToolUse çıktısını atar |
508
509
  | `check-read-size.sh`, capture hook'ları | kayıtlı | yok | yok |
509
510
 
@@ -0,0 +1,43 @@
1
+ # 18. Cross-repository links, not a global graph
2
+
3
+ **Status:** Accepted · 2026-10-26 · extends [ADR-0010](./0010-own-code-graph.md)
4
+
5
+ ## Context
6
+
7
+ A run can touch a main repository and the libraries it depends on (the
8
+ dev-context picker adds submodules and extra repositories). Each has its own
9
+ code graph under `~/.claude/knowledge/<project>/`, and a change in a library is
10
+ only half understood until the files that import it in the main repository are
11
+ known.
12
+
13
+ `Graphify-Labs/graphify` (Apache-2.0) answers this with one global graph
14
+ across repositories, linking calls and types between them. That merges every
15
+ repository into one store that must be rebuilt as a whole, carries names from
16
+ unrelated repositories into each other's queries, and makes a per-project
17
+ graph no longer the single answer for its project.
18
+
19
+ ## Decision
20
+
21
+ Graphs stay separate. `graph-links.mjs build --projects <a,b,...>` joins them
22
+ by one fact each graph already has: an import of a name the repository does
23
+ not declare (a `module:` node). Each such name is matched against what the
24
+ other repositories export (package name, Python packages, Swift targets, the
25
+ Go module path, Kotlin top-level types) and every match is one row in
26
+ `~/.claude/knowledge/_links.json`: importing repository, files, imported name,
27
+ exporting repository. `graph-links.mjs affected --project <b>` lists the files
28
+ elsewhere that import b. The link file is rebuilt in a second, so it has no
29
+ incremental state.
30
+
31
+ ## Consequences
32
+
33
+ - A per-project graph keeps meaning what it meant; nothing is merged into it.
34
+ - Links are as good as the import patterns: a dynamic import or a name built
35
+ at run time is not linked, the same limit the per-project graph states.
36
+ - A Kotlin import keeps only its class name in the graph, so a link is kept
37
+ only for the importing files whose `import <package>.<Name>` names the
38
+ package the exporting file declares. That check reads both repositories
39
+ from disk; a repository that moved since its graph was built links nothing.
40
+ - The repository directory name counts as an export only when the stack
41
+ names none, so a library called `core` does not catch every `core.*` import.
42
+ - The link file holds file paths of every listed repository; it is written
43
+ 0600 beside the graphs and never leaves the machine.
@@ -25,8 +25,9 @@ Format: lightly adapted from [Michael Nygard's ADR template](https://cognitect.c
25
25
  | [0013](./0013-lsp-code-intelligence.md) | A language server for the answers regex cannot give | Accepted |
26
26
  | [0014](./0014-six-phase-consolidation.md) | Six phases, because two of the eight were doing the same work twice | Accepted (amended by 0015: the depth answer is removed) |
27
27
  | [0015](./0015-one-pipeline-no-depth-answer.md) | One pipeline: the depth question is removed | Accepted (extended by 0016: the workspace and resume names go too) |
28
- | [0016](./0016-the-run-shape-is-asked-not-typed.md) | The shape of a run is asked, not typed into its name | Accepted |
28
+ | [0016](./0016-the-run-shape-is-asked-not-typed.md) | The shape of a run is asked, not typed into its name | Accepted |
29
29
  | [0017](./0017-change-impact-from-the-graph.md) | Change impact from the graph: spans, a transitive walk, freshness | Accepted |
30
+ | [0018](./0018-cross-repo-links-not-a-global-graph.md) | Cross-repository links, not a global graph | Accepted |
30
31
 
31
32
  ## Writing a New ADR
32
33
 
package/docs/facts.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "Generated by pipeline/scripts/gen-facts.mjs. Do not hand-edit: the site reads this, and a number edited here instead of at its source is the drift this file removes.",
3
- "generatedAt": "2026-10-25",
4
- "version": "20.33.0",
3
+ "generatedAt": "2026-10-27",
4
+ "version": "20.35.0",
5
5
  "phaseSchema": 2,
6
6
  "phases": [
7
7
  {
@@ -40,7 +40,7 @@
40
40
  "skillCountAll": 237,
41
41
  "agentCount": 11,
42
42
  "hosts": ["Claude Code", "Codex CLI", "Copilot CLI"],
43
- "toolCount": 208,
43
+ "toolCount": 213,
44
44
  "toolCategories": {
45
45
  "ios": 42,
46
46
  "web": 38,
@@ -51,6 +51,7 @@
51
51
  "design": 7,
52
52
  "repo": 6,
53
53
  "voice": 6,
54
+ "graph": 5,
54
55
  "ui": 5,
55
56
  "context": 4,
56
57
  "pass": 4,
@@ -64,5 +65,5 @@
64
65
  "test": 1
65
66
  },
66
67
  "pluginSkillCount": 261,
67
- "toolkitVersion": "3.26.0"
68
+ "toolkitVersion": "3.27.0"
68
69
  }
package/docs/features.md CHANGED
@@ -340,7 +340,7 @@ Stack adapters cover 8 stacks: `ios`, `android`, `web`, `backend-node`, `python`
340
340
 
341
341
  ### Plan Critic
342
342
 
343
- With the gates active, Phase 1 ends with one adversarial critic (`agents/plan-critic.md`) under four lenses: scope, feasibility, security and a cheaper alternative. Each objection carries evidence anchors; the planner answers each once, accepting and revising or rebutting with evidence, and `plan-critique-gate.mjs` judges with no model call. An objection citing a binding constitution rule blocks unless its reply resolves it with an anchor that holds; the rest is advisory and appears in the plan render and the PR summary. One round, because further rounds move agents toward each other rather than toward the right answer. The critic follows the fable switch. Detail: [`plan-critic.md`](../pipeline/multi-agent-refs/features/plan-critic.md).
343
+ With the gates active, Phase 1 ends with one adversarial critic (`agents/plan-critic.md`) under six lenses: scope, feasibility, security, a cheaper alternative, an input the spec implies that no test exercises, and a decision left to the implementer. Each objection carries evidence anchors; the planner answers each once, accepting and revising or rebutting with evidence, and `plan-critique-gate.mjs` judges with no model call. An objection citing a binding constitution rule blocks unless its reply resolves it with an anchor that holds; the rest is advisory and appears in the plan render and the PR summary. One round, because further rounds move agents toward each other rather than toward the right answer. The critic follows the fable switch. Detail: [`plan-critic.md`](../pipeline/multi-agent-refs/features/plan-critic.md).
344
344
 
345
345
  ### Review Decision Rule
346
346
 
@@ -69,6 +69,7 @@ const DEV_ONLY_TOOLING = Object.freeze([
69
69
  "check-rewrite-overlap.mjs", // compares a rewrite against a source only a maintainer has
70
70
  "gen-catalog-history.mjs", // reads the repo's git history; an install has none
71
71
  "gen-ref-toc.mjs", // regenerates the repo's own reference tree; an install has no pipeline/
72
+ "ref-filler-audit.mjs", // audits the repo's own instruction docs; an install has no pipeline/
72
73
  "validate-schemas.mjs", // validates the repo's own schema files, needs ajv
73
74
  "permission-baseline.mjs", // reads the repo's own command, skill and agent tree; an install has none
74
75
  "sync-parity-check.sh",