@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
@@ -8,13 +8,12 @@ import figlet from "figlet";
8
8
  import inquirer from "inquirer";
9
9
  import { createWorkflowStructure } from "../configurators/workflow.js";
10
10
  import { getInitToolChoices } from "../configurators/index.js";
11
- import { getPythonCommandForPlatform, setResolvedPythonCommand, } from "../configurators/shared.js";
12
11
  import { DIR_NAMES, FILE_NAMES, PATHS } from "../constants/paths.js";
13
12
  import { VERSION } from "../constants/version.js";
14
13
  import { setWriteMode, startRecordingWrites, stopRecordingWrites, } from "../utils/file-writer.js";
15
- import { applyKernelCreate, applyKernelStart, writeWaveCConfirmed, } from "@blxzer/pactile-core/task";
16
- import { PACTILE_ENVIRONMENT_KEYS, readPactileEnvironment, } from "@blxzer/pactile-core";
14
+ import { applyKernelCreate, applyKernelStart, writeWaveCConfirmed, } from "../core/task/index.js";
17
15
  import { emptyTaskJson } from "../utils/task-json.js";
16
+ import { initializeDeveloper, readDeveloper } from "../utils/developer.js";
18
17
  import { detectProjectType, detectMonorepo, sanitizePkgName, } from "../utils/project-detector.js";
19
18
  import { initializeHashes, removeHash } from "../utils/template-hash.js";
20
19
  import { NATIVE_WORKFLOW_ID, resolveWorkflowTemplate, } from "../utils/workflow-resolver.js";
@@ -26,141 +25,6 @@ import { getProjectCapability, getProjectCapabilityChoices, loadProjectCapabilit
26
25
  import { collectCanonicalGenerationFiles, collectLegacyCstlLifecycleFiles, discoverCanonicalGenerationPaths, installedPactilePlatforms, materializeCanonicalGeneration, materializePreparedLegacyUserState, prepareLegacyCstlImport, readLegacyCstlVersion, runLifecycleCommand, seedCanonicalBuildRoot, } from "../pactile/lifecycle/index.js";
27
26
  import { InstallStateStore } from "../pactile/runtime/stores.js";
28
27
  import { inspectLegacyInitContext, legacyImportPreparedMessage, } from "../pactile/compat/init-context.js";
29
- const MIN_PYTHON_MAJOR = 3;
30
- const MIN_PYTHON_MINOR = 9;
31
- const PYTHON_VERSION_RE = /Python (\d+)\.(\d+)/;
32
- export function isSupportedPythonVersion(versionOutput) {
33
- const match = versionOutput.match(PYTHON_VERSION_RE);
34
- if (!match)
35
- return false;
36
- const major = Number(match[1]);
37
- const minor = Number(match[2]);
38
- return (major > MIN_PYTHON_MAJOR ||
39
- (major === MIN_PYTHON_MAJOR && minor >= MIN_PYTHON_MINOR));
40
- }
41
- function detectPythonVersion(command) {
42
- try {
43
- return execSync(`${command} --version`, {
44
- encoding: "utf-8",
45
- stdio: "pipe",
46
- }).trim();
47
- }
48
- catch (err) {
49
- const code = err?.code;
50
- if (code === "EPERM" || code === "EACCES") {
51
- return "sandbox-restricted";
52
- }
53
- return null;
54
- }
55
- }
56
- export function requireSupportedPython(command) {
57
- // Final escape hatch — set when the user knows python3 is on PATH but
58
- // the probe keeps failing for environment-specific reasons.
59
- if (readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.skipPythonCheck) === "1") {
60
- return `version check skipped (PACTILE_SKIP_PYTHON_CHECK=1)`;
61
- }
62
- const versionOutput = detectPythonVersion(command);
63
- if (versionOutput === "sandbox-restricted") {
64
- console.warn(chalk.yellow(`⚠ Python version check skipped — sandboxed environment blocked ` +
65
- `child_process spawn (EPERM/EACCES). Assuming "${command}" is on ` +
66
- `PATH. If init fails later, re-run on the host or set ` +
67
- `PACTILE_SKIP_PYTHON_CHECK=1.`));
68
- return `version unknown (sandbox-restricted)`;
69
- }
70
- if (!versionOutput) {
71
- throw new Error(`Python command "${command}" not found. Pactile init requires Python ≥ 3.9.`);
72
- }
73
- if (!isSupportedPythonVersion(versionOutput)) {
74
- throw new Error(`${versionOutput} detected via "${command}", but Pactile init requires Python ≥ 3.9.`);
75
- }
76
- return versionOutput;
77
- }
78
- /**
79
- * Candidate Python command list per platform.
80
- *
81
- * Windows: `python` is the usual python.org installer choice, but Microsoft
82
- * Store ships `python3`, and the `py` launcher is `py -3`. We try all three
83
- * before giving up — fixes #236 where users with only `python3` (not
84
- * `python`) had `pactile init` fail outright.
85
- *
86
- * Non-Windows: `python3` is canonical; `python` is a fallback for systems
87
- * where Python 3 is the only Python and is named `python` (some Arch
88
- * configs, conda envs).
89
- */
90
- const PYTHON_CANDIDATES = {
91
- win32: ["python", "python3", "py -3"],
92
- other: ["python3", "python"],
93
- };
94
- /**
95
- * Detect a working Python ≥ 3.9 command on the host platform.
96
- *
97
- * Honors `PACTILE_PYTHON_CMD` (explicit override, no probe) and
98
- * `PACTILE_SKIP_PYTHON_CHECK=1` (skip probe, trust platform default).
99
- *
100
- * Otherwise tries each candidate in `PYTHON_CANDIDATES` in order and returns
101
- * the first whose `--version` matches `Python ≥ 3.9`. Caches the result via
102
- * `setResolvedPythonCommand` so all downstream template / configurator
103
- * writes pick up the resolved value.
104
- *
105
- * Throws a helpful, Windows-aware error if no candidate works.
106
- */
107
- export function resolveSupportedPython() {
108
- // Explicit override — user knows their environment.
109
- const override = readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.pythonCommand)?.trim();
110
- if (override) {
111
- setResolvedPythonCommand(override);
112
- return { command: override, version: "set via PACTILE_PYTHON_CMD" };
113
- }
114
- // Skip probe entirely.
115
- if (readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.skipPythonCheck) === "1") {
116
- const fallback = getPythonCommandForPlatform();
117
- setResolvedPythonCommand(fallback);
118
- return {
119
- command: fallback,
120
- version: "version check skipped (PACTILE_SKIP_PYTHON_CHECK=1)",
121
- };
122
- }
123
- const candidates = process.platform === "win32"
124
- ? PYTHON_CANDIDATES.win32
125
- : PYTHON_CANDIDATES.other;
126
- const probeFailures = [];
127
- for (const candidate of candidates) {
128
- const probe = detectPythonVersion(candidate);
129
- if (probe === "sandbox-restricted") {
130
- console.warn(chalk.yellow(`⚠ Python version check skipped — sandboxed environment blocked ` +
131
- `child_process spawn (EPERM/EACCES). Assuming "${candidate}" is ` +
132
- `on PATH. If init fails later, re-run on the host or set ` +
133
- `PACTILE_SKIP_PYTHON_CHECK=1.`));
134
- setResolvedPythonCommand(candidate);
135
- return {
136
- command: candidate,
137
- version: "version unknown (sandbox-restricted)",
138
- };
139
- }
140
- if (!probe) {
141
- probeFailures.push(`${candidate}: not found`);
142
- continue;
143
- }
144
- if (!isSupportedPythonVersion(probe)) {
145
- probeFailures.push(`${candidate}: ${probe} (< 3.9)`);
146
- continue;
147
- }
148
- setResolvedPythonCommand(candidate);
149
- return { command: candidate, version: probe };
150
- }
151
- const isWindows = process.platform === "win32";
152
- const installHint = isWindows
153
- ? `Install Python ≥ 3.9 from https://www.python.org/downloads/windows/ — make sure ` +
154
- `"Add Python to PATH" is checked in the installer. Or, if Python is ` +
155
- `installed under a different name, set PACTILE_PYTHON_CMD=<your-cmd> ` +
156
- `before re-running init (e.g. \`set PACTILE_PYTHON_CMD=py -3\`).`
157
- : `Install Python ≥ 3.9 from https://www.python.org/downloads/ or via your ` +
158
- `package manager. Or set PACTILE_PYTHON_CMD=<your-cmd> before re-running.`;
159
- throw new Error(`No supported Python command found. Tried: ${candidates.join(", ")}.\n` +
160
- `Probe results:\n ${probeFailures.join("\n ")}\n\n` +
161
- `Pactile init requires Python ≥ 3.9. ${installHint}\n` +
162
- `Last-resort escape hatch: set PACTILE_SKIP_PYTHON_CHECK=1 to skip the probe entirely.`);
163
- }
164
28
  // =============================================================================
