@blxzer/pactile 0.5.0 → 0.6.0-beta.2

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 (917) hide show
  1. package/CHANGELOG.md +612 -563
  2. package/LICENSE +235 -235
  3. package/README.md +108 -105
  4. package/README.zh-CN.md +105 -105
  5. package/bin/compat-warning.js +11 -11
  6. package/bin/cstl.js +6 -6
  7. package/bin/pactile.js +3 -3
  8. package/bin/smart-search.js +38 -38
  9. package/dist/cli/index.d.ts.map +1 -1
  10. package/dist/cli/index.js +79 -30
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/commands/codex.d.ts +3 -0
  13. package/dist/commands/codex.d.ts.map +1 -0
  14. package/dist/commands/codex.js +54 -0
  15. package/dist/commands/codex.js.map +1 -0
  16. package/dist/commands/context.d.ts +3 -0
  17. package/dist/commands/context.d.ts.map +1 -0
  18. package/dist/commands/context.js +272 -0
  19. package/dist/commands/context.js.map +1 -0
  20. package/dist/commands/init.d.ts +0 -20
  21. package/dist/commands/init.d.ts.map +1 -1
  22. package/dist/commands/init.js +285 -456
  23. package/dist/commands/init.js.map +1 -1
  24. package/dist/commands/migrate.js +1 -1
  25. package/dist/commands/migrate.js.map +1 -1
  26. package/dist/commands/parallel.d.ts +2 -0
  27. package/dist/commands/parallel.d.ts.map +1 -0
  28. package/dist/commands/parallel.js +26 -0
  29. package/dist/commands/parallel.js.map +1 -0
  30. package/dist/commands/pi.d.ts +3 -0
  31. package/dist/commands/pi.d.ts.map +1 -0
  32. package/dist/commands/pi.js +94 -0
  33. package/dist/commands/pi.js.map +1 -0
  34. package/dist/commands/session.d.ts +2 -0
  35. package/dist/commands/session.d.ts.map +1 -0
  36. package/dist/commands/session.js +169 -0
  37. package/dist/commands/session.js.map +1 -0
  38. package/dist/commands/task.d.ts +3 -0
  39. package/dist/commands/task.d.ts.map +1 -0
  40. package/dist/commands/task.js +1026 -0
  41. package/dist/commands/task.js.map +1 -0
  42. package/dist/commands/update.d.ts +3 -1
  43. package/dist/commands/update.d.ts.map +1 -1
  44. package/dist/commands/update.js +130 -47
  45. package/dist/commands/update.js.map +1 -1
  46. package/dist/commands/workflow.d.ts.map +1 -1
  47. package/dist/commands/workflow.js +1 -2
  48. package/dist/commands/workflow.js.map +1 -1
  49. package/dist/configurators/index.d.ts +5 -51
  50. package/dist/configurators/index.d.ts.map +1 -1
  51. package/dist/configurators/index.js +9 -140
  52. package/dist/configurators/index.js.map +1 -1
  53. package/dist/configurators/shared.d.ts +7 -66
  54. package/dist/configurators/shared.d.ts.map +1 -1
  55. package/dist/configurators/shared.js +17 -262
  56. package/dist/configurators/shared.js.map +1 -1
  57. package/dist/configurators/workflow.d.ts +5 -6
  58. package/dist/configurators/workflow.d.ts.map +1 -1
  59. package/dist/configurators/workflow.js +11 -39
  60. package/dist/configurators/workflow.js.map +1 -1
  61. package/dist/constants/paths.d.ts +1 -5
  62. package/dist/constants/paths.d.ts.map +1 -1
  63. package/dist/constants/paths.js +1 -5
  64. package/dist/constants/paths.js.map +1 -1
  65. package/dist/core/compat/environment.d.ts +43 -0
  66. package/dist/core/compat/environment.d.ts.map +1 -0
  67. package/dist/core/compat/environment.js +91 -0
  68. package/dist/core/compat/environment.js.map +1 -0
  69. package/dist/core/compat/index.d.ts +2 -0
  70. package/dist/core/compat/index.d.ts.map +1 -0
  71. package/dist/core/compat/index.js +2 -0
  72. package/dist/core/compat/index.js.map +1 -0
  73. package/dist/core/index.d.ts +4 -0
  74. package/dist/core/index.d.ts.map +1 -0
  75. package/dist/core/index.js +6 -0
  76. package/dist/core/index.js.map +1 -0
  77. package/dist/core/pactile/capability.d.ts +65 -0
  78. package/dist/core/pactile/capability.d.ts.map +1 -0
  79. package/dist/core/pactile/capability.js +199 -0
  80. package/dist/core/pactile/capability.js.map +1 -0
  81. package/dist/core/pactile/index.d.ts +15 -0
  82. package/dist/core/pactile/index.d.ts.map +1 -0
  83. package/dist/core/pactile/index.js +13 -0
  84. package/dist/core/pactile/index.js.map +1 -0
  85. package/dist/core/pactile/lifecycle.d.ts +106 -0
  86. package/dist/core/pactile/lifecycle.d.ts.map +1 -0
  87. package/dist/core/pactile/lifecycle.js +607 -0
  88. package/dist/core/pactile/lifecycle.js.map +1 -0
  89. package/dist/core/pactile/middleware/index.d.ts +3 -0
  90. package/dist/core/pactile/middleware/index.d.ts.map +1 -0
  91. package/dist/core/pactile/middleware/index.js +2 -0
  92. package/dist/core/pactile/middleware/index.js.map +1 -0
  93. package/dist/core/pactile/middleware/redaction.d.ts +4 -0
  94. package/dist/core/pactile/middleware/redaction.d.ts.map +1 -0
  95. package/dist/core/pactile/middleware/redaction.js +34 -0
  96. package/dist/core/pactile/middleware/redaction.js.map +1 -0
  97. package/dist/core/pactile/middleware/resolver.d.ts +62 -0
  98. package/dist/core/pactile/middleware/resolver.d.ts.map +1 -0
  99. package/dist/core/pactile/middleware/resolver.js +803 -0
  100. package/dist/core/pactile/middleware/resolver.js.map +1 -0
  101. package/dist/core/pactile/projection.d.ts +81 -0
  102. package/dist/core/pactile/projection.d.ts.map +1 -0
  103. package/dist/core/pactile/projection.js +399 -0
  104. package/dist/core/pactile/projection.js.map +1 -0
  105. package/dist/core/pactile/provider.d.ts +81 -0
  106. package/dist/core/pactile/provider.d.ts.map +1 -0
  107. package/dist/core/pactile/provider.js +313 -0
  108. package/dist/core/pactile/provider.js.map +1 -0
  109. package/dist/core/pactile/runtime.d.ts +56 -0
  110. package/dist/core/pactile/runtime.d.ts.map +1 -0
  111. package/dist/core/pactile/runtime.js +176 -0
  112. package/dist/core/pactile/runtime.js.map +1 -0
  113. package/dist/core/pactile/tile-compiler-types.d.ts +32 -0
  114. package/dist/core/pactile/tile-compiler-types.d.ts.map +1 -0
  115. package/dist/core/pactile/tile-compiler-types.js +2 -0
  116. package/dist/core/pactile/tile-compiler-types.js.map +1 -0
  117. package/dist/core/pactile/tile.d.ts +71 -0
  118. package/dist/core/pactile/tile.d.ts.map +1 -0
  119. package/dist/core/pactile/tile.js +228 -0
  120. package/dist/core/pactile/tile.js.map +1 -0
  121. package/dist/core/pactile/trace-runtime/index.d.ts +38 -0
  122. package/dist/core/pactile/trace-runtime/index.d.ts.map +1 -0
  123. package/dist/core/pactile/trace-runtime/index.js +292 -0
  124. package/dist/core/pactile/trace-runtime/index.js.map +1 -0
  125. package/dist/core/pactile/trace.d.ts +42 -0
  126. package/dist/core/pactile/trace.d.ts.map +1 -0
  127. package/dist/core/pactile/trace.js +221 -0
  128. package/dist/core/pactile/trace.js.map +1 -0
  129. package/dist/core/pactile/validation.d.ts +91 -0
  130. package/dist/core/pactile/validation.d.ts.map +1 -0
  131. package/dist/core/pactile/validation.js +301 -0
  132. package/dist/core/pactile/validation.js.map +1 -0
  133. package/dist/core/task/adapter-middleware.d.ts +122 -0
  134. package/dist/core/task/adapter-middleware.d.ts.map +1 -0
  135. package/dist/core/task/adapter-middleware.js +476 -0
  136. package/dist/core/task/adapter-middleware.js.map +1 -0
  137. package/dist/core/task/compat.d.ts +7 -0
  138. package/dist/core/task/compat.d.ts.map +1 -0
  139. package/dist/core/task/compat.js +2 -0
  140. package/dist/core/task/compat.js.map +1 -0
  141. package/dist/core/task/contract-migrate.d.ts +29 -0
  142. package/dist/core/task/contract-migrate.d.ts.map +1 -0
  143. package/dist/core/task/contract-migrate.js +207 -0
  144. package/dist/core/task/contract-migrate.js.map +1 -0
  145. package/dist/core/task/full-quality.d.ts +89 -0
  146. package/dist/core/task/full-quality.d.ts.map +1 -0
  147. package/dist/core/task/full-quality.js +379 -0
  148. package/dist/core/task/full-quality.js.map +1 -0
  149. package/dist/core/task/index.d.ts +32 -0
  150. package/dist/core/task/index.d.ts.map +1 -0
  151. package/dist/core/task/index.js +20 -0
  152. package/dist/core/task/index.js.map +1 -0
  153. package/dist/core/task/kernel-cli.d.ts +51 -0
  154. package/dist/core/task/kernel-cli.d.ts.map +1 -0
  155. package/dist/core/task/kernel-cli.js +301 -0
  156. package/dist/core/task/kernel-cli.js.map +1 -0
  157. package/dist/core/task/kernel-contract.d.ts +164 -0
  158. package/dist/core/task/kernel-contract.d.ts.map +1 -0
  159. package/dist/core/task/kernel-contract.js +475 -0
  160. package/dist/core/task/kernel-contract.js.map +1 -0
  161. package/dist/core/task/kernel-store.d.ts +130 -0
  162. package/dist/core/task/kernel-store.d.ts.map +1 -0
  163. package/dist/core/task/kernel-store.js +905 -0
  164. package/dist/core/task/kernel-store.js.map +1 -0
  165. package/dist/core/task/kernel-surface.d.ts +70 -0
  166. package/dist/core/task/kernel-surface.d.ts.map +1 -0
  167. package/dist/core/task/kernel-surface.js +121 -0
  168. package/dist/core/task/kernel-surface.js.map +1 -0
  169. package/dist/core/task/lite-context-pack.d.ts +71 -0
  170. package/dist/core/task/lite-context-pack.d.ts.map +1 -0
  171. package/dist/core/task/lite-context-pack.js +175 -0
  172. package/dist/core/task/lite-context-pack.js.map +1 -0
  173. package/dist/core/task/ondemand-topology.d.ts +108 -0
  174. package/dist/core/task/ondemand-topology.d.ts.map +1 -0
  175. package/dist/core/task/ondemand-topology.js +456 -0
  176. package/dist/core/task/ondemand-topology.js.map +1 -0
  177. package/dist/core/task/p36-artifact-migrate.d.ts +58 -0
  178. package/dist/core/task/p36-artifact-migrate.d.ts.map +1 -0
  179. package/dist/core/task/p36-artifact-migrate.js +293 -0
  180. package/dist/core/task/p36-artifact-migrate.js.map +1 -0
  181. package/dist/core/task/p36-wave-c.d.ts +39 -0
  182. package/dist/core/task/p36-wave-c.d.ts.map +1 -0
  183. package/dist/core/task/p36-wave-c.js +100 -0
  184. package/dist/core/task/p36-wave-c.js.map +1 -0
  185. package/dist/core/task/paths.d.ts +37 -0
  186. package/dist/core/task/paths.d.ts.map +1 -0
  187. package/dist/core/task/paths.js +49 -0
  188. package/dist/core/task/paths.js.map +1 -0
  189. package/dist/core/task/phase.d.ts +27 -0
  190. package/dist/core/task/phase.d.ts.map +1 -0
  191. package/dist/core/task/phase.js +24 -0
  192. package/dist/core/task/phase.js.map +1 -0
  193. package/dist/core/task/records.d.ts +48 -0
  194. package/dist/core/task/records.d.ts.map +1 -0
  195. package/dist/core/task/records.js +100 -0
  196. package/dist/core/task/records.js.map +1 -0
  197. package/dist/core/task/schema.d.ts +77 -0
  198. package/dist/core/task/schema.d.ts.map +1 -0
  199. package/dist/core/task/schema.js +220 -0
  200. package/dist/core/task/schema.js.map +1 -0
  201. package/dist/core/testing/index.d.ts +2 -0
  202. package/dist/core/testing/index.d.ts.map +1 -0
  203. package/dist/core/testing/index.js +4 -0
  204. package/dist/core/testing/index.js.map +1 -0
  205. package/dist/migrations/manifests/0.1.0.json +9 -9
  206. package/dist/migrations/manifests/0.1.1.json +9 -9
  207. package/dist/migrations/manifests/0.1.2.json +9 -9
  208. package/dist/migrations/manifests/0.1.3.json +9 -9
  209. package/dist/migrations/manifests/0.1.4.json +9 -9
  210. package/dist/migrations/manifests/0.2.1.json +9 -9
  211. package/dist/migrations/manifests/0.2.10.json +374 -374
  212. package/dist/migrations/manifests/0.2.2.json +8 -8
  213. package/dist/migrations/manifests/0.2.3.json +9 -9
  214. package/dist/migrations/manifests/0.2.4.json +8 -8
  215. package/dist/migrations/manifests/0.2.5.json +8 -8
  216. package/dist/migrations/manifests/0.2.6.json +8 -8
  217. package/dist/migrations/manifests/0.2.7.json +8 -8
  218. package/dist/migrations/manifests/0.2.8.json +9 -9
  219. package/dist/migrations/manifests/0.2.9.json +9 -9
  220. package/dist/migrations/manifests/0.3.0.json +89 -89
  221. package/dist/migrations/manifests/0.3.1.json +32 -32
  222. package/dist/migrations/manifests/0.3.2.json +16 -16
  223. package/dist/migrations/manifests/0.3.3.json +9 -9
  224. package/dist/migrations/manifests/0.3.4.json +9 -9
  225. package/dist/migrations/manifests/0.3.5.json +9 -9
  226. package/dist/migrations/manifests/0.3.6.json +9 -9
  227. package/dist/migrations/manifests/0.4.0.json +9 -9
  228. package/dist/migrations/manifests/0.4.1.json +9 -9
  229. package/dist/migrations/manifests/0.4.2.json +9 -9
  230. package/dist/migrations/manifests/0.4.3.json +9 -9
  231. package/dist/migrations/manifests/0.5.0-beta.0.json +9 -9
  232. package/dist/migrations/manifests/0.5.0-beta.1.json +9 -9
  233. package/dist/migrations/manifests/0.5.0-beta.2.json +8 -8
  234. package/dist/migrations/manifests/0.5.0-beta.3.json +8 -8
  235. package/dist/migrations/manifests/0.5.0-beta.4.json +9 -9
  236. package/dist/migrations/manifests/0.5.0-beta.5.json +9 -9
  237. package/dist/migrations/manifests/0.5.0.json +9 -0
  238. package/dist/migrations/manifests/0.6.0-beta.1.json +35 -0
  239. package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
  240. package/dist/migrations/manifests/0.6.0.json +9 -0
  241. package/dist/pactile/adapters/codex/index.js +1 -1
  242. package/dist/pactile/adapters/codex/index.js.map +1 -1
  243. package/dist/pactile/adapters/index.d.ts +0 -1
  244. package/dist/pactile/adapters/index.d.ts.map +1 -1
  245. package/dist/pactile/adapters/index.js +0 -1
  246. package/dist/pactile/adapters/index.js.map +1 -1
  247. package/dist/pactile/adoption/bindings.d.ts +1 -1
  248. package/dist/pactile/adoption/bindings.d.ts.map +1 -1
  249. package/dist/pactile/adoption/bindings.js +1 -1
  250. package/dist/pactile/adoption/bindings.js.map +1 -1
  251. package/dist/pactile/adoption/inventory.d.ts +1 -1
  252. package/dist/pactile/adoption/inventory.d.ts.map +1 -1
  253. package/dist/pactile/adoption/inventory.js +1 -1
  254. package/dist/pactile/adoption/inventory.js.map +1 -1
  255. package/dist/pactile/adoption/safety.js +1 -1
  256. package/dist/pactile/adoption/safety.js.map +1 -1
  257. package/dist/pactile/adoption/workflow.d.ts +1 -1
  258. package/dist/pactile/adoption/workflow.d.ts.map +1 -1
  259. package/dist/pactile/adoption/workflow.js +1 -1
  260. package/dist/pactile/adoption/workflow.js.map +1 -1
  261. package/dist/pactile/codex/bridge.d.ts +71 -0
  262. package/dist/pactile/codex/bridge.d.ts.map +1 -0
  263. package/dist/pactile/codex/bridge.js +271 -0
  264. package/dist/pactile/codex/bridge.js.map +1 -0
  265. package/dist/pactile/compat/init-context.js +1 -1
  266. package/dist/pactile/compat/init-context.js.map +1 -1
  267. package/dist/pactile/compat/node-entry-migration.d.ts +3 -0
  268. package/dist/pactile/compat/node-entry-migration.d.ts.map +1 -0
  269. package/dist/pactile/compat/node-entry-migration.js +25 -0
  270. package/dist/pactile/compat/node-entry-migration.js.map +1 -0
  271. package/dist/pactile/exit/receipt.js +1 -1
  272. package/dist/pactile/exit/receipt.js.map +1 -1
  273. package/dist/pactile/exit/service.d.ts +1 -1
  274. package/dist/pactile/exit/service.d.ts.map +1 -1
  275. package/dist/pactile/exit/service.js +1 -3
  276. package/dist/pactile/exit/service.js.map +1 -1
  277. package/dist/pactile/lifecycle/command-runner.d.ts +1 -1
  278. package/dist/pactile/lifecycle/command-runner.d.ts.map +1 -1
  279. package/dist/pactile/lifecycle/command-runner.js +1 -3
  280. package/dist/pactile/lifecycle/command-runner.js.map +1 -1
  281. package/dist/pactile/lifecycle/default-adapters.d.ts.map +1 -1
  282. package/dist/pactile/lifecycle/default-adapters.js +8 -32
  283. package/dist/pactile/lifecycle/default-adapters.js.map +1 -1
  284. package/dist/pactile/lifecycle/orchestrator.d.ts +1 -1
  285. package/dist/pactile/lifecycle/orchestrator.d.ts.map +1 -1
  286. package/dist/pactile/lifecycle/orchestrator.js +1 -1
  287. package/dist/pactile/lifecycle/orchestrator.js.map +1 -1
  288. package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
  289. package/dist/pactile/lifecycle/project-files.js +4 -1
  290. package/dist/pactile/lifecycle/project-files.js.map +1 -1
  291. package/dist/pactile/middleware/manifest-loader.d.ts +1 -1
  292. package/dist/pactile/middleware/manifest-loader.d.ts.map +1 -1
  293. package/dist/pactile/middleware/manifest-loader.js +1 -1
  294. package/dist/pactile/middleware/manifest-loader.js.map +1 -1
  295. package/dist/pactile/migration/transaction.d.ts +1 -1
  296. package/dist/pactile/migration/transaction.d.ts.map +1 -1
  297. package/dist/pactile/migration/transaction.js +1 -1
  298. package/dist/pactile/migration/transaction.js.map +1 -1
  299. package/dist/pactile/parallel/batch.d.ts +41 -0
  300. package/dist/pactile/parallel/batch.d.ts.map +1 -0
  301. package/dist/pactile/parallel/batch.js +190 -0
  302. package/dist/pactile/parallel/batch.js.map +1 -0
  303. package/dist/pactile/parallel/policy.d.ts +18 -0
  304. package/dist/pactile/parallel/policy.d.ts.map +1 -0
  305. package/dist/pactile/parallel/policy.js +174 -0
  306. package/dist/pactile/parallel/policy.js.map +1 -0
  307. package/dist/pactile/pi/bridge.d.ts +51 -0
  308. package/dist/pactile/pi/bridge.d.ts.map +1 -0
  309. package/dist/pactile/pi/bridge.js +353 -0
  310. package/dist/pactile/pi/bridge.js.map +1 -0
  311. package/dist/pactile/pi/rpc.d.ts +41 -0
  312. package/dist/pactile/pi/rpc.d.ts.map +1 -0
  313. package/dist/pactile/pi/rpc.js +219 -0
  314. package/dist/pactile/pi/rpc.js.map +1 -0
  315. package/dist/pactile/projection/planner.d.ts +1 -1
  316. package/dist/pactile/projection/planner.d.ts.map +1 -1
  317. package/dist/pactile/projection/planner.js +1 -1
  318. package/dist/pactile/projection/planner.js.map +1 -1
  319. package/dist/pactile/projection/shared/index.js +1 -1
  320. package/dist/pactile/projection/shared/index.js.map +1 -1
  321. package/dist/pactile/projection/store.js +1 -1
  322. package/dist/pactile/projection/store.js.map +1 -1
  323. package/dist/pactile/providers/probes.d.ts +2 -2
  324. package/dist/pactile/providers/probes.d.ts.map +1 -1
  325. package/dist/pactile/providers/probes.js +0 -6
  326. package/dist/pactile/providers/probes.js.map +1 -1
  327. package/dist/pactile/registry.d.ts +1 -8
  328. package/dist/pactile/registry.d.ts.map +1 -1
  329. package/dist/pactile/registry.js +8 -25
  330. package/dist/pactile/registry.js.map +1 -1
  331. package/dist/pactile/retrieval/envelope.d.ts +19 -0
  332. package/dist/pactile/retrieval/envelope.d.ts.map +1 -0
  333. package/dist/pactile/retrieval/envelope.js +115 -0
  334. package/dist/pactile/retrieval/envelope.js.map +1 -0
  335. package/dist/pactile/retrieval/evidence.js +1 -1
  336. package/dist/pactile/retrieval/evidence.js.map +1 -1
  337. package/dist/pactile/retrieval/pack.d.ts +9 -0
  338. package/dist/pactile/retrieval/pack.d.ts.map +1 -0
  339. package/dist/pactile/retrieval/pack.js +300 -0
  340. package/dist/pactile/retrieval/pack.js.map +1 -0
  341. package/dist/pactile/retrieval/planner.d.ts +1 -1
  342. package/dist/pactile/retrieval/planner.d.ts.map +1 -1
  343. package/dist/pactile/retrieval/planner.js +1 -1
  344. package/dist/pactile/retrieval/planner.js.map +1 -1
  345. package/dist/pactile/retrieval/types.d.ts +1 -1
  346. package/dist/pactile/retrieval/types.d.ts.map +1 -1
  347. package/dist/pactile/runtime/json-api.d.ts +1 -1
  348. package/dist/pactile/runtime/json-api.js +1 -1
  349. package/dist/pactile/runtime/paths.js +1 -1
  350. package/dist/pactile/runtime/paths.js.map +1 -1
  351. package/dist/pactile/runtime/stores.d.ts +1 -1
  352. package/dist/pactile/runtime/stores.d.ts.map +1 -1
  353. package/dist/pactile/runtime/stores.js +1 -1
  354. package/dist/pactile/runtime/stores.js.map +1 -1
  355. package/dist/pactile/runtime/unicode-nfc-data.d.ts +1 -1
  356. package/dist/pactile/runtime/unicode-nfc-data.js +1 -1
  357. package/dist/pactile/task/config.d.ts +9 -0
  358. package/dist/pactile/task/config.d.ts.map +1 -0
  359. package/dist/pactile/task/config.js +103 -0
  360. package/dist/pactile/task/config.js.map +1 -0
  361. package/dist/pactile/task/context.d.ts +19 -0
  362. package/dist/pactile/task/context.d.ts.map +1 -0
  363. package/dist/pactile/task/context.js +117 -0
  364. package/dist/pactile/task/context.js.map +1 -0
  365. package/dist/pactile/task/guards.d.ts +21 -0
  366. package/dist/pactile/task/guards.d.ts.map +1 -0
  367. package/dist/pactile/task/guards.js +232 -0
  368. package/dist/pactile/task/guards.js.map +1 -0
  369. package/dist/pactile/task/scaffold.d.ts +6 -0
  370. package/dist/pactile/task/scaffold.d.ts.map +1 -0
  371. package/dist/pactile/task/scaffold.js +57 -0
  372. package/dist/pactile/task/scaffold.js.map +1 -0
  373. package/dist/pactile/task/session-memory.d.ts +2 -0
  374. package/dist/pactile/task/session-memory.d.ts.map +1 -0
  375. package/dist/pactile/task/session-memory.js +123 -0
  376. package/dist/pactile/task/session-memory.js.map +1 -0
  377. package/dist/pactile/task/session-pack.d.ts +3 -0
  378. package/dist/pactile/task/session-pack.d.ts.map +1 -0
  379. package/dist/pactile/task/session-pack.js +139 -0
  380. package/dist/pactile/task/session-pack.js.map +1 -0
  381. package/dist/pactile/task/session.d.ts +13 -0
  382. package/dist/pactile/task/session.d.ts.map +1 -0
  383. package/dist/pactile/task/session.js +105 -0
  384. package/dist/pactile/task/session.js.map +1 -0
  385. package/dist/pactile/task/strategy.d.ts +24 -0
  386. package/dist/pactile/task/strategy.d.ts.map +1 -0
  387. package/dist/pactile/task/strategy.js +136 -0
  388. package/dist/pactile/task/strategy.js.map +1 -0
  389. package/dist/pactile/task/task-map.d.ts +35 -0
  390. package/dist/pactile/task/task-map.d.ts.map +1 -0
  391. package/dist/pactile/task/task-map.js +217 -0
  392. package/dist/pactile/task/task-map.js.map +1 -0
  393. package/dist/pactile/task/workflow-phase.d.ts +3 -0
  394. package/dist/pactile/task/workflow-phase.d.ts.map +1 -0
  395. package/dist/pactile/task/workflow-phase.js +56 -0
  396. package/dist/pactile/task/workflow-phase.js.map +1 -0
  397. package/dist/pactile/tiles/catalog.d.ts +1 -1
  398. package/dist/pactile/tiles/catalog.d.ts.map +1 -1
  399. package/dist/pactile/tiles/catalog.js +1 -1
  400. package/dist/pactile/tiles/catalog.js.map +1 -1
  401. package/dist/pactile/tiles/compiler.d.ts +1 -1
  402. package/dist/pactile/tiles/compiler.d.ts.map +1 -1
  403. package/dist/pactile/tiles/compiler.js +1 -1
  404. package/dist/pactile/tiles/compiler.js.map +1 -1
  405. package/dist/pactile/tiles/content/ondemand/index.d.ts +2 -2
  406. package/dist/pactile/tiles/content/ondemand/index.d.ts.map +1 -1
  407. package/dist/pactile/tiles/content/ondemand/index.js +2 -16
  408. package/dist/pactile/tiles/content/ondemand/index.js.map +1 -1
  409. package/dist/pactile/tiles/loader.d.ts +1 -1
  410. package/dist/pactile/tiles/loader.d.ts.map +1 -1
  411. package/dist/pactile/tiles/loader.js +1 -1
  412. package/dist/pactile/tiles/loader.js.map +1 -1
  413. package/dist/templates/common/bundled-skills/pactile-check/SKILL.md +161 -161
  414. package/dist/templates/common/bundled-skills/pactile-check/references/fowler-12-smells.md +28 -28
  415. package/dist/templates/common/bundled-skills/pactile-handoff/SKILL.md +117 -117
  416. package/dist/templates/common/bundled-skills/pactile-meta/SKILL.md +75 -75
  417. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/add-project-local-conventions.md +83 -83
  418. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-agents.md +5 -47
  419. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-context-loading.md +79 -84
  420. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +5 -57
  421. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-skills-or-commands.md +7 -77
  422. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-spec-structure.md +83 -83
  423. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-task-lifecycle.md +82 -88
  424. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-workflow.md +65 -65
  425. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/overview.md +12 -55
  426. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/context-injection.md +68 -68
  427. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +7 -83
  428. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/overview.md +7 -51
  429. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/spec-system.md +102 -102
  430. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/task-system.md +138 -133
  431. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workflow.md +75 -75
  432. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workspace-memory.md +71 -71
  433. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/agents.md +7 -69
  434. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +7 -59
  435. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +5 -45
  436. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +9 -45
  437. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/skills-and-commands.md +7 -108
  438. package/dist/templates/common/bundled-skills/pactile-micro-grill/SKILL.md +68 -68
  439. package/dist/templates/common/bundled-skills/pactile-skill-creator/SKILL.md +47 -47
  440. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/authoring-rules.md +170 -170
  441. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/general-authoring.md +189 -189
  442. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/pactile-skill-locations.md +11 -52
  443. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/review-checklist.md +52 -52
  444. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/SKILL.md +41 -41
  445. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/mcp-setup.md +18 -90
  446. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/repository-analysis.md +41 -59
  447. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-task-planning.md +61 -61
  448. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-writing.md +70 -70
  449. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +393 -393
  450. package/dist/templates/common/bundled-skills/smart-search-cli/agents/openai.yaml +3 -3
  451. package/dist/templates/common/bundled-skills/smart-search-cli/examples/batch-search.md +98 -98
  452. package/dist/templates/common/bundled-skills/smart-search-cli/examples/evidence-gathering.md +89 -89
  453. package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +323 -323
  454. package/dist/templates/common/commands/continue.md +60 -62
  455. package/dist/templates/common/commands/finish-work.md +84 -82
  456. package/dist/templates/common/commands/start.md +66 -66
  457. package/dist/templates/common/index.d.ts +0 -20
  458. package/dist/templates/common/index.d.ts.map +1 -1
  459. package/dist/templates/common/index.js +0 -16
  460. package/dist/templates/common/index.js.map +1 -1
  461. package/dist/templates/common/skills/before-dev.md +35 -35
  462. package/dist/templates/common/skills/brainstorm.md +204 -204
  463. package/dist/templates/common/skills/break-loop.md +125 -125
  464. package/dist/templates/common/skills/update-spec.md +363 -363
  465. package/dist/templates/extract.d.ts +1 -8
  466. package/dist/templates/extract.d.ts.map +1 -1
  467. package/dist/templates/extract.js +0 -31
  468. package/dist/templates/extract.js.map +1 -1
  469. package/dist/templates/markdown/agents.md +14 -14
  470. package/dist/templates/markdown/framework/artifact-locale-guide.md.txt +93 -93
  471. package/dist/templates/markdown/framework/codex-worker-dispatch.md.txt +9 -0
  472. package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +7 -28
  473. package/dist/templates/markdown/framework/execution-strategy.md.txt +14 -45
  474. package/dist/templates/markdown/framework/index.md.txt +20 -31
  475. package/dist/templates/markdown/framework/injection-budget-guide.md.txt +7 -111
  476. package/dist/templates/markdown/framework/middleware-protocol.md.txt +139 -238
  477. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +116 -116
  478. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +105 -105
  479. package/dist/templates/markdown/framework/release-boundary.md.txt +30 -30
  480. package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +9 -199
  481. package/dist/templates/markdown/framework/upgrade.md.txt +15 -15
  482. package/dist/templates/markdown/framework/verification-strength-guide.md.txt +185 -185
  483. package/dist/templates/markdown/gitignore.txt +15 -15
  484. package/dist/templates/markdown/index.d.ts +1 -5
  485. package/dist/templates/markdown/index.d.ts.map +1 -1
  486. package/dist/templates/markdown/index.js +3 -23
  487. package/dist/templates/markdown/index.js.map +1 -1
  488. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -51
  489. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -54
  490. package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -51
  491. package/dist/templates/markdown/spec/backend/index.md.txt +38 -38
  492. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -51
  493. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -51
  494. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -59
  495. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -54
  496. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -51
  497. package/dist/templates/markdown/spec/frontend/index.md.txt +39 -39
  498. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -51
  499. package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -51
  500. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -51
  501. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +174 -174
  502. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +162 -162
  503. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +17 -634
  504. package/dist/templates/markdown/spec/guides/debug-loop-guide.md.txt +227 -227
  505. package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +75 -75
  506. package/dist/templates/markdown/spec/guides/e2e-walkthrough-guide.md.txt +88 -93
  507. package/dist/templates/markdown/spec/guides/index.md.txt +131 -131
  508. package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +137 -139
  509. package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +179 -179
  510. package/dist/templates/markdown/workspace-index.md +122 -125
  511. package/dist/templates/markdown/worktree.yaml.txt +58 -58
  512. package/dist/templates/pactile/CONTEXT.md +101 -113
  513. package/dist/templates/pactile/config/execution-strategy-rules.json +30 -31
  514. package/dist/templates/pactile/config.yaml +111 -130
  515. package/dist/templates/pactile/docs/adr/README.md +21 -21
  516. package/dist/templates/pactile/gitignore.txt +35 -35
  517. package/dist/templates/pactile/index.d.ts +3 -127
  518. package/dist/templates/pactile/index.d.ts.map +1 -1
  519. package/dist/templates/pactile/index.js +13 -298
  520. package/dist/templates/pactile/index.js.map +1 -1
  521. package/dist/templates/pactile/modules/approval-personal/contract.md +43 -43
  522. package/dist/templates/pactile/modules/close-basic/contract.md +37 -37
  523. package/dist/templates/pactile/modules/context-progressive/contract.md +44 -44
  524. package/dist/templates/pactile/modules/debug-recovery/contract.md +44 -44
  525. package/dist/templates/pactile/modules/define-basic/contract.md +39 -39
  526. package/dist/templates/pactile/modules/define-extended/contract.md +45 -45
  527. package/dist/templates/pactile/modules/execute-agent/contract.md +38 -38
  528. package/dist/templates/pactile/modules/independent-check/contract.md +35 -35
  529. package/dist/templates/pactile/modules/index.json +127 -133
  530. package/dist/templates/pactile/modules/intake-basic/contract.md +34 -34
  531. package/dist/templates/pactile/modules/observability-local/contract.md +31 -31
  532. package/dist/templates/pactile/modules/parent-child/contract.md +45 -45
  533. package/dist/templates/pactile/modules/personal-memory/contract.md +55 -55
  534. package/dist/templates/pactile/modules/retention-storage/contract.md +43 -43
  535. package/dist/templates/pactile/modules/retrieval-extended/contract.md +78 -77
  536. package/dist/templates/pactile/modules/session-transfer/contract.md +41 -41
  537. package/dist/templates/pactile/modules/spec-learning/contract.md +50 -50
  538. package/dist/templates/pactile/modules/vcs-integration/contract.md +46 -46
  539. package/dist/templates/pactile/modules/verify-basic/contract.md +38 -38
  540. package/dist/templates/pactile/modules/worker-orchestration/contract.md +47 -47
  541. package/dist/templates/pactile/scripts/retrieval_probe_matrix_template.json +43 -43
  542. package/dist/templates/pactile/tasks/locale/en/default-prd.md +27 -27
  543. package/dist/templates/pactile/tasks/locale/zh/default-prd.md +27 -27
  544. package/dist/templates/pactile/tasks/templates/release-execution/design.md +60 -60
  545. package/dist/templates/pactile/tasks/templates/release-execution/handoff-template.md +28 -28
  546. package/dist/templates/pactile/tasks/templates/release-execution/implement.md +28 -28
  547. package/dist/templates/pactile/tasks/templates/release-execution/prd.md +30 -30
  548. package/dist/templates/pactile/tasks/templates/release-readiness/design.md +49 -49
  549. package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +38 -38
  550. package/dist/templates/pactile/tasks/templates/release-readiness/implement.md +28 -28
  551. package/dist/templates/pactile/tasks/templates/release-readiness/prd.md +30 -30
  552. package/dist/templates/pactile/workflow.md +65 -64
  553. package/dist/types/ai-tools.d.ts +12 -13
  554. package/dist/types/ai-tools.d.ts.map +1 -1
  555. package/dist/types/ai-tools.js +15 -14
  556. package/dist/types/ai-tools.js.map +1 -1
  557. package/dist/utils/codebase-retrieval-router.d.ts +1 -1
  558. package/dist/utils/codebase-retrieval-router.d.ts.map +1 -1
  559. package/dist/utils/cwd-guard.js +1 -1
  560. package/dist/utils/cwd-guard.js.map +1 -1
  561. package/dist/utils/developer.d.ts +5 -0
  562. package/dist/utils/developer.d.ts.map +1 -0
  563. package/dist/utils/developer.js +38 -0
  564. package/dist/utils/developer.js.map +1 -0
  565. package/dist/utils/git-root.d.ts +3 -0
  566. package/dist/utils/git-root.d.ts.map +1 -0
  567. package/dist/utils/git-root.js +24 -0
  568. package/dist/utils/git-root.js.map +1 -0
  569. package/dist/utils/local-date.d.ts +3 -0
  570. package/dist/utils/local-date.d.ts.map +1 -0
  571. package/dist/utils/local-date.js +8 -0
  572. package/dist/utils/local-date.js.map +1 -0
  573. package/dist/utils/manifest-prune.d.ts +5 -4
  574. package/dist/utils/manifest-prune.d.ts.map +1 -1
  575. package/dist/utils/manifest-prune.js +11 -21
  576. package/dist/utils/manifest-prune.js.map +1 -1
  577. package/dist/utils/p36-upgrade.d.ts +1 -1
  578. package/dist/utils/p36-upgrade.d.ts.map +1 -1
  579. package/dist/utils/p36-upgrade.js +1 -1
  580. package/dist/utils/p36-upgrade.js.map +1 -1
  581. package/dist/utils/post-update-smoke.d.ts +1 -4
  582. package/dist/utils/post-update-smoke.d.ts.map +1 -1
  583. package/dist/utils/post-update-smoke.js +13 -25
  584. package/dist/utils/post-update-smoke.js.map +1 -1
  585. package/dist/utils/project-capabilities.d.ts +2 -17
  586. package/dist/utils/project-capabilities.d.ts.map +1 -1
  587. package/dist/utils/project-capabilities.js +14 -119
  588. package/dist/utils/project-capabilities.js.map +1 -1
  589. package/dist/utils/readiness.d.ts +14 -0
  590. package/dist/utils/readiness.d.ts.map +1 -1
  591. package/dist/utils/readiness.js +61 -30
  592. package/dist/utils/readiness.js.map +1 -1
  593. package/dist/utils/retrieval-execution-telemetry.d.ts +1 -1
  594. package/dist/utils/retrieval-execution-telemetry.d.ts.map +1 -1
  595. package/dist/utils/retrieval-result-ranking.d.ts +1 -1
  596. package/dist/utils/retrieval-result-ranking.d.ts.map +1 -1
  597. package/dist/utils/retrieval-tool-classification.d.ts +1 -1
  598. package/dist/utils/retrieval-tool-classification.d.ts.map +1 -1
  599. package/dist/utils/task-json.d.ts +3 -3
  600. package/dist/utils/task-json.d.ts.map +1 -1
  601. package/dist/utils/task-json.js +3 -3
  602. package/dist/utils/task-json.js.map +1 -1
  603. package/dist/utils/template-hash.d.ts +4 -0
  604. package/dist/utils/template-hash.d.ts.map +1 -1
  605. package/dist/utils/template-hash.js +1 -1
  606. package/dist/utils/template-hash.js.map +1 -1
  607. package/dist/utils/update-rollout-report.d.ts +9 -0
  608. package/dist/utils/update-rollout-report.d.ts.map +1 -1
  609. package/dist/utils/update-rollout-report.js +14 -1
  610. package/dist/utils/update-rollout-report.js.map +1 -1
  611. package/package.json +22 -11
  612. package/scripts/postinstall.js +6 -6
  613. package/dist/commands/channel/adapters/claude.d.ts +0 -29
  614. package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
  615. package/dist/commands/channel/adapters/claude.js +0 -203
  616. package/dist/commands/channel/adapters/claude.js.map +0 -1
  617. package/dist/commands/channel/adapters/codex.d.ts +0 -85
  618. package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
  619. package/dist/commands/channel/adapters/codex.js +0 -505
  620. package/dist/commands/channel/adapters/codex.js.map +0 -1
  621. package/dist/commands/channel/adapters/index.d.ts +0 -84
  622. package/dist/commands/channel/adapters/index.d.ts.map +0 -1
  623. package/dist/commands/channel/adapters/index.js +0 -115
  624. package/dist/commands/channel/adapters/index.js.map +0 -1
  625. package/dist/commands/channel/adapters/types.d.ts +0 -33
  626. package/dist/commands/channel/adapters/types.d.ts.map +0 -1
  627. package/dist/commands/channel/adapters/types.js +0 -2
  628. package/dist/commands/channel/adapters/types.js.map +0 -1
  629. package/dist/commands/channel/agent-loader.d.ts +0 -32
  630. package/dist/commands/channel/agent-loader.d.ts.map +0 -1
  631. package/dist/commands/channel/agent-loader.js +0 -154
  632. package/dist/commands/channel/agent-loader.js.map +0 -1
  633. package/dist/commands/channel/context-loader.d.ts +0 -26
  634. package/dist/commands/channel/context-loader.d.ts.map +0 -1
  635. package/dist/commands/channel/context-loader.js +0 -290
  636. package/dist/commands/channel/context-loader.js.map +0 -1
  637. package/dist/commands/channel/context.d.ts +0 -16
  638. package/dist/commands/channel/context.d.ts.map +0 -1
  639. package/dist/commands/channel/context.js +0 -83
  640. package/dist/commands/channel/context.js.map +0 -1
  641. package/dist/commands/channel/create.d.ts +0 -27
  642. package/dist/commands/channel/create.d.ts.map +0 -1
  643. package/dist/commands/channel/create.js +0 -39
  644. package/dist/commands/channel/create.js.map +0 -1
  645. package/dist/commands/channel/dev-parse-trace.d.ts +0 -14
  646. package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
  647. package/dist/commands/channel/dev-parse-trace.js +0 -70
  648. package/dist/commands/channel/dev-parse-trace.js.map +0 -1
  649. package/dist/commands/channel/guard.d.ts +0 -150
  650. package/dist/commands/channel/guard.d.ts.map +0 -1
  651. package/dist/commands/channel/guard.js +0 -475
  652. package/dist/commands/channel/guard.js.map +0 -1
  653. package/dist/commands/channel/index.d.ts +0 -3
  654. package/dist/commands/channel/index.d.ts.map +0 -1
  655. package/dist/commands/channel/index.js +0 -531
  656. package/dist/commands/channel/index.js.map +0 -1
  657. package/dist/commands/channel/interrupt.d.ts +0 -10
  658. package/dist/commands/channel/interrupt.d.ts.map +0 -1
  659. package/dist/commands/channel/interrupt.js +0 -22
  660. package/dist/commands/channel/interrupt.js.map +0 -1
  661. package/dist/commands/channel/kill.d.ts +0 -7
  662. package/dist/commands/channel/kill.d.ts.map +0 -1
  663. package/dist/commands/channel/kill.js +0 -121
  664. package/dist/commands/channel/kill.js.map +0 -1
  665. package/dist/commands/channel/list.d.ts +0 -17
  666. package/dist/commands/channel/list.d.ts.map +0 -1
  667. package/dist/commands/channel/list.js +0 -233
  668. package/dist/commands/channel/list.js.map +0 -1
  669. package/dist/commands/channel/messages.d.ts +0 -15
  670. package/dist/commands/channel/messages.d.ts.map +0 -1
  671. package/dist/commands/channel/messages.js +0 -245
  672. package/dist/commands/channel/messages.js.map +0 -1
  673. package/dist/commands/channel/rm.d.ts +0 -27
  674. package/dist/commands/channel/rm.d.ts.map +0 -1
  675. package/dist/commands/channel/rm.js +0 -216
  676. package/dist/commands/channel/rm.js.map +0 -1
  677. package/dist/commands/channel/run.d.ts +0 -30
  678. package/dist/commands/channel/run.d.ts.map +0 -1
  679. package/dist/commands/channel/run.js +0 -130
  680. package/dist/commands/channel/run.js.map +0 -1
  681. package/dist/commands/channel/send.d.ts +0 -11
  682. package/dist/commands/channel/send.d.ts.map +0 -1
  683. package/dist/commands/channel/send.js +0 -24
  684. package/dist/commands/channel/send.js.map +0 -1
  685. package/dist/commands/channel/spawn.d.ts +0 -40
  686. package/dist/commands/channel/spawn.d.ts.map +0 -1
  687. package/dist/commands/channel/spawn.js +0 -242
  688. package/dist/commands/channel/spawn.js.map +0 -1
  689. package/dist/commands/channel/store/events.d.ts +0 -39
  690. package/dist/commands/channel/store/events.d.ts.map +0 -1
  691. package/dist/commands/channel/store/events.js +0 -87
  692. package/dist/commands/channel/store/events.js.map +0 -1
  693. package/dist/commands/channel/store/filter.d.ts +0 -3
  694. package/dist/commands/channel/store/filter.d.ts.map +0 -1
  695. package/dist/commands/channel/store/filter.js +0 -2
  696. package/dist/commands/channel/store/filter.js.map +0 -1
  697. package/dist/commands/channel/store/lock.d.ts +0 -23
  698. package/dist/commands/channel/store/lock.d.ts.map +0 -1
  699. package/dist/commands/channel/store/lock.js +0 -99
  700. package/dist/commands/channel/store/lock.js.map +0 -1
  701. package/dist/commands/channel/store/paths.d.ts +0 -63
  702. package/dist/commands/channel/store/paths.d.ts.map +0 -1
  703. package/dist/commands/channel/store/paths.js +0 -247
  704. package/dist/commands/channel/store/paths.js.map +0 -1
  705. package/dist/commands/channel/store/schema.d.ts +0 -27
  706. package/dist/commands/channel/store/schema.d.ts.map +0 -1
  707. package/dist/commands/channel/store/schema.js +0 -34
  708. package/dist/commands/channel/store/schema.js.map +0 -1
  709. package/dist/commands/channel/store/thread-state.d.ts +0 -5
  710. package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
  711. package/dist/commands/channel/store/thread-state.js +0 -16
  712. package/dist/commands/channel/store/thread-state.js.map +0 -1
  713. package/dist/commands/channel/store/watch.d.ts +0 -19
  714. package/dist/commands/channel/store/watch.d.ts.map +0 -1
  715. package/dist/commands/channel/store/watch.js +0 -146
  716. package/dist/commands/channel/store/watch.js.map +0 -1
  717. package/dist/commands/channel/supervisor/idle.d.ts +0 -46
  718. package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
  719. package/dist/commands/channel/supervisor/idle.js +0 -72
  720. package/dist/commands/channel/supervisor/idle.js.map +0 -1
  721. package/dist/commands/channel/supervisor/inbox.d.ts +0 -30
  722. package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
  723. package/dist/commands/channel/supervisor/inbox.js +0 -160
  724. package/dist/commands/channel/supervisor/inbox.js.map +0 -1
  725. package/dist/commands/channel/supervisor/shutdown.d.ts +0 -68
  726. package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
  727. package/dist/commands/channel/supervisor/shutdown.js +0 -146
  728. package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
  729. package/dist/commands/channel/supervisor/stdout.d.ts +0 -51
  730. package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
  731. package/dist/commands/channel/supervisor/stdout.js +0 -121
  732. package/dist/commands/channel/supervisor/stdout.js.map +0 -1
  733. package/dist/commands/channel/supervisor/turns.d.ts +0 -31
  734. package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
  735. package/dist/commands/channel/supervisor/turns.js +0 -45
  736. package/dist/commands/channel/supervisor/turns.js.map +0 -1
  737. package/dist/commands/channel/supervisor/warning.d.ts +0 -48
  738. package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
  739. package/dist/commands/channel/supervisor/warning.js +0 -77
  740. package/dist/commands/channel/supervisor/warning.js.map +0 -1
  741. package/dist/commands/channel/supervisor.d.ts +0 -59
  742. package/dist/commands/channel/supervisor.d.ts.map +0 -1
  743. package/dist/commands/channel/supervisor.js +0 -345
  744. package/dist/commands/channel/supervisor.js.map +0 -1
  745. package/dist/commands/channel/text-body.d.ts +0 -13
  746. package/dist/commands/channel/text-body.d.ts.map +0 -1
  747. package/dist/commands/channel/text-body.js +0 -47
  748. package/dist/commands/channel/text-body.js.map +0 -1
  749. package/dist/commands/channel/threads.d.ts +0 -39
  750. package/dist/commands/channel/threads.d.ts.map +0 -1
  751. package/dist/commands/channel/threads.js +0 -106
  752. package/dist/commands/channel/threads.js.map +0 -1
  753. package/dist/commands/channel/title.d.ts +0 -12
  754. package/dist/commands/channel/title.d.ts.map +0 -1
  755. package/dist/commands/channel/title.js +0 -24
  756. package/dist/commands/channel/title.js.map +0 -1
  757. package/dist/commands/channel/wait.d.ts +0 -17
  758. package/dist/commands/channel/wait.d.ts.map +0 -1
  759. package/dist/commands/channel/wait.js +0 -75
  760. package/dist/commands/channel/wait.js.map +0 -1
  761. package/dist/commands/validate-rules.d.ts +0 -6
  762. package/dist/commands/validate-rules.d.ts.map +0 -1
  763. package/dist/commands/validate-rules.js +0 -33
  764. package/dist/commands/validate-rules.js.map +0 -1
  765. package/dist/configurators/cursor.d.ts +0 -21
  766. package/dist/configurators/cursor.d.ts.map +0 -1
  767. package/dist/configurators/cursor.js +0 -51
  768. package/dist/configurators/cursor.js.map +0 -1
  769. package/dist/pactile/adapters/cursor/index.d.ts +0 -60
  770. package/dist/pactile/adapters/cursor/index.d.ts.map +0 -1
  771. package/dist/pactile/adapters/cursor/index.js +0 -186
  772. package/dist/pactile/adapters/cursor/index.js.map +0 -1
  773. package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +0 -179
  774. package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +0 -149
  775. package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +0 -904
  776. package/dist/templates/cursor/agents/pactile-check.md +0 -58
  777. package/dist/templates/cursor/agents/pactile-implement.md +0 -56
  778. package/dist/templates/cursor/agents/pactile-research.md +0 -51
  779. package/dist/templates/cursor/commands/handoff.md +0 -101
  780. package/dist/templates/cursor/fixtures/expected-rules.d.ts +0 -14
  781. package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +0 -1
  782. package/dist/templates/cursor/fixtures/expected-rules.js +0 -20
  783. package/dist/templates/cursor/fixtures/expected-rules.js.map +0 -1
  784. package/dist/templates/cursor/hooks.json +0 -52
  785. package/dist/templates/cursor/index.d.ts +0 -19
  786. package/dist/templates/cursor/index.d.ts.map +0 -1
  787. package/dist/templates/cursor/index.js +0 -19
  788. package/dist/templates/cursor/index.js.map +0 -1
  789. package/dist/templates/cursor/rules/pactile-bootstrap.mdc +0 -18
  790. package/dist/templates/cursor/worktrees.json +0 -11
  791. package/dist/templates/markdown/framework/cursor-context-injection-guide.md.txt +0 -85
  792. package/dist/templates/markdown/framework/cursor-native-modes-guide.md.txt +0 -239
  793. package/dist/templates/markdown/framework/cursor-semantic-compliance.md.txt +0 -41
  794. package/dist/templates/markdown/framework/cursor-subagent-policy.md.txt +0 -90
  795. package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +0 -45
  796. package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +0 -25
  797. package/dist/templates/pactile/modules/candidate-pool/contract.md +0 -37
  798. package/dist/templates/pactile/pool/README.md +0 -149
  799. package/dist/templates/pactile/pool/items/.gitkeep +0 -0
  800. package/dist/templates/pactile/pool/plan.md +0 -50
  801. package/dist/templates/pactile/scripts/__init__.py +0 -5
  802. package/dist/templates/pactile/scripts/add_session.py +0 -547
  803. package/dist/templates/pactile/scripts/build_context_pack.py +0 -17
  804. package/dist/templates/pactile/scripts/build_retrieval_pack.py +0 -376
  805. package/dist/templates/pactile/scripts/codegraph_session_smoke.py +0 -76
  806. package/dist/templates/pactile/scripts/common/__init__.py +0 -103
  807. package/dist/templates/pactile/scripts/common/active_task.py +0 -576
  808. package/dist/templates/pactile/scripts/common/adapter_middleware.py +0 -1373
  809. package/dist/templates/pactile/scripts/common/artifact_locale.py +0 -303
  810. package/dist/templates/pactile/scripts/common/artifact_search.py +0 -587
  811. package/dist/templates/pactile/scripts/common/cli_adapter.py +0 -135
  812. package/dist/templates/pactile/scripts/common/cli_environment.py +0 -155
  813. package/dist/templates/pactile/scripts/common/codebase_retrieval_router.py +0 -1339
  814. package/dist/templates/pactile/scripts/common/config.py +0 -497
  815. package/dist/templates/pactile/scripts/common/context_pack.py +0 -371
  816. package/dist/templates/pactile/scripts/common/cursor_retrieval_env.py +0 -31
  817. package/dist/templates/pactile/scripts/common/developer.py +0 -190
  818. package/dist/templates/pactile/scripts/common/execution_strategy.py +0 -268
  819. package/dist/templates/pactile/scripts/common/full_quality.py +0 -237
  820. package/dist/templates/pactile/scripts/common/git.py +0 -37
  821. package/dist/templates/pactile/scripts/common/git_context.py +0 -198
  822. package/dist/templates/pactile/scripts/common/injection_budget.py +0 -317
  823. package/dist/templates/pactile/scripts/common/io.py +0 -37
  824. package/dist/templates/pactile/scripts/common/kernel_command.py +0 -369
  825. package/dist/templates/pactile/scripts/common/lite_context.py +0 -280
  826. package/dist/templates/pactile/scripts/common/log.py +0 -45
  827. package/dist/templates/pactile/scripts/common/ondemand_topology.py +0 -419
  828. package/dist/templates/pactile/scripts/common/packages_context.py +0 -239
  829. package/dist/templates/pactile/scripts/common/pactile_config.py +0 -131
  830. package/dist/templates/pactile/scripts/common/parallel_declaration.py +0 -369
  831. package/dist/templates/pactile/scripts/common/parent_orchestration.py +0 -1198
  832. package/dist/templates/pactile/scripts/common/paths.py +0 -756
  833. package/dist/templates/pactile/scripts/common/pool_refs.py +0 -119
  834. package/dist/templates/pactile/scripts/common/pool_slice.py +0 -269
  835. package/dist/templates/pactile/scripts/common/pool_store.py +0 -766
  836. package/dist/templates/pactile/scripts/common/project_file_stats.py +0 -91
  837. package/dist/templates/pactile/scripts/common/retrieval_adapter_metadata.py +0 -943
  838. package/dist/templates/pactile/scripts/common/retrieval_agent_instructions.py +0 -123
  839. package/dist/templates/pactile/scripts/common/retrieval_evidence.py +0 -915
  840. package/dist/templates/pactile/scripts/common/retrieval_pack.py +0 -422
  841. package/dist/templates/pactile/scripts/common/retrieval_pack_context.py +0 -122
  842. package/dist/templates/pactile/scripts/common/retrieval_plan_gate.py +0 -61
  843. package/dist/templates/pactile/scripts/common/retrieval_result_ranking.py +0 -104
  844. package/dist/templates/pactile/scripts/common/retrieval_tool_classification.py +0 -166
  845. package/dist/templates/pactile/scripts/common/safe_commit.py +0 -285
  846. package/dist/templates/pactile/scripts/common/semantic_plan_gate.py +0 -53
  847. package/dist/templates/pactile/scripts/common/session_context.py +0 -1213
  848. package/dist/templates/pactile/scripts/common/session_memory.py +0 -386
  849. package/dist/templates/pactile/scripts/common/session_pack.py +0 -886
  850. package/dist/templates/pactile/scripts/common/smart_search_evidence.py +0 -514
  851. package/dist/templates/pactile/scripts/common/smart_search_resolve.py +0 -150
  852. package/dist/templates/pactile/scripts/common/subagent_dispatch.py +0 -592
  853. package/dist/templates/pactile/scripts/common/task_context.py +0 -241
  854. package/dist/templates/pactile/scripts/common/task_dashboard.py +0 -286
  855. package/dist/templates/pactile/scripts/common/task_dependencies.py +0 -648
  856. package/dist/templates/pactile/scripts/common/task_gates.py +0 -2478
  857. package/dist/templates/pactile/scripts/common/task_map.py +0 -703
  858. package/dist/templates/pactile/scripts/common/task_queue.py +0 -188
  859. package/dist/templates/pactile/scripts/common/task_store.py +0 -2252
  860. package/dist/templates/pactile/scripts/common/task_utils.py +0 -274
  861. package/dist/templates/pactile/scripts/common/tasks.py +0 -231
  862. package/dist/templates/pactile/scripts/common/test_adapter_middleware.py +0 -199
  863. package/dist/templates/pactile/scripts/common/test_depends_mode_block.py +0 -509
  864. package/dist/templates/pactile/scripts/common/test_full_quality.py +0 -197
  865. package/dist/templates/pactile/scripts/common/test_kernel_command.py +0 -336
  866. package/dist/templates/pactile/scripts/common/test_lite_path.py +0 -190
  867. package/dist/templates/pactile/scripts/common/test_observable_defaults.py +0 -141
  868. package/dist/templates/pactile/scripts/common/test_ondemand_topology.py +0 -237
  869. package/dist/templates/pactile/scripts/common/test_parallel_declaration.py +0 -264
  870. package/dist/templates/pactile/scripts/common/test_pool_slice.py +0 -198
  871. package/dist/templates/pactile/scripts/common/test_pool_store.py +0 -452
  872. package/dist/templates/pactile/scripts/common/test_retrieval_arbitration.py +0 -331
  873. package/dist/templates/pactile/scripts/common/test_task_dashboard.py +0 -155
  874. package/dist/templates/pactile/scripts/common/test_task_dependencies.py +0 -329
  875. package/dist/templates/pactile/scripts/common/test_task_store_kernel_patch.py +0 -163
  876. package/dist/templates/pactile/scripts/common/types.py +0 -110
  877. package/dist/templates/pactile/scripts/common/workflow_phase.py +0 -194
  878. package/dist/templates/pactile/scripts/compile_session_pack.py +0 -15
  879. package/dist/templates/pactile/scripts/cursor_retrieval_probe.py +0 -64
  880. package/dist/templates/pactile/scripts/cursor_retrieval_probe_prompt.md +0 -33
  881. package/dist/templates/pactile/scripts/generate_dispatch_prompt.py +0 -182
  882. package/dist/templates/pactile/scripts/get_context.py +0 -19
  883. package/dist/templates/pactile/scripts/get_developer.py +0 -26
  884. package/dist/templates/pactile/scripts/hooks/linear_sync.py +0 -243
  885. package/dist/templates/pactile/scripts/init_developer.py +0 -51
  886. package/dist/templates/pactile/scripts/injection_budget_probe.py +0 -69
  887. package/dist/templates/pactile/scripts/pool.py +0 -237
  888. package/dist/templates/pactile/scripts/rank_retrieval_candidates.py +0 -98
  889. package/dist/templates/pactile/scripts/route_codebase_retrieval.py +0 -72
  890. package/dist/templates/pactile/scripts/run_smart_search.py +0 -12
  891. package/dist/templates/pactile/scripts/score_evidence.py +0 -131
  892. package/dist/templates/pactile/scripts/search_artifacts.py +0 -13
  893. package/dist/templates/pactile/scripts/search_memory.py +0 -12
  894. package/dist/templates/pactile/scripts/spec_health_outcomes.py +0 -160
  895. package/dist/templates/pactile/scripts/task.py +0 -1118
  896. package/dist/templates/pactile/scripts/verify_evidence_probe.py +0 -138
  897. package/dist/templates/shared-hooks/event-bridge.py +0 -121
  898. package/dist/templates/shared-hooks/index.d.ts +0 -50
  899. package/dist/templates/shared-hooks/index.d.ts.map +0 -1
  900. package/dist/templates/shared-hooks/index.js +0 -96
  901. package/dist/templates/shared-hooks/index.js.map +0 -1
  902. package/dist/templates/shared-hooks/inject-retrieval-plan.py +0 -217
  903. package/dist/templates/shared-hooks/inject-shell-session-context.py +0 -183
  904. package/dist/templates/shared-hooks/inject-subagent-context.py +0 -267
  905. package/dist/templates/shared-hooks/inject-workflow-state.py +0 -106
  906. package/dist/templates/shared-hooks/rename-session-for-task.py +0 -231
  907. package/dist/templates/shared-hooks/research-end-retrieval-pack.py +0 -345
  908. package/dist/templates/shared-hooks/session-start.py +0 -355
  909. package/dist/templates/shared-hooks/spec-write-audit.py +0 -173
  910. package/dist/utils/mirror-check.d.ts +0 -22
  911. package/dist/utils/mirror-check.d.ts.map +0 -1
  912. package/dist/utils/mirror-check.js +0 -90
  913. package/dist/utils/mirror-check.js.map +0 -1
  914. package/dist/utils/validate-rules.d.ts +0 -21
  915. package/dist/utils/validate-rules.d.ts.map +0 -1
  916. package/dist/utils/validate-rules.js +0 -88
  917. package/dist/utils/validate-rules.js.map +0 -1
