@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.
- package/LICENSE +22 -0
- package/README.md +142 -0
- package/bin/pscode.js +5 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +526 -0
- package/dist/commands/change.d.ts +35 -0
- package/dist/commands/change.js +277 -0
- package/dist/commands/completion.d.ts +72 -0
- package/dist/commands/completion.js +264 -0
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +611 -0
- package/dist/commands/context-store.d.ts +3 -0
- package/dist/commands/context-store.js +282 -0
- package/dist/commands/feedback.d.ts +9 -0
- package/dist/commands/feedback.js +183 -0
- package/dist/commands/initiative.d.ts +13 -0
- package/dist/commands/initiative.js +318 -0
- package/dist/commands/schema.d.ts +6 -0
- package/dist/commands/schema.js +869 -0
- package/dist/commands/show.d.ts +14 -0
- package/dist/commands/show.js +132 -0
- package/dist/commands/spec.d.ts +15 -0
- package/dist/commands/spec.js +225 -0
- package/dist/commands/validate.d.ts +24 -0
- package/dist/commands/validate.js +294 -0
- package/dist/commands/workflow/index.d.ts +19 -0
- package/dist/commands/workflow/index.js +13 -0
- package/dist/commands/workflow/initiative-link.d.ts +24 -0
- package/dist/commands/workflow/initiative-link.js +47 -0
- package/dist/commands/workflow/instructions.d.ts +29 -0
- package/dist/commands/workflow/instructions.js +344 -0
- package/dist/commands/workflow/new-change.d.ts +17 -0
- package/dist/commands/workflow/new-change.js +141 -0
- package/dist/commands/workflow/schemas.d.ts +10 -0
- package/dist/commands/workflow/schemas.js +34 -0
- package/dist/commands/workflow/set-change.d.ts +13 -0
- package/dist/commands/workflow/set-change.js +87 -0
- package/dist/commands/workflow/shared.d.ts +59 -0
- package/dist/commands/workflow/shared.js +116 -0
- package/dist/commands/workflow/status.d.ts +14 -0
- package/dist/commands/workflow/status.js +90 -0
- package/dist/commands/workflow/templates.d.ts +16 -0
- package/dist/commands/workflow/templates.js +69 -0
- package/dist/commands/workspace/context-status.d.ts +4 -0
- package/dist/commands/workspace/context-status.js +59 -0
- package/dist/commands/workspace/open-view.d.ts +62 -0
- package/dist/commands/workspace/open-view.js +228 -0
- package/dist/commands/workspace/open.d.ts +37 -0
- package/dist/commands/workspace/open.js +102 -0
- package/dist/commands/workspace/opener-selection.d.ts +11 -0
- package/dist/commands/workspace/opener-selection.js +93 -0
- package/dist/commands/workspace/operations.d.ts +28 -0
- package/dist/commands/workspace/operations.js +543 -0
- package/dist/commands/workspace/prompt-theme.d.ts +29 -0
- package/dist/commands/workspace/prompt-theme.js +24 -0
- package/dist/commands/workspace/registration.d.ts +13 -0
- package/dist/commands/workspace/registration.js +84 -0
- package/dist/commands/workspace/selection.d.ts +6 -0
- package/dist/commands/workspace/selection.js +122 -0
- package/dist/commands/workspace/types.d.ts +103 -0
- package/dist/commands/workspace/types.js +36 -0
- package/dist/commands/workspace.d.ts +6 -0
- package/dist/commands/workspace.js +678 -0
- package/dist/core/archive.d.ts +11 -0
- package/dist/core/archive.js +318 -0
- package/dist/core/artifact-graph/graph.d.ts +56 -0
- package/dist/core/artifact-graph/graph.js +141 -0
- package/dist/core/artifact-graph/index.d.ts +9 -0
- package/dist/core/artifact-graph/index.js +14 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts +183 -0
- package/dist/core/artifact-graph/instruction-loader.js +256 -0
- package/dist/core/artifact-graph/outputs.d.ts +14 -0
- package/dist/core/artifact-graph/outputs.js +39 -0
- package/dist/core/artifact-graph/resolver.d.ts +81 -0
- package/dist/core/artifact-graph/resolver.js +257 -0
- package/dist/core/artifact-graph/schema.d.ts +13 -0
- package/dist/core/artifact-graph/schema.js +108 -0
- package/dist/core/artifact-graph/state.d.ts +12 -0
- package/dist/core/artifact-graph/state.js +31 -0
- package/dist/core/artifact-graph/types.d.ts +40 -0
- package/dist/core/artifact-graph/types.js +29 -0
- package/dist/core/available-tools.d.ts +17 -0
- package/dist/core/available-tools.js +43 -0
- package/dist/core/change-metadata/index.d.ts +2 -0
- package/dist/core/change-metadata/index.js +2 -0
- package/dist/core/change-metadata/schema.d.ts +18 -0
- package/dist/core/change-metadata/schema.js +28 -0
- package/dist/core/change-status-policy.d.ts +50 -0
- package/dist/core/change-status-policy.js +70 -0
- package/dist/core/collections/index.d.ts +3 -0
- package/dist/core/collections/index.js +3 -0
- package/dist/core/collections/initiatives/collection.d.ts +4 -0
- package/dist/core/collections/initiatives/collection.js +17 -0
- package/dist/core/collections/initiatives/index.d.ts +6 -0
- package/dist/core/collections/initiatives/index.js +6 -0
- package/dist/core/collections/initiatives/operations.d.ts +49 -0
- package/dist/core/collections/initiatives/operations.js +175 -0
- package/dist/core/collections/initiatives/resolution.d.ts +87 -0
- package/dist/core/collections/initiatives/resolution.js +374 -0
- package/dist/core/collections/initiatives/schema.d.ts +41 -0
- package/dist/core/collections/initiatives/schema.js +134 -0
- package/dist/core/collections/initiatives/templates.d.ts +12 -0
- package/dist/core/collections/initiatives/templates.js +90 -0
- package/dist/core/collections/runtime.d.ts +46 -0
- package/dist/core/collections/runtime.js +194 -0
- package/dist/core/command-generation/adapters/claude.d.ts +13 -0
- package/dist/core/command-generation/adapters/claude.js +50 -0
- package/dist/core/command-generation/adapters/codex.d.ts +16 -0
- package/dist/core/command-generation/adapters/codex.js +39 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
- package/dist/core/command-generation/adapters/cursor.js +44 -0
- package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
- package/dist/core/command-generation/adapters/gemini.js +26 -0
- package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
- package/dist/core/command-generation/adapters/github-copilot.js +26 -0
- package/dist/core/command-generation/adapters/index.d.ts +11 -0
- package/dist/core/command-generation/adapters/index.js +11 -0
- package/dist/core/command-generation/generator.d.ts +21 -0
- package/dist/core/command-generation/generator.js +27 -0
- package/dist/core/command-generation/index.d.ts +22 -0
- package/dist/core/command-generation/index.js +24 -0
- package/dist/core/command-generation/registry.d.ts +35 -0
- package/dist/core/command-generation/registry.js +55 -0
- package/dist/core/command-generation/types.d.ts +56 -0
- package/dist/core/command-generation/types.js +8 -0
- package/dist/core/completions/command-registry.d.ts +3 -0
- package/dist/core/completions/command-registry.js +939 -0
- package/dist/core/completions/completion-provider.d.ts +71 -0
- package/dist/core/completions/completion-provider.js +129 -0
- package/dist/core/completions/factory.d.ts +64 -0
- package/dist/core/completions/factory.js +75 -0
- package/dist/core/completions/generators/bash-generator.d.ts +35 -0
- package/dist/core/completions/generators/bash-generator.js +230 -0
- package/dist/core/completions/generators/fish-generator.d.ts +32 -0
- package/dist/core/completions/generators/fish-generator.js +160 -0
- package/dist/core/completions/generators/powershell-generator.d.ts +36 -0
- package/dist/core/completions/generators/powershell-generator.js +266 -0
- package/dist/core/completions/generators/zsh-generator.d.ts +47 -0
- package/dist/core/completions/generators/zsh-generator.js +274 -0
- package/dist/core/completions/installers/bash-installer.d.ts +87 -0
- package/dist/core/completions/installers/bash-installer.js +318 -0
- package/dist/core/completions/installers/fish-installer.d.ts +43 -0
- package/dist/core/completions/installers/fish-installer.js +143 -0
- package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
- package/dist/core/completions/installers/powershell-installer.js +387 -0
- package/dist/core/completions/installers/zsh-installer.d.ts +117 -0
- package/dist/core/completions/installers/zsh-installer.js +421 -0
- package/dist/core/completions/shared-flags.d.ts +12 -0
- package/dist/core/completions/shared-flags.js +28 -0
- package/dist/core/completions/templates/bash-templates.d.ts +6 -0
- package/dist/core/completions/templates/bash-templates.js +30 -0
- package/dist/core/completions/templates/fish-templates.d.ts +7 -0
- package/dist/core/completions/templates/fish-templates.js +45 -0
- package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
- package/dist/core/completions/templates/powershell-templates.js +34 -0
- package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
- package/dist/core/completions/templates/zsh-templates.js +45 -0
- package/dist/core/completions/types.d.ts +101 -0
- package/dist/core/completions/types.js +2 -0
- package/dist/core/config-prompts.d.ts +9 -0
- package/dist/core/config-prompts.js +34 -0
- package/dist/core/config-schema.d.ts +86 -0
- package/dist/core/config-schema.js +213 -0
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.js +13 -0
- package/dist/core/context-store/binding.d.ts +53 -0
- package/dist/core/context-store/binding.js +197 -0
- package/dist/core/context-store/errors.d.ts +20 -0
- package/dist/core/context-store/errors.js +22 -0
- package/dist/core/context-store/foundation.d.ts +54 -0
- package/dist/core/context-store/foundation.js +318 -0
- package/dist/core/context-store/index.d.ts +6 -0
- package/dist/core/context-store/index.js +6 -0
- package/dist/core/context-store/operations.d.ts +62 -0
- package/dist/core/context-store/operations.js +352 -0
- package/dist/core/context-store/registry.d.ts +35 -0
- package/dist/core/context-store/registry.js +158 -0
- package/dist/core/converters/json-converter.d.ts +6 -0
- package/dist/core/converters/json-converter.js +51 -0
- package/dist/core/global-config.d.ts +49 -0
- package/dist/core/global-config.js +124 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.js +7 -0
- package/dist/core/init.d.ts +40 -0
- package/dist/core/init.js +676 -0
- package/dist/core/legacy-cleanup.d.ts +162 -0
- package/dist/core/legacy-cleanup.js +489 -0
- package/dist/core/list.d.ts +9 -0
- package/dist/core/list.js +171 -0
- package/dist/core/migration.d.ts +23 -0
- package/dist/core/migration.js +108 -0
- package/dist/core/openspec-migration.d.ts +71 -0
- package/dist/core/openspec-migration.js +320 -0
- package/dist/core/parsers/change-parser.d.ts +13 -0
- package/dist/core/parsers/change-parser.js +197 -0
- package/dist/core/parsers/markdown-parser.d.ts +26 -0
- package/dist/core/parsers/markdown-parser.js +227 -0
- package/dist/core/parsers/requirement-blocks.d.ts +37 -0
- package/dist/core/parsers/requirement-blocks.js +201 -0
- package/dist/core/parsers/spec-structure.d.ts +9 -0
- package/dist/core/parsers/spec-structure.js +88 -0
- package/dist/core/planning-home.d.ts +21 -0
- package/dist/core/planning-home.js +108 -0
- package/dist/core/profile-sync-drift.d.ts +38 -0
- package/dist/core/profile-sync-drift.js +203 -0
- package/dist/core/profiles.d.ts +26 -0
- package/dist/core/profiles.js +43 -0
- package/dist/core/project-config.d.ts +64 -0
- package/dist/core/project-config.js +223 -0
- package/dist/core/schemas/base.schema.d.ts +13 -0
- package/dist/core/schemas/base.schema.js +13 -0
- package/dist/core/schemas/change.schema.d.ts +73 -0
- package/dist/core/schemas/change.schema.js +31 -0
- package/dist/core/schemas/index.d.ts +4 -0
- package/dist/core/schemas/index.js +4 -0
- package/dist/core/schemas/spec.schema.d.ts +18 -0
- package/dist/core/schemas/spec.schema.js +15 -0
- package/dist/core/shared/index.d.ts +8 -0
- package/dist/core/shared/index.js +8 -0
- package/dist/core/shared/skill-generation.d.ts +49 -0
- package/dist/core/shared/skill-generation.js +102 -0
- package/dist/core/shared/tool-detection.d.ts +71 -0
- package/dist/core/shared/tool-detection.js +158 -0
- package/dist/core/specs-apply.d.ts +73 -0
- package/dist/core/specs-apply.js +392 -0
- package/dist/core/styles/palette.d.ts +7 -0
- package/dist/core/styles/palette.js +8 -0
- package/dist/core/templates/index.d.ts +8 -0
- package/dist/core/templates/index.js +9 -0
- package/dist/core/templates/skill-templates.d.ts +21 -0
- package/dist/core/templates/skill-templates.js +21 -0
- package/dist/core/templates/types.d.ts +19 -0
- package/dist/core/templates/types.js +5 -0
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +287 -0
- package/dist/core/templates/workflows/archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/archive-change.js +227 -0
- package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/bulk-archive-change.js +492 -0
- package/dist/core/templates/workflows/continue-change.d.ts +10 -0
- package/dist/core/templates/workflows/continue-change.js +234 -0
- package/dist/core/templates/workflows/explore.d.ts +10 -0
- package/dist/core/templates/workflows/explore.js +755 -0
- package/dist/core/templates/workflows/feedback.d.ts +9 -0
- package/dist/core/templates/workflows/feedback.js +108 -0
- package/dist/core/templates/workflows/ff-change.d.ts +10 -0
- package/dist/core/templates/workflows/ff-change.js +200 -0
- package/dist/core/templates/workflows/new-change.d.ts +10 -0
- package/dist/core/templates/workflows/new-change.js +143 -0
- package/dist/core/templates/workflows/onboard.d.ts +10 -0
- package/dist/core/templates/workflows/onboard.js +607 -0
- package/dist/core/templates/workflows/propose.d.ts +10 -0
- package/dist/core/templates/workflows/propose.js +347 -0
- package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
- package/dist/core/templates/workflows/sync-specs.js +290 -0
- package/dist/core/templates/workflows/trello-draft.d.ts +12 -0
- package/dist/core/templates/workflows/trello-draft.js +217 -0
- package/dist/core/templates/workflows/trello-setup.d.ts +12 -0
- package/dist/core/templates/workflows/trello-setup.js +315 -0
- package/dist/core/templates/workflows/verify-change.d.ts +10 -0
- package/dist/core/templates/workflows/verify-change.js +338 -0
- package/dist/core/trello-config.d.ts +90 -0
- package/dist/core/trello-config.js +86 -0
- package/dist/core/trello-init-prompt.d.ts +61 -0
- package/dist/core/trello-init-prompt.js +180 -0
- package/dist/core/update.d.ts +82 -0
- package/dist/core/update.js +560 -0
- package/dist/core/validation/constants.d.ts +34 -0
- package/dist/core/validation/constants.js +40 -0
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.js +2 -0
- package/dist/core/validation/validator.d.ts +33 -0
- package/dist/core/validation/validator.js +418 -0
- package/dist/core/view.d.ts +8 -0
- package/dist/core/view.js +168 -0
- package/dist/core/workspace/foundation.d.ts +62 -0
- package/dist/core/workspace/foundation.js +274 -0
- package/dist/core/workspace/index.d.ts +8 -0
- package/dist/core/workspace/index.js +8 -0
- package/dist/core/workspace/legacy-state.d.ts +28 -0
- package/dist/core/workspace/legacy-state.js +200 -0
- package/dist/core/workspace/link-input.d.ts +9 -0
- package/dist/core/workspace/link-input.js +32 -0
- package/dist/core/workspace/open-surface.d.ts +43 -0
- package/dist/core/workspace/open-surface.js +214 -0
- package/dist/core/workspace/openers.d.ts +21 -0
- package/dist/core/workspace/openers.js +119 -0
- package/dist/core/workspace/registry.d.ts +24 -0
- package/dist/core/workspace/registry.js +146 -0
- package/dist/core/workspace/skills.d.ts +57 -0
- package/dist/core/workspace/skills.js +334 -0
- package/dist/core/workspace/state-io.d.ts +10 -0
- package/dist/core/workspace/state-io.js +119 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/prompts/searchable-multi-select.d.ts +28 -0
- package/dist/prompts/searchable-multi-select.js +159 -0
- package/dist/telemetry/config.d.ts +38 -0
- package/dist/telemetry/config.js +136 -0
- package/dist/telemetry/index.d.ts +31 -0
- package/dist/telemetry/index.js +164 -0
- package/dist/ui/ascii-patterns.d.ts +16 -0
- package/dist/ui/ascii-patterns.js +133 -0
- package/dist/ui/welcome-screen.d.ts +10 -0
- package/dist/ui/welcome-screen.js +146 -0
- package/dist/utils/change-metadata.d.ts +54 -0
- package/dist/utils/change-metadata.js +141 -0
- package/dist/utils/change-utils.d.ts +71 -0
- package/dist/utils/change-utils.js +123 -0
- package/dist/utils/command-references.d.ts +18 -0
- package/dist/utils/command-references.js +20 -0
- package/dist/utils/file-system.d.ts +41 -0
- package/dist/utils/file-system.js +301 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/interactive.d.ts +18 -0
- package/dist/utils/interactive.js +21 -0
- package/dist/utils/item-discovery.d.ts +4 -0
- package/dist/utils/item-discovery.js +72 -0
- package/dist/utils/match.d.ts +3 -0
- package/dist/utils/match.js +22 -0
- package/dist/utils/shell-detection.d.ts +20 -0
- package/dist/utils/shell-detection.js +41 -0
- package/dist/utils/task-progress.d.ts +8 -0
- package/dist/utils/task-progress.js +36 -0
- package/package.json +84 -0
- package/schemas/spec-driven/schema.yaml +153 -0
- package/schemas/spec-driven/templates/design.md +19 -0
- package/schemas/spec-driven/templates/proposal.md +23 -0
- package/schemas/spec-driven/templates/spec.md +8 -0
- package/schemas/spec-driven/templates/tasks.md +9 -0
- package/schemas/workspace-planning/schema.yaml +72 -0
- package/schemas/workspace-planning/templates/design.md +33 -0
- package/schemas/workspace-planning/templates/proposal.md +28 -0
- package/schemas/workspace-planning/templates/spec.md +9 -0
- package/schemas/workspace-planning/templates/tasks.md +15 -0
- package/scripts/postinstall.js +83 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
export function getTrelloDraftSkillTemplate() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'pscode-trello-draft',
|
|
4
|
+
description: 'Capture a raw idea or concept into the Backlog Trello list. Use when the user wants to quickly record something without refining it into a task yet.',
|
|
5
|
+
instructions: getTrelloDraftInstructions(),
|
|
6
|
+
license: 'MIT',
|
|
7
|
+
compatibility: 'Requires pscode CLI and Trello MCP server configured via /ps:trello-setup.',
|
|
8
|
+
metadata: { author: 'pscode', version: '1.0' },
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function getTrelloDraftInstructions() {
|
|
12
|
+
return `Capture uma ideia ou conceito bruto diretamente no Backlog do Trello.
|
|
13
|
+
|
|
14
|
+
**Input**: Texto após \`/ps:draft\` é a descrição da ideia (pode ser bem rascunho — palavras soltas, fragmentos, intuições vagas).
|
|
15
|
+
Se omitido, perguntar ao usuário.
|
|
16
|
+
|
|
17
|
+
Este comando é intencionalmente sem atrito. Diferente de \`/ps:task\`, faz estruturação mínima — o objetivo é velocidade de captura, não clareza.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 1 — Read Trello config
|
|
22
|
+
|
|
23
|
+
Use the **Read tool** (NOT a shell command) to read \`pscode/trello.yaml\` from the current working directory.
|
|
24
|
+
The Read tool is cross-platform and works on Windows, macOS, and Linux — never use \`cat\` or shell commands to read this file.
|
|
25
|
+
If the Read tool returns an error (file not found), treat it as "NO_TRELLO_CONFIG".
|
|
26
|
+
|
|
27
|
+
**If file not found:**
|
|
28
|
+
> ⚠️ Trello não está configurado neste projeto.
|
|
29
|
+
> Execute \`/ps:trello-setup\` para configurar a integração antes de usar este comando.
|
|
30
|
+
|
|
31
|
+
Stop here if no config.
|
|
32
|
+
|
|
33
|
+
Parse the YAML and extract:
|
|
34
|
+
- \`boardId\`
|
|
35
|
+
- \`lists.backlog.id\` → the list where the card will be created
|
|
36
|
+
- \`lists.backlog.name\` → for display purposes
|
|
37
|
+
- \`labels\` → \`{ enabled: bool, items?: { bug, implementacao, melhoria, debito-tecnico } }\`
|
|
38
|
+
|
|
39
|
+
**If \`lists.backlog\` is not configured:**
|
|
40
|
+
> ⚠️ Estágio "backlog" não está configurado em \`pscode/trello.yaml\`.
|
|
41
|
+
>
|
|
42
|
+
> Execute \`/ps:trello-setup\` para configurar a integração.
|
|
43
|
+
|
|
44
|
+
Stop here if backlog list is missing.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Step 2 — Collect the idea
|
|
49
|
+
|
|
50
|
+
If the user provided text, use it as-is.
|
|
51
|
+
|
|
52
|
+
If nothing was provided, use **AskUserQuestion** to ask:
|
|
53
|
+
> "Qual ideia você quer registrar? (pode ser bem rascunho mesmo)"
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 3 — Minimal structuring
|
|
58
|
+
|
|
59
|
+
Apply only light formatting. Do NOT over-engineer — this is a draft.
|
|
60
|
+
|
|
61
|
+
Produce:
|
|
62
|
+
|
|
63
|
+
**a. \`title\`** — The idea in up to ~80 chars, starting with a noun or verb.
|
|
64
|
+
- Keep the user's original wording as much as possible
|
|
65
|
+
- **No emojis** in the title
|
|
66
|
+
|
|
67
|
+
**b. \`context\`** (optional, 1–2 sentences max) — Only add if there's obvious project context to attach.
|
|
68
|
+
If the idea is self-contained or opaque, leave blank.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Step 4 — Detect label (if labels enabled)
|
|
73
|
+
|
|
74
|
+
**Only run this step if \`labels.enabled = true\` and \`labels.items\` is present in config.**
|
|
75
|
+
|
|
76
|
+
Analyze the idea text and title to determine which label best fits.
|
|
77
|
+
Use these classification rules:
|
|
78
|
+
|
|
79
|
+
| Label | Quando usar |
|
|
80
|
+
|-----------------|-----------------------------------------------------------------------------|
|
|
81
|
+
| 🐛 BUG | Menciona erro, falha, bug, quebrado, não funciona, comportamento errado |
|
|
82
|
+
| ⚙️ IMPLEMENTAÇÃO | Nova feature, adicionar, criar, implementar algo que não existe ainda |
|
|
83
|
+
| ✨ MELHORIA | Melhorar, otimizar, refinar, aprimorar algo que já existe |
|
|
84
|
+
| 💳 DÉBITO TÉCNICO | Refatorar, limpar, reorganizar, remover código legado, dívida técnica |
|
|
85
|
+
|
|
86
|
+
**Decision logic:**
|
|
87
|
+
|
|
88
|
+
1. If the idea clearly matches one label with high confidence (>80%) → use it silently, without asking.
|
|
89
|
+
2. If the idea is ambiguous or could fit 2+ labels → use **AskUserQuestion** to ask:
|
|
90
|
+
> "Que tipo de card é esse?"
|
|
91
|
+
> - 🐛 BUG — Erro ou comportamento incorreto
|
|
92
|
+
> - ⚙️ IMPLEMENTAÇÃO — Nova funcionalidade
|
|
93
|
+
> - ✨ MELHORIA — Aperfeiçoamento de algo existente
|
|
94
|
+
> - 💳 DÉBITO TÉCNICO — Refatoração e limpeza de código
|
|
95
|
+
> - Sem label — Não categorizar
|
|
96
|
+
|
|
97
|
+
3. If the label key chosen is not in \`labels.items\` (user may have configured a subset), skip labeling.
|
|
98
|
+
|
|
99
|
+
Save the resolved label as \`chosenLabel\` (or \`null\` if no label applies or user chose "Sem label").
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Step 5 — Assemble the card description
|
|
104
|
+
|
|
105
|
+
**No emojis anywhere in the description.**
|
|
106
|
+
|
|
107
|
+
If context is present:
|
|
108
|
+
\`\`\`
|
|
109
|
+
<context>
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
Ideia original: "<raw input verbatim>"
|
|
113
|
+
|
|
114
|
+
Proximo passo: /ps:propose para refinar e gerar os artefatos da change.
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
If no context:
|
|
118
|
+
\`\`\`
|
|
119
|
+
Ideia original: "<raw input verbatim>"
|
|
120
|
+
|
|
121
|
+
Proximo passo: /ps:propose para refinar e gerar os artefatos da change.
|
|
122
|
+
\`\`\`
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Step 6 — Create the card
|
|
127
|
+
|
|
128
|
+
\`\`\`tool
|
|
129
|
+
mcp__claude_ai_Trello_Custom__create_card
|
|
130
|
+
list_id: "<lists.backlog.id>"
|
|
131
|
+
name: "<title>"
|
|
132
|
+
desc: "<assembled description>"
|
|
133
|
+
\`\`\`
|
|
134
|
+
|
|
135
|
+
**Do NOT assign any member.**
|
|
136
|
+
|
|
137
|
+
Save the returned card \`id\` as \`cardId\` and \`url\` as \`cardUrl\`.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Step 7 — Add next-step comment
|
|
142
|
+
|
|
143
|
+
Add a comment to the card with the command to take this task to the next stage,
|
|
144
|
+
formatted in Markdown so it is easy to copy and paste.
|
|
145
|
+
|
|
146
|
+
\`\`\`tool
|
|
147
|
+
mcp__claude_ai_Trello_Custom__add_comment
|
|
148
|
+
card_id: "<cardId>"
|
|
149
|
+
text: |
|
|
150
|
+
## Próximo passo
|
|
151
|
+
|
|
152
|
+
Para refinar e gerar os artefatos da change, rode:
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
/ps:propose
|
|
156
|
+
\`\`\`
|
|
157
|
+
\`\`\`
|
|
158
|
+
|
|
159
|
+
If this call fails, log the error and continue — the comment is auxiliary, never blocking.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Step 8 — Apply label (if resolved)
|
|
164
|
+
|
|
165
|
+
**Only if \`chosenLabel\` is not null:**
|
|
166
|
+
|
|
167
|
+
\`\`\`tool
|
|
168
|
+
mcp__claude_ai_Trello_Custom__add_label_to_card
|
|
169
|
+
card_id: "<cardId>"
|
|
170
|
+
label_id: "<chosenLabel.id>"
|
|
171
|
+
\`\`\`
|
|
172
|
+
|
|
173
|
+
If this call fails, log the error and continue — label is auxiliary, never blocking.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Step 9 — Show summary
|
|
178
|
+
|
|
179
|
+
\`\`\`
|
|
180
|
+
## Ideia registrada ✓
|
|
181
|
+
|
|
182
|
+
**Título:** <title>
|
|
183
|
+
**Lista:** <lists.backlog.name>
|
|
184
|
+
**Label:** <chosenLabel emoji + name> (ou "sem label" se não aplicada)
|
|
185
|
+
**Card:** <cardUrl>
|
|
186
|
+
|
|
187
|
+
Comando da próxima etapa adicionado nos comentários do card.
|
|
188
|
+
Sem responsável atribuído.
|
|
189
|
+
Quando quiser refinar: \`/ps:explore\` ou \`/ps:task\`
|
|
190
|
+
Quando quiser propor diretamente: \`/ps:propose\`
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Guardrails
|
|
196
|
+
|
|
197
|
+
- **Mínima intervenção** — o valor deste comando é a velocidade de captura; não refinar demais
|
|
198
|
+
- **Preservar o texto original** verbatim na descrição
|
|
199
|
+
- **Nunca atribuir membro** — cards de draft são sempre sem dono
|
|
200
|
+
- **Nunca criar change** (\`pscode new change\`) — este comando é apenas Trello
|
|
201
|
+
- **Se MCP falhar**, exibir o conteúdo no chat para registro manual
|
|
202
|
+
- **Título em português** por padrão, mas se o usuário escreveu em inglês, manter em inglês
|
|
203
|
+
- **Labels são opcionais** — se \`labels.enabled = false\` ou o call MCP falhar, continuar sem label
|
|
204
|
+
- **Comentário com o comando da próxima etapa é auxiliar** — se o MCP falhar ao comentar, não bloquear a criação do card
|
|
205
|
+
- **Perguntar sobre label apenas quando ambíguo** — para ideias claras, classificar silenciosamente
|
|
206
|
+
`;
|
|
207
|
+
}
|
|
208
|
+
export function getTrelloDraftCommandTemplate() {
|
|
209
|
+
return {
|
|
210
|
+
name: 'PS: Draft',
|
|
211
|
+
description: 'Capture a raw idea or concept into the Backlog Trello list — frictionless, no refinement required',
|
|
212
|
+
category: 'Workflow',
|
|
213
|
+
tags: ['trello', 'draft', 'ideias', 'backlog', 'workflow'],
|
|
214
|
+
content: getTrelloDraftInstructions(),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=trello-draft.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trello Setup Skill / Command Template
|
|
3
|
+
*
|
|
4
|
+
* Guides the user through configuring Trello integration for their
|
|
5
|
+
* pscode workflow. Creates `pscode/trello.yaml` with the board
|
|
6
|
+
* and list IDs derived from an existing board or a newly created one.
|
|
7
|
+
* Also handles optional label/etiqueta creation on the board.
|
|
8
|
+
*/
|
|
9
|
+
import type { SkillTemplate, CommandTemplate } from '../types.js';
|
|
10
|
+
export declare function getTrelloSetupSkillTemplate(): SkillTemplate;
|
|
11
|
+
export declare function getTrelloSetupCommandTemplate(): CommandTemplate;
|
|
12
|
+
//# sourceMappingURL=trello-setup.d.ts.map
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
export function getTrelloSetupSkillTemplate() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'pscode-trello-setup',
|
|
4
|
+
description: 'Configure Trello integration for your Pscode workflow. Checks MCP availability, reads or creates a Trello board, and writes pscode/trello.yaml with your stage-to-list mapping.',
|
|
5
|
+
instructions: getTrelloSetupInstructions(),
|
|
6
|
+
license: 'MIT',
|
|
7
|
+
compatibility: 'Requires pscode CLI and the Trello MCP server.',
|
|
8
|
+
metadata: { author: 'pscode', version: '1.0' },
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function getTrelloSetupInstructions() {
|
|
12
|
+
return `Configure Trello integration for your Pscode workflow.
|
|
13
|
+
|
|
14
|
+
This skill writes \`pscode/trello.yaml\` — a small config file that all Trello-aware commands
|
|
15
|
+
(\`/ps:task\`, \`/ps:draft\`, \`/ps:propose\`, \`/ps:apply\`, \`/ps:archive\`) read at
|
|
16
|
+
runtime to know which Trello list corresponds to each workflow stage and which labels are available.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Step 1 — Check MCP availability
|
|
21
|
+
|
|
22
|
+
Try to identify the current Trello user:
|
|
23
|
+
|
|
24
|
+
\`\`\`tool
|
|
25
|
+
mcp__claude_ai_Trello_Custom__get_me
|
|
26
|
+
\`\`\`
|
|
27
|
+
|
|
28
|
+
**If this call fails or returns an error:**
|
|
29
|
+
> ⚠️ The Trello MCP server is not available in this session.
|
|
30
|
+
>
|
|
31
|
+
> To enable it, add the Trello MCP server to your Claude Code configuration:
|
|
32
|
+
> \`\`\`
|
|
33
|
+
> claude mcp add trello <server-url>
|
|
34
|
+
> \`\`\`
|
|
35
|
+
> Then restart Claude Code and re-run \`/ps:trello-setup\`.
|
|
36
|
+
|
|
37
|
+
Stop here if MCP is unavailable.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 2 — Read existing config
|
|
42
|
+
|
|
43
|
+
Use the **Read tool** (NOT a shell command) to read \`pscode/trello.yaml\` from the current working directory.
|
|
44
|
+
The Read tool is cross-platform and works on Windows, macOS, and Linux — never use \`cat\` or shell commands to read this file.
|
|
45
|
+
If the Read tool returns an error (file not found), treat it as state C (no config).
|
|
46
|
+
|
|
47
|
+
Parse the file content. Three possible states:
|
|
48
|
+
|
|
49
|
+
### A) \`configured: true\` — already fully configured
|
|
50
|
+
Display the current configuration and ask: "Reconfigurar a integração Trello?" (Sim / Não).
|
|
51
|
+
If "Não", stop here.
|
|
52
|
+
|
|
53
|
+
### B) \`configured: false\` — partial config saved by \`pscode init\`
|
|
54
|
+
|
|
55
|
+
This means the user already answered the preference questions in the CLI.
|
|
56
|
+
Extract the following fields:
|
|
57
|
+
- \`hasExistingBoard\` → bool
|
|
58
|
+
- \`boardId\` → string (only if hasExistingBoard = true)
|
|
59
|
+
- \`stages\` → array of selected stage keys
|
|
60
|
+
- \`stageNames\` → map of stage key → display name
|
|
61
|
+
- \`labels\` → \`{ enabled: bool, selected?: string[] }\`
|
|
62
|
+
|
|
63
|
+
Display:
|
|
64
|
+
\`\`\`
|
|
65
|
+
## Continuando configuração do Trello
|
|
66
|
+
|
|
67
|
+
Detectei preferências salvas durante o \`pscode init\`:
|
|
68
|
+
|
|
69
|
+
Quadro existente: <Sim/Não>
|
|
70
|
+
\${hasExistingBoard ? 'Board ID: <boardId>' : 'Criar novo quadro'}
|
|
71
|
+
Estágios selecionados: <stage1>, <stage2>, ...
|
|
72
|
+
Labels: \${labels?.enabled ? (labels.selected ?? ['bug','implementacao','melhoria','debito-tecnico']).join(', ') : 'desativadas'}
|
|
73
|
+
|
|
74
|
+
✓ Pulando perguntas já respondidas — indo direto para conexão das listas.
|
|
75
|
+
\`\`\`
|
|
76
|
+
|
|
77
|
+
Skip Steps 3A/3B and go directly to **Step 3C** (connect lists for existing board)
|
|
78
|
+
or **Step 3D** (create board for new board).
|
|
79
|
+
Then proceed to **Step 3E** (create labels) if \`labels.enabled = true\`.
|
|
80
|
+
|
|
81
|
+
### C) "NO_CONFIG" — fresh setup, no preferences saved yet
|
|
82
|
+
|
|
83
|
+
Proceed to Step 3 normally (full interactive flow).
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Step 3 — Select or create board
|
|
88
|
+
|
|
89
|
+
**(Skip this step if partial config was found in Step 2B)**
|
|
90
|
+
|
|
91
|
+
Use **AskUserQuestion** to ask:
|
|
92
|
+
|
|
93
|
+
> "Você já tem um quadro Trello configurado com as colunas do seu fluxo?"
|
|
94
|
+
> - Sim, já tenho um quadro
|
|
95
|
+
> - Não, quero criar um novo quadro
|
|
96
|
+
|
|
97
|
+
Then ask which columns the user wants using **AskUserQuestion** with \`multiSelect: true\`:
|
|
98
|
+
|
|
99
|
+
| Estágio | Coluna sugerida |
|
|
100
|
+
|------------|------------------------|
|
|
101
|
+
| backlog ✱ | 📋 Backlog |
|
|
102
|
+
| refining | 🔍 Em Refinamento |
|
|
103
|
+
| ready | ✅ Ready to Dev |
|
|
104
|
+
| developing | 🚧 Em Desenvolvimento |
|
|
105
|
+
| testing | 🧪 Em Teste |
|
|
106
|
+
| deploy | 🚀 Ready to Deploy |
|
|
107
|
+
| done ✱ | ✅ Concluído |
|
|
108
|
+
| cancelled | ❌ Cancelado |
|
|
109
|
+
|
|
110
|
+
*(✱ = obrigatório)*
|
|
111
|
+
|
|
112
|
+
At minimum, require **backlog** and **done**.
|
|
113
|
+
|
|
114
|
+
Optionally ask for custom column names.
|
|
115
|
+
|
|
116
|
+
Then ask about labels using **AskUserQuestion**:
|
|
117
|
+
> "Deseja usar labels/etiquetas para categorizar os cards automaticamente?"
|
|
118
|
+
> - Sim — o agente analisa o contexto e aplica a label correta (BUG, IMPLEMENTAÇÃO, MELHORIA, DÉBITO TÉCNICO)
|
|
119
|
+
> - Não — sem labels
|
|
120
|
+
|
|
121
|
+
If "Sim", ask which labels to enable (multiSelect):
|
|
122
|
+
- 🐛 BUG — Erro ou comportamento incorreto
|
|
123
|
+
- ⚙️ IMPLEMENTAÇÃO — Nova funcionalidade desenvolvida do zero
|
|
124
|
+
- ✨ MELHORIA — Aperfeiçoamento ou otimização de algo existente
|
|
125
|
+
- 💳 DÉBITO TÉCNICO — Refatoração, limpeza de código ou resolução de dívida técnica
|
|
126
|
+
|
|
127
|
+
Save the chosen label keys as \`labelsToCreate\` (defaults: all four if none unchecked).
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Step 3C — Connect lists for existing board
|
|
132
|
+
|
|
133
|
+
**(Used when \`hasExistingBoard: true\`, whether from CLI init or this step)**
|
|
134
|
+
|
|
135
|
+
1. Fetch the lists of the board:
|
|
136
|
+
\`\`\`tool
|
|
137
|
+
mcp__claude_ai_Trello_Custom__get_lists { board_id: "<boardId>" }
|
|
138
|
+
\`\`\`
|
|
139
|
+
|
|
140
|
+
2. For each selected stage, use **AskUserQuestion** to let the user match a Trello list.
|
|
141
|
+
Show the lists returned above. Group the questions:
|
|
142
|
+
- Group 1 (discovery): backlog, refining
|
|
143
|
+
- Group 2 (execution): ready, developing, testing
|
|
144
|
+
- Group 3 (closure): deploy, done, cancelled
|
|
145
|
+
|
|
146
|
+
For stages the user doesn't want to map, let them choose "Não usar este estágio".
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Step 3D — Create new board
|
|
151
|
+
|
|
152
|
+
**(Used when \`hasExistingBoard: false\`)**
|
|
153
|
+
|
|
154
|
+
1. Use **AskUserQuestion** to ask for a board name
|
|
155
|
+
(default: "Pscode — <project-name inferred from directory>").
|
|
156
|
+
|
|
157
|
+
2. Create the Trello board:
|
|
158
|
+
\`\`\`tool
|
|
159
|
+
mcp__claude_ai_Trello_Custom__create_board { name: "<boardName>" }
|
|
160
|
+
\`\`\`
|
|
161
|
+
Save \`board.id\` as \`boardId\`.
|
|
162
|
+
|
|
163
|
+
3. Fetch the auto-created lists and archive them:
|
|
164
|
+
\`\`\`tool
|
|
165
|
+
mcp__claude_ai_Trello_Custom__get_lists { board_id: "<boardId>" }
|
|
166
|
+
\`\`\`
|
|
167
|
+
For each auto-created list:
|
|
168
|
+
\`\`\`tool
|
|
169
|
+
mcp__claude_ai_Trello_Custom__archive_list { list_id: "<id>" }
|
|
170
|
+
\`\`\`
|
|
171
|
+
|
|
172
|
+
4. Create the workflow lists in order (one \`create_list\` call per selected stage):
|
|
173
|
+
\`\`\`tool
|
|
174
|
+
mcp__claude_ai_Trello_Custom__create_list { board_id: "<boardId>", name: "<stageName>", pos: "bottom" }
|
|
175
|
+
\`\`\`
|
|
176
|
+
Save each returned \`id\` mapped to its stage key.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Step 3E — Create labels on the board
|
|
181
|
+
|
|
182
|
+
**(Run after Step 3C or 3D, only if labels are enabled)**
|
|
183
|
+
|
|
184
|
+
The canonical label definitions are:
|
|
185
|
+
|
|
186
|
+
| Chave | Nome | Cor |
|
|
187
|
+
|-----------------|-----------------|--------|
|
|
188
|
+
| bug | BUG | red |
|
|
189
|
+
| implementacao | IMPLEMENTAÇÃO | blue |
|
|
190
|
+
| melhoria | MELHORIA | green |
|
|
191
|
+
| debito-tecnico | DÉBITO TÉCNICO | orange |
|
|
192
|
+
|
|
193
|
+
**For each label key in \`labelsToCreate\`:**
|
|
194
|
+
|
|
195
|
+
1. First, check existing labels on the board to avoid duplicates:
|
|
196
|
+
\`\`\`tool
|
|
197
|
+
mcp__claude_ai_Trello_Custom__get_board_labels { board_id: "<boardId>" }
|
|
198
|
+
\`\`\`
|
|
199
|
+
|
|
200
|
+
2. For each label key that does NOT already exist (match by name, case-insensitive):
|
|
201
|
+
\`\`\`tool
|
|
202
|
+
mcp__claude_ai_Trello_Custom__create_label { board_id: "<boardId>", name: "<name>", color: "<color>" }
|
|
203
|
+
\`\`\`
|
|
204
|
+
|
|
205
|
+
3. Collect and save each label: \`{ id: "<returnedId>", name: "<name>", color: "<color>" }\`
|
|
206
|
+
If the label already existed, use its existing \`id\` and \`color\`.
|
|
207
|
+
|
|
208
|
+
If any \`create_label\` call fails, log the error and continue — labels are auxiliary, never blocking.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Step 4 — Write final configuration
|
|
213
|
+
|
|
214
|
+
Assemble and write \`pscode/trello.yaml\` with \`configured: true\`.
|
|
215
|
+
|
|
216
|
+
Use the **Write tool** (NOT a shell command) to write the file — it is cross-platform and works on Windows, macOS, and Linux.
|
|
217
|
+
|
|
218
|
+
**Full YAML structure when labels are enabled:**
|
|
219
|
+
|
|
220
|
+
\`\`\`yaml
|
|
221
|
+
configured: true
|
|
222
|
+
boardId: "<boardId>"
|
|
223
|
+
boardName: "<boardName>"
|
|
224
|
+
lists:
|
|
225
|
+
backlog:
|
|
226
|
+
id: "<id>"
|
|
227
|
+
name: "<name>"
|
|
228
|
+
# ... only the stages that were mapped
|
|
229
|
+
labels:
|
|
230
|
+
enabled: true
|
|
231
|
+
items:
|
|
232
|
+
bug:
|
|
233
|
+
id: "<labelId>"
|
|
234
|
+
name: "BUG"
|
|
235
|
+
color: "red"
|
|
236
|
+
implementacao:
|
|
237
|
+
id: "<labelId>"
|
|
238
|
+
name: "IMPLEMENTAÇÃO"
|
|
239
|
+
color: "blue"
|
|
240
|
+
melhoria:
|
|
241
|
+
id: "<labelId>"
|
|
242
|
+
name: "MELHORIA"
|
|
243
|
+
color: "green"
|
|
244
|
+
debito-tecnico:
|
|
245
|
+
id: "<labelId>"
|
|
246
|
+
name: "DÉBITO TÉCNICO"
|
|
247
|
+
color: "orange"
|
|
248
|
+
\`\`\`
|
|
249
|
+
|
|
250
|
+
**When labels are disabled:**
|
|
251
|
+
|
|
252
|
+
\`\`\`yaml
|
|
253
|
+
configured: true
|
|
254
|
+
boardId: "<boardId>"
|
|
255
|
+
boardName: "<boardName>"
|
|
256
|
+
lists:
|
|
257
|
+
# ...
|
|
258
|
+
labels:
|
|
259
|
+
enabled: false
|
|
260
|
+
\`\`\`
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Step 5 — Confirm and summarize
|
|
265
|
+
|
|
266
|
+
\`\`\`
|
|
267
|
+
## ✅ Trello configurado com sucesso!
|
|
268
|
+
|
|
269
|
+
**Board:** <boardName>
|
|
270
|
+
**Arquivo:** pscode/trello.yaml
|
|
271
|
+
|
|
272
|
+
**Estágios configurados:**
|
|
273
|
+
📋 backlog → <name>
|
|
274
|
+
...
|
|
275
|
+
|
|
276
|
+
**Labels configuradas:** ← apenas se labels.enabled = true
|
|
277
|
+
🐛 BUG
|
|
278
|
+
⚙️ IMPLEMENTAÇÃO
|
|
279
|
+
✨ MELHORIA
|
|
280
|
+
💳 DÉBITO TÉCNICO
|
|
281
|
+
|
|
282
|
+
A partir de agora, todos os comandos Pscode irão sincronizar cards automaticamente.
|
|
283
|
+
O agente irá tentar categorizar cada card com a label adequada ao criá-lo.
|
|
284
|
+
|
|
285
|
+
**Próximos passos:**
|
|
286
|
+
/ps:draft → Registrar uma ideia no Backlog (frictionless)
|
|
287
|
+
/ps:task → Adicionar tarefa ao Backlog
|
|
288
|
+
/ps:propose → Propor uma change (cria card no Trello)
|
|
289
|
+
\`\`\`
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Guardrails
|
|
294
|
+
|
|
295
|
+
- **Nunca prosseguir sem MCP** — se o Trello MCP não estiver disponível, parar e orientar
|
|
296
|
+
- **Backlog e done são obrigatórios** — não permitir configuração sem esses dois estágios
|
|
297
|
+
- **Nunca deletar cards ou listas existentes** — ao criar board, apenas arquivar as listas padrão
|
|
298
|
+
- **Se partial config encontrada** (\`configured: false\`), pular as perguntas já respondidas e mencionar isso ao usuário
|
|
299
|
+
- **Todos os nomes em português** por padrão, respeitando o que o usuário escolheu no init
|
|
300
|
+
- **Se qualquer chamada MCP falhar**, exibir o erro e perguntar se deseja tentar novamente
|
|
301
|
+
- **Não sobrescrever config \`configured: true\` sem confirmação explícita**
|
|
302
|
+
- **Labels são opcionais** — se criação de label falhar, continuar normalmente sem labels
|
|
303
|
+
- **Não duplicar labels** — verificar labels existentes no board antes de criar novas
|
|
304
|
+
`;
|
|
305
|
+
}
|
|
306
|
+
export function getTrelloSetupCommandTemplate() {
|
|
307
|
+
return {
|
|
308
|
+
name: 'PS: Trello Setup',
|
|
309
|
+
description: 'Configure Trello integration for your Pscode workflow — checks MCP, reads or creates a board, and writes pscode/trello.yaml',
|
|
310
|
+
category: 'Setup',
|
|
311
|
+
tags: ['trello', 'setup', 'integration', 'config'],
|
|
312
|
+
content: getTrelloSetupInstructions(),
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=trello-setup.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 getVerifyChangeSkillTemplate(): SkillTemplate;
|
|
9
|
+
export declare function getPsVerifyCommandTemplate(): CommandTemplate;
|
|
10
|
+
//# sourceMappingURL=verify-change.d.ts.map
|