@hassangameryt/freeflow 0.7.3 → 0.9.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 (426) hide show
  1. package/.agents/plugins/marketplace.json +2 -2
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +2 -2
  4. package/.codex-plugin/plugin.json +3 -3
  5. package/.cursor-plugin/plugin.json +1 -1
  6. package/NOTICE +14 -0
  7. package/README.md +101 -159
  8. package/capabilities/cognitive-routing/SKILL.md +47 -210
  9. package/capabilities/cognitive-routing/references/coordinator.md +163 -0
  10. package/capabilities/cognitive-routing/references/worker.md +38 -0
  11. package/capabilities/compaction/SKILL.md +49 -0
  12. package/capabilities/compaction/references/summary-format.md +250 -0
  13. package/capabilities/messaging/SKILL.md +49 -0
  14. package/capabilities/task-memory/SKILL.md +87 -0
  15. package/command-surface.json +8 -52
  16. package/gemini-extension.json +1 -1
  17. package/hooks/claude/hooks.json +13 -3
  18. package/hooks/codex/hooks.json +2 -1
  19. package/hooks/shared/runtime-context.mjs +73 -83
  20. package/licenses/Apache-2.0.txt +55 -0
  21. package/package.json +42 -12
  22. package/pi-extension/README.md +41 -0
  23. package/pi-extension/dist/ask-user/ask.js +108 -0
  24. package/pi-extension/dist/ask-user/form.js +250 -0
  25. package/pi-extension/dist/ask-user/questions.js +66 -0
  26. package/pi-extension/dist/ask-user/tool.js +124 -0
  27. package/pi-extension/dist/cognitive-routing/assembler.js +417 -0
  28. package/pi-extension/dist/cognitive-routing/bootstrap.js +90 -0
  29. package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/config.js +8 -6
  30. package/pi-extension/dist/cognitive-routing/economics.js +45 -0
  31. package/pi-extension/dist/cognitive-routing/event-schema.js +388 -0
  32. package/pi-extension/dist/{session-sources/events.js → cognitive-routing/event-store.js} +107 -41
  33. package/pi-extension/dist/cognitive-routing/gate.js +256 -0
  34. package/pi-extension/dist/cognitive-routing/handlers.js +901 -0
  35. package/pi-extension/dist/cognitive-routing/handoffs.js +350 -0
  36. package/pi-extension/dist/cognitive-routing/model-control.js +476 -0
  37. package/pi-extension/dist/cognitive-routing/projection.js +520 -0
  38. package/pi-extension/dist/cognitive-routing/provenance.js +83 -0
  39. package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/render.js +15 -15
  40. package/pi-extension/dist/cognitive-routing/runtime.js +398 -0
  41. package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/schemas.js +47 -11
  42. package/pi-extension/dist/cognitive-routing/session.js +223 -0
  43. package/pi-extension/dist/{session-sources → cognitive-routing}/sources.js +126 -87
  44. package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/state.js +55 -386
  45. package/pi-extension/dist/cognitive-routing/status.js +81 -0
  46. package/pi-extension/dist/cognitive-routing/tools.js +74 -0
  47. package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/types.js +14 -11
  48. package/pi-extension/dist/compaction/carry.js +205 -0
  49. package/pi-extension/dist/compaction/config.js +24 -0
  50. package/pi-extension/dist/compaction/controller.js +494 -0
  51. package/pi-extension/dist/compaction/harness.js +93 -0
  52. package/pi-extension/dist/compaction/results.js +159 -0
  53. package/pi-extension/dist/compaction/thresholds.js +35 -0
  54. package/pi-extension/dist/compaction/tool.js +57 -0
  55. package/pi-extension/dist/host/branch.js +13 -0
  56. package/pi-extension/dist/host/canonical.js +12 -0
  57. package/pi-extension/dist/host/catalog.js +62 -0
  58. package/pi-extension/dist/host/config-validation.js +233 -0
  59. package/pi-extension/dist/host/config.js +361 -0
  60. package/pi-extension/dist/host/inbound.js +142 -0
  61. package/pi-extension/dist/host/projection-tags.js +60 -0
  62. package/pi-extension/dist/host/prompts.js +93 -0
  63. package/pi-extension/dist/{session-sources → host}/read-only-session.js +117 -1
  64. package/pi-extension/dist/{runtime → host}/request-history.js +125 -39
  65. package/pi-extension/dist/host/rows.js +25 -0
  66. package/pi-extension/dist/host/runtime-state.js +204 -0
  67. package/pi-extension/dist/host/section-keeper.js +85 -0
  68. package/pi-extension/dist/host/settings/freeflow-command.js +2323 -0
  69. package/pi-extension/dist/{settings/settings-tui.js → host/settings/settings-view.js} +205 -73
  70. package/pi-extension/dist/host/staging.js +28 -0
  71. package/pi-extension/dist/host/status.js +115 -0
  72. package/pi-extension/dist/index.js +1004 -188
  73. package/pi-extension/dist/messaging/config.js +27 -0
  74. package/pi-extension/dist/messaging/messaging.js +398 -0
  75. package/pi-extension/dist/messaging/registry.js +57 -0
  76. package/pi-extension/dist/messaging/render.js +90 -0
  77. package/pi-extension/dist/messaging/tools.js +109 -0
  78. package/pi-extension/dist/messaging/transport.js +101 -0
  79. package/pi-extension/dist/provider-support/cache/anchor.js +21 -0
  80. package/pi-extension/dist/provider-support/cache/anthropic.js +102 -0
  81. package/pi-extension/dist/provider-support/cache/health.js +73 -0
  82. package/pi-extension/dist/provider-support/cache/index.js +58 -0
  83. package/pi-extension/dist/provider-support/cache/keepalive.js +222 -0
  84. package/pi-extension/dist/provider-support/cache/monitor.js +17 -0
  85. package/pi-extension/dist/provider-support/cache/openai-responses.js +48 -0
  86. package/pi-extension/dist/provider-support/effort.js +13 -0
  87. package/pi-extension/dist/provider-support/index.js +44 -3
  88. package/pi-extension/dist/provider-support/{astra → openai}/adapter.js +46 -29
  89. package/pi-extension/dist/provider-support/{astra → openai}/history.js +10 -8
  90. package/pi-extension/dist/provider-support/{astra → openai}/index.js +8 -4
  91. package/pi-extension/dist/provider-support/{astra → openai}/session-state.js +29 -38
  92. package/pi-extension/dist/provider-support/routes.js +17 -0
  93. package/pi-extension/dist/task-memory/config.js +49 -0
  94. package/pi-extension/dist/task-memory/registry.js +119 -0
  95. package/pi-extension/dist/task-memory/render.js +107 -0
  96. package/pi-extension/dist/task-memory/runtime.js +994 -0
  97. package/pi-extension/dist/task-memory/tool.js +233 -0
  98. package/pi-extension/dist/tool-execution/apply-patch/grammar.js +23 -0
  99. package/pi-extension/dist/tool-execution/apply-patch/match.js +38 -0
  100. package/pi-extension/dist/tool-execution/apply-patch/parser.js +177 -0
  101. package/pi-extension/dist/tool-execution/apply-patch/plan.js +201 -0
  102. package/pi-extension/dist/tool-execution/apply-patch/tool.js +84 -0
  103. package/pi-extension/dist/tool-execution/background.js +430 -0
  104. package/pi-extension/dist/tool-execution/bash-guard.js +23 -0
  105. package/pi-extension/dist/tool-execution/config.js +33 -0
  106. package/pi-extension/dist/tool-execution/edit-messages.js +120 -0
  107. package/pi-extension/dist/tool-execution/file-state.js +138 -0
  108. package/pi-extension/dist/tool-execution/file-tracking.js +163 -0
  109. package/pi-extension/dist/tool-execution/guidance-notices.js +124 -0
  110. package/pi-extension/dist/tool-execution/prompt.js +54 -0
  111. package/pi-extension/dist/tool-execution/skill-reads.js +143 -0
  112. package/pi-extension/dist/tool-execution/tools.js +16 -0
  113. package/pi-extension/freeflow/README.md +9 -0
  114. package/runtime/prompts/cognitive-routing.md +4 -4
  115. package/runtime/prompts/core.md +29 -72
  116. package/runtime/prompts/interaction-contract.md +18 -8
  117. package/runtime/prompts/tool-execution.md +25 -0
  118. package/runtime/prompts/working-method.md +25 -0
  119. package/skills/deliver-work/SKILL.md +76 -0
  120. package/skills/deliver-work/references/branch-closeout.md +134 -0
  121. package/skills/deliver-work/references/commit.md +83 -0
  122. package/skills/deliver-work/references/launch.md +94 -0
  123. package/skills/deliver-work/references/release.md +85 -0
  124. package/skills/deliver-work/scripts/commit-state.mjs +139 -0
  125. package/skills/deliver-work/scripts/delivery-state.mjs +107 -0
  126. package/skills/deliver-work/scripts/lib/git-state.mjs +178 -0
  127. package/skills/deliver-work/scripts/push-route.mjs +122 -0
  128. package/skills/deliver-work/scripts/release-preflight.mjs +177 -0
  129. package/skills/discuss-work/SKILL.md +148 -0
  130. package/skills/{discuss → discuss-work}/references/discussion-continuity.md +13 -50
  131. package/skills/discuss-work/references/learning-action.md +36 -0
  132. package/skills/discuss-work/scripts/choices.mjs +101 -0
  133. package/skills/discuss-work/scripts/lib/choices.mjs +159 -0
  134. package/skills/evaluate-behavior/SKILL.md +107 -0
  135. package/skills/evaluate-behavior/references/authoring.md +381 -0
  136. package/skills/evaluate-behavior/references/coding-tasks.md +145 -0
  137. package/skills/evaluate-behavior/references/conversations-pipelines-judges.md +177 -0
  138. package/skills/evaluate-behavior/references/design-and-measurement.md +273 -0
  139. package/skills/evaluate-behavior/references/running-and-evidence.md +245 -0
  140. package/skills/evaluate-behavior/scripts/claude-guard.mjs +76 -0
  141. package/skills/evaluate-behavior/scripts/guard-rules.mjs +309 -0
  142. package/skills/evaluate-behavior/scripts/lib/agreement.mjs +90 -0
  143. package/skills/evaluate-behavior/scripts/lib/arms.mjs +55 -0
  144. package/skills/evaluate-behavior/scripts/lib/budget.mjs +87 -0
  145. package/skills/evaluate-behavior/scripts/lib/build-source.mjs +287 -0
  146. package/skills/evaluate-behavior/scripts/lib/clear.mjs +74 -0
  147. package/skills/evaluate-behavior/scripts/lib/container.mjs +395 -0
  148. package/skills/evaluate-behavior/scripts/lib/decision.mjs +418 -0
  149. package/skills/evaluate-behavior/scripts/lib/definitions.mjs +1072 -0
  150. package/skills/evaluate-behavior/scripts/lib/freeflow.mjs +103 -0
  151. package/skills/evaluate-behavior/scripts/lib/grade-command.mjs +591 -0
  152. package/skills/evaluate-behavior/scripts/lib/grade-comparison.mjs +90 -0
  153. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-interaction.mjs +19 -18
  154. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-support.mjs +32 -5
  155. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-workspace.mjs +28 -12
  156. package/skills/evaluate-behavior/scripts/lib/grade.mjs +101 -0
  157. package/skills/evaluate-behavior/scripts/lib/hooks.mjs +98 -0
  158. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/confinement.mjs +196 -0
  159. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/constraints.mjs +111 -0
  160. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/index.mjs +48 -0
  161. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/isolation.mjs +74 -0
  162. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/launch.mjs +123 -0
  163. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/model-call.mjs +73 -0
  164. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/recorder.mjs +178 -0
  165. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/session.mjs +494 -0
  166. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/skills.mjs +81 -0
  167. package/skills/evaluate-behavior/scripts/lib/hosts/index.mjs +31 -0
  168. package/skills/evaluate-behavior/scripts/lib/hosts/names.mjs +3 -0
  169. package/skills/evaluate-behavior/scripts/lib/hosts/pi/confinement.mjs +173 -0
  170. package/skills/evaluate-behavior/scripts/lib/hosts/pi/host.mjs +148 -0
  171. package/skills/evaluate-behavior/scripts/lib/hosts/pi/index.mjs +70 -0
  172. package/skills/evaluate-behavior/scripts/lib/hosts/pi/isolation.mjs +81 -0
  173. package/skills/evaluate-behavior/scripts/lib/hosts/pi/model-call.mjs +79 -0
  174. package/skills/evaluate-behavior/scripts/lib/hosts/pi/process.mjs +241 -0
  175. package/skills/{evaluate-skill/scripts/lib → evaluate-behavior/scripts/lib/hosts/pi}/rpc.mjs +144 -26
  176. package/skills/evaluate-behavior/scripts/lib/identity.mjs +82 -0
  177. package/skills/evaluate-behavior/scripts/lib/judge.mjs +688 -0
  178. package/skills/evaluate-behavior/scripts/lib/metrics.mjs +332 -0
  179. package/skills/evaluate-behavior/scripts/lib/model-call.mjs +17 -0
  180. package/skills/evaluate-behavior/scripts/lib/participants.mjs +616 -0
  181. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/process.mjs +22 -0
  182. package/skills/evaluate-behavior/scripts/lib/queue.mjs +54 -0
  183. package/skills/evaluate-behavior/scripts/lib/reference.mjs +343 -0
  184. package/skills/evaluate-behavior/scripts/lib/reuse.mjs +277 -0
  185. package/skills/evaluate-behavior/scripts/lib/review.mjs +933 -0
  186. package/skills/evaluate-behavior/scripts/lib/runner.mjs +732 -0
  187. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/sandbox.mjs +121 -14
  188. package/skills/evaluate-behavior/scripts/lib/scan-shell.mjs +457 -0
  189. package/skills/evaluate-behavior/scripts/lib/scan.mjs +479 -0
  190. package/skills/evaluate-behavior/scripts/lib/seal.mjs +91 -0
  191. package/skills/evaluate-behavior/scripts/lib/shell.mjs +560 -0
  192. package/skills/evaluate-behavior/scripts/lib/source-override.mjs +64 -0
  193. package/skills/evaluate-behavior/scripts/lib/subject-file.mjs +88 -0
  194. package/skills/{evaluate-skill/scripts/lib/pi.mjs → evaluate-behavior/scripts/lib/subject.mjs} +239 -262
  195. package/skills/evaluate-behavior/scripts/lib/task-copy.mjs +124 -0
  196. package/skills/evaluate-behavior/scripts/lib/trials.mjs +524 -0
  197. package/skills/evaluate-behavior/scripts/lib/validity.mjs +68 -0
  198. package/skills/evaluate-behavior/scripts/lib/view-html.mjs +454 -0
  199. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/view.mjs +218 -11
  200. package/skills/evaluate-behavior/scripts/pi-command-tool.mjs +159 -0
  201. package/skills/evaluate-behavior/scripts/pi-container-route.mjs +23 -0
  202. package/skills/evaluate-behavior/scripts/pi-guard.mjs +77 -0
  203. package/skills/evaluate-behavior/scripts/pi-login-refresh.mjs +31 -0
  204. package/skills/evaluate-behavior/scripts/skill-eval.mjs +586 -0
  205. package/skills/execute-work/SKILL.md +96 -72
  206. package/skills/execute-work/references/code-practices.md +27 -49
  207. package/skills/execute-work/references/design.md +271 -0
  208. package/skills/execute-work/references/diagnose.md +117 -0
  209. package/skills/execute-work/references/migration.md +108 -0
  210. package/skills/execute-work/references/simplify.md +65 -0
  211. package/skills/execute-work/scripts/self-review.mjs +422 -0
  212. package/skills/execute-work/scripts/touch-map.mjs +290 -0
  213. package/skills/review-work/SKILL.md +94 -64
  214. package/skills/review-work/references/adjudication.md +94 -0
  215. package/skills/review-work/references/artifact.md +198 -0
  216. package/skills/review-work/references/evals-and-judges.md +66 -0
  217. package/skills/review-work/references/work.md +177 -0
  218. package/skills/review-work/scripts/check-brief.mjs +128 -0
  219. package/skills/review-work/scripts/review-packet.mjs +233 -0
  220. package/skills/setup-freeflow/SKILL.md +69 -16
  221. package/skills/track-work/SKILL.md +135 -151
  222. package/skills/track-work/references/handoff.md +190 -0
  223. package/skills/track-work/references/projects.md +51 -0
  224. package/skills/track-work/references/working-record-format.md +201 -344
  225. package/skills/track-work/scripts/lib/document.mjs +79 -19
  226. package/skills/track-work/scripts/lib/format.mjs +18 -1
  227. package/skills/track-work/scripts/lib/recover.mjs +254 -0
  228. package/skills/track-work/scripts/lib/registry.mjs +656 -0
  229. package/skills/track-work/scripts/lib/search.mjs +40 -0
  230. package/skills/track-work/scripts/lib/store.mjs +53 -21
  231. package/skills/track-work/scripts/lib/transitions.mjs +79 -4
  232. package/skills/track-work/scripts/lib/views.mjs +50 -1
  233. package/skills/track-work/scripts/working-record.mjs +263 -22
  234. package/skills/verify-work/SKILL.md +64 -47
  235. package/skills/verify-work/references/feature-map.md +120 -0
  236. package/skills/verify-work/references/runtime-evidence.md +203 -0
  237. package/skills/verify-work/references/test-design.md +27 -6
  238. package/skills/verify-work/scripts/test-changes.mjs +246 -0
  239. package/skills/write-docs/SKILL.md +171 -0
  240. package/skills/write-docs/references/documentation-shapes.md +184 -0
  241. package/skills/write-docs/references/spec-and-plan-shapes.md +308 -0
  242. package/skills/write-docs/scripts/artifact-check.mjs +148 -0
  243. package/skills/write-docs/scripts/docs-check.mjs +229 -0
  244. package/skills/write-docs/scripts/plan-lint.mjs +123 -0
  245. package/skills/write-skill/SKILL.md +165 -165
  246. package/skills/write-skill/references/activation-and-wording.md +143 -0
  247. package/skills/write-skill/references/placement-and-dependencies.md +154 -0
  248. package/skills/write-skill/scripts/lib/compare.mjs +701 -0
  249. package/skills/write-skill/scripts/lib/similarity.mjs +56 -0
  250. package/skills/write-skill/scripts/lib/skill-author.mjs +197 -3
  251. package/skills/write-skill/scripts/skill-author.mjs +67 -8
  252. package/capabilities/context-virtualization/SKILL.md +0 -103
  253. package/capabilities/conversation-history/SKILL.md +0 -53
  254. package/hooks/tests/check-host-adapters.test.mjs +0 -82
  255. package/hooks/tests/check-runtime-context-hook.sh +0 -212
  256. package/pi-extension/dist/cognitive-routing-v2/projection.js +0 -330
  257. package/pi-extension/dist/cognitive-routing-v2/runtime.js +0 -2181
  258. package/pi-extension/dist/cognitive-routing-v2/tools.js +0 -60
  259. package/pi-extension/dist/context-virtualization/commands.js +0 -89
  260. package/pi-extension/dist/context-virtualization/projector.js +0 -42
  261. package/pi-extension/dist/context-virtualization/runtime.js +0 -378
  262. package/pi-extension/dist/context-virtualization/state.js +0 -57
  263. package/pi-extension/dist/context-virtualization/types.js +0 -10
  264. package/pi-extension/dist/conversation-history/passages.js +0 -66
  265. package/pi-extension/dist/conversation-history/ranking.js +0 -105
  266. package/pi-extension/dist/conversation-history/runtime.js +0 -226
  267. package/pi-extension/dist/conversation-history/search.js +0 -56
  268. package/pi-extension/dist/conversation-history/types.js +0 -1
  269. package/pi-extension/dist/freeflow-context/resolver.js +0 -120
  270. package/pi-extension/dist/freeflow-context/runtime.js +0 -80
  271. package/pi-extension/dist/freeflow-context/source-projector.js +0 -95
  272. package/pi-extension/dist/freeflow-context/tool.js +0 -314
  273. package/pi-extension/dist/freeflow-context/types.js +0 -12
  274. package/pi-extension/dist/freeflow-context/visibility.js +0 -28
  275. package/pi-extension/dist/integrations/mcp-config.js +0 -29
  276. package/pi-extension/dist/runtime/runtime-context.js +0 -754
  277. package/pi-extension/dist/runtime/runtime-identity.js +0 -5
  278. package/pi-extension/dist/session-sources/provenance.js +0 -32
  279. package/pi-extension/dist/settings/settings-ui.js +0 -1360
  280. package/pi-extension/dist/ui/text-component.js +0 -57
  281. package/pi-extension/src/cognitive-routing-v2/budget.ts +0 -42
  282. package/pi-extension/src/cognitive-routing-v2/config.ts +0 -173
  283. package/pi-extension/src/cognitive-routing-v2/projection.ts +0 -375
  284. package/pi-extension/src/cognitive-routing-v2/render.ts +0 -277
  285. package/pi-extension/src/cognitive-routing-v2/runtime.ts +0 -2241
  286. package/pi-extension/src/cognitive-routing-v2/schemas.ts +0 -180
  287. package/pi-extension/src/cognitive-routing-v2/state.ts +0 -839
  288. package/pi-extension/src/cognitive-routing-v2/tools.ts +0 -62
  289. package/pi-extension/src/cognitive-routing-v2/types.ts +0 -254
  290. package/pi-extension/src/context-virtualization/commands.ts +0 -111
  291. package/pi-extension/src/context-virtualization/projector.ts +0 -62
  292. package/pi-extension/src/context-virtualization/runtime.ts +0 -428
  293. package/pi-extension/src/context-virtualization/state.ts +0 -79
  294. package/pi-extension/src/context-virtualization/types.ts +0 -92
  295. package/pi-extension/src/conversation-history/passages.ts +0 -81
  296. package/pi-extension/src/conversation-history/ranking.ts +0 -155
  297. package/pi-extension/src/conversation-history/runtime.ts +0 -250
  298. package/pi-extension/src/conversation-history/search.ts +0 -79
  299. package/pi-extension/src/conversation-history/types.ts +0 -31
  300. package/pi-extension/src/freeflow-context/resolver.ts +0 -139
  301. package/pi-extension/src/freeflow-context/runtime.ts +0 -100
  302. package/pi-extension/src/freeflow-context/source-projector.ts +0 -106
  303. package/pi-extension/src/freeflow-context/tool.ts +0 -366
  304. package/pi-extension/src/freeflow-context/types.ts +0 -70
  305. package/pi-extension/src/freeflow-context/visibility.ts +0 -53
  306. package/pi-extension/src/index.ts +0 -390
  307. package/pi-extension/src/integrations/mcp-config.ts +0 -32
  308. package/pi-extension/src/provider-support/astra/adapter.ts +0 -108
  309. package/pi-extension/src/provider-support/astra/history.ts +0 -145
  310. package/pi-extension/src/provider-support/astra/index.ts +0 -12
  311. package/pi-extension/src/provider-support/astra/session-state.ts +0 -113
  312. package/pi-extension/src/provider-support/index.ts +0 -5
  313. package/pi-extension/src/runtime/request-history.ts +0 -243
  314. package/pi-extension/src/runtime/runtime-context.ts +0 -860
  315. package/pi-extension/src/runtime/runtime-identity.ts +0 -8
  316. package/pi-extension/src/session-sources/events.ts +0 -230
  317. package/pi-extension/src/session-sources/provenance.ts +0 -39
  318. package/pi-extension/src/session-sources/read-only-session.ts +0 -170
  319. package/pi-extension/src/session-sources/sources.ts +0 -334
  320. package/pi-extension/src/settings/settings-tui.ts +0 -501
  321. package/pi-extension/src/settings/settings-ui.ts +0 -1652
  322. package/pi-extension/src/ui/text-component.ts +0 -66
  323. package/pi-extension/tests/cache-reuse/history.test.js +0 -117
  324. package/pi-extension/tests/cache-reuse/native.test.js +0 -91
  325. package/pi-extension/tests/cache-reuse/settings.test.js +0 -211
  326. package/pi-extension/tests/cognitive-routing-v2/communication.test.js +0 -577
  327. package/pi-extension/tests/cognitive-routing-v2/compaction-input.test.js +0 -183
  328. package/pi-extension/tests/cognitive-routing-v2/delegation.test.js +0 -557
  329. package/pi-extension/tests/cognitive-routing-v2/native.test.js +0 -474
  330. package/pi-extension/tests/cognitive-routing-v2/performance.test.js +0 -87
  331. package/pi-extension/tests/cognitive-routing-v2/persistence.test.js +0 -300
  332. package/pi-extension/tests/cognitive-routing-v2/projection.test.js +0 -241
  333. package/pi-extension/tests/cognitive-routing-v2/recovery.test.js +0 -1034
  334. package/pi-extension/tests/cognitive-routing-v2/render.test.js +0 -244
  335. package/pi-extension/tests/cognitive-routing-v2/runtime.test.js +0 -423
  336. package/pi-extension/tests/cognitive-routing-v2/stabilization.test.js +0 -521
  337. package/pi-extension/tests/cognitive-routing-v2/state.test.js +0 -586
  338. package/pi-extension/tests/context-virtualization/extension.test.js +0 -775
  339. package/pi-extension/tests/context-virtualization/projector.test.js +0 -110
  340. package/pi-extension/tests/context-virtualization/runtime.test.js +0 -230
  341. package/pi-extension/tests/conversation-history/runtime.test.js +0 -98
  342. package/pi-extension/tests/conversation-history/search.test.js +0 -97
  343. package/pi-extension/tests/fixtures/pi-host.js +0 -4
  344. package/pi-extension/tests/fixtures/routing-native.js +0 -191
  345. package/pi-extension/tests/integration/mode-free-core.test.js +0 -220
  346. package/pi-extension/tests/integration/pi-extension.test.js +0 -1447
  347. package/pi-extension/tests/integration/prompt-architecture.test.js +0 -447
  348. package/pi-extension/tests/integration/unaffected-regressions.test.js +0 -478
  349. package/pi-extension/tests/provider-support/astra-boundaries.test.js +0 -75
  350. package/pi-extension/tests/provider-support/astra.test.js +0 -306
  351. package/pi-extension/tests/provider-support/cli.test.js +0 -92
  352. package/pi-extension/tests/provider-support/native.test.js +0 -183
  353. package/pi-extension/tests/settings/settings-tui.test.js +0 -243
  354. package/pi-extension/tsconfig.json +0 -16
  355. package/plugin.json +0 -33
  356. package/runtime/prompts/context-virtualization.md +0 -3
  357. package/runtime/prompts/conversation-history.md +0 -3
  358. package/skills/action-selection/SKILL.md +0 -100
  359. package/skills/action-selection/references/trajectory-stalls.md +0 -71
  360. package/skills/bypass/SKILL.md +0 -153
  361. package/skills/commit-work/SKILL.md +0 -145
  362. package/skills/commit-work/references/git-state-edges.md +0 -94
  363. package/skills/commit-work/references/simple-push.md +0 -92
  364. package/skills/commit-work/references/staging-decisions.md +0 -106
  365. package/skills/decision-gate/SKILL.md +0 -106
  366. package/skills/design-for-depth/SKILL.md +0 -117
  367. package/skills/design-for-depth/references/design-pressure-signals.md +0 -182
  368. package/skills/design-for-depth/references/implementation-decisions.md +0 -76
  369. package/skills/design-for-depth/references/interface-design-loop.md +0 -136
  370. package/skills/design-for-depth/references/module-and-dependency-design.md +0 -147
  371. package/skills/design-for-depth/references/software-design-philosophy.md +0 -202
  372. package/skills/design-for-depth/references/state-and-failure-boundaries.md +0 -136
  373. package/skills/diagnose-failure/SKILL.md +0 -125
  374. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +0 -48
  375. package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +0 -51
  376. package/skills/discuss/SKILL.md +0 -116
  377. package/skills/evaluate-skill/SKILL.md +0 -219
  378. package/skills/evaluate-skill/references/evaluation-definition-schema.md +0 -385
  379. package/skills/evaluate-skill/references/evaluation-design.md +0 -112
  380. package/skills/evaluate-skill/references/execution-and-evidence.md +0 -90
  381. package/skills/evaluate-skill/references/review-and-revision.md +0 -92
  382. package/skills/evaluate-skill/scripts/lib/definitions.mjs +0 -407
  383. package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +0 -60
  384. package/skills/evaluate-skill/scripts/lib/grade.mjs +0 -64
  385. package/skills/evaluate-skill/scripts/lib/runner.mjs +0 -368
  386. package/skills/evaluate-skill/scripts/pi-guard.mjs +0 -164
  387. package/skills/evaluate-skill/scripts/skill-eval.mjs +0 -102
  388. package/skills/execute-work/references/execute-work-edges.md +0 -68
  389. package/skills/finish-branch/SKILL.md +0 -117
  390. package/skills/finish-branch/references/integration-options.md +0 -80
  391. package/skills/handoff/SKILL.md +0 -82
  392. package/skills/handoff/references/handoff-templates.md +0 -150
  393. package/skills/launch-work/SKILL.md +0 -116
  394. package/skills/launch-work/references/launch-readiness.md +0 -85
  395. package/skills/migration-work/SKILL.md +0 -115
  396. package/skills/migration-work/references/migration-lifecycle.md +0 -82
  397. package/skills/release-work/SKILL.md +0 -118
  398. package/skills/release-work/references/release-evidence.md +0 -78
  399. package/skills/review-artifact/SKILL.md +0 -142
  400. package/skills/review-artifact/references/adjudicate-artifact-review.md +0 -101
  401. package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +0 -159
  402. package/skills/review-work/references/adjudicate-work-review.md +0 -97
  403. package/skills/review-work/references/independent-work-reviewer-contract.md +0 -139
  404. package/skills/review-work/references/security-risk-lens.md +0 -69
  405. package/skills/setup-freeflow/references/activation-contract.md +0 -109
  406. package/skills/setup-freeflow/references/host-setup.md +0 -67
  407. package/skills/simplify-code/SKILL.md +0 -85
  408. package/skills/simplify-code/references/simplification-patterns.md +0 -70
  409. package/skills/verify-work/references/browser-runtime-evidence.md +0 -55
  410. package/skills/verify-work/references/integration-evidence.md +0 -47
  411. package/skills/verify-work/references/performance-evidence.md +0 -57
  412. package/skills/workflow/SKILL.md +0 -127
  413. package/skills/workflow/references/domain-skill-composition.md +0 -43
  414. package/skills/write-plan/SKILL.md +0 -92
  415. package/skills/write-plan/references/plan-shapes.md +0 -156
  416. package/skills/write-skill/references/activation-boundaries.md +0 -104
  417. package/skills/write-skill/references/agent-first-instructions.md +0 -121
  418. package/skills/write-skill/references/progressive-disclosure.md +0 -127
  419. package/skills/write-skill/references/skill-dependency-graphs.md +0 -190
  420. package/skills/write-spec/SKILL.md +0 -92
  421. package/skills/write-spec/references/artifact-standards.md +0 -86
  422. package/skills/write-spec/references/decision-records.md +0 -78
  423. package/skills/write-spec/references/spec-shapes.md +0 -143
  424. /package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/budget.js +0 -0
  425. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/evidence.mjs +0 -0
  426. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-observer.mjs +0 -0