@@ -1,227 +1,227 @@
1
- # Debug Loop Guide
2
-
3
- > **Purpose**: 调试纪律 —— 先建 tight、red-capable 反馈环,再假设、再修,一次到位找到并修对;与 `pactile-break-loop` 划界(诊断进行中 vs 修完后防再发),互不替代。
4
-
5
- ---
6
-
7
- ## 1. Purpose / Non-goals
8
-
9
- **Purpose.** Hard bugs and performance regressions are not solved by reading code — they are solved by building a **tight, red-capable feedback loop** first, then letting hypotheses consume it. This guide defines the discipline: build the loop → reproduce → hypothesise → probe one variable at a time → freeze the loop as a regression → clean up and hand off to prevention.
10
-
11
- **Non-goals**
12
-
13
- - **Not a mandate for every bug.** A lightweight bug (obvious at a glance, provable in a single step) may skip the full loop — but you must state **one sentence** explaining why the full cycle was skipped.
14
- - **Not a replacement for `pactile-break-loop`.** This guide owns *diagnosis in progress*; break-loop owns *post-fix root cause classification / prevention / knowledge capture* (see §2).
15
- - **No production instrumentation** unless the user explicitly permits it. If you cannot build a loop without instrumenting production, stop and ask (see Phase 1 "genuinely cannot build a loop").
16
- - **Not TDD ceremony.** Phase 5 freezes the loop as a test *or* a repeatable command — whichever is the correct seam.
17
-
18
- ## 2. Boundary with pactile-break-loop
19
-
20
- | | **debug-loop-guide** (this guide) | **pactile-break-loop** |
21
- | --- | --- | --- |
22
- | 时机 | 诊断与修复**进行中**(建环 → 修) | 修复**完成后**(深分析) |
23
- | 目标 | 一次到位找到并修对(red 环、假设表、修复、清理) | 根因分类(A–E)、为何修失败、防再发机制、入 spec |
24
- | 输出 | 红环、3–5 假设排名、修复、回归、清理 | 5 维分析、prevention、knowledge capture 到 guides |
25
- | 触发 | 用户报 bug / 性能回归,进入诊断 | `/pactile:break-loop` 或修完后的任务收尾 |
26
-
27
- **二者不互相替代**:debug-loop-guide 结束时若只修完没做根因分类,同类 bug 会再发;pactile-break-loop 不帮你找到原因(它在修完之后才启动)。Phase 6 的 post-mortem 钩子负责把两者接起来。
28
-
29
- ## 3. Hard rule: no red-capable loop → no hypotheses
30
-
31
- > **硬纪律:无 red-capable 反馈环,不得进入假设阶段;禁止先读代码猜原因。**
32
-
33
- A **red-capable** loop is **one command** that you have **already run at least once** (show the invocation and its redacted output), and that simultaneously:
34
-
35
- - **Drives the path of the user's symptom** — it exercises the actual bug code path, not "it didn't crash".
36
- - **Can go red and green** — it goes red on *this* bug and turns green once fixed.
37
- - **Is as deterministic, fast, and agent-runnable as possible** — seconds, unattended; a human in the loop only via the PowerShell HITL template (§12).
38
-
39
- If you catch yourself reading code to build a theory before this command exists — **stop**. Jumping straight to a hypothesis is the exact failure this discipline prevents. No red-capable command, no Phase 2.
40
-
41
- **If you genuinely cannot build a loop**: stop and say so explicitly. List what you tried. Ask the user for (a) access to the environment that reproduces it, (b) a redacted captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) **explicit permission** to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop.
42
-
43
- ## 4. Lightweight escape hatch
44
-
45
- A lightweight bug — one visible at a glance, provable in a single step (typo, obvious off-by-one, missing export) — may skip the full cycle. The only requirement: **one sentence explaining why the full loop was skipped** (e.g. "single-line typo, provable by one compile run; full loop skipped"). Hard bugs and performance regressions **default to the full loop**.
46
-
47
- ## 5. Redact
48
-
49
- This guide makes you show commands, outputs and captured artifacts. **Redact every secret first** — write `<REDACTED>` in its place.
50
-
51
- - Build loops against **env vars** so credentials stay in the environment, never in what you show.
52
- - Captured artifacts carry auth headers: **quote only the lines that carry the signal**, not the whole blob.
53
- - If the redacted output is not enough to diagnose the bug, say so and ask the user — do not leak secrets to move faster.
54
-
55
- ## 6. Phase 1 — Build a tight feedback loop
56
-
57
- **This is the phase.** Everything else is mechanical. If you have a **tight** pass/fail signal for the bug — one that goes red on *this* bug — you will find the cause; bisection, hypothesis-testing, and instrumentation just consume it. If you don't have one, no amount of staring at code will save you. Spend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**
58
-
59
- ### Ways to construct one — try them in roughly this order
60
-
61
- 1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.
62
- 2. **Curl / HTTP script** against a running dev server.
63
- 3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.
64
- 4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network.
65
- 5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.
66
- 6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call.
67
- 7. **Property / fuzz loop.** If the bug is "sometimes wrong output", run 1000 random inputs and look for the failure mode.
68
- 8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate "boot at state X, check, repeat" so you can bisect it.
69
- 9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs.
70
- 10. **HITL PowerShell script** (§12). Last resort. If a human must click, drive *them* with a structured loop so it is still a loop. Captured output feeds back to you.
71
-
72
- ### Tighten the loop
73
-
74
- Treat the loop as a product. Once you have *a* loop, **tighten** it:
75
-
76
- - Can I make it **faster**? (Cache setup, skip unrelated init, narrow the test scope.)
77
- - Can I make the **signal sharper**? (Assert on the specific symptom, not "didn't crash".)
78
- - Can I make it **more deterministic**? (Pin time, seed RNG, isolate filesystem, freeze network.)
79
-
80
- A 30-second flaky loop is barely better than no loop; a 2-second deterministic one is a debugging superpower.
81
-
82
- ### Non-deterministic bugs
83
-
84
- The goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it is debuggable.
85
-
86
- ### Completion criterion — a tight loop that goes red
87
-
88
- Phase 1 is done when the loop is **tight** and **red-capable**: you can name **one command** — a script path, a test invocation, a curl — that you have **already run at least once** (show the invocation and its output, redacted), and that is:
89
-
90
- - [ ] **Red-capable** — drives the actual bug code path and asserts the **user's exact symptom**, so it can go red on this bug and green once fixed. Not "runs without erroring".
91
- - [ ] **Deterministic** — same verdict every run (flaky bugs: a pinned, high reproduction rate, per above).
92
- - [ ] **Fast** — seconds, not minutes.
93
- - [ ] **Agent-runnable** — unattended; a human in the loop only via the HITL template (§12).
94
-
95
- No red-capable command, no Phase 2.
96
-
97
- ## 7. Phase 2 — Reproduce + minimise
98
-
99
- Run the loop. Watch it go red — the bug appears.
100
-
101
- Confirm:
102
-
103
- - [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.
104
- - [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a high enough rate to debug against).
105
- - [ ] You have captured the exact symptom (error message, wrong output, slow timing) so later phases can verify the fix actually addresses it.
106
-
107
- ### Minimise
108
-
109
- Once it is red, shrink the repro to the **smallest scenario that still goes red**. Cut inputs, callers, config, data, and steps **one at a time**, re-running the loop after each cut — keep only what is load-bearing for the failure. A minimal repro shrinks the Phase 3 hypothesis space (fewer moving parts to suspect) and becomes the clean Phase 5 regression. Done when **every remaining element is load-bearing** — removing any one of them makes the loop go green.
110
-
111
- Do not proceed until you have reproduced **and** minimised.
112
-
113
- ## 8. Phase 3 — Ranked falsifiable hypotheses (show user)
114
-
115
- Generate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors on the first plausible idea.
116
-
117
- Each hypothesis must be **falsifiable**: state the prediction it makes.
118
-
119
- > Format: "If `<X>` is the cause, then `<changing Y>` will make the bug disappear / `<changing Z>` will make it worse."
120
-
121
- If you cannot state the prediction, the hypothesis is a vibe — discard or sharpen it.
122
-
123
- **Show the ranked list to the user before testing.** They often have domain knowledge that re-ranks instantly ("we just deployed a change to #3"), or know hypotheses they have already ruled out. Cheap checkpoint, big time saver. Don't block on it — proceed with your ranking if the user is AFK.
124
-
125
- ## 9. Phase 4 — One-variable probes / instrumentation
126
-
127
- Each probe must map to a specific prediction from Phase 3. **Change one variable at a time.**
128
-
129
- Tool preference:
130
-
131
- 1. **Debugger / REPL inspection** if the environment supports it. One breakpoint beats ten logs.
132
- 2. **Targeted logs** at the boundaries that distinguish hypotheses.
133
- 3. Never "log everything and grep".
134
-
135
- **Tag every debug log with a unique prefix**, e.g. `[DEBUG-a4f2]` (or any equivalent uniform prefix). Cleanup at the end becomes a **single grep**: `grep -rn "\[DEBUG-" .` / `rg "\[DEBUG-"` — every tagged line dies, untagged lines survive.
136
-
137
- **Perf branch.** For performance regressions, logs are usually wrong. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix second.
138
-
139
- ## 10. Phase 5 — Regression (freeze the loop)
140
-
141
- Freeze the loop as a test **or** a repeatable command — whichever has a **correct seam**.
142
-
143
- A correct seam is one where the test/command exercises the **real bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that cannot replicate the chain that triggered the bug), a regression there gives false confidence.
144
-
145
- **If no correct seam exists, that itself is the finding.** Note it — the architecture is preventing the bug from being locked down. Flag it for Phase 6 / break-loop.
146
-
147
- If a correct seam exists:
148
-
149
- 1. Turn the minimised repro into a failing test (or a repeatable command) at that seam.
150
- 2. Watch it fail.
151
- 3. Apply the fix.
152
- 4. Watch it pass.
153
- 5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario.
154
-
155
- This phase hands off to the test-discipline scope (P08) without being absorbed by it: the loop here is bug-driven; test-discipline owns the general testing strategy.
156
-
157
- ## 11. Phase 6 — Cleanup + post-mortem hook
158
-
159
- Required before declaring done:
160
-
161
- - [ ] Original repro no longer reproduces (re-run the Phase 1 loop)
162
- - [ ] Regression passes (or absence of seam is documented)
163
- - [ ] All `[DEBUG-...]` instrumentation removed — one grep, zero hits
164
- - [ ] Throwaway prototypes deleted (or moved to a clearly-marked debug location)
165
- - [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns
166
-
167
- **Post-mortem hook:** then ask *what would have prevented this bug?* If the answer involves architectural change (no good test seam, tangled callers, hidden coupling), or the bug is worth classifying, run **`pactile-break-loop`** (root cause category A–E, why fixes failed, prevention mechanisms) and/or update the relevant spec/guide via **`pactile-update-spec`**. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.
168
-
169
- ## 12. PowerShell HITL template
170
-
171
- PowerShell 7 (user environment). Copy this file, edit the steps below, and run it. The agent runs the script; the user follows prompts in their terminal. Two helpers:
172
-
173
- - `Step "instruction"` → show instruction, wait for Enter
174
- - `$var = Capture "question"` → show question, read response; the returned value is echoed back, where the agent reads it — so capture observations, and leave signing in to the user as a `Step`
175
-
176
- At the end, captured values are printed as `KEY=VALUE` for the agent to parse.
177
-
178
- ```powershell
179
- # Human-in-the-loop reproduction loop (PowerShell 7).
180
- # Usage: ./hitl-loop.ps1
181
- # Edit the "--- edit below ---" section per bug, then run it.
182
-
183
- $ErrorActionPreference = 'Stop'
184
-
185
- function Step {
186
- param([Parameter(Mandatory)][string]$Instruction)
187
- Write-Host ''
188
- Write-Host ">>> $Instruction" -ForegroundColor Cyan
189
- [void](Read-Host " [Enter when done] ")
190
- }
191
-
192
- function Capture {
193
- param([Parameter(Mandatory)][string]$Question)
194
- Write-Host ''
195
- Write-Host ">>> $Question" -ForegroundColor Cyan
196
- $answer = Read-Host " > "
197
- Write-Host " (captured: $answer)"
198
- return $answer
199
- }
200
-
201
- # --- edit below ---------------------------------------------------------
202
-
203
- Step "Open the app at http://localhost:3000 and sign in."
204
-
205
- $ERRORED = Capture "Click the 'Export' button. Did it throw an error? (y/n)"
206
-
207
- $ERROR_MSG = Capture "Paste the error message (or 'none'):"
208
-
209
- # --- edit above ---------------------------------------------------------
210
-
211
- Write-Host ''
212
- Write-Host '--- Captured ---' -ForegroundColor Green
213
- Write-Host "ERRORED=$ERRORED"
214
- Write-Host "ERROR_MSG=$ERROR_MSG"
215
- ```
216
-
217
- Adaptation notes for the agent: keep the loop **agent-runnable** where possible (headless/HTTP/CLI first); HITL only when a human must click or sign in. Never ask the user to paste secrets into the loop output — capture observations, leave signing in to the user as a `Step`.
218
-
219
- ## 13. Completion checklist
220
-
221
- - [ ] Phase 1 loop exists, ran at least once, red-capable, deterministic, fast, agent-runnable (or escape hatch justified in one sentence)
222
- - [ ] Phase 2: reproduced the user's exact symptom; repro minimised until every element is load-bearing
223
- - [ ] Phase 3: 3–5 ranked falsifiable hypotheses, each with a stated prediction; shown to user
224
- - [ ] Phase 4: one variable per probe; debug logs tagged `[DEBUG-...]`
225
- - [ ] Phase 5: loop frozen as test or repeatable command at a correct seam (or absence of seam documented)
226
- - [ ] Phase 6: original repro green, instrumentation removed (one grep, zero hits), post-mortem hook to `pactile-break-loop` / `pactile-update-spec` decided
227
- - [ ] Everything shown to the user redacted (`<REDACTED>`, credentials via env)
1
+ # Debug Loop Guide
2
+
3
+ > **Purpose**: 调试纪律 —— 先建 tight、red-capable 反馈环,再假设、再修,一次到位找到并修对;与 `pactile-break-loop` 划界(诊断进行中 vs 修完后防再发),互不替代。
4
+
5
+ ---
6
+
7
+ ## 1. Purpose / Non-goals
8
+
9
+ **Purpose.** Hard bugs and performance regressions are not solved by reading code — they are solved by building a **tight, red-capable feedback loop** first, then letting hypotheses consume it. This guide defines the discipline: build the loop → reproduce → hypothesise → probe one variable at a time → freeze the loop as a regression → clean up and hand off to prevention.
10
+
11
+ **Non-goals**
12
+
13
+ - **Not a mandate for every bug.** A lightweight bug (obvious at a glance, provable in a single step) may skip the full loop — but you must state **one sentence** explaining why the full cycle was skipped.
14
+ - **Not a replacement for `pactile-break-loop`.** This guide owns *diagnosis in progress*; break-loop owns *post-fix root cause classification / prevention / knowledge capture* (see §2).
15
+ - **No production instrumentation** unless the user explicitly permits it. If you cannot build a loop without instrumenting production, stop and ask (see Phase 1 "genuinely cannot build a loop").
16
+ - **Not TDD ceremony.** Phase 5 freezes the loop as a test *or* a repeatable command — whichever is the correct seam.
17
+
18
+ ## 2. Boundary with pactile-break-loop
19
+
20
+ | | **debug-loop-guide** (this guide) | **pactile-break-loop** |
21
+ | --- | --- | --- |
22
+ | 时机 | 诊断与修复**进行中**(建环 → 修) | 修复**完成后**(深分析) |
23
+ | 目标 | 一次到位找到并修对(red 环、假设表、修复、清理) | 根因分类(A–E)、为何修失败、防再发机制、入 spec |
24
+ | 输出 | 红环、3–5 假设排名、修复、回归、清理 | 5 维分析、prevention、knowledge capture 到 guides |
25
+ | 触发 | 用户报 bug / 性能回归,进入诊断 | `/pactile:break-loop` 或修完后的任务收尾 |
26
+
27
+ **二者不互相替代**:debug-loop-guide 结束时若只修完没做根因分类,同类 bug 会再发;pactile-break-loop 不帮你找到原因(它在修完之后才启动)。Phase 6 的 post-mortem 钩子负责把两者接起来。
28
+
29
+ ## 3. Hard rule: no red-capable loop → no hypotheses
30
+
31
+ > **硬纪律:无 red-capable 反馈环,不得进入假设阶段;禁止先读代码猜原因。**
32
+
33
+ A **red-capable** loop is **one command** that you have **already run at least once** (show the invocation and its redacted output), and that simultaneously:
34
+
35
+ - **Drives the path of the user's symptom** — it exercises the actual bug code path, not "it didn't crash".
36
+ - **Can go red and green** — it goes red on *this* bug and turns green once fixed.
37
+ - **Is as deterministic, fast, and agent-runnable as possible** — seconds, unattended; a human in the loop only via the PowerShell HITL template (§12).
38
+
39
+ If you catch yourself reading code to build a theory before this command exists — **stop**. Jumping straight to a hypothesis is the exact failure this discipline prevents. No red-capable command, no Phase 2.
40
+
41
+ **If you genuinely cannot build a loop**: stop and say so explicitly. List what you tried. Ask the user for (a) access to the environment that reproduces it, (b) a redacted captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) **explicit permission** to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop.
42
+
43
+ ## 4. Lightweight escape hatch
44
+
45
+ A lightweight bug — one visible at a glance, provable in a single step (typo, obvious off-by-one, missing export) — may skip the full cycle. The only requirement: **one sentence explaining why the full loop was skipped** (e.g. "single-line typo, provable by one compile run; full loop skipped"). Hard bugs and performance regressions **default to the full loop**.
46
+
47
+ ## 5. Redact
48
+
49
+ This guide makes you show commands, outputs and captured artifacts. **Redact every secret first** — write `<REDACTED>` in its place.
50
+
51
+ - Build loops against **env vars** so credentials stay in the environment, never in what you show.
52
+ - Captured artifacts carry auth headers: **quote only the lines that carry the signal**, not the whole blob.
53
+ - If the redacted output is not enough to diagnose the bug, say so and ask the user — do not leak secrets to move faster.
54
+
55
+ ## 6. Phase 1 — Build a tight feedback loop
56
+
57
+ **This is the phase.** Everything else is mechanical. If you have a **tight** pass/fail signal for the bug — one that goes red on *this* bug — you will find the cause; bisection, hypothesis-testing, and instrumentation just consume it. If you don't have one, no amount of staring at code will save you. Spend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**
58
+
59
+ ### Ways to construct one — try them in roughly this order
60
+
61
+ 1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.
62
+ 2. **Curl / HTTP script** against a running dev server.
63
+ 3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.
64
+ 4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network.
65
+ 5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.
66
+ 6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call.
67
+ 7. **Property / fuzz loop.** If the bug is "sometimes wrong output", run 1000 random inputs and look for the failure mode.
68
+ 8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate "boot at state X, check, repeat" so you can bisect it.
69
+ 9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs.
70
+ 10. **HITL PowerShell script** (§12). Last resort. If a human must click, drive *them* with a structured loop so it is still a loop. Captured output feeds back to you.
71
+
72
+ ### Tighten the loop
73
+
74
+ Treat the loop as a product. Once you have *a* loop, **tighten** it:
75
+
76
+ - Can I make it **faster**? (Cache setup, skip unrelated init, narrow the test scope.)
77
+ - Can I make the **signal sharper**? (Assert on the specific symptom, not "didn't crash".)
78
+ - Can I make it **more deterministic**? (Pin time, seed RNG, isolate filesystem, freeze network.)
79
+
80
+ A 30-second flaky loop is barely better than no loop; a 2-second deterministic one is a debugging superpower.
81
+
82
+ ### Non-deterministic bugs
83
+
84
+ The goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it is debuggable.
85
+
86
+ ### Completion criterion — a tight loop that goes red
87
+
88
+ Phase 1 is done when the loop is **tight** and **red-capable**: you can name **one command** — a script path, a test invocation, a curl — that you have **already run at least once** (show the invocation and its output, redacted), and that is:
89
+
90
+ - [ ] **Red-capable** — drives the actual bug code path and asserts the **user's exact symptom**, so it can go red on this bug and green once fixed. Not "runs without erroring".
91
+ - [ ] **Deterministic** — same verdict every run (flaky bugs: a pinned, high reproduction rate, per above).
92
+ - [ ] **Fast** — seconds, not minutes.
93
+ - [ ] **Agent-runnable** — unattended; a human in the loop only via the HITL template (§12).
94
+
95
+ No red-capable command, no Phase 2.
96
+
97
+ ## 7. Phase 2 — Reproduce + minimise
98
+
99
+ Run the loop. Watch it go red — the bug appears.
100
+
101
+ Confirm:
102
+
103
+ - [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.
104
+ - [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a high enough rate to debug against).
105
+ - [ ] You have captured the exact symptom (error message, wrong output, slow timing) so later phases can verify the fix actually addresses it.
106
+
107
+ ### Minimise
108
+
109
+ Once it is red, shrink the repro to the **smallest scenario that still goes red**. Cut inputs, callers, config, data, and steps **one at a time**, re-running the loop after each cut — keep only what is load-bearing for the failure. A minimal repro shrinks the Phase 3 hypothesis space (fewer moving parts to suspect) and becomes the clean Phase 5 regression. Done when **every remaining element is load-bearing** — removing any one of them makes the loop go green.
110
+
111
+ Do not proceed until you have reproduced **and** minimised.
112
+
113
+ ## 8. Phase 3 — Ranked falsifiable hypotheses (show user)
114
+
115
+ Generate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors on the first plausible idea.
116
+
117
+ Each hypothesis must be **falsifiable**: state the prediction it makes.
118
+
119
+ > Format: "If `<X>` is the cause, then `<changing Y>` will make the bug disappear / `<changing Z>` will make it worse."
120
+
121
+ If you cannot state the prediction, the hypothesis is a vibe — discard or sharpen it.
122
+
123
+ **Show the ranked list to the user before testing.** They often have domain knowledge that re-ranks instantly ("we just deployed a change to #3"), or know hypotheses they have already ruled out. Cheap checkpoint, big time saver. Don't block on it — proceed with your ranking if the user is AFK.
124
+
125
+ ## 9. Phase 4 — One-variable probes / instrumentation
126
+
127
+ Each probe must map to a specific prediction from Phase 3. **Change one variable at a time.**
128
+
129
+ Tool preference:
130
+
131
+ 1. **Debugger / REPL inspection** if the environment supports it. One breakpoint beats ten logs.
132
+ 2. **Targeted logs** at the boundaries that distinguish hypotheses.
133
+ 3. Never "log everything and grep".
134
+
135
+ **Tag every debug log with a unique prefix**, e.g. `[DEBUG-a4f2]` (or any equivalent uniform prefix). Cleanup at the end becomes a **single grep**: `grep -rn "\[DEBUG-" .` / `rg "\[DEBUG-"` — every tagged line dies, untagged lines survive.
136
+
137
+ **Perf branch.** For performance regressions, logs are usually wrong. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix second.
138
+
139
+ ## 10. Phase 5 — Regression (freeze the loop)
140
+
141
+ Freeze the loop as a test **or** a repeatable command — whichever has a **correct seam**.
142
+
143
+ A correct seam is one where the test/command exercises the **real bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that cannot replicate the chain that triggered the bug), a regression there gives false confidence.
144
+
145
+ **If no correct seam exists, that itself is the finding.** Note it — the architecture is preventing the bug from being locked down. Flag it for Phase 6 / break-loop.
146
+
147
+ If a correct seam exists:
148
+
149
+ 1. Turn the minimised repro into a failing test (or a repeatable command) at that seam.
150
+ 2. Watch it fail.
151
+ 3. Apply the fix.
152
+ 4. Watch it pass.
153
+ 5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario.
154
+
155
+ This phase hands off to the test-discipline scope (P08) without being absorbed by it: the loop here is bug-driven; test-discipline owns the general testing strategy.
156
+
157
+ ## 11. Phase 6 — Cleanup + post-mortem hook
158
+
159
+ Required before declaring done:
160
+
161
+ - [ ] Original repro no longer reproduces (re-run the Phase 1 loop)
162
+ - [ ] Regression passes (or absence of seam is documented)
163
+ - [ ] All `[DEBUG-...]` instrumentation removed — one grep, zero hits
164
+ - [ ] Throwaway prototypes deleted (or moved to a clearly-marked debug location)
165
+ - [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns
166
+
167
+ **Post-mortem hook:** then ask *what would have prevented this bug?* If the answer involves architectural change (no good test seam, tangled callers, hidden coupling), or the bug is worth classifying, run **`pactile-break-loop`** (root cause category A–E, why fixes failed, prevention mechanisms) and/or update the relevant spec/guide via **`pactile-update-spec`**. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.
168
+
169
+ ## 12. PowerShell HITL template
170
+
171
+ PowerShell 7 (user environment). Copy this file, edit the steps below, and run it. The agent runs the script; the user follows prompts in their terminal. Two helpers:
172
+
173
+ - `Step "instruction"` → show instruction, wait for Enter
174
+ - `$var = Capture "question"` → show question, read response; the returned value is echoed back, where the agent reads it — so capture observations, and leave signing in to the user as a `Step`
175
+
176
+ At the end, captured values are printed as `KEY=VALUE` for the agent to parse.
177
+
178
+ ```powershell
179
+ # Human-in-the-loop reproduction loop (PowerShell 7).
180
+ # Usage: ./hitl-loop.ps1
181
+ # Edit the "--- edit below ---" section per bug, then run it.
182
+
183
+ $ErrorActionPreference = 'Stop'
184
+
185
+ function Step {
186
+ param([Parameter(Mandatory)][string]$Instruction)
187
+ Write-Host ''
188
+ Write-Host ">>> $Instruction" -ForegroundColor Cyan
189
+ [void](Read-Host " [Enter when done] ")
190
+ }
191
+
192
+ function Capture {
193
+ param([Parameter(Mandatory)][string]$Question)
194
+ Write-Host ''
195
+ Write-Host ">>> $Question" -ForegroundColor Cyan
196
+ $answer = Read-Host " > "
197
+ Write-Host " (captured: $answer)"
198
+ return $answer
199
+ }
200
+
201
+ # --- edit below ---------------------------------------------------------
202
+
203
+ Step "Open the app at http://localhost:3000 and sign in."
204
+
205
+ $ERRORED = Capture "Click the 'Export' button. Did it throw an error? (y/n)"
206
+
207
+ $ERROR_MSG = Capture "Paste the error message (or 'none'):"
208
+
209
+ # --- edit above ---------------------------------------------------------
210
+
211
+ Write-Host ''
212
+ Write-Host '--- Captured ---' -ForegroundColor Green
213
+ Write-Host "ERRORED=$ERRORED"
214
+ Write-Host "ERROR_MSG=$ERROR_MSG"
215
+ ```
216
+
217
+ Adaptation notes for the agent: keep the loop **agent-runnable** where possible (headless/HTTP/CLI first); HITL only when a human must click or sign in. Never ask the user to paste secrets into the loop output — capture observations, leave signing in to the user as a `Step`.
218
+
219
+ ## 13. Completion checklist
220
+
221
+ - [ ] Phase 1 loop exists, ran at least once, red-capable, deterministic, fast, agent-runnable (or escape hatch justified in one sentence)
222
+ - [ ] Phase 2: reproduced the user's exact symptom; repro minimised until every element is load-bearing
223
+ - [ ] Phase 3: 3–5 ranked falsifiable hypotheses, each with a stated prediction; shown to user
224
+ - [ ] Phase 4: one variable per probe; debug logs tagged `[DEBUG-...]`
225
+ - [ ] Phase 5: loop frozen as test or repeatable command at a correct seam (or absence of seam documented)
226
+ - [ ] Phase 6: original repro green, instrumentation removed (one grep, zero hits), post-mortem hook to `pactile-break-loop` / `pactile-update-spec` decided
227
+ - [ ] Everything shown to the user redacted (`<REDACTED>`, credentials via env)
@@ -1,76 +1,76 @@
1
- # Durable Learning Decision Guide
2
-
3
- > **Purpose**: Decide whether a completed task should update `.pactile/spec/` or can archive with an explicit **no durable learning** line.
4
-
5
- This guide is a **thinking checklist**. It does not replace code-spec files under `.pactile/spec/<layer>/`.
6
-
7
- ---
8
-
9
- ## Valid outcomes (archive `verify.md`)
10
-
11
- Pick **one** grep-friendly line before `archive --check`:
12
-
13
- | Outcome | Example line in `verify.md` |
14
- | --- | --- |
15
- | No reusable insight | `Durable learning decision: no durable learning` (or any line containing `no durable learning`) |
16
- | Spec was updated | `Spec update evidence: .pactile/spec/Pactile/framework/index.md` |
17
- | Insight already documented | `Learning artifact: .pactile/tasks/<task>/handoff.md` |
18
- | Retrospective captured | `Learning artifact: .pactile/workspace/...` or `retrospective.md: <path>` |
19
-
20
- Optional planning note (not sufficient alone): `Spec update needed: <reason>` — still record **spec update evidence** after `/pactile:update-spec`.
21
-
22
- ---
23
-
24
- ## When to choose each outcome
25
-
26
- ### `no durable learning`
27
-
28
- - Routine bugfix with no new contract or convention
29
- - One-off config or content change
30
- - Parent/child task where handoff adds no reusable workflow rule
31
-
32
- ### Spec update (`Spec update evidence: ...`)
33
-
34
- - New or changed CLI/API signature or gate behavior
35
- - Repeated parent review **changes** on the same class of mistake
36
- - Workflow bug that should not recur (after `/pactile:break-loop` analysis)
37
- - Cross-layer contract clarification
38
-
39
- ### Learning artifact
40
-
41
- - `handoff.md` or a retrospective already contains the full insight
42
- - Parent review notes in `verify.md` are enough for audit (link the path)
43
-
44
- ---
45
-
46
- ## Low-friction helpers
47
-
48
- ```bash
49
- # Draft missing archive sections (append-only)
50
- python ./.pactile/scripts/task.py prepare-archive-evidence .pactile/tasks/<task>
51
-
52
- # Print spec-capture checklist (stdout only; does not edit specs)
53
- python ./.pactile/scripts/task.py prepare-learning-scaffold .pactile/tasks/<task> --trigger "parent review changes"
54
-
55
- # Parent review surfaces missing child learning lines
56
- python ./.pactile/scripts/task.py review-child <parent> <child> --check
57
- ```
58
-
59
- ---
60
-
61
- ## Skills
62
-
63
- - **`/pactile:update-spec`** — edit code-spec after reviewer confirmation
64
- - **`/pactile:break-loop`** — deep bug analysis; often leads to spec updates
65
- - **`/pactile:finish-work`** — archive after learning line is present in `verify.md`
66
-
67
- ---
68
-
69
- ## Parent reviewer triggers
70
-
71
- When `review-child` reports **changes** or documents a workflow defect, the child should either:
72
-
73
- 1. Update spec and add `Spec update evidence: ...`, or
74
- 2. Document why the fix is one-off (`no durable learning`) with a short reason in `verify.md`.
75
-
1
+ # Durable Learning Decision Guide
2
+
3
+ > **Purpose**: Decide whether a completed task should update `.pactile/spec/` or can archive with an explicit **no durable learning** line.
4
+
5
+ This guide is a **thinking checklist**. It does not replace code-spec files under `.pactile/spec/<layer>/`.
6
+
7
+ ---
8
+
9
+ ## Valid outcomes (archive `verify.md`)
10
+
11
+ Pick **one** grep-friendly line before `archive --check`:
12
+
13
+ | Outcome | Example line in `verify.md` |
14
+ | --- | --- |
15
+ | No reusable insight | `Durable learning decision: no durable learning` (or any line containing `no durable learning`) |
16
+ | Spec was updated | `Spec update evidence: .pactile/spec/Pactile/framework/index.md` |
17
+ | Insight already documented | `Learning artifact: .pactile/tasks/<task>/handoff.md` |
18
+ | Retrospective captured | `Learning artifact: .pactile/workspace/...` or `retrospective.md: <path>` |
19
+
20
+ Optional planning note (not sufficient alone): `Spec update needed: <reason>` — still record **spec update evidence** after `/pactile:update-spec`.
21
+
22
+ ---
23
+
24
+ ## When to choose each outcome
25
+
26
+ ### `no durable learning`
27
+
28
+ - Routine bugfix with no new contract or convention
29
+ - One-off config or content change
30
+ - Parent/child task where handoff adds no reusable workflow rule
31
+
32
+ ### Spec update (`Spec update evidence: ...`)
33
+
34
+ - New or changed CLI/API signature or gate behavior
35
+ - Repeated parent review **changes** on the same class of mistake
36
+ - Workflow bug that should not recur (after `/pactile:break-loop` analysis)
37
+ - Cross-layer contract clarification
38
+
39
+ ### Learning artifact
40
+
41
+ - `handoff.md` or a retrospective already contains the full insight
42
+ - Parent review notes in `verify.md` are enough for audit (link the path)
43
+
44
+ ---
45
+
46
+ ## Low-friction helpers
47
+
48
+ ```bash
49
+ # Draft missing archive sections (append-only)
50
+ pactile task prepare-archive-evidence .pactile/tasks/<task>
51
+
52
+ # Print spec-capture checklist (stdout only; does not edit specs)
53
+ pactile task prepare-learning-scaffold .pactile/tasks/<task> --trigger "parent review changes"
54
+
55
+ # Parent review surfaces missing child learning lines
56
+ pactile task review-child <parent> <child> --check
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Skills
62
+
63
+ - **`/pactile:update-spec`** — edit code-spec after reviewer confirmation
64
+ - **`/pactile:break-loop`** — deep bug analysis; often leads to spec updates
65
+ - **`/pactile:finish-work`** — archive after learning line is present in `verify.md`
66
+
67
+ ---
68
+
69
+ ## Parent reviewer triggers
70
+
71
+ When `review-child` reports **changes** or documents a workflow defect, the child should either:
72
+
73
+ 1. Update spec and add `Spec update evidence: ...`, or
74
+ 2. Document why the fix is one-off (`no durable learning`) with a short reason in `verify.md`.
75
+
76
76
  Do **not** auto-write specs from scaffolding output — scaffolding only suggests existing index paths from task `package` / `scope`.