@thiagodiogo/pscode 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +142 -0
  3. package/bin/pscode.js +5 -0
  4. package/dist/cli/index.d.ts +5 -0
  5. package/dist/cli/index.js +526 -0
  6. package/dist/commands/change.d.ts +35 -0
  7. package/dist/commands/change.js +277 -0
  8. package/dist/commands/completion.d.ts +72 -0
  9. package/dist/commands/completion.js +264 -0
  10. package/dist/commands/config.d.ts +36 -0
  11. package/dist/commands/config.js +611 -0
  12. package/dist/commands/context-store.d.ts +3 -0
  13. package/dist/commands/context-store.js +282 -0
  14. package/dist/commands/feedback.d.ts +9 -0
  15. package/dist/commands/feedback.js +183 -0
  16. package/dist/commands/initiative.d.ts +13 -0
  17. package/dist/commands/initiative.js +318 -0
  18. package/dist/commands/schema.d.ts +6 -0
  19. package/dist/commands/schema.js +869 -0
  20. package/dist/commands/show.d.ts +14 -0
  21. package/dist/commands/show.js +132 -0
  22. package/dist/commands/spec.d.ts +15 -0
  23. package/dist/commands/spec.js +225 -0
  24. package/dist/commands/validate.d.ts +24 -0
  25. package/dist/commands/validate.js +294 -0
  26. package/dist/commands/workflow/index.d.ts +19 -0
  27. package/dist/commands/workflow/index.js +13 -0
  28. package/dist/commands/workflow/initiative-link.d.ts +24 -0
  29. package/dist/commands/workflow/initiative-link.js +47 -0
  30. package/dist/commands/workflow/instructions.d.ts +29 -0
  31. package/dist/commands/workflow/instructions.js +344 -0
  32. package/dist/commands/workflow/new-change.d.ts +17 -0
  33. package/dist/commands/workflow/new-change.js +141 -0
  34. package/dist/commands/workflow/schemas.d.ts +10 -0
  35. package/dist/commands/workflow/schemas.js +34 -0
  36. package/dist/commands/workflow/set-change.d.ts +13 -0
  37. package/dist/commands/workflow/set-change.js +87 -0
  38. package/dist/commands/workflow/shared.d.ts +59 -0
  39. package/dist/commands/workflow/shared.js +116 -0
  40. package/dist/commands/workflow/status.d.ts +14 -0
  41. package/dist/commands/workflow/status.js +90 -0
  42. package/dist/commands/workflow/templates.d.ts +16 -0
  43. package/dist/commands/workflow/templates.js +69 -0
  44. package/dist/commands/workspace/context-status.d.ts +4 -0
  45. package/dist/commands/workspace/context-status.js +59 -0
  46. package/dist/commands/workspace/open-view.d.ts +62 -0
  47. package/dist/commands/workspace/open-view.js +228 -0
  48. package/dist/commands/workspace/open.d.ts +37 -0
  49. package/dist/commands/workspace/open.js +102 -0
  50. package/dist/commands/workspace/opener-selection.d.ts +11 -0
  51. package/dist/commands/workspace/opener-selection.js +93 -0
  52. package/dist/commands/workspace/operations.d.ts +28 -0
  53. package/dist/commands/workspace/operations.js +543 -0
  54. package/dist/commands/workspace/prompt-theme.d.ts +29 -0
  55. package/dist/commands/workspace/prompt-theme.js +24 -0
  56. package/dist/commands/workspace/registration.d.ts +13 -0
  57. package/dist/commands/workspace/registration.js +84 -0
  58. package/dist/commands/workspace/selection.d.ts +6 -0
  59. package/dist/commands/workspace/selection.js +122 -0
  60. package/dist/commands/workspace/types.d.ts +103 -0
  61. package/dist/commands/workspace/types.js +36 -0
  62. package/dist/commands/workspace.d.ts +6 -0
  63. package/dist/commands/workspace.js +678 -0
  64. package/dist/core/archive.d.ts +11 -0
  65. package/dist/core/archive.js +318 -0
  66. package/dist/core/artifact-graph/graph.d.ts +56 -0
  67. package/dist/core/artifact-graph/graph.js +141 -0
  68. package/dist/core/artifact-graph/index.d.ts +9 -0
  69. package/dist/core/artifact-graph/index.js +14 -0
  70. package/dist/core/artifact-graph/instruction-loader.d.ts +183 -0
  71. package/dist/core/artifact-graph/instruction-loader.js +256 -0
  72. package/dist/core/artifact-graph/outputs.d.ts +14 -0
  73. package/dist/core/artifact-graph/outputs.js +39 -0
  74. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  75. package/dist/core/artifact-graph/resolver.js +257 -0
  76. package/dist/core/artifact-graph/schema.d.ts +13 -0
  77. package/dist/core/artifact-graph/schema.js +108 -0
  78. package/dist/core/artifact-graph/state.d.ts +12 -0
  79. package/dist/core/artifact-graph/state.js +31 -0
  80. package/dist/core/artifact-graph/types.d.ts +40 -0
  81. package/dist/core/artifact-graph/types.js +29 -0
  82. package/dist/core/available-tools.d.ts +17 -0
  83. package/dist/core/available-tools.js +43 -0
  84. package/dist/core/change-metadata/index.d.ts +2 -0
  85. package/dist/core/change-metadata/index.js +2 -0
  86. package/dist/core/change-metadata/schema.d.ts +18 -0
  87. package/dist/core/change-metadata/schema.js +28 -0
  88. package/dist/core/change-status-policy.d.ts +50 -0
  89. package/dist/core/change-status-policy.js +70 -0
  90. package/dist/core/collections/index.d.ts +3 -0
  91. package/dist/core/collections/index.js +3 -0
  92. package/dist/core/collections/initiatives/collection.d.ts +4 -0
  93. package/dist/core/collections/initiatives/collection.js +17 -0
  94. package/dist/core/collections/initiatives/index.d.ts +6 -0
  95. package/dist/core/collections/initiatives/index.js +6 -0
  96. package/dist/core/collections/initiatives/operations.d.ts +49 -0
  97. package/dist/core/collections/initiatives/operations.js +175 -0
  98. package/dist/core/collections/initiatives/resolution.d.ts +87 -0
  99. package/dist/core/collections/initiatives/resolution.js +374 -0
  100. package/dist/core/collections/initiatives/schema.d.ts +41 -0
  101. package/dist/core/collections/initiatives/schema.js +134 -0
  102. package/dist/core/collections/initiatives/templates.d.ts +12 -0
  103. package/dist/core/collections/initiatives/templates.js +90 -0
  104. package/dist/core/collections/runtime.d.ts +46 -0
  105. package/dist/core/collections/runtime.js +194 -0
  106. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  107. package/dist/core/command-generation/adapters/claude.js +50 -0
  108. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  109. package/dist/core/command-generation/adapters/codex.js +39 -0
  110. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  111. package/dist/core/command-generation/adapters/cursor.js +44 -0
  112. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  113. package/dist/core/command-generation/adapters/gemini.js +26 -0
  114. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  115. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  116. package/dist/core/command-generation/adapters/index.d.ts +11 -0
  117. package/dist/core/command-generation/adapters/index.js +11 -0
  118. package/dist/core/command-generation/generator.d.ts +21 -0
  119. package/dist/core/command-generation/generator.js +27 -0
  120. package/dist/core/command-generation/index.d.ts +22 -0
  121. package/dist/core/command-generation/index.js +24 -0
  122. package/dist/core/command-generation/registry.d.ts +35 -0
  123. package/dist/core/command-generation/registry.js +55 -0
  124. package/dist/core/command-generation/types.d.ts +56 -0
  125. package/dist/core/command-generation/types.js +8 -0
  126. package/dist/core/completions/command-registry.d.ts +3 -0
  127. package/dist/core/completions/command-registry.js +939 -0
  128. package/dist/core/completions/completion-provider.d.ts +71 -0
  129. package/dist/core/completions/completion-provider.js +129 -0
  130. package/dist/core/completions/factory.d.ts +64 -0
  131. package/dist/core/completions/factory.js +75 -0
  132. package/dist/core/completions/generators/bash-generator.d.ts +35 -0
  133. package/dist/core/completions/generators/bash-generator.js +230 -0
  134. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  135. package/dist/core/completions/generators/fish-generator.js +160 -0
  136. package/dist/core/completions/generators/powershell-generator.d.ts +36 -0
  137. package/dist/core/completions/generators/powershell-generator.js +266 -0
  138. package/dist/core/completions/generators/zsh-generator.d.ts +47 -0
  139. package/dist/core/completions/generators/zsh-generator.js +274 -0
  140. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  141. package/dist/core/completions/installers/bash-installer.js +318 -0
  142. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  143. package/dist/core/completions/installers/fish-installer.js +143 -0
  144. package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
  145. package/dist/core/completions/installers/powershell-installer.js +387 -0
  146. package/dist/core/completions/installers/zsh-installer.d.ts +117 -0
  147. package/dist/core/completions/installers/zsh-installer.js +421 -0
  148. package/dist/core/completions/shared-flags.d.ts +12 -0
  149. package/dist/core/completions/shared-flags.js +28 -0
  150. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  151. package/dist/core/completions/templates/bash-templates.js +30 -0
  152. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  153. package/dist/core/completions/templates/fish-templates.js +45 -0
  154. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  155. package/dist/core/completions/templates/powershell-templates.js +34 -0
  156. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  157. package/dist/core/completions/templates/zsh-templates.js +45 -0
  158. package/dist/core/completions/types.d.ts +101 -0
  159. package/dist/core/completions/types.js +2 -0
  160. package/dist/core/config-prompts.d.ts +9 -0
  161. package/dist/core/config-prompts.js +34 -0
  162. package/dist/core/config-schema.d.ts +86 -0
  163. package/dist/core/config-schema.js +213 -0
  164. package/dist/core/config.d.ts +18 -0
  165. package/dist/core/config.js +13 -0
  166. package/dist/core/context-store/binding.d.ts +53 -0
  167. package/dist/core/context-store/binding.js +197 -0
  168. package/dist/core/context-store/errors.d.ts +20 -0
  169. package/dist/core/context-store/errors.js +22 -0
  170. package/dist/core/context-store/foundation.d.ts +54 -0
  171. package/dist/core/context-store/foundation.js +318 -0
  172. package/dist/core/context-store/index.d.ts +6 -0
  173. package/dist/core/context-store/index.js +6 -0
  174. package/dist/core/context-store/operations.d.ts +62 -0
  175. package/dist/core/context-store/operations.js +352 -0
  176. package/dist/core/context-store/registry.d.ts +35 -0
  177. package/dist/core/context-store/registry.js +158 -0
  178. package/dist/core/converters/json-converter.d.ts +6 -0
  179. package/dist/core/converters/json-converter.js +51 -0
  180. package/dist/core/global-config.d.ts +49 -0
  181. package/dist/core/global-config.js +124 -0
  182. package/dist/core/index.d.ts +6 -0
  183. package/dist/core/index.js +7 -0
  184. package/dist/core/init.d.ts +40 -0
  185. package/dist/core/init.js +676 -0
  186. package/dist/core/legacy-cleanup.d.ts +162 -0
  187. package/dist/core/legacy-cleanup.js +489 -0
  188. package/dist/core/list.d.ts +9 -0
  189. package/dist/core/list.js +171 -0
  190. package/dist/core/migration.d.ts +23 -0
  191. package/dist/core/migration.js +108 -0
  192. package/dist/core/openspec-migration.d.ts +71 -0
  193. package/dist/core/openspec-migration.js +320 -0
  194. package/dist/core/parsers/change-parser.d.ts +13 -0
  195. package/dist/core/parsers/change-parser.js +197 -0
  196. package/dist/core/parsers/markdown-parser.d.ts +26 -0
  197. package/dist/core/parsers/markdown-parser.js +227 -0
  198. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  199. package/dist/core/parsers/requirement-blocks.js +201 -0
  200. package/dist/core/parsers/spec-structure.d.ts +9 -0
  201. package/dist/core/parsers/spec-structure.js +88 -0
  202. package/dist/core/planning-home.d.ts +21 -0
  203. package/dist/core/planning-home.js +108 -0
  204. package/dist/core/profile-sync-drift.d.ts +38 -0
  205. package/dist/core/profile-sync-drift.js +203 -0
  206. package/dist/core/profiles.d.ts +26 -0
  207. package/dist/core/profiles.js +43 -0
  208. package/dist/core/project-config.d.ts +64 -0
  209. package/dist/core/project-config.js +223 -0
  210. package/dist/core/schemas/base.schema.d.ts +13 -0
  211. package/dist/core/schemas/base.schema.js +13 -0
  212. package/dist/core/schemas/change.schema.d.ts +73 -0
  213. package/dist/core/schemas/change.schema.js +31 -0
  214. package/dist/core/schemas/index.d.ts +4 -0
  215. package/dist/core/schemas/index.js +4 -0
  216. package/dist/core/schemas/spec.schema.d.ts +18 -0
  217. package/dist/core/schemas/spec.schema.js +15 -0
  218. package/dist/core/shared/index.d.ts +8 -0
  219. package/dist/core/shared/index.js +8 -0
  220. package/dist/core/shared/skill-generation.d.ts +49 -0
  221. package/dist/core/shared/skill-generation.js +102 -0
  222. package/dist/core/shared/tool-detection.d.ts +71 -0
  223. package/dist/core/shared/tool-detection.js +158 -0
  224. package/dist/core/specs-apply.d.ts +73 -0
  225. package/dist/core/specs-apply.js +392 -0
  226. package/dist/core/styles/palette.d.ts +7 -0
  227. package/dist/core/styles/palette.js +8 -0
  228. package/dist/core/templates/index.d.ts +8 -0
  229. package/dist/core/templates/index.js +9 -0
  230. package/dist/core/templates/skill-templates.d.ts +21 -0
  231. package/dist/core/templates/skill-templates.js +21 -0
  232. package/dist/core/templates/types.d.ts +19 -0
  233. package/dist/core/templates/types.js +5 -0
  234. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  235. package/dist/core/templates/workflows/apply-change.js +287 -0
  236. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  237. package/dist/core/templates/workflows/archive-change.js +227 -0
  238. package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
  239. package/dist/core/templates/workflows/bulk-archive-change.js +492 -0
  240. package/dist/core/templates/workflows/continue-change.d.ts +10 -0
  241. package/dist/core/templates/workflows/continue-change.js +234 -0
  242. package/dist/core/templates/workflows/explore.d.ts +10 -0
  243. package/dist/core/templates/workflows/explore.js +755 -0
  244. package/dist/core/templates/workflows/feedback.d.ts +9 -0
  245. package/dist/core/templates/workflows/feedback.js +108 -0
  246. package/dist/core/templates/workflows/ff-change.d.ts +10 -0
  247. package/dist/core/templates/workflows/ff-change.js +200 -0
  248. package/dist/core/templates/workflows/new-change.d.ts +10 -0
  249. package/dist/core/templates/workflows/new-change.js +143 -0
  250. package/dist/core/templates/workflows/onboard.d.ts +10 -0
  251. package/dist/core/templates/workflows/onboard.js +607 -0
  252. package/dist/core/templates/workflows/propose.d.ts +10 -0
  253. package/dist/core/templates/workflows/propose.js +347 -0
  254. package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
  255. package/dist/core/templates/workflows/sync-specs.js +290 -0
  256. package/dist/core/templates/workflows/trello-draft.d.ts +12 -0
  257. package/dist/core/templates/workflows/trello-draft.js +217 -0
  258. package/dist/core/templates/workflows/trello-setup.d.ts +12 -0
  259. package/dist/core/templates/workflows/trello-setup.js +315 -0
  260. package/dist/core/templates/workflows/verify-change.d.ts +10 -0
  261. package/dist/core/templates/workflows/verify-change.js +338 -0
  262. package/dist/core/trello-config.d.ts +90 -0
  263. package/dist/core/trello-config.js +86 -0
  264. package/dist/core/trello-init-prompt.d.ts +61 -0
  265. package/dist/core/trello-init-prompt.js +180 -0
  266. package/dist/core/update.d.ts +82 -0
  267. package/dist/core/update.js +560 -0
  268. package/dist/core/validation/constants.d.ts +34 -0
  269. package/dist/core/validation/constants.js +40 -0
  270. package/dist/core/validation/types.d.ts +18 -0
  271. package/dist/core/validation/types.js +2 -0
  272. package/dist/core/validation/validator.d.ts +33 -0
  273. package/dist/core/validation/validator.js +418 -0
  274. package/dist/core/view.d.ts +8 -0
  275. package/dist/core/view.js +168 -0
  276. package/dist/core/workspace/foundation.d.ts +62 -0
  277. package/dist/core/workspace/foundation.js +274 -0
  278. package/dist/core/workspace/index.d.ts +8 -0
  279. package/dist/core/workspace/index.js +8 -0
  280. package/dist/core/workspace/legacy-state.d.ts +28 -0
  281. package/dist/core/workspace/legacy-state.js +200 -0
  282. package/dist/core/workspace/link-input.d.ts +9 -0
  283. package/dist/core/workspace/link-input.js +32 -0
  284. package/dist/core/workspace/open-surface.d.ts +43 -0
  285. package/dist/core/workspace/open-surface.js +214 -0
  286. package/dist/core/workspace/openers.d.ts +21 -0
  287. package/dist/core/workspace/openers.js +119 -0
  288. package/dist/core/workspace/registry.d.ts +24 -0
  289. package/dist/core/workspace/registry.js +146 -0
  290. package/dist/core/workspace/skills.d.ts +57 -0
  291. package/dist/core/workspace/skills.js +334 -0
  292. package/dist/core/workspace/state-io.d.ts +10 -0
  293. package/dist/core/workspace/state-io.js +119 -0
  294. package/dist/index.d.ts +3 -0
  295. package/dist/index.js +3 -0
  296. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  297. package/dist/prompts/searchable-multi-select.js +159 -0
  298. package/dist/telemetry/config.d.ts +38 -0
  299. package/dist/telemetry/config.js +136 -0
  300. package/dist/telemetry/index.d.ts +31 -0
  301. package/dist/telemetry/index.js +164 -0
  302. package/dist/ui/ascii-patterns.d.ts +16 -0
  303. package/dist/ui/ascii-patterns.js +133 -0
  304. package/dist/ui/welcome-screen.d.ts +10 -0
  305. package/dist/ui/welcome-screen.js +146 -0
  306. package/dist/utils/change-metadata.d.ts +54 -0
  307. package/dist/utils/change-metadata.js +141 -0
  308. package/dist/utils/change-utils.d.ts +71 -0
  309. package/dist/utils/change-utils.js +123 -0
  310. package/dist/utils/command-references.d.ts +18 -0
  311. package/dist/utils/command-references.js +20 -0
  312. package/dist/utils/file-system.d.ts +41 -0
  313. package/dist/utils/file-system.js +301 -0
  314. package/dist/utils/index.d.ts +6 -0
  315. package/dist/utils/index.js +9 -0
  316. package/dist/utils/interactive.d.ts +18 -0
  317. package/dist/utils/interactive.js +21 -0
  318. package/dist/utils/item-discovery.d.ts +4 -0
  319. package/dist/utils/item-discovery.js +72 -0
  320. package/dist/utils/match.d.ts +3 -0
  321. package/dist/utils/match.js +22 -0
  322. package/dist/utils/shell-detection.d.ts +20 -0
  323. package/dist/utils/shell-detection.js +41 -0
  324. package/dist/utils/task-progress.d.ts +8 -0
  325. package/dist/utils/task-progress.js +36 -0
  326. package/package.json +84 -0
  327. package/schemas/spec-driven/schema.yaml +153 -0
  328. package/schemas/spec-driven/templates/design.md +19 -0
  329. package/schemas/spec-driven/templates/proposal.md +23 -0
  330. package/schemas/spec-driven/templates/spec.md +8 -0
  331. package/schemas/spec-driven/templates/tasks.md +9 -0
  332. package/schemas/workspace-planning/schema.yaml +72 -0
  333. package/schemas/workspace-planning/templates/design.md +33 -0
  334. package/schemas/workspace-planning/templates/proposal.md +28 -0
  335. package/schemas/workspace-planning/templates/spec.md +9 -0
  336. package/schemas/workspace-planning/templates/tasks.md +15 -0
  337. package/scripts/postinstall.js +83 -0