165
29
  // Bootstrap Task Creation
166
30
  // =============================================================================
@@ -222,8 +86,7 @@ function writeTaskSkeleton(cwd, taskName, taskJson, prdContent) {
222
86
  * Compute the bootstrap checklist items (previously stored as structured
223
87
  * `subtasks: [{name, status}]` in task.json). Per task 04-21-task-schema-unify
224
88
  * (D1), these live as markdown `- [ ]` items in prd.md instead, so task.json
225
- * stays canonical with `subtasks: string[]` (child task dir names, same as
226
- * task_store.py).
89
+ * stays canonical with `subtasks: string[]` (child task dir names).
227
90
  */
228
91
  function getBootstrapChecklistItems(projectType, packages) {
229
92
  if (packages && packages.length > 0) {
@@ -253,25 +116,25 @@ function renderCapabilityReadinessSection(selectedCapabilities) {
253
116
  return `- [ ] \`${capability.id}\` — ${capability.title}. Verify the generated MCP/config path is usable before claiming it in task evidence.`;
254
117
  })
255
118
  .join("\n");
256
- return `
257
- ## Capability readiness (required before archive)
258
-
259
- Init selected optional project capabilities for this repo. Treat them as
260
- \`pending\` until you verify they work in this checkout.
261
-
262
- ${checklist}
263
-
264
- - Read \`.pactile/capabilities.json\` / \`.pactile/capabilities.md\` and keep the
265
- readiness state honest: \`pending\`, \`ready\`, or \`failed\`.
266
- - For \`codebase-retrieval\`, verify \`.codegraph/\` exists (or initialize it)
267
- and confirm the MCP path is usable. After the first index, CodeGraph's file
268
- watcher auto-syncs later edits; you do not need to re-run full indexing for
269
- every code change.
270
- - If a capability cannot be made ready, record the failure and fallback path in
271
- \`verify.md\` before archiving bootstrap.
272
- - Validation entrypoint: \`pactile capability-smoke --write-status\`
273
-
274
- ---
119
+ return `
120
+ ## Capability readiness (required before archive)
121
+
122
+ Init selected optional project capabilities for this repo. Treat them as
123
+ \`pending\` until you verify they work in this checkout.
124
+
125
+ ${checklist}
126
+
127
+ - Read \`.pactile/capabilities.json\` / \`.pactile/capabilities.md\` and keep the
128
+ readiness state honest: \`pending\`, \`ready\`, or \`failed\`.
129
+ - For \`codebase-retrieval\`, verify \`.codegraph/\` exists (or initialize it)
130
+ and confirm the MCP path is usable. After the first index, CodeGraph's file
131
+ watcher auto-syncs later edits; you do not need to re-run full indexing for
132
+ every code change.
133
+ - If a capability cannot be made ready, record the failure and fallback path in
134
+ \`verify.md\` before archiving bootstrap.
135
+ - Validation entrypoint: \`pactile capability-smoke --write-status\`
136
+
137
+ ---
275
138
  `;
276
139
  }
277
140
  function getBootstrapRelatedFiles(projectType, packages) {
@@ -286,145 +149,146 @@ function getBootstrapRelatedFiles(projectType, packages) {
286
149
  }
287
150
  return [".pactile/spec/backend/", ".pactile/spec/frontend/"];
288
151
  }
289
- function getBootstrapPrdContent(projectType, pythonCmd, selectedCapabilities, packages) {
152
+ function getBootstrapPrdContent(projectType, selectedCapabilities, packages) {
290
153
  const checklistItems = getBootstrapChecklistItems(projectType, packages);
291
154
  const checklistMarkdown = checklistItems
292
155
  .map((item) => `- [ ] ${item}`)
293
156
  .join("\n");
294
- const header = `# Bootstrap Task: Fill Project Development Guidelines
295
-
296
- **You (the AI) are running this task. The developer does not read this file.**
297
-
298
- The developer just ran \`pactile init\` on this project for the first time.
299
- \`.pactile/\` now exists with empty spec scaffolding, and this bootstrap task
300
- exists under \`.pactile/tasks/\`. When they want to work on it, they should start
301
- this task from a session that provides Pactile session identity.
302
-
303
- **Your job**: help them populate \`.pactile/spec/\` with the team's real
304
- coding conventions. Every future AI session — this project's
305
- \`pactile-implement\` and \`pactile-check\` sub-agents — auto-loads spec files
306
- listed in per-task jsonl manifests. Empty spec = sub-agents write generic
307
- code. Real spec = sub-agents match the team's actual patterns.
308
-
309
- Don't dump instructions. Open with a short greeting, figure out if the repo
310
- has any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md, etc.), and drive
311
- the rest conversationally.
312
-
313
- ---
314
-
315
- ## Status (update the checkboxes as you complete each item)
316
-
317
- ${checklistMarkdown}
318
-
319
- ---
320
-
321
- ${renderCapabilityReadinessSection(selectedCapabilities)}
322
-
323
- ## Spec files to populate
157
+ const header = `# Bootstrap Task: Fill Project Development Guidelines
158
+
159
+ **You (the AI) are running this task. The developer does not read this file.**
160
+
161
+ The developer just ran \`pactile init\` on this project for the first time.
162
+ \`.pactile/\` now exists with empty spec scaffolding, and this bootstrap task
163
+ exists under \`.pactile/tasks/\`. When they want to work on it, they should start
164
+ this task from a session that provides Pactile session identity.
165
+
166
+ **Your job**: help them populate \`.pactile/spec/\` with the team's real
167
+ coding conventions. Every future AI session — this project's
168
+ \`pactile-implement\` and \`pactile-check\` sub-agents — auto-loads spec files
169
+ listed in per-task jsonl manifests. Empty spec = sub-agents write generic
170
+ code. Real spec = sub-agents match the team's actual patterns.
171
+
172
+ Don't dump instructions. Open with a short greeting, figure out if the repo
173
+ has any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md, etc.), and drive
174
+ the rest conversationally.
175
+
176
+ ---
177
+
178
+ ## Status (update the checkboxes as you complete each item)
179
+
180
+ ${checklistMarkdown}
181
+
182
+ ---
183
+
184
+ ${renderCapabilityReadinessSection(selectedCapabilities)}
185
+
186
+ ## Spec files to populate
324
187
  `;
325
- const backendSection = `
326
-
327
- ### Backend guidelines
328
-
329
- | File | What to document |
330
- |------|------------------|
331
- | \`.pactile/spec/backend/directory-structure.md\` | Where different file types go (routes, services, utils) |
332
- | \`.pactile/spec/backend/database-guidelines.md\` | ORM, migrations, query patterns, naming conventions |
333
- | \`.pactile/spec/backend/error-handling.md\` | How errors are caught, logged, and returned |
334
- | \`.pactile/spec/backend/logging-guidelines.md\` | Log levels, format, what to log |
335
- | \`.pactile/spec/backend/quality-guidelines.md\` | Code review standards, testing requirements |
188
+ const backendSection = `
189
+
190
+ ### Backend guidelines
191
+
192
+ | File | What to document |
193
+ |------|------------------|
194
+ | \`.pactile/spec/backend/directory-structure.md\` | Where different file types go (routes, services, utils) |
195
+ | \`.pactile/spec/backend/database-guidelines.md\` | ORM, migrations, query patterns, naming conventions |
196
+ | \`.pactile/spec/backend/error-handling.md\` | How errors are caught, logged, and returned |
197
+ | \`.pactile/spec/backend/logging-guidelines.md\` | Log levels, format, what to log |
198
+ | \`.pactile/spec/backend/quality-guidelines.md\` | Code review standards, testing requirements |
336
199
  `;
337
- const frontendSection = `
338
-
339
- ### Frontend guidelines
340
-
341
- | File | What to document |
342
- |------|------------------|
343
- | \`.pactile/spec/frontend/directory-structure.md\` | Component/page/hook organization |
344
- | \`.pactile/spec/frontend/component-guidelines.md\` | Component patterns, props conventions |
345
- | \`.pactile/spec/frontend/hook-guidelines.md\` | Custom hook naming, patterns |
346
- | \`.pactile/spec/frontend/state-management.md\` | State library, patterns, what goes where |
347
- | \`.pactile/spec/frontend/type-safety.md\` | TypeScript conventions, type organization |
348
- | \`.pactile/spec/frontend/quality-guidelines.md\` | Linting, testing, accessibility |
200
+ const frontendSection = `
201
+
202
+ ### Frontend guidelines
203
+
204
+ | File | What to document |
205
+ |------|------------------|
206
+ | \`.pactile/spec/frontend/directory-structure.md\` | Component/page/hook organization |
207
+ | \`.pactile/spec/frontend/component-guidelines.md\` | Component patterns, props conventions |
208
+ | \`.pactile/spec/frontend/hook-guidelines.md\` | Custom hook naming, patterns |
209
+ | \`.pactile/spec/frontend/state-management.md\` | State library, patterns, what goes where |
210
+ | \`.pactile/spec/frontend/type-safety.md\` | TypeScript conventions, type organization |
211
+ | \`.pactile/spec/frontend/quality-guidelines.md\` | Linting, testing, accessibility |
349
212
  `;
350
- const footer = `
351
-
352
- ### Thinking guides (already populated)
353
-
354
- \`.pactile/spec/guides/\` contains general thinking guides pre-filled with
355
- best practices. Customize only if something clearly doesn't fit this project.
356
-
357
- ---
358
-
359
- ## How to fill the spec
360
-
361
- ### Step 1: Import from existing convention files first (preferred)
362
-
363
- Search the repo for existing convention docs. If any exist, read them and
364
- extract the relevant rules into the matching \`.pactile/spec/\` files —
365
- usually much faster than documenting from scratch.
366
-
367
- | File / Directory | Notes |
368
- |------|------|
369
- | \`AGENTS.md\` | Agent entry / managed instructions |
370
- | \`.cursorrules\` | Legacy Cursor rules file |
371
- | \`.cursor/rules/*.mdc\` | Cursor rules directory |
372
- | \`CONTRIBUTING.md\` | General project conventions |
373
- | \`.editorconfig\` | Editor formatting rules |
374
-
375
- ### Step 2: Analyze the codebase for anything not covered by existing docs
376
-
377
- Scan real code to discover patterns. Before writing each spec file:
378
- - Find 2-3 real examples of each pattern in the codebase.
379
- - Reference real file paths (not hypothetical ones).
380
- - Document anti-patterns the team clearly avoids.
381
-
382
- ### Step 3: Document reality, not ideals
383
-
384
- **Critical**: write what the code *actually does*, not what it should do.
385
- Sub-agents match the spec, so aspirational patterns that don't exist in the
386
- codebase will cause sub-agents to write code that looks out of place.
387
-
388
- If the team has known tech debt, document the current state — improvement
389
- is a separate conversation, not a bootstrap concern.
390
-
391
- ---
392
-
393
- ## Quick explainer of the runtime (share when they ask "why do we need spec at all")
394
-
395
- - Every AI coding task spawns two sub-agents: \`pactile-implement\` (writes
396
- code) and \`pactile-check\` (verifies quality).
397
- - Each task has \`implement.jsonl\` / \`check.jsonl\` manifests listing which
398
- spec files to load.
399
- - The platform hook auto-injects those spec files + the task's \`prd.md\`
400
- into every sub-agent prompt, so the sub-agent codes/reviews per team
401
- conventions without anyone pasting them manually.
402
- - Source of truth: \`.pactile/spec/\`. That's why filling it well now pays
403
- off forever.
404
-
405
- ---
406
-
407
- ## Completion
408
-
409
- When the developer confirms the checklist items above are done with real
410
- examples (not placeholders), guide them to run:
411
-
412
- \`\`\`bash
413
- ${pythonCmd} ./.pactile/scripts/task.py archive 00-bootstrap-guidelines
414
- \`\`\`
415
-
416
- After archive, every new developer who joins this project will get a
417
- \`00-join-<slug>\` onboarding task instead of this bootstrap task.
418
-
419
- ---
420
-
421
- ## Suggested opening line
422
-
423
- "Welcome to Pactile! Your init just set me up to help you fill the project
424
- spec — a one-time setup so every future AI session follows the team's
425
- conventions instead of writing generic code. Before we start, do you have
426
- any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md,
427
- etc.) I can pull from, or should I scan the codebase from scratch?"
213
+ const footer = `
214
+
215
+ ### Thinking guides (already populated)
216
+
217
+ \`.pactile/spec/guides/\` contains general thinking guides pre-filled with
218
+ best practices. Customize only if something clearly doesn't fit this project.
219
+
220
+ ---
221
+
222
+ ## How to fill the spec
223
+
224
+ ### Step 1: Import from existing convention files first (preferred)
225
+
226
+ Search the repo for existing convention docs. If any exist, read them and
227
+ extract the relevant rules into the matching \`.pactile/spec/\` files —
228
+ usually much faster than documenting from scratch.
229
+
230
+ | File / Directory | Notes |
231
+ |------|------|
232
+ | \`AGENTS.md\` | Agent entry / managed instructions |
233
+ | \`.cursorrules\` | Legacy Cursor rules file |
234
+ | \`.cursor/rules/*.mdc\` | Cursor rules directory |
235
+ | \`CONTRIBUTING.md\` | General project conventions |
236
+ | \`.editorconfig\` | Editor formatting rules |
237
+
238
+ ### Step 2: Analyze the codebase for anything not covered by existing docs
239
+
240
+ Scan real code to discover patterns. Before writing each spec file:
241
+ - Find 2-3 real examples of each pattern in the codebase.
242
+ - Reference real file paths (not hypothetical ones).
243
+ - Document anti-patterns the team clearly avoids.
244
+
245
+ ### Step 3: Document reality, not ideals
246
+
247
+ **Critical**: write what the code *actually does*, not what it should do.
248
+ Sub-agents match the spec, so aspirational patterns that don't exist in the
249
+ codebase will cause sub-agents to write code that looks out of place.
250
+
251
+ If the team has known tech debt, document the current state — improvement
252
+ is a separate conversation, not a bootstrap concern.
253
+
254
+ ---
255
+
256
+ ## Quick explainer of the runtime (share when they ask "why do we need spec at all")
257
+
258
+ - Every AI coding task spawns two sub-agents: \`pactile-implement\` (writes
259
+ code) and \`pactile-check\` (verifies quality).
260
+ - Each task has \`implement.jsonl\` / \`check.jsonl\` manifests listing which
261
+ spec files to load.
262
+ - The platform hook auto-injects those spec files + the task's \`prd.md\`
263
+ into every sub-agent prompt, so the sub-agent codes/reviews per team
264
+ conventions without anyone pasting them manually.
265
+ - Source of truth: \`.pactile/spec/\`. That's why filling it well now pays
266
+ off forever.
267
+
268
+ ---
269
+
270
+ ## Completion
271
+
272
+ When the developer confirms the checklist items above are done with real
273
+ examples (not placeholders), guide them to run:
274
+
275
+ \`\`\`bash
276
+ pactile task archive 00-bootstrap-guidelines --check
277
+ pactile task archive 00-bootstrap-guidelines
278
+ \`\`\`
279
+
280
+ After archive, every new developer who joins this project will get a
281
+ \`00-join-<slug>\` onboarding task instead of this bootstrap task.
282
+
283
+ ---
284
+
285
+ ## Suggested opening line
286
+
287
+ "Welcome to Pactile! Your init just set me up to help you fill the project
288
+ spec — a one-time setup so every future AI session follows the team's
289
+ conventions instead of writing generic code. Before we start, do you have
290
+ any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md,
291
+ etc.) I can pull from, or should I scan the codebase from scratch?"
428
292
  `;
429
293
  let content = header;
430
294
  if (packages && packages.length > 0) {
@@ -480,9 +344,9 @@ function getBootstrapTaskJson(developer, projectType, packages) {
480
344
  /**
481
345
  * Create bootstrap task for first-time setup
482
346
  */
483
- function createBootstrapTask(cwd, developer, pythonCmd, projectType, selectedCapabilities, packages) {
347
+ function createBootstrapTask(cwd, developer, projectType, selectedCapabilities, packages) {
484
348
  const taskJson = getBootstrapTaskJson(developer, projectType, packages);
485
- const prdContent = getBootstrapPrdContent(projectType, pythonCmd, selectedCapabilities, packages);
349
+ const prdContent = getBootstrapPrdContent(projectType, selectedCapabilities, packages);
486
350
  return writeTaskSkeleton(cwd, BOOTSTRAP_TASK_NAME, taskJson, prdContent);
487
351
  }
488
352
  // =============================================================================
@@ -513,7 +377,7 @@ function getJoinerTaskJson(developer, taskName) {
513
377
  * PRD content for joiner onboarding. Kept concise (~80 lines) — deeper
514
378
  * guidance lives in skills and docs.
515
379
  */
516
- function getJoinerPrdContent(developer, pythonCmd, selectedCapabilities) {
380
+ function getJoinerPrdContent(developer, selectedCapabilities) {
517
381
  const slug = slugifyDeveloperName(developer);
518
382
  const selectedCapabilityChecklist = selectedCapabilities
519
383
  .map((id) => {
@@ -523,129 +387,115 @@ function getJoinerPrdContent(developer, pythonCmd, selectedCapabilities) {
523
387
  .join("\n");
524
388
  let capabilitySection = "";
525
389
  if (selectedCapabilities.length > 0) {
526
- capabilitySection = `
527
- ### 5. Re-verify selected project capabilities
528
-
529
- This repo has capability selections recorded in \`.pactile/capabilities.json\`.
530
- Before they rely on MCP-backed behavior, remind them to check the selected set:
531
-
532
- ${selectedCapabilityChecklist}
533
-
534
- - If a capability is not \`ready\`, have them re-run the local verification path
535
- instead of assuming the previous machine's setup carries over.
536
-
537
- ---
390
+ capabilitySection = `
391
+ ### 5. Re-verify selected project capabilities
392
+
393
+ This repo has capability selections recorded in \`.pactile/capabilities.json\`.
394
+ Before they rely on MCP-backed behavior, remind them to check the selected set:
395
+
396
+ ${selectedCapabilityChecklist}
397
+
398
+ - If a capability is not \`ready\`, have them re-run the local verification path
399
+ instead of assuming the previous machine's setup carries over.
400
+
401
+ ---
538
402
  `;
539
403
  }
540
- return `# Joiner Onboarding Task
541
-
542
- **You (the AI) are running this task. The developer does not read this file.**
543
-
544
- \`${developer}\` just ran \`pactile init\` on a fresh clone, saw "Developer
545
- initialized", and will now start asking you questions in chat. This joiner task
546
- exists under \`.pactile/tasks/\`; when they want to work on it, they should
547
- select it from a session that provides Pactile session identity.
548
-
549
- Your job is to orient them to Pactile. Don't dump all of this at them — open
550
- with a short greeting, ask where they want to start, and fill in the rest as
551
- they engage.
552
-
553
- ---
554
-
555
- ## Topics to cover (adapt order to their questions)
556
-
557
- ### 1. What Pactile is + the workflow
558
-
559
- Pactile is a governed capability workspace for Cursor and Codex that keeps AI
560
- agents consistent with project-specific conventions instead of writing generic
561
- code every session.
562
-
563
- - **Human lifecycle**: Open → Define → Approve → Execute → Verify →
564
- (Integrate? when parent-child) → Close. Kernel writes that state.
565
- \`.pactile/workflow.md\` is a human overview, **not runtime SSOT**.
566
- - **Task files** live under \`.pactile/tasks/\`. \`status\` is a projection, not
567
- the only truth.
568
- - **User slash (Native Cursor)**:
569
- - \`/pactile-continue\` — resume only when this live session already has a
570
- selected task
571
- - \`/pactile-finish-work\` — wrap up a finished task
572
- - \`/pactile-handoff\` — session handoff to a temp path (not the task's
573
- \`handoff.md\`)
574
- SessionStart covers entry. \`/pactile-start\` is not installed as a slash on
575
- agent-capable Cursor. Official \`/goal\` is not a Pactile Task.
576
-
577
- ### 2. Runtime mechanics (explain when they ask "how does it know what to do")
578
-
579
- - **SessionStart hook** injects identity, git status, selected task, Task
580
- Dashboard, and a compiled session pack when Event Bridge subscribers
581
- produce one. It must not dump \`workflow.md\` Phase Index as the runtime
582
- program.
583
- - **\`/pactile-continue\`** loads Kernel / Dashboard (or the compiled pack if
584
- already in context), reads \`prd.md\` + recent activity, and routes by
585
- Kernel human phase. Do **not** treat \`get_context.py --mode phase\` (Phase
586
- Index) as runtime SSOT. Internal skills (brainstorm, check, …) are not
587
- user slash commands.
588
- - **Workers**: if this Cursor Task API has no \`pactile-implement\` /
589
- \`pactile-check\` enum, dispatch as \`generalPurpose\`. Never label that run
590
- \`true-independent\`. When a check worker is available, it follows
591
- \`check.jsonl\` — reviews against specs, auto-fixes issues, runs
592
- lint/typecheck.
593
-
594
- File layout (mention when they ask "where does what live"):
595
- - \`.pactile/.runtime/sessions/<session>.json\` — live-session selected-task state, gitignored
596
- - \`.pactile/tasks/<task>/{implement,check}.jsonl\` — per-task context manifests
597
- - \`.pactile/spec/\` — project-wide conventions (source of truth)
598
- - \`.pactile/workspace/${developer}/journal-*.md\` — their session log,
599
- rotated at ~2000 lines
600
-
601
- ### 3. This project's actual conventions
602
-
603
- - Summarize \`.pactile/spec/\` for them — what coding conventions this
604
- specific team enforces.
605
- - Point at the last 5 entries in \`.pactile/tasks/archive/\` as a rhythm
606
- example of how people actually work here. **If archive is empty** (the
607
- project just started), skip this — don't invent examples.
608
- - Not your job in this onboarding to teach them the business code itself —
609
- the README and their teammates handle that.
610
-
611
- ### 4. Their assigned work
612
-
613
- - Check if \`.pactile/workspace/${developer}/\` already exists — if yes, it's
614
- their journal from another machine and worth mentioning.
615
- - Run \`${pythonCmd} ./.pactile/scripts/task.py list --assignee ${developer}\` to
616
- show tasks assigned to them. (Quote the name if it contains spaces.)
617
- - Remind them that the "My Tasks" section appears in the SessionStart context
618
- on every new session.
619
-
620
- ---
621
-
622
- ${capabilitySection}
623
-
624
- ## Optional: walk through a small task end-to-end
625
-
626
- If they want to practice before touching real work, offer to pick a tiny
627
- P3 task or a typo fix and run the full cycle together: \`/pactile-continue\`
628
- → implement in Agent → \`/pactile-finish-work\`.
629
-
630
- ---
631
-
632
- ## Completion
633
-
634
- When they feel oriented (or after you've covered the four topics with
635
- reasonable back-and-forth), guide them to run:
636
-
637
- \`\`\`bash
638
- ${pythonCmd} ./.pactile/scripts/task.py archive 00-join-${slug}
639
- \`\`\`
640
-
641
- ---
642
-
643
- ## Suggested opening line
644
-
645
- "Welcome! Your \`pactile init\` set me up to onboard you to this project. I
646
- can walk you through the workflow, show you the runtime mechanics under the
647
- hood, summarize the team's spec, or jump to what you're already curious about
648
- — which would you prefer?"
404
+ return `# Joiner Onboarding Task
405
+
406
+ **You (the AI) are running this task. The developer does not read this file.**
407
+
408
+ \`${developer}\` just ran \`pactile init\` on a fresh clone, saw "Developer
409
+ initialized", and will now start asking you questions in chat. This joiner task
410
+ exists under \`.pactile/tasks/\`; when they want to work on it, they should
411
+ select it from a session that provides Pactile session identity.
412
+
413
+ Your job is to orient them to Pactile. Don't dump all of this at them — open
414
+ with a short greeting, ask where they want to start, and fill in the rest as
415
+ they engage.
416
+
417
+ ---
418
+
419
+ ## Topics to cover (adapt order to their questions)
420
+
421
+ ### 1. What Pactile is + the workflow
422
+
423
+ Pactile is a governed capability workspace for Codex that keeps AI
424
+ agents consistent with project-specific conventions instead of writing generic
425
+ code every session.
426
+
427
+ - **Human lifecycle**: Open → Define → Approve → Execute → Verify →
428
+ (Integrate? when parent-child) → Close. Kernel writes that state.
429
+ \`.pactile/workflow.md\` is a human overview, **not runtime SSOT**.
430
+ - **Task files** live under \`.pactile/tasks/\`. \`status\` is a projection, not
431
+ the only truth.
432
+ - **Codex session**: read the Task record, project instructions, and current
433
+ Evidence before resuming. The Task record remains durable authority.
434
+
435
+ ### 2. Runtime mechanics (explain when they ask "how does it know what to do")
436
+
437
+ - **Context**: load Kernel / Dashboard and the selected Task's \`prd.md\`
438
+ plus recent activity. Do not treat a generated phase index as runtime
439
+ authority.
440
+ - **Coordination**: \`pactile codex\` records native desktop task requests and
441
+ receipts; the App task invokes its native tools. \`pactile pi\` dispatches
442
+ approved Execute work through Pi RPC.
443
+
444
+ File layout (mention when they ask "where does what live"):
445
+ - \`.pactile/.runtime/sessions/<session>.json\` — live-session selected-task state, gitignored
446
+ - \`.pactile/tasks/<task>/{implement,check}.jsonl\` — per-task context manifests
447
+ - \`.pactile/spec/\` — project-wide conventions (source of truth)
448
+ - \`.pactile/workspace/${developer}/journal-*.md\` — their session log,
449
+ rotated at ~2000 lines
450
+
451
+ ### 3. This project's actual conventions
452
+
453
+ - Summarize \`.pactile/spec/\` for them — what coding conventions this
454
+ specific team enforces.
455
+ - Point at the last 5 entries in \`.pactile/tasks/archive/\` as a rhythm
456
+ example of how people actually work here. **If archive is empty** (the
457
+ project just started), skip this — don't invent examples.
458
+ - Not your job in this onboarding to teach them the business code itself —
459
+ the README and their teammates handle that.
460
+
461
+ ### 4. Their assigned work
462
+
463
+ - Check if \`.pactile/workspace/${developer}/\` already exists — if yes, it's
464
+ their journal from another machine and worth mentioning.
465
+ - Run \`pactile task list --assignee "${developer}"\` to
466
+ show tasks assigned to them. (Quote the name if it contains spaces.)
467
+ - Remind them to inspect assigned Tasks at the start of each session.
468
+
469
+ ---
470
+
471
+ ${capabilitySection}
472
+
473
+ ## Optional: walk through a small task end-to-end
474
+
475
+ If they want to practice before touching real work, offer to pick a tiny
476
+ P3 task or a typo fix and run the full cycle together: define → approve →
477
+ execute → verify → close.
478
+
479
+ ---
480
+
481
+ ## Completion
482
+
483
+ When they feel oriented (or after you've covered the four topics with
484
+ reasonable back-and-forth), guide them to run:
485
+
486
+ \`\`\`bash
487
+ pactile task archive 00-join-${slug} --check
488
+ pactile task archive 00-join-${slug}
489
+ \`\`\`
490
+
491
+ ---
492
+
493
+ ## Suggested opening line
494
+
495
+ "Welcome! Your \`pactile init\` set me up to onboard you to this project. I
496
+ can walk you through the workflow, show you the runtime mechanics under the
497
+ hood, summarize the team's spec, or jump to what you're already curious about
498
+ — which would you prefer?"
649
499
  `;
650
500
  }
651
501
  /**
@@ -653,24 +503,24 @@ hood, summarize the team's spec, or jump to what you're already curious about
653
503
  * project. Task name is slugified to be filesystem-safe for arbitrary
654
504
  * developer names (spaces, Unicode, punctuation).
655
505
  */
656
- function createJoinerOnboardingTask(cwd, developer, pythonCmd) {
506
+ function createJoinerOnboardingTask(cwd, developer) {
657
507
  const slug = slugifyDeveloperName(developer);
658
508
  const taskName = `00-join-${slug}`;
659
509
  const taskJson = getJoinerTaskJson(developer, taskName);
660
- const prdContent = getJoinerPrdContent(developer, pythonCmd, loadProjectCapabilities(cwd));
510
+ const prdContent = getJoinerPrdContent(developer, loadProjectCapabilities(cwd));
661
511
  return writeTaskSkeleton(cwd, taskName, taskJson, prdContent);
662
512
  }
663
513
  /**
664
514
  * Handle re-init when .pactile/ already exists.
665
515
  * Returns true if handled (caller should return), false if user chose full re-init.
666
516
  */
667
- async function handleReinit(cwd, options, developerName, pythonCmd) {
517
+ async function handleReinit(cwd, options, developerName) {
668
518
  const TOOLS = getPactileInitToolChoices();
669
519
  const installState = new InstallStateStore(cwd).read();
670
520
  const configuredPlatforms = new Set((installState?.state.installedAdapters ?? [])
671
521
  .filter((adapter) => adapter.status === "active")
672
522
  .map((adapter) => adapter.id.replace(/^adapter\./, ""))
673
- .filter((platform) => platform === "cursor" || platform === "codex"));
523
+ .filter((platform) => platform === "codex"));
674
524
  const configuredNames = [...configuredPlatforms]
675
525
  .map((id) => TOOLS.find((choice) => choice.platformId === id)?.name ?? id)
676
526
  .join(", ");
@@ -683,7 +533,7 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
683
533
  if (!doAddPlatforms && !doAddDeveloper) {
684
534
  if (options.yes) {
685
535
  console.log(chalk.gray(`Already initialized with: ${configuredNames}`));
686
- console.log(chalk.gray("Use platform flags (e.g., --cursor) or -u <name> to add platforms/developer."));
536
+ console.log(chalk.gray("Use --codex or -u <name> to add a platform/developer."));
687
537
  return true;
688
538
  }
689
539
  console.log(chalk.gray(`\n Already initialized with: ${configuredNames}\n`));
@@ -769,26 +619,21 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
769
619
  }
770
620
  }
771
621
  // Capture pre-init state: if .developer did not exist before we ran
772
- // init_developer.py, this checkout had no identity → treat as a new
622
+ // the Node identity writer, this checkout had no identity → treat as a new
773
623
  // joiner onboarding onto an existing Pactile project.
774
624
  const hadDeveloperFileBefore = fs.existsSync(path.join(cwd, DIR_NAMES.WORKFLOW, FILE_NAMES.DEVELOPER));
775
625
  try {
776
- const scriptPath = path.join(cwd, PATHS.SCRIPTS, "init_developer.py");
777
- execSync(`${pythonCmd} "${scriptPath}" "${devName}"`, {
778
- cwd,
779
- stdio: "pipe",
780
- });
626
+ initializeDeveloper(cwd, devName);
781
627
  console.log(chalk.green(`✓ Developer "${devName}" initialized`));
782
628
  }
783
- catch {
784
- console.log(chalk.yellow("⚠ Could not initialize developer. Run manually:"));
785
- console.log(chalk.gray(` ${pythonCmd} .pactile/scripts/init_developer.py ${devName}`));
629
+ catch (err) {
630
+ console.log(chalk.yellow(`⚠ Could not initialize developer: ${err instanceof Error ? err.message : String(err)}`));
786
631
  }
787
632
  // Create joiner onboarding task for fresh checkouts (no prior .developer).
788
633
  // Runs outside the init_developer try/catch so failures surface as warnings.
789
634
  if (!hadDeveloperFileBefore) {
790
635
  try {
791
- if (!createJoinerOnboardingTask(cwd, devName, pythonCmd)) {
636
+ if (!createJoinerOnboardingTask(cwd, devName)) {
792
637
  console.warn(chalk.yellow("⚠ Failed to create joiner onboarding task"));
793
638
  }
794
639
  }
@@ -800,19 +645,7 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
800
645
  return true;
801
646
  }
802
647
  function getPactileInitToolChoices() {
803
- return [
804
- ...getInitToolChoices().map((choice) => ({
805
- ...choice,
806
- key: choice.key,
807
- platformId: choice.platformId,
808
- })),
809
- {
810
- key: "codex",
811
- name: "Codex (ChatGPT desktop app)",
812
- defaultChecked: true,
813
- platformId: "codex",
814
- },
815
- ];
648
+ return getInitToolChoices();
816
649
  }
817
650
  /**
818
651
  * Write monorepo package configuration to config.yaml (non-destructive patch).
@@ -897,7 +730,7 @@ export async function init(options) {
897
730
  // Generate ASCII art banner dynamically using FIGlet "Rebel" font
898
731
  const banner = figlet.textSync("Pactile", { font: "Rebel" });
899
732
  console.log(chalk.cyan(`\n${banner.trimEnd()}`));
900
- console.log(chalk.gray("\n Cross-platform AI workflow framework for Cursor & Codex\n"));
733
+ console.log(chalk.gray("\n Governed AI workflow for Codex\n"));
901
734
  // Set up proxy before any network calls
902
735
  const proxyUrl = setupProxy();
903
736
  if (proxyUrl) {
@@ -940,7 +773,6 @@ export async function init(options) {
940
773
  if (developerName) {
941
774
  console.log(chalk.blue("👤 Developer:"), chalk.gray(developerName));
942
775
  }
943
- const { command: pythonCmd } = resolveSupportedPython();
944
776
  // ==========================================================================
945
777
  // Re-init fast path: skip full flow when .pactile/ already exists.
946
778
  // ==========================================================================
@@ -955,7 +787,7 @@ export async function init(options) {
955
787
  !options.force &&
956
788
  !options.skipExisting &&
957
789
  !tasksEmptyEarly) {
958
- const reinitDone = await handleReinit(cwd, options, developerName, pythonCmd);
790
+ const reinitDone = await handleReinit(cwd, options, developerName);
959
791
  if (reinitDone)
960
792
  return;
961
793
  // reinitDone === false means user chose "full re-initialize" → fall through
@@ -1132,7 +964,7 @@ export async function init(options) {
1132
964
  tools = explicitTools;
1133
965
  }
1134
966
  else if (options.yes) {
1135
- // No explicit tools + -y: default to Cursor and Codex
967
+ // No explicit tools + -y: use the active host default.
1136
968
  tools = TOOLS.filter((t) => t.defaultChecked).map((t) => t.key);
1137
969
  }
1138
970
  else {
@@ -1595,17 +1427,14 @@ export async function init(options) {
1595
1427
  // migration backup or prompt for a legacy transition that never existed.
1596
1428
  writeWaveCConfirmed(cwd);
1597
1429
  }
1598
- // Initialize developer identity (silent - no output)
1430
+ // Initialize developer identity with Node (silent - no output).
1599
1431
  if (developerName) {
1600
1432
  try {
1601
- const scriptPath = path.join(cwd, PATHS.SCRIPTS, "init_developer.py");
1602
- execSync(`${pythonCmd} "${scriptPath}" "${developerName}"`, {
1603
- cwd,
1604
- stdio: "pipe", // Silent
1605
- });
1433
+ if (!readDeveloper(cwd))
1434
+ initializeDeveloper(cwd, developerName);
1606
1435
  }
1607
1436
  catch {
1608
- // Silent failure - user can run init_developer.py manually
1437
+ // Preserve init's best-effort identity creation boundary.
1609
1438
  }
1610
1439
  // Three-branch dispatch using flags captured at init() start (before
1611
1440
  // createWorkflowStructure/init_developer ran, so they reflect the disk
@@ -1625,14 +1454,14 @@ export async function init(options) {
1625
1454
  const tasksDir = path.join(cwd, PATHS.TASKS);
1626
1455
  const tasksEmpty = !fs.existsSync(tasksDir) || fs.readdirSync(tasksDir).length === 0;
1627
1456
  if ((isFirstInit && !importingCstl) || tasksEmpty) {
1628
- const bootstrapCreated = createBootstrapTask(cwd, developerName, pythonCmd, projectType, selectedCapabilities, monorepoPackages);
1457
+ const bootstrapCreated = createBootstrapTask(cwd, developerName, projectType, selectedCapabilities, monorepoPackages);
1629
1458
  if (bootstrapCreated) {
1630
1459
  console.log(chalk.gray(`Next: complete ${BOOTSTRAP_TASK_NAME} to verify selected capabilities and fill the project spec.`));
1631
1460
  }
1632
1461
  }
1633
1462
  else if (!hadDeveloperFileAtStart) {
1634
1463
  try {
1635
- if (!createJoinerOnboardingTask(cwd, developerName, pythonCmd)) {
1464
+ if (!createJoinerOnboardingTask(cwd, developerName)) {
1636
1465
  console.warn(chalk.yellow("⚠ Failed to create joiner onboarding task"));
1637
1466
  }
1638
1467
  }