@@ -1,18 +1,80 @@
1
1
  ---
2
2
  name: write-skill
3
- description: Use when creating or revising an agent skill.
3
+ description: "Use when creating, revising, merging or splitting a skill or any other text an agent acts on: a SKILL.md and its description, the references and scripts in a skill, AGENTS.md, CLAUDE.md, system or runtime prompts, tool descriptions, subagent briefs or judge prompts. Also use when deciding where an instruction should live, and when a skill is read at the wrong time, not read at all, or read but not followed."
4
4
  ---
5
5
 
6
6
  # Write Skill
7
7
 
8
- Write the smallest agent-first skill package that changes one coherent behavioral policy.
8
+ Write the smallest agent-first skill package that changes one coherent behavioral policy, or the smallest change to other instruction text an agent acts on.
9
+
10
+ **Other instruction text** is anything an agent reads and acts on that is not a skill package: an instruction file such as AGENTS.md or CLAUDE.md, a system or runtime prompt, a tool description, a subagent brief, or a judge prompt. For it, everything below applies except what concerns the package itself: the skill's frontmatter description, resource files and their read conditions, the dependency graph, and `validate`. A tool description is a routing interface too, so Write The Description For Recall applies to it. Read "the skill" as "the text", and its first read as the point the agent receives it: every request for an always-loaded file or prompt, the tool call for a tool description, dispatch for a brief or a judge prompt.
9
11
 