@@ -0,0 +1,287 @@
1
+ export function getApplyChangeSkillTemplate() {
2
+ return {
3
+ name: 'pscode-apply-change',
4
+ description: 'Implement tasks from an Pscode change. Use when the user wants to start implementing, continue implementation, or work through tasks.',
5
+ instructions: getApplyInstructions(),
6
+ license: 'MIT',
7
+ compatibility: 'Requires pscode CLI.',
8
+ metadata: { author: 'pscode', version: '1.0' },
9
+ };
10
+ }
11
+ export function getPsApplyCommandTemplate() {
12
+ return {
13
+ name: 'PS: Apply',
14
+ description: 'Implement tasks from a Pscode change',
15
+ category: 'Workflow',
16
+ tags: ['workflow', 'apply', 'implementation'],
17
+ content: getApplyInstructions(),
18
+ };
19
+ }
20
+ function getApplyInstructions() {
21
+ return `Implement tasks from a Pscode change.
22
+
23
+ **Input**: Optionally specify a change name (e.g., \`/ps:apply add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
24
+
25
+ **Steps**
26
+
27
+ 1. **Select the change**
28
+
29
+ If a name is provided, use it. Otherwise:
30
+ - Infer from conversation context if the user mentioned a change
31
+ - Auto-select if only one active change exists
32
+ - If ambiguous, run \`pscode list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
33
+
34
+ Always announce: "Using change: <name>" and how to override (e.g., \`/ps:apply <other>\`).
35
+
36
+ 2. **Trello Integration — move card to "Em Desenvolvimento" (optional)**
37
+
38
+ This is the FIRST action after selecting the change — signal immediately that development has started.
39
+
40
+ Use the **Read tool** (NOT a shell command) to read \`pscode/trello.yaml\` from the current working directory.
41
+ The Read tool is cross-platform and works on Windows, macOS, and Linux — never use \`cat\` or shell commands to read this file.
42
+ If the Read tool returns an error (file not found), skip all Trello steps.
43
+
44
+ Otherwise parse and extract \`boardId\`, \`lists.refining\`, \`lists.ready\`, \`lists.developing\`, and \`lists.testing\`.
45
+
46
+ Search for the change's card across configured lists in priority order:
47
+ \`refining\` → \`ready\` → \`backlog\` (whichever are configured):
48
+ \`\`\`tool
49
+ mcp__claude_ai_Trello_Custom__get_cards { list_id: "<list.id>" }
50
+ \`\`\`
51
+ Look for a card matching the change name (case-insensitive, partial match is sufficient).
52
+
53
+ **If \`lists.developing\` is configured:**
54
+ - **Card found:** move it to \`lists.developing\`.
55
+ - **No card found:** create one directly in \`lists.developing\` with name and desc in Portuguese.
56
+
57
+ **If \`lists.developing\` is NOT configured and \`lists.ready\` is configured:**
58
+ - Move/create in \`lists.ready\`.
59
+
60
+ In all cases, assign the current user:
61
+ \`\`\`tool
62
+ mcp__claude_ai_Trello_Custom__get_me
63
+ mcp__claude_ai_Trello_Custom__add_card_member { card_id: "<cardId>", member_id: "<me.id>" }
64
+ \`\`\`
65
+ Save \`cardId\` for the completion step.
66
+
67
+ If any Trello call fails, continue — Trello is auxiliary, never blocking.
68
+
69
+ 3. **Check status to understand the schema**
70
+ \`\`\`bash
71
+ pscode status --change "<name>" --json
72
+ \`\`\`
73
+ Parse the JSON to understand:
74
+ - \`schemaName\`: The workflow being used (e.g., "spec-driven")
75
+ - \`planningHome\`, \`changeRoot\`, and \`actionContext\`: planning scope and edit constraints
76
+ - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
77
+
78
+ 4. **Get apply instructions**
79
+
80
+ \`\`\`bash
81
+ pscode instructions apply --change "<name>" --json
82
+ \`\`\`
83
+
84
+ This returns:
85
+ - \`contextFiles\`: artifact ID -> array of concrete file paths (varies by schema)
86
+ - Progress (total, complete, remaining)
87
+ - Task list with status
88
+ - Dynamic instruction based on current state
89
+
90
+ **Handle states:**
91
+ - If \`state: "blocked"\` (missing artifacts): show message, suggest using \`/ps:continue\`
92
+ - If \`state: "all_done"\`: congratulate, suggest archive
93
+ - Otherwise: proceed to implementation
94
+
95
+ **Workspace guard:** If status JSON reports \`actionContext.mode: "workspace-planning"\` and \`allowedEditRoots\` is empty, explain that full workspace apply is not supported in this slice. Treat linked repos and folders as read-only context, ask the user to select an affected area, and STOP before editing files.
96
+
97
+ 5. **Read context files**
98
+
99
+ Read every file path listed under \`contextFiles\` from the apply instructions output.
100
+
101
+ 6. **Show current progress**
102
+
103
+ Display:
104
+ - Schema being used
105
+ - Progress: "N/M tasks complete"
106
+ - Remaining tasks overview
107
+ - Dynamic instruction from CLI
108
+
109
+ 7. **Implement tasks (loop until done or blocked)**
110
+
111
+ For each pending task:
112
+ - Show which task is being worked on
113
+ - Make the code changes required
114
+ - Keep changes minimal and focused
115
+ - Mark task complete in the tasks file: \`- [ ]\` → \`- [x]\`
116
+ - Continue to next task
117
+
118
+ **Pause if:**
119
+ - Task is unclear → ask for clarification
120
+ - Implementation reveals a design issue → suggest updating artifacts
121
+ - Error or blocker encountered → report and wait for guidance
122
+ - User interrupts
123
+
124
+ 8. **On completion: move card to "Em Teste" (optional)**
125
+
126
+ When all tasks are complete (\`state: "all_done"\`):
127
+
128
+ If Trello is configured and \`cardId\` was saved:
129
+
130
+ a. If \`lists.testing\` is configured, move the card there:
131
+ \`\`\`tool
132
+ mcp__claude_ai_Trello_Custom__update_card { card_id: "<cardId>", list_id: "<lists.testing.id>" }
133
+ \`\`\`
134
+
135
+ b. Add a comment in Portuguese:
136
+ \`\`\`tool
137
+ mcp__claude_ai_Trello_Custom__add_comment
138
+ card_id: "<cardId>"
139
+ text: |
140
+ Implementacao concluida via /ps:apply
141
+
142
+ Change: <change-name>
143
+ Tasks: <N>/<N> concluidas
144
+
145
+ Aguardando validacao antes de mover para Ready to Deploy.
146
+ \`\`\`
147
+
148
+ If any Trello call fails, continue — Trello is auxiliary, never blocking.
149
+
150
+ 9. **Fase de Testes — validar implementação**
151
+
152
+ After completing all tasks (and moving the card to "Em Teste" if Trello is configured),
153
+ use the **AskUserQuestion tool** to ask how the user wants to proceed with validation:
154
+
155
+ - **"Vou testar eu mesmo"** — user will test independently; wait for them to report back
156
+ - **"Quero que você teste"** — Claude should invoke the \`verify\` skill to validate the implementation
157
+ - **"Já testei, está funcionando"** — user already confirmed; proceed to move card to "Ready to Deploy"
158
+
159
+ **If user chooses "Vou testar eu mesmo":**
160
+ - Tell them to test and come back when ready (e.g., saying "está funcionando" or "encontrei um problema")
161
+ - Wait — do NOT proceed until the user responds
162
+
163
+ **If user chooses to have Claude test:**
164
+ - Use the **Skill tool** to invoke the \`verify\` skill, which runs the app and observes the change
165
+ - Report the findings clearly to the user
166
+ - Ask: "A implementação está funcionando como esperado?" (Sim / Não, encontrei um problema)
167
+
168
+ **When the user confirms it's working** (any path above):
169
+
170
+ If Trello is configured, \`cardId\` was saved, and \`lists.deploy\` is configured:
171
+ a. Move the card to "Ready to Deploy":
172
+ \`\`\`tool
173
+ mcp__claude_ai_Trello_Custom__update_card { card_id: "<cardId>", list_id: "<lists.deploy.id>" }
174
+ \`\`\`
175
+ b. Add a comment in Portuguese:
176
+ \`\`\`tool
177
+ mcp__claude_ai_Trello_Custom__add_comment
178
+ card_id: "<cardId>"
179
+ text: |
180
+ Implementacao validada e aprovada para deploy.
181
+
182
+ Testado por: <usuario / Claude>
183
+ Status: Funcionando
184
+
185
+ Proximo passo: /ps:archive <name> para arquivar a change.
186
+ \`\`\`
187
+
188
+ If any Trello call fails, continue — Trello is auxiliary, never blocking.
189
+
190
+ **If user reports a problem:**
191
+ - Acknowledge the issue and ask for details
192
+ - Resume implementation to fix the problem (loop back to step 7)
193
+ - Do NOT move the card to "Ready to Deploy" until the user confirms it's working
194
+
195
+ 10. **On completion or pause, show status**
196
+
197
+ Display:
198
+ - Tasks completed this session
199
+ - Overall progress: "N/M tasks complete"
200
+ - If all done and approved: mention Trello stage (Em Teste or Ready to Deploy) and suggest \`/ps:archive\`
201
+ - If paused: explain why and wait for guidance
202
+
203
+ **Output During Implementation**
204
+
205
+ \`\`\`
206
+ ## Implementing: <change-name> (schema: <schema-name>)
207
+
208
+ Working on task 3/7: <task description>
209
+ [...implementation happening...]
210
+ ✓ Task complete
211
+
212
+ Working on task 4/7: <task description>
213
+ [...implementation happening...]
214
+ ✓ Task complete
215
+ \`\`\`
216
+
217
+ **Output On Completion (aguardando testes)**
218
+
219
+ \`\`\`
220
+ ## Implementation Complete
221
+
222
+ **Change:** <change-name>
223
+ **Schema:** <schema-name>
224
+ **Progress:** 7/7 tasks complete ✓
225
+ **Trello:** Card moved to 🧪 Em Teste ← only shown if Trello is configured
226
+
227
+ ### Completed This Session
228
+ - [x] Task 1
229
+ - [x] Task 2
230
+ ...
231
+
232
+ All tasks complete! How would you like to validate the implementation?
233
+ \`\`\`
234
+
235
+ **Output After Validation Approved**
236
+
237
+ \`\`\`
238
+ ## Validation Approved ✅
239
+
240
+ **Change:** <change-name>
241
+ **Trello:** Card moved to 🚀 Ready to Deploy ← only shown if lists.deploy is configured
242
+
243
+ Ready to archive with \`/ps:archive\`.
244
+ \`\`\`
245
+
246
+ **Output On Pause (Issue Encountered)**
247
+
248
+ \`\`\`
249
+ ## Implementation Paused
250
+
251
+ **Change:** <change-name>
252
+ **Schema:** <schema-name>
253
+ **Progress:** 4/7 tasks complete
254
+
255
+ ### Issue Encountered
256
+ <description of the issue>
257
+
258
+ **Options:**
259
+ 1. <option 1>
260
+ 2. <option 2>
261
+ 3. Other approach
262
+
263
+ What would you like to do?
264
+ \`\`\`
265
+
266
+ **Guardrails**
267
+ - Keep going through tasks until done or blocked
268
+ - Always read context files before starting
269
+ - If task is ambiguous, pause and ask before implementing
270
+ - If implementation reveals issues, pause and suggest artifact updates
271
+ - Keep code changes minimal and scoped to each task
272
+ - Update task checkbox immediately after completing each task
273
+ - Pause on errors, blockers, or unclear requirements — don't guess
274
+ - Use contextFiles from CLI output, don't assume specific file names
275
+ - If Trello tools fail, continue normally — Trello is auxiliary, not blocking
276
+ - All content written to Trello must be in Portuguese
277
+ - Never move the card to "Ready to Deploy" without explicit user confirmation that the implementation is working
278
+ - If the user reports a problem during testing, loop back to fix before asking again
279
+ - Offer to invoke the \`verify\` skill when the user wants Claude to test — don't skip straight to archive
280
+
281
+ **Fluid Workflow Integration**
282
+
283
+ - **Can be invoked anytime**: Before all artifacts are done (if tasks exist), after partial implementation
284
+ - **Allows artifact updates**: If implementation reveals design issues, suggest updating artifacts
285
+ `;
286
+ }
287
+ //# sourceMappingURL=apply-change.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Skill Template Workflow Modules
3
+ *
4
+ * This file is generated by splitting the legacy monolithic
5
+ * templates file into workflow-focused modules.
6
+ */
7
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
8
+ export declare function getArchiveChangeSkillTemplate(): SkillTemplate;
9
+ export declare function getPsArchiveCommandTemplate(): CommandTemplate;
10
+ //# sourceMappingURL=archive-change.d.ts.map
@@ -0,0 +1,227 @@
1
+ export function getArchiveChangeSkillTemplate() {
2
+ return {
3
+ name: 'pscode-archive-change',
4
+ description: 'Archive a completed change. Use when the user wants to finalize and archive a change after implementation is complete.',
5
+ instructions: getArchiveInstructions(),
6
+ license: 'MIT',
7
+ compatibility: 'Requires pscode CLI.',
8
+ metadata: { author: 'pscode', version: '1.0' },
9
+ };
10
+ }
11
+ export function getPsArchiveCommandTemplate() {
12
+ return {
13
+ name: 'PS: Archive',
14
+ description: 'Archive a completed change',
15
+ category: 'Workflow',
16
+ tags: ['workflow', 'archive'],
17
+ content: getArchiveInstructions(),
18
+ };
19
+ }
20
+ function getArchiveInstructions() {
21
+ return `Archive a completed change.
22
+
23
+ **Input**: Optionally specify a change name (e.g., \`/ps:archive add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
24
+
25
+ **Steps**
26
+
27
+ 1. **If no change name provided, prompt for selection**
28
+
29
+ Run \`pscode list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
30
+
31
+ Show only active changes (not already archived).
32
+ Include the schema used for each change if available.
33
+
34
+ **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
35
+
36
+ 2. **Check artifact completion status**
37
+
38
+ Run \`pscode status --change "<name>" --json\` to check artifact completion.
39
+
40
+ Parse the JSON to understand:
41
+ - \`schemaName\`: The workflow being used
42
+ - \`planningHome\`, \`changeRoot\`, \`artifactPaths\`, and \`actionContext\`: path and scope context
43
+ - \`artifacts\`: List of artifacts with their status (\`done\` or other)
44
+
45
+ If status reports \`actionContext.mode: "workspace-planning"\`, explain that workspace archive is not supported in this slice and STOP.
46
+
47
+ **If any artifacts are not \`done\`:**
48
+ - Display warning listing incomplete artifacts
49
+ - Use **AskUserQuestion tool** to confirm user wants to proceed
50
+ - Proceed if user confirms
51
+
52
+ 3. **Check task completion status**
53
+
54
+ Read the tasks file (typically \`tasks.md\`) to check for incomplete tasks.
55
+
56
+ Count tasks marked with \`- [ ]\` (incomplete) vs \`- [x]\` (complete).
57
+
58
+ **If incomplete tasks found:**
59
+ - Display warning showing count of incomplete tasks
60
+ - Use **AskUserQuestion tool** to confirm user wants to proceed
61
+ - Proceed if user confirms
62
+
63
+ **If no tasks file exists:** Proceed without task-related warning.
64
+
65
+ 4. **Assess delta spec sync state**
66
+
67
+ Use \`artifactPaths.specs.existingOutputPaths\` from status JSON to check for delta specs. If none exist, proceed without sync prompt.
68
+
69
+ **If delta specs exist:**
70
+ - Compare each delta spec with its corresponding main spec at \`pscode/specs/<capability>/spec.md\`
71
+ - Determine what changes would be applied (adds, modifications, removals, renames)
72
+ - Show a combined summary before prompting
73
+
74
+ **Prompt options:**
75
+ - If changes needed: "Sync now (recommended)", "Archive without syncing"
76
+ - If already synced: "Archive now", "Sync anyway", "Cancel"
77
+
78
+ If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke pscode-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
79
+
80
+ 5. **Perform the archive**
81
+
82
+ Create an \`archive\` directory under \`planningHome.changesDir\` if it doesn't exist:
83
+ \`\`\`bash
84
+ mkdir -p "<planningHome.changesDir>/archive"
85
+ \`\`\`
86
+
87
+ Generate target name using current date: \`YYYY-MM-DD-<change-name>\`
88
+
89
+ **Check if target already exists:**
90
+ - If yes: Fail with error, suggest renaming existing archive or using different date
91
+ - If no: Move \`changeRoot\` to the archive directory
92
+
93
+ \`\`\`bash
94
+ mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
95
+ \`\`\`
96
+
97
+ 6. **Trello Integration — move card to "Concluído" (optional)**
98
+
99
+ Use the **Read tool** (NOT a shell command) to read \`pscode/trello.yaml\` from the current working directory.
100
+ The Read tool is cross-platform and works on Windows, macOS, and Linux — never use \`cat\` or shell commands to read this file.
101
+ If the Read tool returns an error (file not found), skip all Trello steps.
102
+
103
+ Otherwise parse and extract \`boardId\`, \`lists.done\` (and optionally \`lists.testing\`, \`lists.deploy\`, \`lists.developing\`, \`lists.ready\`, \`lists.refining\`, \`lists.backlog\`).
104
+
105
+ Search for the change's card across all configured lists in reverse-workflow order:
106
+ \`deploy\` → \`testing\` → \`developing\` → \`ready\` → \`refining\` → \`backlog\`.
107
+ Stop as soon as a matching card is found.
108
+
109
+ **If \`lists.done\` is configured:**
110
+ - **Card found:** move it to \`lists.done\` and mark as complete:
111
+ \`\`\`tool
112
+ mcp__claude_ai_Trello_Custom__update_card { card_id: "<id>", list_id: "<lists.done.id>", dueComplete: true }
113
+ \`\`\`
114
+ - **No card found:** create one in \`lists.done\`:
115
+ \`\`\`tool
116
+ mcp__claude_ai_Trello_Custom__create_card
117
+ list_id: "<lists.done.id>"
118
+ name: "<human-readable change name in Portuguese>"
119
+ desc: "Arquivada via /ps:archive"
120
+ \`\`\`
121
+ Then mark it complete.
122
+
123
+ Assign current user:
124
+ \`\`\`tool
125
+ mcp__claude_ai_Trello_Custom__get_me
126
+ mcp__claude_ai_Trello_Custom__add_card_member { card_id: "<cardId>", member_id: "<me.id>" }
127
+ \`\`\`
128
+
129
+ Mark any checklist items as complete:
130
+ \`\`\`tool
131
+ mcp__claude_ai_Trello_Custom__get_card_checklists { card_id: "<cardId>" }
132
+ \`\`\`
133
+ For each checklist item not already complete, call:
134
+ \`\`\`tool
135
+ mcp__claude_ai_Trello_Custom__update_checkitem { card_id: "<cardId>", checklist_id: "<clId>", checkitem_id: "<itemId>", state: "complete" }
136
+ \`\`\`
137
+
138
+ Add a completion comment in Portuguese:
139
+ \`\`\`tool
140
+ mcp__claude_ai_Trello_Custom__add_comment
141
+ card_id: "<cardId>"
142
+ text: |
143
+ Change arquivada via /ps:archive
144
+
145
+ Change: <change-name>
146
+ Schema: <schema-name>
147
+ Arquivada em: <archive-path>
148
+ Specs: <sincronizado / sem delta specs / sync pulado>
149
+ Tasks: <N>/<N> concluidas
150
+
151
+ Fluxo encerrado. Nenhuma acao adicional necessaria.
152
+ \`\`\`
153
+
154
+ If any Trello call fails, continue — Trello is auxiliary, never blocking.
155
+
156
+ 7. **Display summary**
157
+
158
+ Show archive completion summary including:
159
+ - Change name
160
+ - Schema that was used
161
+ - Archive location
162
+ - Spec sync status (synced / sync skipped / no delta specs)
163
+ - Note about any warnings (incomplete artifacts/tasks)
164
+ - Trello: mention if card was moved to "Concluído"
165
+
166
+ **Output On Success**
167
+
168
+ \`\`\`
169
+ ## Archive Complete
170
+
171
+ **Change:** <change-name>
172
+ **Schema:** <schema-name>
173
+ **Archived to:** <archive-path>
174
+ **Specs:** ✓ Synced to main specs
175
+ **Trello:** Card moved to ✅ Concluído ← only shown if Trello is configured
176
+
177
+ All artifacts complete. All tasks complete.
178
+ \`\`\`
179
+
180
+ **Output On Success With Warnings**
181
+
182
+ \`\`\`
183
+ ## Archive Complete (with warnings)
184
+
185
+ **Change:** <change-name>
186
+ **Schema:** <schema-name>
187
+ **Archived to:** <archive-path>
188
+ **Specs:** Sync skipped (user chose to skip)
189
+ **Trello:** Card moved to ✅ Concluído ← only shown if Trello is configured
190
+
191
+ **Warnings:**
192
+ - Archived with 2 incomplete artifacts
193
+ - Archived with 3 incomplete tasks
194
+ - Delta spec sync was skipped
195
+
196
+ Review the archive if this was not intentional.
197
+ \`\`\`
198
+
199
+ **Output On Error (Archive Exists)**
200
+
201
+ \`\`\`
202
+ ## Archive Failed
203
+
204
+ **Change:** <change-name>
205
+ **Target:** <archive-path>
206
+
207
+ Target archive directory already exists.
208
+
209
+ **Options:**
210
+ 1. Rename the existing archive
211
+ 2. Delete the existing archive if it's a duplicate
212
+ 3. Wait until a different date to archive
213
+ \`\`\`
214
+
215
+ **Guardrails**
216
+ - Always prompt for change selection if not provided
217
+ - Use artifact graph (pscode status --json) for completion checking
218
+ - Don't block archive on warnings — just inform and confirm
219
+ - Preserve .pscode.yaml when moving to archive (it moves with the directory)
220
+ - Show clear summary of what happened
221
+ - If sync is requested, use pscode-sync-specs approach (agent-driven)
222
+ - If delta specs exist, always run the sync assessment and show the combined summary before prompting
223
+ - If Trello tools fail, continue normally — Trello is auxiliary, not blocking
224
+ - All content written to Trello must be in Portuguese
225
+ `;
226
+ }
227
+ //# sourceMappingURL=archive-change.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Skill Template Workflow Modules
3
+ *
4
+ * This file is generated by splitting the legacy monolithic
5
+ * templates file into workflow-focused modules.
6
+ */
7
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
8
+ export declare function getBulkArchiveChangeSkillTemplate(): SkillTemplate;
9
+ export declare function getPsBulkArchiveCommandTemplate(): CommandTemplate;
10
+ //# sourceMappingURL=bulk-archive-change.d.ts.map