@blxzer/cursor-trellis 0.4.1 → 0.4.3

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 (337) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +25 -14
  3. package/README.zh-CN.md +14 -10
  4. package/bin/smart-search.js +10 -2
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +36 -15
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +42 -153
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/migrate.d.ts +10 -0
  13. package/dist/commands/migrate.d.ts.map +1 -0
  14. package/dist/commands/migrate.js +38 -0
  15. package/dist/commands/migrate.js.map +1 -0
  16. package/dist/commands/update.d.ts +5 -0
  17. package/dist/commands/update.d.ts.map +1 -1
  18. package/dist/commands/update.js +144 -41
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/configurators/cursor.d.ts +2 -1
  21. package/dist/configurators/cursor.d.ts.map +1 -1
  22. package/dist/configurators/cursor.js +4 -2
  23. package/dist/configurators/cursor.js.map +1 -1
  24. package/dist/configurators/index.js +4 -4
  25. package/dist/configurators/index.js.map +1 -1
  26. package/dist/configurators/shared.d.ts +8 -0
  27. package/dist/configurators/shared.d.ts.map +1 -1
  28. package/dist/configurators/shared.js +27 -1
  29. package/dist/configurators/shared.js.map +1 -1
  30. package/dist/configurators/workflow.d.ts +0 -9
  31. package/dist/configurators/workflow.d.ts.map +1 -1
  32. package/dist/configurators/workflow.js +12 -45
  33. package/dist/configurators/workflow.js.map +1 -1
  34. package/dist/constants/paths.d.ts +13 -0
  35. package/dist/constants/paths.d.ts.map +1 -1
  36. package/dist/constants/paths.js +17 -0
  37. package/dist/constants/paths.js.map +1 -1
  38. package/dist/migrations/manifests/0.3.0.json +1 -1
  39. package/dist/templates/common/bundled-skills/cstl-check/SKILL.md +1 -1
  40. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/hooks-and-settings.md +2 -2
  41. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/overview.md +1 -1
  42. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/skills-and-commands.md +2 -4
  43. package/dist/templates/common/bundled-skills/cstl-skill-creator/SKILL.md +10 -7
  44. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/authoring-rules.md +93 -19
  45. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/general-authoring.md +189 -0
  46. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/review-checklist.md +10 -5
  47. package/dist/templates/common/commands/continue.md +6 -5
  48. package/dist/templates/common/index.d.ts +20 -0
  49. package/dist/templates/common/index.d.ts.map +1 -1
  50. package/dist/templates/common/index.js +21 -2
  51. package/dist/templates/common/index.js.map +1 -1
  52. package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +179 -0
  53. package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +149 -0
  54. package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +903 -0
  55. package/dist/templates/common/skills/brainstorm.md +2 -2
  56. package/dist/templates/cursor/agents/cstl-check.md +2 -2
  57. package/dist/templates/cursor/agents/cstl-implement.md +1 -1
  58. package/dist/templates/cursor/agents/cstl-research.md +2 -2
  59. package/dist/templates/cursor/fixtures/expected-rules.d.ts +1 -1
  60. package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -1
  61. package/dist/templates/cursor/fixtures/expected-rules.js +7 -24
  62. package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -1
  63. package/dist/templates/cursor/hooks.json +4 -0
  64. package/dist/templates/cursor/index.d.ts +1 -1
  65. package/dist/templates/cursor/index.js +1 -1
  66. package/dist/templates/cursor/rules/cstl-bootstrap.mdc +17 -0
  67. package/dist/templates/markdown/agents.md +36 -3
  68. package/dist/templates/markdown/{spec/guides → framework}/cursor-native-modes-guide.md.txt +13 -10
  69. package/dist/templates/markdown/{spec/guides → framework}/cursor-subagent-policy.md.txt +63 -127
  70. package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +29 -0
  71. package/dist/templates/markdown/{spec/guides → framework}/execution-strategy.md.txt +2 -0
  72. package/dist/templates/markdown/framework/index.md.txt +31 -0
  73. package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +45 -0
  74. package/dist/templates/markdown/framework/middleware-protocol.md.txt +83 -0
  75. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +78 -0
  76. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +83 -0
  77. package/dist/templates/markdown/framework/release-boundary.md.txt +30 -0
  78. package/dist/templates/markdown/{spec/guides → framework}/retrieval-daily-guide.md.txt +1 -1
  79. package/dist/templates/markdown/framework/upgrade.md.txt +15 -0
  80. package/dist/templates/markdown/{spec/guides → framework}/verification-strength-guide.md.txt +2 -2
  81. package/dist/templates/markdown/index.d.ts +26 -10
  82. package/dist/templates/markdown/index.d.ts.map +1 -1
  83. package/dist/templates/markdown/index.js +87 -11
  84. package/dist/templates/markdown/index.js.map +1 -1
  85. package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +1 -1
  86. package/dist/templates/markdown/spec/guides/index.md.txt +5 -19
  87. package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +10 -10
  88. package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +1 -1
  89. package/dist/templates/shared-hooks/event-bridge.py +60 -0
  90. package/dist/templates/shared-hooks/index.d.ts +1 -1
  91. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  92. package/dist/templates/shared-hooks/index.js +1 -0
  93. package/dist/templates/shared-hooks/index.js.map +1 -1
  94. package/dist/templates/shared-hooks/session-start.py +19 -2
  95. package/dist/templates/trellis/CONTEXT.md +63 -3
  96. package/dist/templates/trellis/config.yaml +1 -1
  97. package/dist/templates/trellis/gitignore.txt +39 -39
  98. package/dist/templates/trellis/index.d.ts +12 -0
  99. package/dist/templates/trellis/index.d.ts.map +1 -1
  100. package/dist/templates/trellis/index.js +73 -15
  101. package/dist/templates/trellis/index.js.map +1 -1
  102. package/dist/templates/trellis/pool/README.md +12 -3
  103. package/dist/templates/trellis/pool/plan.md +24 -5
  104. package/dist/templates/trellis/scripts/common/adapter_middleware.py +158 -0
  105. package/dist/templates/trellis/scripts/common/artifact_locale.py +12 -3
  106. package/dist/templates/trellis/scripts/common/cursor_retrieval_env.py +5 -2
  107. package/dist/templates/trellis/scripts/common/full_quality.py +237 -0
  108. package/dist/templates/trellis/scripts/common/git.py +6 -0
  109. package/dist/templates/trellis/scripts/common/git_context.py +17 -5
  110. package/dist/templates/trellis/scripts/common/kernel_command.py +367 -0
  111. package/dist/templates/trellis/scripts/common/lite_context.py +280 -0
  112. package/dist/templates/trellis/scripts/common/ondemand_topology.py +225 -0
  113. package/dist/templates/trellis/scripts/common/parent_orchestration.py +1 -1
  114. package/dist/templates/trellis/scripts/common/pool_store.py +16 -4
  115. package/dist/templates/trellis/scripts/common/retrieval_agent_instructions.py +2 -2
  116. package/dist/templates/trellis/scripts/common/session_context.py +28 -2
  117. package/dist/templates/trellis/scripts/common/task_gates.py +73 -12
  118. package/dist/templates/trellis/scripts/common/task_map.py +42 -9
  119. package/dist/templates/trellis/scripts/common/task_store.py +293 -61
  120. package/dist/templates/trellis/scripts/common/test_adapter_middleware.py +56 -0
  121. package/dist/templates/trellis/scripts/common/test_depends_mode_block.py +9 -0
  122. package/dist/templates/trellis/scripts/common/test_full_quality.py +197 -0
  123. package/dist/templates/trellis/scripts/common/test_kernel_command.py +326 -0
  124. package/dist/templates/trellis/scripts/common/test_lite_path.py +190 -0
  125. package/dist/templates/trellis/scripts/common/test_observable_defaults.py +10 -4
  126. package/dist/templates/trellis/scripts/common/test_ondemand_topology.py +122 -0
  127. package/dist/templates/trellis/scripts/common/test_pool_store.py +17 -0
  128. package/dist/templates/trellis/scripts/common/test_task_store_kernel_patch.py +163 -0
  129. package/dist/templates/trellis/scripts/common/workflow_phase.py +3 -0
  130. package/dist/templates/trellis/scripts/cursor_retrieval_probe_prompt.md +4 -5
  131. package/dist/templates/trellis/scripts/get_context.py +1 -0
  132. package/dist/templates/trellis/scripts/pool.py +5 -0
  133. package/dist/templates/trellis/scripts/task.py +83 -7
  134. package/dist/templates/trellis/workflow.md +109 -23
  135. package/dist/utils/cursor-retrieval-env.d.ts +2 -1
  136. package/dist/utils/cursor-retrieval-env.d.ts.map +1 -1
  137. package/dist/utils/cursor-retrieval-env.js +3 -2
  138. package/dist/utils/cursor-retrieval-env.js.map +1 -1
  139. package/dist/utils/cursor2plus-residue-cleanup.d.ts +38 -0
  140. package/dist/utils/cursor2plus-residue-cleanup.d.ts.map +1 -0
  141. package/dist/utils/cursor2plus-residue-cleanup.js +145 -0
  142. package/dist/utils/cursor2plus-residue-cleanup.js.map +1 -0
  143. package/dist/utils/manifest-prune.d.ts.map +1 -1
  144. package/dist/utils/manifest-prune.js +7 -2
  145. package/dist/utils/manifest-prune.js.map +1 -1
  146. package/dist/utils/p36-upgrade.d.ts +62 -0
  147. package/dist/utils/p36-upgrade.d.ts.map +1 -0
  148. package/dist/utils/p36-upgrade.js +160 -0
  149. package/dist/utils/p36-upgrade.js.map +1 -0
  150. package/dist/utils/project-capabilities.d.ts +1 -12
  151. package/dist/utils/project-capabilities.d.ts.map +1 -1
  152. package/dist/utils/project-capabilities.js +3 -100
  153. package/dist/utils/project-capabilities.js.map +1 -1
  154. package/dist/utils/readiness.d.ts +10 -0
  155. package/dist/utils/readiness.d.ts.map +1 -1
  156. package/dist/utils/readiness.js +58 -26
  157. package/dist/utils/readiness.js.map +1 -1
  158. package/dist/utils/retrieval-agent-instructions.js +1 -1
  159. package/dist/utils/retrieval-agent-instructions.js.map +1 -1
  160. package/dist/utils/retrieval-execution-telemetry.js +1 -1
  161. package/dist/utils/retrieval-execution-telemetry.js.map +1 -1
  162. package/dist/utils/template-hash.d.ts.map +1 -1
  163. package/dist/utils/template-hash.js +11 -1
  164. package/dist/utils/template-hash.js.map +1 -1
  165. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  166. package/dist/utils/uninstall-scrubbers.js +52 -14
  167. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  168. package/dist/utils/update-rollout-report.d.ts +14 -0
  169. package/dist/utils/update-rollout-report.d.ts.map +1 -1
  170. package/dist/utils/update-rollout-report.js +1 -0
  171. package/dist/utils/update-rollout-report.js.map +1 -1
  172. package/dist/utils/workflow-ownership.d.ts +1 -1
  173. package/dist/utils/workflow-ownership.js +4 -4
  174. package/dist/utils/workflow-ownership.js.map +1 -1
  175. package/package.json +5 -4
  176. package/scripts/postinstall.js +6 -7
  177. package/dist/commands/campaign/canvas-render.d.ts +0 -68
  178. package/dist/commands/campaign/canvas-render.d.ts.map +0 -1
  179. package/dist/commands/campaign/canvas-render.js +0 -414
  180. package/dist/commands/campaign/canvas-render.js.map +0 -1
  181. package/dist/commands/campaign/compose.d.ts +0 -15
  182. package/dist/commands/campaign/compose.d.ts.map +0 -1
  183. package/dist/commands/campaign/compose.js +0 -110
  184. package/dist/commands/campaign/compose.js.map +0 -1
  185. package/dist/commands/campaign/index.d.ts +0 -13
  186. package/dist/commands/campaign/index.d.ts.map +0 -1
  187. package/dist/commands/campaign/index.js +0 -134
  188. package/dist/commands/campaign/index.js.map +0 -1
  189. package/dist/commands/campaign/kind-map.d.ts +0 -6
  190. package/dist/commands/campaign/kind-map.d.ts.map +0 -1
  191. package/dist/commands/campaign/kind-map.js +0 -21
  192. package/dist/commands/campaign/kind-map.js.map +0 -1
  193. package/dist/commands/campaign/mcp-server.d.ts +0 -6
  194. package/dist/commands/campaign/mcp-server.d.ts.map +0 -1
  195. package/dist/commands/campaign/mcp-server.js +0 -167
  196. package/dist/commands/campaign/mcp-server.js.map +0 -1
  197. package/dist/commands/campaign/render.d.ts +0 -5
  198. package/dist/commands/campaign/render.d.ts.map +0 -1
  199. package/dist/commands/campaign/render.js +0 -103
  200. package/dist/commands/campaign/render.js.map +0 -1
  201. package/dist/commands/campaign/trellis-load.d.ts +0 -13
  202. package/dist/commands/campaign/trellis-load.d.ts.map +0 -1
  203. package/dist/commands/campaign/trellis-load.js +0 -122
  204. package/dist/commands/campaign/trellis-load.js.map +0 -1
  205. package/dist/commands/campaign/types.d.ts +0 -61
  206. package/dist/commands/campaign/types.d.ts.map +0 -1
  207. package/dist/commands/campaign/types.js +0 -3
  208. package/dist/commands/campaign/types.js.map +0 -1
  209. package/dist/commands/goal/index.d.ts +0 -3
  210. package/dist/commands/goal/index.d.ts.map +0 -1
  211. package/dist/commands/goal/index.js +0 -159
  212. package/dist/commands/goal/index.js.map +0 -1
  213. package/dist/commands/goal/review.d.ts +0 -6
  214. package/dist/commands/goal/review.d.ts.map +0 -1
  215. package/dist/commands/goal/review.js +0 -28
  216. package/dist/commands/goal/review.js.map +0 -1
  217. package/dist/commands/rpc/client.d.ts +0 -51
  218. package/dist/commands/rpc/client.d.ts.map +0 -1
  219. package/dist/commands/rpc/client.js +0 -147
  220. package/dist/commands/rpc/client.js.map +0 -1
  221. package/dist/commands/rpc/index.d.ts +0 -10
  222. package/dist/commands/rpc/index.d.ts.map +0 -1
  223. package/dist/commands/rpc/index.js +0 -157
  224. package/dist/commands/rpc/index.js.map +0 -1
  225. package/dist/commands/rpc/serve.d.ts +0 -23
  226. package/dist/commands/rpc/serve.d.ts.map +0 -1
  227. package/dist/commands/rpc/serve.js +0 -60
  228. package/dist/commands/rpc/serve.js.map +0 -1
  229. package/dist/commands/rpc/smoke.d.ts +0 -16
  230. package/dist/commands/rpc/smoke.d.ts.map +0 -1
  231. package/dist/commands/rpc/smoke.js +0 -92
  232. package/dist/commands/rpc/smoke.js.map +0 -1
  233. package/dist/commands/sdk/index.d.ts +0 -9
  234. package/dist/commands/sdk/index.d.ts.map +0 -1
  235. package/dist/commands/sdk/index.js +0 -58
  236. package/dist/commands/sdk/index.js.map +0 -1
  237. package/dist/commands/sdk/run.d.ts +0 -42
  238. package/dist/commands/sdk/run.d.ts.map +0 -1
  239. package/dist/commands/sdk/run.js +0 -220
  240. package/dist/commands/sdk/run.js.map +0 -1
  241. package/dist/commands/sdk/status.d.ts +0 -14
  242. package/dist/commands/sdk/status.d.ts.map +0 -1
  243. package/dist/commands/sdk/status.js +0 -69
  244. package/dist/commands/sdk/status.js.map +0 -1
  245. package/dist/configurators/cursor2plus-local.d.ts +0 -6
  246. package/dist/configurators/cursor2plus-local.d.ts.map +0 -1
  247. package/dist/configurators/cursor2plus-local.js +0 -21
  248. package/dist/configurators/cursor2plus-local.js.map +0 -1
  249. package/dist/goal/action-packet.d.ts +0 -89
  250. package/dist/goal/action-packet.d.ts.map +0 -1
  251. package/dist/goal/action-packet.js +0 -113
  252. package/dist/goal/action-packet.js.map +0 -1
  253. package/dist/goal/audit.d.ts +0 -14
  254. package/dist/goal/audit.d.ts.map +0 -1
  255. package/dist/goal/audit.js +0 -12
  256. package/dist/goal/audit.js.map +0 -1
  257. package/dist/goal/constants.d.ts +0 -26
  258. package/dist/goal/constants.d.ts.map +0 -1
  259. package/dist/goal/constants.js +0 -24
  260. package/dist/goal/constants.js.map +0 -1
  261. package/dist/goal/paths.d.ts +0 -8
  262. package/dist/goal/paths.d.ts.map +0 -1
  263. package/dist/goal/paths.js +0 -36
  264. package/dist/goal/paths.js.map +0 -1
  265. package/dist/goal/preflight.d.ts +0 -21
  266. package/dist/goal/preflight.d.ts.map +0 -1
  267. package/dist/goal/preflight.js +0 -97
  268. package/dist/goal/preflight.js.map +0 -1
  269. package/dist/goal/review-seam.d.ts +0 -44
  270. package/dist/goal/review-seam.d.ts.map +0 -1
  271. package/dist/goal/review-seam.js +0 -153
  272. package/dist/goal/review-seam.js.map +0 -1
  273. package/dist/goal/reviewer-rules.d.ts +0 -13
  274. package/dist/goal/reviewer-rules.d.ts.map +0 -1
  275. package/dist/goal/reviewer-rules.js +0 -153
  276. package/dist/goal/reviewer-rules.js.map +0 -1
  277. package/dist/goal/reviewer.d.ts +0 -9
  278. package/dist/goal/reviewer.d.ts.map +0 -1
  279. package/dist/goal/reviewer.js +0 -54
  280. package/dist/goal/reviewer.js.map +0 -1
  281. package/dist/goal/runtime.d.ts +0 -32
  282. package/dist/goal/runtime.d.ts.map +0 -1
  283. package/dist/goal/runtime.js +0 -242
  284. package/dist/goal/runtime.js.map +0 -1
  285. package/dist/goal/sdk-client.d.ts +0 -10
  286. package/dist/goal/sdk-client.d.ts.map +0 -1
  287. package/dist/goal/sdk-client.js +0 -34
  288. package/dist/goal/sdk-client.js.map +0 -1
  289. package/dist/goal/state.d.ts +0 -40
  290. package/dist/goal/state.d.ts.map +0 -1
  291. package/dist/goal/state.js +0 -37
  292. package/dist/goal/state.js.map +0 -1
  293. package/dist/goal/task-triggers.d.ts +0 -15
  294. package/dist/goal/task-triggers.d.ts.map +0 -1
  295. package/dist/goal/task-triggers.js +0 -23
  296. package/dist/goal/task-triggers.js.map +0 -1
  297. package/dist/goal/walls.d.ts +0 -12
  298. package/dist/goal/walls.d.ts.map +0 -1
  299. package/dist/goal/walls.js +0 -65
  300. package/dist/goal/walls.js.map +0 -1
  301. package/dist/goal/worker-prompt.d.ts +0 -13
  302. package/dist/goal/worker-prompt.d.ts.map +0 -1
  303. package/dist/goal/worker-prompt.js +0 -41
  304. package/dist/goal/worker-prompt.js.map +0 -1
  305. package/dist/goal/worker.d.ts +0 -42
  306. package/dist/goal/worker.d.ts.map +0 -1
  307. package/dist/goal/worker.js +0 -180
  308. package/dist/goal/worker.js.map +0 -1
  309. package/dist/templates/common/bundled-skills/cstl-cursor2plus-setup/SKILL.md +0 -63
  310. package/dist/templates/cursor/commands/cursor2plus-setup.md +0 -82
  311. package/dist/templates/cursor/rules/cstl-cursor-modes.mdc +0 -32
  312. package/dist/templates/cursor/rules/cstl-session-rename.mdc +0 -31
  313. package/dist/templates/cursor/rules/cstl-subagent-dispatch.mdc +0 -34
  314. package/dist/templates/cursor/rules/cstl-triage.mdc +0 -36
  315. package/dist/templates/cursor/rules/retrieval-routing.mdc +0 -78
  316. package/dist/templates/markdown/spec/guides/cursor-trellis-release-coexistence-guide.md.txt +0 -166
  317. package/dist/templates/markdown/spec/guides/goal-release-regression-runbook.md.txt +0 -132
  318. package/dist/templates/trellis/local/README.md +0 -85
  319. package/dist/templates/trellis/local/config.local.json.example +0 -6
  320. package/dist/templates/trellis/local/index.d.ts +0 -8
  321. package/dist/templates/trellis/local/index.d.ts.map +0 -1
  322. package/dist/templates/trellis/local/index.js +0 -15
  323. package/dist/templates/trellis/local/index.js.map +0 -1
  324. package/dist/templates/trellis/local/patch_wpelc8.py +0 -421
  325. package/dist/templates/trellis/local/smoke.py +0 -94
  326. package/dist/templates/trellis/local/subagent-models.json.example +0 -4
  327. package/dist/templates/trellis/local/trellis-task-models.json.example +0 -10
  328. package/dist/templates/trellis/local/trellis-task-models.json5.example +0 -45
  329. package/dist/templates/trellis/local/trellis_task_models_config.py +0 -200
  330. package/dist/utils/cursor-sdk-gate.d.ts +0 -10
  331. package/dist/utils/cursor-sdk-gate.d.ts.map +0 -1
  332. package/dist/utils/cursor-sdk-gate.js +0 -32
  333. package/dist/utils/cursor-sdk-gate.js.map +0 -1
  334. /package/dist/templates/markdown/{spec/guides → framework}/artifact-locale-guide.md.txt +0 -0
  335. /package/dist/templates/markdown/{spec/guides → framework}/cursor-context-injection-guide.md.txt +0 -0
  336. /package/dist/templates/markdown/{spec/guides → framework}/cursor-semantic-compliance.md.txt +0 -0
  337. /package/dist/templates/markdown/{spec/guides → framework}/injection-budget-guide.md.txt +0 -0