10
12
  A skill is a prompt intervention, not merely a document. A host may read its body once and retain it across later messages and tool interactions until context projection or loss. Design the first useful read, retained influence, dependencies, and recovery paths; do not assume the body will be reread before every use.
11
13
 
12
- Smallest means behaviorally minimal—not shortest. A detailed skill is justified when each instruction changes action or judgment, makes a dependency executable, protects a behavioral boundary whose failure is supported by evidence, or establishes an evidence, return, or stop condition.
14
+ Smallest means behaviorally minimal, not shortest. A detailed skill is justified when each instruction changes action or judgment, makes a dependency executable, protects a behavioral boundary whose failure is supported by evidence, or establishes an evidence, return, or stop condition.
15
+
16
+ The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better.
17
+
18
+ ## Routes
19
+
20
+ This body covers the common case: writing or revising one skill or one piece of instruction text. Open a reference only when its condition holds.
21
+
22
+ | Situation | Go to |
23
+ | --- | --- |
24
+ | Deciding where an instruction lives (always-loaded text, a description, a body, a reference, a script, a tool's own text) or moving it between them; adding, merging, splitting or removing a reference, script or skill; changing links, shared terms, entry paths, capability cues or context-loss recovery cues between skills | [Placement And Dependencies](references/placement-and-dependencies.md) |
25
+ | Writing a description whose missed read could cause an irreversible or costly action, or whose neighbour matches similar requests; evidence that a skill was read late, early, not at all, or on a neighbour's request, or that two descriptions match the same request; or evidence that a read skill was misread, ignored, or kept steering later work | [Activation And Wording](references/activation-and-wording.md) |
26
+ | Measuring what a revision changes in behavior | Evaluate In One Loop, below |
27
+ | Checking structure, copied passages, or what a revision lost | Check The Package, below |
28
+
29
+ ## Rules
30
+
31
+ - The baseline of a revision is the committed state before it. Before committing a substantial revision, such as a merge, a split, a move between files or a rewrite, run `skill-author compare --all-units` and settle every unit it reports unmatched: restore it, name the file and line that now owns it, or record why it is removed, in a verdicts file kept with the evidence outside the package. Then someone, you or a reviewer, reads every reworded and unmatched unit for meaning, since a rewording can keep the words and change what they ask. Outside Git only, copy the package to the task's scratch folder before editing and pass `--base <folder>`. A clean comparison shows that text survived, not that behavior did.
32
+ - If accepted behavior, public dependencies, or another user-owned choice is unsettled, stop and resolve it before encoding it.
33
+ - Never rely on an unread skill or reference to cause its own read. The first read must come from context the agent already has: a description, guaranteed base guidance, an already-loaded skill, a capability cue, or another declared route.
34
+ - Rely only on context guaranteed on every valid activation path, never on an optional sibling, a common but unguaranteed route, or an accidental earlier read.
35
+ - In a skill package, link every agent-facing reference, asset, script, and package dependency from the body, with the condition that requires it. State the condition once, at the link; the resource opens with its content, not a restatement of its read condition.
36
+ - When a skill is removed or merged into another, add no alias, shim or redirect under the old name: the description of the skill that now owns the job routes the work, every link and command naming the old skill is updated, and the removed name is reported as a breaking change.
37
+ - Keep authoring status, evaluation summaries, evidence gaps, changelog notes, readiness claims, and author debate out of the executing package or text; they belong in the evaluation artifact, task record, or delivery report.
38
+ - Claim only what the evidence observed. Structural checks prove structure. Explicit body delivery does not prove activation, one turn does not prove retained use, ambient context does not prove dependency behavior, prose review does not prove unchanged behavior, and one favorable example does not prove readiness.
39
+ - For a skill package, run `validate` after any structural or dependency change and before claiming the package is valid. Never use deprecated authoring tooling.
40
+
41
+ ## Choose What To Change
42
+
43
+ Goal: change a skill only for behavior that will recur, and only where prose is the right fix.
44
+
45
+ When revising from evidence, such as observed failures, transcripts, review findings or eval results, list each candidate change with the evidence behind it. Drop a candidate that is:
46
+
47
+ - **not durable:** a one-off slip that the situation, not the guidance, explains;
48
+ - **too specific:** it fits one task or fixture, not the class of situations the skill serves;
49
+ - **a duplicate:** another candidate, or another skill, already owns it;
50
+ - **already covered:** the skill says it, and the failure lies elsewhere, such as activation or placement; fix that boundary instead;
51
+ - **structural:** a tool, script, check or runtime change prevents it more reliably than an instruction.
52
+
53
+ Keep dropped candidates and their reasons with the evidence, outside the package.
54
+
55
+ ## Prefer A Capability To Prose
56
+
57
+ Goal: the fact or check the agent needs is in front of it at the decision.
58
+
59
+ Prose changes behavior only when it is in context at the decision, and a skill body often is not: in 30 of Freeflow's own evaluation runs, 3 read any skill file. A script, a tool's output or a structured artifact reaches the decision whether or not a body was read. Before writing an instruction, ask whether a capability can do its job:
60
+
61
+ - **Replace mechanical prose:** a format, command list or check followed by hand becomes a script that does or checks it, such as `skill-author validate` for frontmatter and links.
62
+ - **Enable the main work:** a script puts the decision's facts in front of the agent, such as Verify Work's `test-changes.mjs`, which lists every changed existing test so the agent and its reviewer judge each one.
63
+
64
+ The prose then names the capability where it is used and keeps only the judgment a script cannot make. Add a script only for work the skill owns, never to make a package look complete.
65
+
66
+ ## Choose Skill Boundaries
67
+
68
+ Goal: few skills, each owning one job in depth.
69
+
70
+ Every skill's description is loaded on every request, and neighbours whose descriptions overlap confuse the choice between them. Prefer depth to width: when several skills do one job split by type, such as commit, push and release, merge them into one skill whose body routes to a reference per type. Keep a skill separate when its reader, trigger or job differs: another person or agent reads it, another request or situation calls for it, or it produces a different result.
71
+
72
+ When the same workflow is rebuilt by hand across several tasks and no skill owns it, first check whether it is a branch of an existing skill; otherwise propose a new skill to the user, naming the tasks it recurred in.
13
73
 
14
74
  ## Establish The Behavioral Claim
15
75
 
76
+ Goal: know what the skill must change before deciding how it reads.
77
+
16
78
  Before writing, identify:
17
79
 
18
80
  - the behavior the skill should produce;
@@ -24,62 +86,39 @@ Before writing, identify:
24
86
  - how the skill should stop influencing behavior after its method no longer applies;
25
87
  - the evidence that could support or contradict the intended effect.
26
88
 
27
- Do not begin with sections, wording, examples, or file layout. Begin with the behavioral intervention.
28
-
29
- If accepted behavior, public dependencies, safety, compatibility, or another user-owned boundary remains unsettled, stop and resolve it before encoding a runtime rule.
30
-
31
- ## Preserve The Exact Baseline
89
+ Begin with the behavioral intervention, not with sections, wording, examples, or file layout.
32
90
 
33
- Before substantially revising an existing skill, preserve the complete current package:
91
+ ## Shape The Package
34
92
 
35
- - `SKILL.md`;
36
- - references;
37
- - scripts;
38
- - assets and other owned resources;
39
- - exact package identity.
93
+ Goal: the common case runs from `SKILL.md` alone, and the depth one situation needs sits in one place.
40
94
 
41
- Use a recoverable Git ref or task evidence outside the active package so the revision cannot replace its own baseline.
95
+ - `SKILL.md` is enough to act correctly in the common case without opening a reference.
96
+ - When the skill has references, a routing table comes first in the body: each row names a concrete, observable condition and the reference or section that serves it. "When unclear" is not a condition.
97
+ - A reference holds one situation's method. Add one only when its condition is narrow, so that many activations never reach it, and its content is large, so that inlining it would bury the common route; otherwise keep it inline.
98
+ - Merge references that are read together.
99
+ - Give each rule one owner; everywhere else, point to it rather than restate it (Repeat Instructions Deliberately).
100
+ - Declare only the dependencies the skill's normal and conditional routes need.
42
101
 
43
- A small local correction does not require another snapshot when the exact previous state is already recoverable and the change does not alter behavior, activation, dependencies, resource structure, or compatibility.
44
-
45
- Preserving a baseline supports recovery and comparison. It does not prove that the baseline or candidate behaves correctly.
102
+ Start with one `SKILL.md` and remove accidental complexity before splitting files. There is no universal body template, line limit, or reference count.
46
103
 
47
104
  ## Design The First Read
48
105
 
49
- A skill cannot activate itself. Its first read must be caused by context already available to the agent:
50
-
51
- - an observable skill description;
52
- - guaranteed base or system guidance;
53
- - an already-loaded owner or sibling;
54
- - an effective capability cue;
55
- - another declared upstream route.
56
-
57
- Do not rely on an instruction inside the unread skill to cause that skill to be read.
58
-
59
- Optimize activation for the earliest useful decision. Missing that decision may be much more harmful than a harmless early read.
60
-
61
- A nearby case can pass by:
62
-
63
- - not loading the skill; or
64
- - loading it safely, recognizing that its method does not apply, and exiting without later hijacking retained behavior.
65
-
66
- False-positive activation is cheap only when the body remains safe after retention. A skill that exits on the first turn but continues distorting later work is not a safe read.
106
+ Goal: the skill is read at the earliest decision it can improve, and reading it on a nearby case does no harm.
67
107
 
68
- Read [Activation Boundaries](references/activation-boundaries.md) when activation is unclear or evidence shows missed, late, early, task-hijacking, or retained-interference behavior.
108
+ Missing that decision is usually far more harmful than an unnecessary early read. A nearby case can pass by not loading the skill, or by loading it, recognizing that its method does not apply, and exiting without distorting later work. An early read is cheap only when the retained body stays safe; a skill that exits on the first turn but keeps distorting later work is not a safe read. When a missed read is costly, give the skill an upstream activation or recovery edge, as Placement And Dependencies describes.
69
109
 
70
110
  ## Write The Description For Recall
71
111
 
72
- Treat the description as a routing interface, not a summary of the body.
112
+ The description is a routing interface, not a summary of the body.
73
113
 
74
- - State the broad core job in plain language.
75
- - Use natural user verbs or task conditions visible before activation.
76
- - Prefer recall when nearby reads are safe and missed activation is materially worse.
77
- - Do not require terminology or classifications introduced only inside the skill or an optional dependency.
78
- - Do not encode future-duration guesses, named internal phases, exhaustive trigger catalogs, or marketing claims.
79
- - Do not compress the body into the description.
80
- - Treat “Use when…” as useful wording, not mandatory grammar.
114
+ - State the broad core job in plain language, with natural user verbs or task conditions visible before activation.
115
+ - Avoid terminology or classifications introduced only inside the skill or an optional dependency.
116
+ - Name the situations each reference and script serves, in the words a request would use. A reference is reached only through its skill, so when skills merge, the owner's description keeps the triggers of every job it absorbed.
117
+ - Make it as long as recall needs, up to the host's limit (1,024 characters in the Agent Skills format). Every description is loaded on every request, but a missed read costs the decision the skill exists to change.
118
+ - Avoid future-duration guesses, named internal phases, marketing claims, and compressed copies of the body.
119
+ - "Use when…" is useful wording, not mandatory grammar.
81
120
 
82
- Optimize for the first useful read, not repeated reads. Do not narrow a description solely to prevent harmless activation. Do not broaden it when retained guidance routinely overrides another owner or method.
121
+ Favor recall: an unneeded read is cheap when the body exits safely, and a missed read is not. Add a "not for" exclusion only when reading the skill on that request would do harm, such as retained guidance that routinely overrides another owner or method, never merely to prevent harmless reads.
83
122
 
84
123
  ## Write For The Executing Agent
85
124
 
@@ -87,150 +126,116 @@ Write for an agent seeing the skill for the first time with only guaranteed cont
87
126
 
88
127
  1. Establish the job immediately.
89
128
  2. Define necessary terms before using them.
90
- 3. Put each rule where the agent first makes the affected choice.
129
+ 3. Put each instruction where the agent first makes the affected choice.
91
130
  4. Keep the normal route understandable from `SKILL.md`.
92
131
  5. State what to do, what not to do, and when to stop, return, or route.
93
- 6. Prefer a positive route; use negative instructions to block plausible or observed failure.
94
- 7. Pair a negative rule with the correct action or owner whenever possible.
95
- 8. State why only when it helps the agent generalize or avoid a harmful literal reading.
96
- 9. Keep the skill focused on one coherent job. Do not copy the surrounding workflow’s authority, routing, continuity, review, or completion method into a focused skill; repeat only the local guard needed at the affected choice.
97
- 10. Keep authoring status, evaluation summaries, evidence gaps, changelog notes, and readiness prose out of the executing package.
132
+ 6. Prefer a positive route; use negative instructions to block plausible or observed failure, paired with the correct action or owner.
133
+ 7. State why only when it helps the agent generalize or avoid a harmful literal reading.
134
+ 8. Keep the skill to one coherent job. Repeat only the local guard needed from the surrounding workflow's authority, routing, continuity, review, or completion method, not the method itself.
135
+ 9. Use plain words. Every coined term is something the agent must decode before it can act, so coin one only when it marks a distinction the agent has to act on, define it once, and use it the same way throughout.
98
136
 
99
- A useful rule normally identifies:
137
+ Use discussion, research, and author reasoning to understand the behavior, then compile that understanding into runtime instructions. The conversation, rejected drafts, fixture narration, and any explanation whose only reader is the author stay out.
100
138
 
101
- ```text
102
- observable pressure
103
- -> required or forbidden action
104
- -> evidence, return, or stop condition
105
- ```
106
-
107
- Use discussion, research, and author reasoning to understand the behavior. Compile that understanding into runtime instructions. Do not copy conversation history, rejected drafts, author debate, fixture narration, or explanation whose only reader is the author.
139
+ ## Separate Rules From Judgment
108
140
 
109
- A skill may rely on guaranteed base context and dependencies explicitly required before use. It may not rely on an unread optional sibling or reference, a common-but-unguaranteed route, or an accidental earlier read.
141
+ A skill gives two kinds of instruction, and agents need to tell them apart.
110
142
 
111
- Read [Agent-First Instructions](references/agent-first-instructions.md) when a concrete first-read or retained-use failure involves wording, placement, undeclared context, author explanation, or competing instructions.
112
-
113
- ## Use Examples Deliberately
143
+ - **Rules** are binding. Breaking one is wrong in every situation: authority, safety, evidence honesty, data integrity, or an invariant that a tool or another skill depends on.
144
+ - **Judgment** guides the choice among allowed actions: placement, granularity, timing, effort, what to record, how much to delegate. A better choice sometimes means departing from the default.
114
145
 
115
- Add a compact example when prose alone leaves a likely behavioral misclassification.
146
+ Classify each instruction with one question:
116
147
 
117
- Show:
148
+ > If an agent pursued the goal well but broke this sentence, would the outcome be wrong in every case?
118
149
 
119
- - the observable situation;
120
- - the required action or judgment;
121
- - the relevant stop, exit, or return.
150
+ If yes, it is a Rule. If the agent would sometimes do better, it is judgment.
122
151
 
123
- Keep examples transferable. Do not turn the body into a transcript, fixture library, or scenario catalog.
152
+ Agents follow imperative lists literally. A judgment written as an imperative becomes a Rule by accident: "Delegate routine record maintenance to Helper" makes an agent hand off a two-line update and then do the rest itself.
124
153
 
125
- Inline examples teach the subject and are part of the candidate intervention. They are not independent evidence that the skill works.
154
+ Write a Rule as a short imperative that names its trigger and its stop:
126
155
 
127
- ## Plan Terminology And Dependencies
128
-
129
- For one self-contained skill, declare only the dependencies its normal and conditional routes need.
130
-
131
- Before creating or revising multiple related skills, shared terminology, cross-skill links, capability activation, direct or routed entry paths, or context-loss recovery, read [Skill Dependency Graphs](references/skill-dependency-graphs.md).
132
-
133
- For every skill:
134
-
135
- - identify every valid direct and routed activation path;
136
- - rely only on context guaranteed across all valid paths;
137
- - place shared vocabulary in the nearest upstream context guaranteed before every consumer;
138
- - keep leaf-specific terms local;
139
- - distinguish owner routes, method composition, environment interactions, references, capability cues, and retained context;
140
- - ensure critical skills have an upstream activation or recovery edge;
141
- - do not assume a commonly preceding skill is guaranteed.
142
-
143
- A Markdown link declares a package dependency. It does not automatically select the target owner or execute the linked skill.
156
+ ```text
157
+ observable pressure
158
+ -> required or forbidden action
159
+ -> evidence, return, or stop condition
160
+ ```
144
161
 
145
- ## Compact Without Erasing Behavior
162
+ Keep Rules few, testable, and together near the top, and say what to do when one cannot be met.
146
163
 
147
- Compact after the behavioral policy, dependencies, and failure boundaries are understood.
164
+ Write judgment as a trade-off the agent can reason from:
148
165
 
149
- For each instruction, ask:
166
+ ```text
167
+ goal
168
+ -> default and why it usually serves the goal
169
+ -> signals that a different choice serves it better
170
+ ```
150
171
 
151
- > Can this be removed without losing required behavior, introducing ambiguity, obscuring a dependency, or reintroducing a previously observed failure?
172
+ Examples inside judgment are illustrations, not triggers:
152
173
 
153
- If yes, remove or merge it. If uncertain, preserve it until evidence distinguishes the variants.
174
+ > Delegate work when a cheaper profile can do it without significant quality loss and the handoff costs less than it saves. A separate record update across several entries often qualifies; a one-line update in the middle of your own work does not.
154
175
 
155
- Do not compact by:
176
+ When a skill contains both kinds, say so once near the top: which instructions are binding, and that everything else is judgment the agent may adapt to its goal. A skill may be mostly Rules, like a release protocol, or mostly judgment, like work placement; the label keeps each one from being read as the other.
156
177
 
157
- - deleting the positive route while retaining only prohibitions;
158
- - moving normal required behavior into an always-read reference;
159
- - merging rules whose triggers or stop conditions differ;
160
- - replacing a concrete instruction with generic quality language;
161
- - removing terminology required by a direct activation path;
162
- - deleting repetition that protects a distinct decision or recovery boundary.
178
+ References follow the same split. A reference that defines a contract, such as a file format, schema, command interface, or protocol, is binding as written. A reference that deepens a method is judgment. A reference that is mostly one kind says so in its opening line, and states any Rule it adds; one that only restates a skill Rule as a local guard needs no label.
163
179
 
164
- Length is a diagnostic fact, not a quality verdict. A long skill may be minimal. A short skill may force the agent to reconstruct missing judgment through reasoning or environment interactions.
180
+ ## Use Examples Deliberately
165
181
 
166
- ## Repeat Rules Deliberately
182
+ Add a compact example when prose alone leaves a likely misclassification. Show the observable situation, the required action or judgment, and the relevant stop, exit, or return.
167
183
 
168
- Repetition is justified when local presence protects:
184
+ Keep examples transferable; the body is not a transcript, fixture library, or scenario catalog. Inline examples teach the subject and are part of the candidate intervention, not independent evidence that the skill works.
169
185
 
170
- - an independently activated skill;
171
- - a distinct decision point;
172
- - a context-loss or host path;
173
- - a dangerous literal interpretation;
174
- - a previously observed failure;
175
- - a required body-to-reference read condition.
186
+ ## Compact Without Erasing Behavior
176
187
 
177
- Use one canonical owner for the full definition or method. Repeat only the compact local guard needed at the affected choice.
188
+ Goal: remove what does not change behavior, and nothing that does.
178
189
 
179
- > Repeat the behavioral invariant, not the owning skill’s entire explanation.
190
+ Compact after the behavioral policy, dependencies, and failure boundaries are understood. For each instruction, ask:
180
191
 
181
- Do not repeat rules merely for emphasis, author reassurance, or stylistic consistency. Check that repeated wording preserves the same meaning and route.
192
+ > Can this be removed without losing required behavior, introducing ambiguity, obscuring a dependency, or reintroducing a previously observed failure?
182
193
 
183
- When removing, merging, moving, or rewording a rule that protects measured behavior, treat the candidate as a behavioral change and evaluate the affected boundary.
194
+ If yes, remove or merge it.
184
195
 
185
- ## Add Resources Only When They Change Loading Or Ownership
196
+ Keep an instruction because it protects measured behavior or prevents a specific failure you can name, not because it might help. An instruction with neither is a candidate for removal: remove it, or test whether it changes behavior, rather than keeping it by default. Skills otherwise only grow, as each incident adds instructions and none is ever shown safe to remove.
186
197
 
187
- Before adding or reorganizing references, assets, or scripts, read [Progressive Disclosure](references/progressive-disclosure.md).
198
+ Remove an instruction once the mistake it guards against can no longer happen, for example because a tool now refuses the action or the capability it guarded is gone. Keep a local guard only for a path that still bypasses the enforcement.
188
199
 
189
- Start with one `SKILL.md`. Remove accidental complexity before splitting files.
200
+ Compaction goes wrong when it:
190
201
 
191
- - Keep normal first-read behavior inline.
192
- - Add an activity-required reference when one named normal activity genuinely needs separately owned depth but the skill may exit before that activity.
193
- - Add a conditional reference when an observable branch requires depth that would obscure the normal route.
194
- - Use an entry-required reference only when separation has independent value, such as canonical reuse, separate ownership or lifecycle, generated contracts, compatibility, or host constraints.
195
- - Inline entry-required content when every useful activation reads it and separation provides no distinct value.
196
- - Add a script when deterministic repeated work owned by the skill is safer, clearer, or materially less wasteful than model-generated operations.
197
- - Link every agent-facing resource, package dependency, and executable entrypoint from the body at its first useful decision.
198
- - Keep owned resources inside the package unless canonical cross-package ownership is required.
202
+ - deletes the positive route while keeping only prohibitions;
203
+ - reduces a judgment to a bare imperative by dropping its goal or its signals for deviating;
204
+ - moves normal required behavior into an always-read reference;
205
+ - merges instructions whose triggers or stop conditions differ;
206
+ - replaces a concrete instruction with generic quality language;
207
+ - removes terminology a direct activation path needs;
208
+ - deletes repetition that protects a distinct decision or recovery boundary.
199
209
 
200
- The body and reference must name the same read condition. A reference cannot activate itself.
210
+ Length is a diagnostic fact, not a quality verdict. A long skill may be minimal; a short one may force the agent to reconstruct missing judgment.
201
211
 
202
- There is no universal body template, line limit, reference count, or requirement that a script follow an earlier failure.
212
+ ## Repeat Instructions Deliberately
203
213
 
204
- ## Evaluate The Behavioral Claim
214
+ Goal: each behavior has one owner, with a local guard wherever an agent could otherwise act without it.
205
215
 
206
- Static inspection and package validation prove structure, not behavior.
216
+ Repetition earns its place when local presence protects an independently activated skill, a distinct decision point, a context-loss or host path, a dangerous literal reading, retained use after the method ends, a previously observed failure, or a required read condition. Keep the full definition or method with one canonical owner and repeat only the compact guard at the affected choice.
207
217
 
208
- Name the exact claim being tested:
218
+ > Repeat the behavioral invariant, not the owning skill's entire explanation.
209
219
 
210
- - description activation;
211
- - first-read body behavior;
212
- - nearby behavior;
213
- - dependency composition;
214
- - retained use;
215
- - artifact outcome;
216
- - cross-host behavior.
220
+ Repetition for emphasis, author reassurance, or stylistic consistency does not earn its place. Check that repeated wording keeps the same meaning and route. Removing, merging, moving, or rewording an instruction that protects measured behavior is a behavioral change; evaluate the affected boundary.
217
221
 
218
- Use [Evaluate Skill](../evaluate-skill/SKILL.md) to compare exact baseline and candidate environments under fixed declared inputs.
222
+ ## Evaluate In One Loop
219
223
 
220
- Preserve adequate existing evidence. Revise one measured pressure point at a time. After a behavior-sensitive change, rerun the complete fixed group with both variants.
224
+ Goal: every revision answers observed evidence and is checked against it.
221
225
 
222
- Do not claim:
226
+ 1. Start from the source: the evidence a change answers (Choose What To Change), or for a new skill, its behavioral claim.
227
+ 2. Name the exact claim: description activation, first-read body behavior, nearby behavior, dependency composition, retained use, artifact outcome, or cross-host behavior.
228
+ 3. Fix the cases before the draft is final: one that should use the guidance, a near miss that should not, and for judgment, one where following the default literally is the worse choice.
229
+ 4. Run the arms with [Evaluate Behavior](../evaluate-behavior/SKILL.md) under fixed declared inputs; when the claim is that the revision is better, declare the decision rule before the run.
230
+ 5. Read the transcripts and results, with the user when they review, before trusting a count.
231
+ 6. Revise one measured pressure point.
232
+ 7. Rerun the complete fixed group with every arm.
223
233
 
224
- - activation from explicit body injection;
225
- - retained use from one turn;
226
- - dependency behavior from ambient context;
227
- - unchanged behavior from prose review;
228
- - improvement from structural validation;
229
- - readiness from one favorable example.
234
+ Stop when the evidence supports the claim, or when the next revision would only tune against the same cases; judge it on held-out cases instead. Preserve adequate existing evidence rather than rerunning it.
230
235
 
231
- Small wording, ordering, vocabulary, repetition, and structural changes may alter model behavior. Human review can establish intended meaning; behavioral evidence establishes observed effect.
236
+ Evaluate the two kinds differently. A Rule passes when it is never broken, including under pressure to break it. Judgment passes on outcome, and its evidence should include a case where following the default literally is the worse choice, so a candidate that only obeys cannot pass.
232
237
 
233
- Keep evaluation conclusions and missing evidence in the evaluation artifact, task record, or delivery report—not in the executing skill.
238
+ Small wording, ordering, vocabulary, repetition, and structural changes can alter model behavior. Human review establishes intended meaning; behavioral evidence establishes observed effect.
234
239
 
235
240
  ## Check The Package
236
241
 
@@ -238,39 +243,34 @@ Use the bundled [skill author](scripts/skill-author.mjs) for deterministic packa
238
243
 
239
244
  ```text
240
245
  node <write-skill-directory>/scripts/skill-author.mjs init <directory> --name <name> --description <text>
241
- node <write-skill-directory>/scripts/skill-author.mjs validate <directory> [--package-root <directory>]
246
+ node <write-skill-directory>/scripts/skill-author.mjs validate <directory> [--package-root <directory>] [--routing-map <file>]
242
247
  node <write-skill-directory>/scripts/skill-author.mjs inspect <directory> [--package-root <directory>]
248
+ node <write-skill-directory>/scripts/skill-author.mjs similarity <directory> [--threshold <0-1>]
249
+ node <write-skill-directory>/scripts/skill-author.mjs compare [<base-ref> [<new-ref>] | --base <folder> [<folder>]] [--all-units] [--verdicts <file>]
243
250
  ```
244
251
 
245
- Choose the operation by its evidence:
246
-
247
- - `init`: create a new minimal package; never overwrite an existing one.
248
- - `validate`: check frontmatter, heading shape, recursive links, declared package dependencies, and containment.
249
- - `inspect`: report body sizes, resource classes, scripts, unlinked files, and validation findings.
250
-
251
- Run `validate` after structural or dependency changes and before claiming package validity. Use `inspect` when factual inventory or package composition matters.
252
+ - `init`: create a new minimal package; it never overwrites an existing one.
253
+ - `validate`: check frontmatter, heading shape, recursive links, declared package dependencies, and containment. It also lists link cycles among the Markdown files the skill reaches, leaving out links to any `SKILL.md`; Placement And Dependencies says what to do with one. With `--routing-map`, it checks that the map's row for the skill names the same sibling skills and resources that `SKILL.md` links.
254
+ - `inspect`: report body sizes, resource classes, scripts, unlinked files, and validation findings, when factual inventory matters.
255
+ - `similarity`: report Markdown files under a directory that share copied or lightly edited passages. Run it across related skills before keeping repetition; it cannot detect paraphrase, so a clean report does not prove an instruction is stated once.
256
+ - `compare`: with no arguments, compare the model-facing Markdown changed since the branch left the default branch with the working tree, uncommitted edits included, and list each rule-like unit (under a Rules heading, a numbered step, or containing never, always, must, only, do not or stop, or a reason: because, so that, otherwise, why) that no longer appears; `--all-units`, for a substantial revision, lists every unmatched unit. It exits nonzero while one has no verdict in `--verdicts <file>`, a JSON object of `"file:line": "verdict"` that carries across runs. Read every reworded rule it lists as well: a rewording can keep the words and change the meaning. `--help` gives the other options.
252
257
 
253
- Commands emit JSON. Invalid structure still emits a report and exits nonzero; command errors emit structured error JSON.
254
-
255
- Package root defaults to the nearest `package.json` ancestor, then the skill directory’s parent. Use `--package-root` when validating a candidate in an overlay or another package context.
258
+ Commands emit JSON. Invalid structure still emits a report and exits nonzero; command errors emit structured error JSON. Package root defaults to the nearest `package.json` ancestor, then the skill directory's parent; use `--package-root` for a candidate in an overlay or another package context.
256
259
 
257
260
  Frontmatter accepts flat plain strings or JSON-compatible double-quoted strings. Quote ambiguous punctuation, number-like, boolean-like, or null-like values.
258
261
 
259
- Package validity does not prove behavioral quality. Never use deprecated authoring tooling.
260
-
261
262
  ## Stop
262
263
 
263
264
  Stop when the requested package:
264
265
 
265
266
  - expresses one coherent behavioral policy;
267
+ - separates binding Rules from judgment;
266
268
  - activates at the earliest useful boundary;
267
269
  - remains safe on nearby and retained use;
268
270
  - works from guaranteed context on every valid path;
269
271
  - keeps its normal route executable on first read;
270
272
  - declares dependencies and resource conditions honestly;
271
- - contains no unsupported author-facing residue;
272
- - passes required structural checks.
273
-
274
- Stop and ask when accepted behavior, activation, dependencies, safety, compatibility, or another user-owned boundary cannot be settled from evidence.
273
+ - contains no author-facing residue;
274
+ - passes required structural checks, and after a substantial revision has a verdict for every rule-like unit it no longer states.
275
275
 
276
- Do not add sections, references, examples, scripts, or procedure merely to make the package look complete.
276
+ Stop and ask when accepted behavior, activation, dependencies, or another user-owned choice cannot be settled from evidence. Do not add sections, references, examples, scripts, or procedure merely to make the package look complete.
@@ -0,0 +1,143 @@
1
+ # Activation And Wording
2
+
3
+ This reference is judgment: adapt it to the skill's goal. Its binding statements restate [Write Skill](../SKILL.md) Rules.
4
+
5
+ Two failures look alike from outside: the skill is not read at the decision it should change, or it is read and its text does not steer the agent as written. Find which one the evidence shows before rewriting anything; a better body cannot fix a missed read, and a sharper description cannot fix a misleading body.
6
+
7
+ ## Activation
8
+
9
+ A description should make the skill available at the earliest useful decision without requiring language introduced by the skill itself.
10
+
11
+ ### Diagnose The First Read
12
+
13
+ Beyond the behavioral claim in Write Skill, identify:
14
+
15
+ - the earliest natural prompt or task state where the skill can change behavior;
16
+ - the consequence of missing or delaying the read;
17
+ - the consequence if a nearby prompt also loads the skill;
18
+ - how retained guidance should behave after the immediate method ends.
19
+
20
+ ### Compare Activation Costs
21
+
22
+ False-positive and false-negative activation have different costs.
23
+
24
+ A false-positive read may be acceptable when:
25
+
26
+ - loading cost is proportionate;
27
+ - the body identifies that its method does not apply;
28
+ - it exits without changing ownership or route;
29
+ - retained instructions do not hijack later work.
30
+
31
+ A false negative is material when missing the first useful read causes:
32
+
33
+ - an irreversible or expensive action;
34
+ - a wrong owner or method;
35
+ - repeated low-value environment interactions;
36
+ - missing safety or evidence boundaries;
37
+ - later work that the skill cannot reliably undo.
38
+
39
+ Prefer recall when nearby reads are demonstrably safe and missed activation is materially worse. Tighten activation when early or retained guidance can distort ordinary work.
40
+
41
+ ### Check The Cues
42
+
43
+ Beyond Write The Description For Recall, a cue names an observable distinction from neighboring jobs, and never rests on generic "help with" or "improve" language. Guaranteed base context may define a term; otherwise use plain observable language.
44
+
45
+ ### Test Nearby And Retained Behavior
46
+
47
+ A nearby case can pass through:
48
+
49
+ - **Non-trigger:** the skill is not read.
50
+ - **Safe read:** the body loads, exits or defers correctly, and does not interfere later.
51
+
52
+ Test both the immediate response and later declared turns when retained influence matters.
53
+
54
+ Broad useful trigger:
55
+
56
+ > Use when committing work.
57
+
58
+ Over-specified trigger that hides the job:
59
+
60
+ > Use after final verification when a planned checkpoint requires a locally reviewable commit.
61
+
62
+ Broad safe-read trigger:
63
+
64
+ > Use when working with software design—especially boundaries, interfaces, ownership, state, and failure behavior.
65
+
66
+ The body must exit when the local interface remains sound and avoid turning later local choices into architecture work.
67
+
68
+ ### Preserve The Evidence Boundary
69
+
70
+ Natural activation proves the host read the exact skill snapshot from a natural prompt. Explicit body delivery tests first-read instructions, not activation. Dependency composition tests exact declared skill and context order. Multi-turn evidence tests retained use. Artifact and transcript evidence show whether activation helped, exited safely, or hijacked behavior.
71
+
72
+ Preserve:
73
+
74
+ - the earliest useful positive prompt;
75
+ - at least one close nearby case;
76
+ - later-turn evidence when retained influence is part of the claim.
77
+
78
+ Do not infer one evidence class from another.
79
+
80
+ ## Wording
81
+
82
+ ### Translate Author Context
83
+
84
+ Keep a sentence only when it:
85
+
86
+ - changes an action or judgment;
87
+ - defines required language;
88
+ - protects a likely or observed failure boundary;
89
+ - states an evidence, return, or stop condition;
90
+ - makes a dependency executable;
91
+ - provides a compact example resolving likely misclassification.
92
+
93
+ Translate rationale into a direct instruction plus only the why needed to generalize. Translate debate into the selected boundary and stop condition. Translate a measured failure into the smallest transferable guard that prevents it. Omit rejected drafts, conversation history, fixture narration, evaluation status, and explanation whose only audience is the author.
94
+
95
+ ### Make Instructions Concrete
96
+
97
+ A Rule gets concrete by naming its trigger, its action, and its stop. Prefer:
98
+
99
+ > If saved evidence already answers the fixed question, inspect it before proposing a rerun.
100
+
101
+ Over:
102
+
103
+ > Keep evaluation efficient and aligned with best practices.
104
+
105
+ Concrete Rules reduce the judgment the agent must reconstruct.
106
+
107
+ Judgment gets concrete differently: a sharper goal, clearer signals for deviating, and a realistic example on each side of the line. Turning judgment into an absolute makes it easier to follow and worse to follow. Prefer:
108
+
109
+ > Start a Slice for work that would leave partial state to reconcile if interrupted. An investigation across many sources can qualify; a discussion whose results land directly in the record usually does not.
110
+
111
+ Over:
112
+
113
+ > Start a Slice for every activity.
114
+
115
+ ### Pair Negative Instructions With The Route
116
+
117
+ Bad:
118
+
119
+ > Do not recreate the old worker/verifier architecture.
120
+
121
+ Better:
122
+
123
+ > The producing activity handles implementation and verification. The surrounding workflow may select independent review.
124
+
125
+ Bad:
126
+
127
+ > Do not implement the recommendation.
128
+
129
+ Better:
130
+
131
+ > Return the recommendation to the owning workflow. Implementation requires separate authorization.
132
+
133
+ A negative instruction may preserve an invariant directly when the positive route is already clear:
134
+
135
+ > Preserve the accepted scope. Do not split it into MVP or roadmap phases without approval.
136
+
137
+ ### Fix Placement Before Adding Prose
138
+
139
+ A late caveat rarely defeats an early command. Move or sharpen the controlling sentence before adding another section. When an early instruction and a later exception conflict, restructure the route rather than adding another disclaimer.
140
+
141
+ ### End The Skill's Influence
142
+
143
+ A skill body may remain in context after its immediate method ends. State stop, return, or exit conditions clearly enough that retained instructions do not continue claiming ownership or broadening later work. A first-turn exit is insufficient when later turns still show method hijacking. After editing, rerun the same first-read and retained-use pressure while keeping unrelated instructions stable.