@@ -76,10 +76,10 @@ Inspect and record in `prd.md` (sections: **Confirmed facts**, initial **Out of
76
76
  1. **Code & tests** — relevant modules, fixtures, configs, error paths.
77
77
  2. **Specs** — `.cstl/spec/` indexes and layer guides for touched packages.
78
78
  3. **History** — archived tasks, active task research, developer journal when useful.
79
- 4. **Platform** — project platform hooks, agents, and skills (see `.cstl/spec/guides/cursor-subagent-policy.md` when using Cursor); shared `.agents/skills/` when behavior spans platforms.
79
+ 4. **Platform** — project platform hooks, agents, and skills (see `.cstl/framework/cursor-subagent-policy.md` when using Cursor); shared `.agents/skills/` when behavior spans platforms.
80
80
  5. **Parent/Child** — if multiple independent deliverables, note child split early in `prd.md`.
81
81
 
82
- Use retrieval per `.cstl/spec/guides/retrieval-daily-guide.md` (rg for literals, codegraph for structure, fast-context for semantic sweep).
82
+ Use retrieval per `.cstl/framework/retrieval-daily-guide.md` (rg for literals, codegraph for structure, fast-context for semantic sweep).
83
83
 
84
84
  Dispatch **`cstl-research`** (writable Agent) when a topic needs a dedicated `{TASK}/research/<topic>.md` file; do **not** use a subagent for PRD Grill itself.
85
85
 
@@ -21,7 +21,7 @@ You are the Check Agent in the Trellis workflow.
21
21
  ## Model policy
22
22
 
23
23
  - **Default:** no `model:` → **inherit** parent session.
24
- - **Per dispatch:** main session asks user → one-shot `model:` overlay → `Task` → restore (architecture review uses the same flow). See `.cstl/spec/guides/cursor-subagent-policy.md`.
24
+ - **Per dispatch:** main session asks user → one-shot `model:` overlay → `Task` → restore (architecture review uses the same flow). See `.cstl/framework/cursor-subagent-policy.md`.
25
25
 
26
26
  ## Recursion Guard
27
27
 
@@ -48,7 +48,7 @@ Look for the `<!-- cstl-hook-injected -->` marker in your input above.
48
48
 
49
49
  Before checking, read:
50
50
  - `.cstl/spec/` - Development guidelines
51
- - `.cstl/spec/guides/verification-strength-guide.md` - Graded verify depth (Lite/Full/Parent; not TDD)
51
+ - `.cstl/framework/verification-strength-guide.md` - Graded verify depth (Lite/Full/Parent; not TDD)
52
52
  - Task `prd.md` - Requirements document
53
53
  - Task `design.md` - Technical design (if exists)
54
54
  - Task `implement.md` - Execution plan (if exists)
@@ -21,7 +21,7 @@ You are the Implement Agent in the Trellis workflow.
21
21
  ## Model policy
22
22
 
23
23
  - **Default:** no `model:` → **inherit** parent session.
24
- - **Per dispatch / Child worker:** main session asks user → one-shot `model:` overlay on this file → `Task` → restore. Child session uses the same overlay pattern on `cstl-implement`. See `.cstl/spec/guides/cursor-subagent-policy.md`.
24
+ - **Per dispatch / Child worker:** main session asks user → one-shot `model:` overlay on this file → `Task` → restore. Child session uses the same overlay pattern on `cstl-implement`. See `.cstl/framework/cursor-subagent-policy.md`.
25
25
 
26
26
  ## Recursion Guard
27
27
 
@@ -21,7 +21,7 @@ You are the Research Agent in the Trellis workflow.
21
21
  ## Model policy
22
22
 
23
23
  - **Default:** no `model:` in this file → **inherit** parent session at spawn.
24
- - **Per dispatch:** main session asks the user, writes a **one-shot** `model:` here, runs `Task`, then **removes** `model:` (ephemeral overlay). See `.cstl/spec/guides/cursor-subagent-policy.md`.
24
+ - **Per dispatch:** main session asks the user, writes a **one-shot** `model:` here, runs `Task`, then **removes** `model:` (ephemeral overlay). See `.cstl/framework/cursor-subagent-policy.md`.
25
25
  - Dispatch: Cursor **Agent mode** (writable).
26
26
 
27
27
  ## Core Principle
@@ -68,7 +68,7 @@ Run independent searches in parallel (Glob + Grep + smart-search CLI for externa
68
68
 
69
69
  #### External search — provider relevance caveats
70
70
 
71
- - **Context7** and generic third-party library docs are often **irrelevant** to Trellis/Cursor platform questions. Prefer **Cursor / Cursor++ official documentation**, `docs.cursor.com`, and **local `.cstl/spec/`** before trusting Context7 hits.
71
+ - **Context7** and generic third-party library docs are often **irrelevant** to Trellis/Cursor platform questions. Prefer **Cursor official documentation**, `docs.cursor.com`, and **local `.cstl/spec/`** before trusting Context7 hits.
72
72
  - Every smart-search result you persist must **label the provider source** (e.g. `exa`, `context7`, `cursor-docs`, `tavily`) in the research file — in frontmatter or per bullet — so downstream check/finish can audit provenance.
73
73
  - Trellis harness facts: `./.cstl/scripts/run_smart_search.py` writes manifests under `{TASK}/research/smart-search/<run-id>/`; scored pack output (when built) is `{TASK}/research/retrieval-pack-latest.json`.
74
74
 
@@ -3,7 +3,7 @@
3
3
  * Update alongside rule content changes in templates/cursor/rules/.
4
4
  */
5
5
  export interface ExpectedRule {
6
- /** Filename including .mdc extension, e.g. "cstl-triage.mdc" */
6
+ /** Filename including .mdc extension, e.g. "cstl-bootstrap.mdc" */
7
7
  filename: string;
8
8
  /** Substrings that must appear in rule body (case-sensitive) */
9
9
  requiredSections: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"expected-rules.d.ts","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EA8BvC,CAAC"}
1
+ {"version":3,"file":"expected-rules.d.ts","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAavC,CAAC"}
@@ -4,32 +4,15 @@
4
4
  */
5
5
  export const expectedRules = [
6
6
  {
7
- filename: "cstl-triage.mdc",
7
+ filename: "cstl-bootstrap.mdc",
8
8
  requiredSections: [
9
- "Decision tree",
10
- "Classification mark",
11
- "Consent gate",
9
+ "Event Bridge",
10
+ "Capability router",
11
+ "external-knowledge",
12
+ "Optional",
13
+ "Native SSOT",
14
+ ".cstl/middleware",
12
15
  ],
13
- minBytes: 500,
14
- },
15
- {
16
- filename: "cstl-subagent-dispatch.mdc",
17
- requiredSections: ["Layer 2", "generate_dispatch_prompt", "CLI"],
18
- minBytes: 400,
19
- },
20
- {
21
- filename: "retrieval-routing.mdc",
22
- requiredSections: ["Prefer", "Adapt", "Own", "Native", "BYOK", "codegraph", "smart-search"],
23
- minBytes: 600,
24
- },
25
- {
26
- filename: "cstl-session-rename.mdc",
27
- requiredSections: ["rename_chat", "select", "start-execution", "skip silently"],
28
- minBytes: 300,
29
- },
30
- {
31
- filename: "cstl-cursor-modes.mdc",
32
- requiredSections: ["Prefer Cursor native modes", "Quick routing", "Hard boundaries", "Rollback"],
33
16
  minBytes: 400,
34
17
  },
35
18
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"expected-rules.js","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB,EAAE;YAChB,eAAe;YACf,qBAAqB;YACrB,cAAc;SACf;QACD,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,4BAA4B;QACtC,gBAAgB,EAAE,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;QAChE,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC;QAC3F,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,yBAAyB;QACnC,gBAAgB,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,CAAC;QAC/E,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,CAAC,4BAA4B,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,CAAC;QAChG,QAAQ,EAAE,GAAG;KACd;CACF,CAAC"}
1
+ {"version":3,"file":"expected-rules.js","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,QAAQ,EAAE,oBAAoB;QAC9B,gBAAgB,EAAE;YAChB,cAAc;YACd,mBAAmB;YACnB,oBAAoB;YACpB,UAAU;YACV,aAAa;YACb,kBAAkB;SACnB;QACD,QAAQ,EAAE,GAAG;KACd;CACF,CAAC"}
@@ -9,6 +9,10 @@
9
9
  }
10
10
  ],
11
11
  "sessionStart": [
12
+ {
13
+ "command": "{{PYTHON_CMD}} .cursor/hooks/event-bridge.py --event sessionStart",
14
+ "timeout": 30
15
+ },
12
16
  {
13
17
  "command": "{{PYTHON_CMD}} .cursor/hooks/session-start.py",
14
18
  "timeout": 30
@@ -4,7 +4,7 @@
4
4
  * Directory structure:
5
5
  * cursor/
6
6
  * ├── agents/ # Sub-agent definitions
7
- * ├── commands/ # Cursor-only slash commands (e.g. cursor2plus-setup)
7
+ * ├── commands/ # Cursor-only slash commands (optional extras)
8
8
  * ├── rules/ # .cursor/rules/*.mdc (alwaysApply / glob-scoped rules)
9
9
  * ├── hooks.json # Hooks configuration
10
10
  * └── worktrees.json # Cursor native worktree setup
@@ -4,7 +4,7 @@
4
4
  * Directory structure:
5
5
  * cursor/
6
6
  * ├── agents/ # Sub-agent definitions
7
- * ├── commands/ # Cursor-only slash commands (e.g. cursor2plus-setup)
7
+ * ├── commands/ # Cursor-only slash commands (optional extras)
8
8
  * ├── rules/ # .cursor/rules/*.mdc (alwaysApply / glob-scoped rules)
9
9
  * ├── hooks.json # Hooks configuration
10
10
  * └── worktrees.json # Cursor native worktree setup
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: "Cursor Adapter Bootstrap — Event Bridge pointer, four retrieval intents, independent Middleware. Prefer this thin rule over adding more always-on."
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Cursor Adapter Bootstrap
7
+
8
+ This is the **single thin Bootstrap** for Cursor. It points; it does not carry full Triage, Gate, smart-search, or codegraph methodology.
9
+
10
+ - **Event Bridge:** Cursor hook events (`sessionStart` and others) record/dispatch through Kernel `event_bridge` extras. Unsubscribed modules must not fail the hook.
11
+ - **Capability router:** Baseline intents are only `exact` / `semantic` / `structural` / `external`. Do not bind Agent tool names here.
12
+ - **external-knowledge:** smart-search is an independent Middleware Provider. Probe readiness. Missing → Profile `degraded`. Tasks that do not need the capability may Close. Platform Web is a downgrade, not an equivalent.
13
+ - **Optional code intelligence:** codegraph and fast-context stay Optional. Do not treat them as default always-on or forced install.
14
+ - **Native SSOT:** no Cursor++ command/skill/init ask and no cstl-byok live install on this surface. Env probe fields (`TRELLIS_CURSOR_BYOK`, `~/.ccursor/routes.json`) may remain.
15
+ - **User overlay:** project `.cstl/middleware/` Manifests. `cstl init` / `cstl update` never write, delete, or hash that directory. Protocol: `.cstl/framework/middleware-protocol.md`.
16
+
17
+ This is the only default always-on rule. Do **not** add middleware-specific always-on. Methodology lives in `.cstl/workflow.md` (human overview, not runtime SSOT) and on-demand docs.
@@ -5,7 +5,10 @@ These instructions are for AI assistants working in this project.
5
5
 
6
6
  This project is managed by cursor-trellis. The working knowledge you need lives under `.cstl/`:
7
7
 
8
- - `.cstl/workflow.md` — development phases, when to create tasks, skill routing
8
+ - `.cstl/workflow.md` — human overview of phases and skill routing (not runtime SSOT). Parallel first (convention, not a CLI gate). Personal Lite: Open→Close without Parent/Git; Full Quality: `required_controls` + AC ledger + graded Check; Topology/On-demand: Rigor × Topology, `task-map` is a graph projection; Adapter/Middleware: Event Bridge + four retrieval intents + independent smart-search Provider; user overlay `.cstl/middleware/` is never touched by `cstl update`; prefer `get_context.py --mode lite` for Lite
9
+ - `.cstl/framework/middleware-protocol.md` — Middleware Protocol v1 (one ABI; Manifest sample)
10
+ - `.cstl/framework/upgrade.md` — terminal-user upgrade half-page
11
+ - `.cstl/framework/release-boundary.md` — CSTL this-batch ship vs independent cstl-byok ship
9
12
  - `.cstl/spec/` — package- and layer-scoped coding guidelines (read before writing code in a given layer)
10
13
  - `.cstl/workspace/` — per-developer journals and session traces
11
14
  - `.cstl/tasks/` — active and archived tasks (PRDs, research, jsonl context)
@@ -19,11 +22,41 @@ Only a handful of Trellis entry points are meant for **manual `/` invocation**.
19
22
  - **User-invocable (manual)**: `cstl-continue`, `cstl-finish-work` (and `cstl-start` when needed).
20
23
  - **Internal auto-triggered (do NOT call manually)**: `cstl-brainstorm`, `cstl-before-dev`, `cstl-check`, `cstl-break-loop`, `cstl-update-spec`, `cstl-micro-grill`, `cstl-meta`, `cstl-spec-bootstrap`, `cstl-skill-creator`, `smart-search-cli`. These activate on their own when the workflow/skill matcher decides they fit.
21
24
 
25
+ ## Skill authoring (mandatory)
26
+
27
+ When **creating** or making a **behavioral/structural** change to a Trellis bundled skill, a `blaze-skills` skill, or a harness skill, **first Read** `cstl-skill-creator` and follow its workflow + `references/review-checklist.md`. Do not hand-write around it. **Skip** for typo / pure link fixes. This skill is **internal** (not a user `/` command). **Does not apply** to Cursor product skills (e.g. `~/.cursor/skills-cursor/create-skill`). Load paths: see `.cstl/framework/internal-skills-cursor-reachability.md` (`cstl-skill-creator` row).
28
+
29
+ ## Invocation map (short)
30
+
31
+ | Intent | Use | Do not |
32
+ | --- | --- | --- |
33
+ | Session handoff | `/cstl-handoff` → report temp path | task `handoff.md`; ad-hoc workspace handoff |
34
+ | Durable objective | official Cursor `/goal` | restore `cstl-goal`; treat as Parent/Child or a Trellis task type |
35
+ | User slash surface | only listed `/cstl-*` commands | assume internal skills are slash commands |
36
+ | Internal skills (brainstorm, …) | workflow says load → Read documented path (see guides); not user slash | claim loaded with no file read |
37
+
38
+ Commands-only: internal skills stay **out of** the `/` palette by design; they must still be **reachable** via documented on-demand paths (not "missing from the framework").
39
+
40
+ ## Internal skill reachability (on-demand)
41
+
42
+ Internal auto-triggered skills are **not** shipped to `.cursor/skills/` and have **no** default slash command. When the workflow routes to one, load its body by reading a documented path — do **not** claim it is loaded without a file read.
43
+
44
+ - PRD Grill / brainstorm discipline → **`Read .cstl/framework/prd-grill-frontier.md`** (SSOT: bundled `common/skills/brainstorm.md`).
45
+ - Skill authoring (new / structural) → **must Read** bundled `cstl-skill-creator/SKILL.md` then `references/review-checklist.md` (paths in `internal-skills-cursor-reachability.md`). Not a slash command.
46
+ - Full skill × load-channel matrix → **`Read .cstl/framework/internal-skills-cursor-reachability.md`**.
47
+ - Dogfood-only install surfaces (never shipped by default) → **`Read .cstl/framework/dogfood-only-surfaces.md`**.
48
+
49
+ ## Durable objectives (official /goal)
50
+
51
+ For a persistent in-session objective, use Cursor's official `/goal`. That is **not** a Trellis task type and **not** Parent/Child. Do **not** restore or invent `cstl-goal` / `cstl goal`.
52
+
53
+ Default install is **Native Cursor**. CSTL does **not** embed BYOK (no install-time BYOK; an optional independent track stays outside this package).
54
+
22
55
  ## Web research routing (smart-search first)
23
56
 
24
- For **any external / current / web fact**, run **`python ./.cstl/scripts/run_smart_search.py "<question>" --intent deep-research --json`** first. That script is the **only** Trellis web-research evidence entrypoint (it shells out to the `smart-search` CLI). Do not guess paths under package source trees or sibling repos. Platform built-in web tools (Cursor `WebSearch` / `WebFetch`, or native web tools elsewhere) are **downgrade-only fallbacks**, used solely when smart-search is unavailable (`doctor` not ok, status `not_configured` / `failed`, or search timeout). Do not reach for built-in web search while smart-search is healthy. On Cursor, `smart-search-cli` is an **internal workflow skill name** only (not shipped under `.cursor/skills/`); follow `.cstl/spec/guides/retrieval-daily-guide.md` and `.cursor/rules/retrieval-routing.mdc` for the executable contract.
57
+ For **any external / current / web fact**, use the independent **smart-search** Provider (`smart-search` CLI when installed). Maintainer installs may still have `run_smart_search.py`; it is not Baseline. Platform built-in web tools are **downgrade-only fallbacks**. Follow `.cstl/framework/retrieval-daily-guide.md`.
25
58
 
26
- **External-knowledge gate:** If the answer would be wrong because the **world or a third-party API moved** and that matters → use smart-search (cheap `docs` / `broad-search` when enough; `deep-research` when multi-source). If truth lives only in this workspace → do not default to web. When unsure, prefer a cheap probe over guessing. See retrieval-daily-guide § External-knowledge gate.
59
+ **External-knowledge gate:** If the answer would be wrong because the **world or a third-party API moved** and that matters → use smart-search (cheap `docs` / `broad-search` when enough; `deep-research` when multi-source). If truth lives only in this workspace → do not default to web. When unsure, prefer a cheap probe over guessing. See `.cstl/framework/retrieval-daily-guide.md` § External-knowledge gate.
27
60
 
28
61
  Managed by cursor-trellis. Edits outside this block are preserved; edits inside may be overwritten by a future `cstl update`.
29
62
 
@@ -31,7 +31,7 @@
31
31
  | **Plan** | Scope / design / tradeoffs before code | **Try `SwitchMode(plan)`**; after review, `SwitchMode(agent)` or Build; **Save to workspace** → map into task files | Keep writing `prd.md` / `design.md` / `implement.md` + `cstl-brainstorm` in Agent | Phase 1 files |
32
32
  | **Agent** | Approved build / verify | Default; `SwitchMode(agent)` when returning from Plan | — | Diff, `verify.md`, gates |
33
33
  | **Debug** | Repro / runtime / regressions | Prefer real Cursor Debug when the user/session can reach it | Evidence → `verify.md`; `cstl-break-loop` if looped | Notes / logs in `verify.md` |
34
- | **Multitask** | Independent Parent children post-approval | Prefer `/multitask` / Build in Parallel / Agent `Task` background workers **when useful** | Explicit `.cstl/tasks/<dir>` prompts + Parent `integrate-child` | Child `verify`/`handoff`; Parent `task-map` |
34
+ | **Multitask** | Independent Parent children post-approval (**default** when ≥2 units, empty `depends_on`) | Prefer `/multitask` / Build in Parallel / Agent `Task` / native worktree **not** a Trellis scheduler | Explicit `.cstl/tasks/<dir>` prompts + Parent `integrate-child`; serial needs `serial_reason` | Child `verify`/`handoff`; Parent `task-map` |
35
35
 
36
36
  ### Phase quick map
37
37
 
@@ -40,7 +40,7 @@ Triage (No Task / Micro-Grill) → Ask surface if present; else No Task in Agen
40
40
  Phase 1 → SwitchMode(plan) when useful; else write artifacts in Agent
41
41
  Phase 2–3 → Agent (+ workers when contracted)
42
42
  Stuck / repeat failure → Debug when reachable; else verify.md + break-loop
43
- Parent parallel children → Multitask / Task parallel when useful; Parent integrates
43
+ Parent parallel children → Multitask / Task parallel **by default**; serial needs serial_reason; Parent integrates
44
44
  ```
45
45
 
46
46
  ---
@@ -67,10 +67,11 @@ Parent parallel children → Multitask / Task parallel when useful; Paren
67
67
 
68
68
  ### Multitask ↔ Parent/Child
69
69
 
70
- 1. Trellis remains source of truth for status, gates, integration.
71
- 2. Prefer native parallel surfaces to support independent Children when they help isolation/throughput.
72
- 3. Every worker prompt includes **explicit `.cstl/tasks/<dir>`** never rely on `selected_task`.
73
- 4. Parent alone `integrate-child`; no collision guarantee without worktrees + review.
70
+ 1. Trellis remains source of truth for status, gates, integration. This is **not** a Trellis-built parallel product — Prefer Cursor Multitask / Build in Parallel / Agent `Task` / native worktree.
71
+ 2. **Default parallel** when planning has ≥2 independent units (Parent children with empty `depends_on`, or Full Task fan-out). Lite / single-file work is not forced into parallel agents.
72
+ 3. **Serial needs a written reason** (`serial_reason`): shared write-set / HITL or reviewer gate / `depends_on` unmet / user asked serial / conflict surface cannot isolate. HITL, `start-execution --approved`, reviewer gates, and `integrate-child` stay serial even when workers run in parallel (`merge_limit: 1`).
73
+ 4. Every worker prompt includes **explicit `.cstl/tasks/<dir>`** never rely on `selected_task`.
74
+ 5. Parent alone `integrate-child`; no collision guarantee without worktrees + review. Declare 可并行组 / 合并点 / 冲突面 on the task-map — see `.cstl/framework/parallel-first-execution.md`.
74
75
 
75
76
  ---
76
77
 
@@ -79,7 +80,7 @@ Parent parallel children → Multitask / Task parallel when useful; Paren
79
80
  | Surface | Plan | Agent | Ask | Debug | Parallel Children |
80
81
  | --- | --- | --- | --- | --- | --- |
81
82
  | Agent `SwitchMode` | Yes → `plan` | Yes → `agent` | — | — | — |
82
- | Agent `Task` / Multitask | — | workers | — | — | Prefer when useful |
83
+ | Agent `Task` / Multitask | — | workers | — | — | Prefer **by default** (serial needs `serial_reason`) |
83
84
  | User / CLI modes | Plan UI / `/plan` | default | Ask UI / `/ask` | Debug UI | `/multitask`, Build in Parallel |
84
85
 
85
86
  Details: `research/modes-callability-matrix.md`.
@@ -93,6 +94,7 @@ Details: `research/modes-callability-matrix.md`.
93
94
  - Parallel agents cannot conflict without Trellis/worktree discipline.
94
95
  - `SwitchMode` can open Ask or Debug.
95
96
  - Shipping a parallel fake Plan/Ask/Debug product, or documenting gaps as “本版本不适配”.
97
+ - Replacing Cursor Multitask with a Trellis scheduler, queue, or new parallel CLI.
96
98
 
97
99
  ---
98
100
 
@@ -102,7 +104,7 @@ Details: `research/modes-callability-matrix.md`.
102
104
  | --- | --- | --- |
103
105
  | **Plan** | Schema or live `SwitchMode(plan)` note in verify | Prefer path documented; quiet Agent fallback if unused |
104
106
  | **Ask / Debug** | Callability matrix | Quiet spine behavior; no “不适配” section |
105
- | **Multitask** | Task parallel or doc contract | Explicit child paths; Parent integrates |
107
+ | **Multitask** | Task parallel or doc contract | Explicit child paths; default parallel; serial has `serial_reason`; Parent integrates |
106
108
  | **Agent** | Session implements under contract | Artifacts on disk |
107
109
 
108
110
  ---
@@ -111,7 +113,7 @@ Details: `research/modes-callability-matrix.md`.
111
113
 
112
114
  Docs + rules only:
113
115
 
114
- 1. Delete `.cursor/rules/cstl-cursor-modes.mdc` and `.cstl/spec/guides/cursor-native-modes-guide.md`.
116
+ 1. Delete `.cursor/rules/cstl-cursor-modes.mdc`, `.cstl/framework/cursor-native-modes-guide.md`, and `.cstl/framework/parallel-first-execution.md`.
115
117
  2. Drop related `guides/index.md` / `workflow.md` rows, or `cstl update` from pre-P1 templates.
116
118
  3. **cursor-trellis**: revert this Child’s tip or delete mirrored template paths.
117
119
 
@@ -122,4 +124,5 @@ Docs + rules only:
122
124
  - `{TASK}/research/modes-callability-matrix.md`
123
125
  - `{TASK}/research/cursor-modes-external.md`
124
126
  - `.cursor/rules/cstl-cursor-modes.mdc`
125
- - `.cstl/spec/guides/cursor-subagent-policy.md`
127
+ - `.cstl/framework/cursor-subagent-policy.md`
128
+ - `.cstl/framework/parallel-first-execution.md`