@thiagodiogo/pscode 2.2.2 → 2.3.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.
@@ -23,6 +23,7 @@ export const WORKFLOW_TO_SKILL_DIR = {
23
23
  'draft': 'pscode-trello-draft',
24
24
  // Productivity workflows
25
25
  'handoff': 'pscode-handoff',
26
+ 'grill-me': 'pscode-grill-me',
26
27
  // Dixi-specific workflows
27
28
  'rfc': 'pscode-dixi-rfc',
28
29
  'design': 'pscode-dixi-design',
@@ -5,7 +5,7 @@
5
5
  * `pscode init --profile <name>` or `pscode config profile <name>`.
6
6
  * The workflow lists are fixed in code — users cannot customise them.
7
7
  */
8
- export declare const ALL_WORKFLOWS: readonly ["propose", "explore", "new", "continue", "apply", "ff", "complete", "bulk-archive", "verify", "onboard", "trello-setup", "draft", "rfc", "design", "tasks", "arch-check", "adr", "jira-sync", "dod", "handoff"];
8
+ export declare const ALL_WORKFLOWS: readonly ["propose", "explore", "new", "continue", "apply", "ff", "complete", "bulk-archive", "verify", "onboard", "trello-setup", "draft", "rfc", "design", "tasks", "arch-check", "adr", "jira-sync", "dod", "handoff", "grill-me"];
9
9
  export type WorkflowId = (typeof ALL_WORKFLOWS)[number];
10
10
  export interface ProfileDefinition {
11
11
  description: string;
@@ -14,11 +14,11 @@ export interface ProfileDefinition {
14
14
  export declare const PROFILES: {
15
15
  readonly standard: {
16
16
  readonly description: "Padrão — propose, explore, apply, complete";
17
- readonly workflows: readonly ["propose", "explore", "apply", "complete", "trello-setup", "draft", "handoff"];
17
+ readonly workflows: readonly ["propose", "explore", "apply", "complete", "trello-setup", "draft", "handoff", "grill-me"];
18
18
  };
19
19
  readonly dixi: {
20
20
  readonly description: "Dixi — propose, explore, apply, complete com guardrails para Java/Spring e React/Next.js";
21
- readonly workflows: readonly ["propose", "explore", "apply", "complete", "trello-setup", "draft", "handoff"];
21
+ readonly workflows: readonly ["propose", "explore", "apply", "complete", "trello-setup", "draft", "handoff", "grill-me"];
22
22
  };
23
23
  };
24
24
  export type ProfileName = keyof typeof PROFILES;
@@ -26,15 +26,16 @@ export const ALL_WORKFLOWS = [
26
26
  'jira-sync',
27
27
  'dod',
28
28
  'handoff',
29
+ 'grill-me',
29
30
  ];
30
31
  export const PROFILES = {
31
32
  standard: {
32
33
  description: 'Padrão — propose, explore, apply, complete',
33
- workflows: ['propose', 'explore', 'apply', 'complete', 'trello-setup', 'draft', 'handoff'],
34
+ workflows: ['propose', 'explore', 'apply', 'complete', 'trello-setup', 'draft', 'handoff', 'grill-me'],
34
35
  },
35
36
  dixi: {
36
37
  description: 'Dixi — propose, explore, apply, complete com guardrails para Java/Spring e React/Next.js',
37
- workflows: ['propose', 'explore', 'apply', 'complete', 'trello-setup', 'draft', 'handoff'],
38
+ workflows: ['propose', 'explore', 'apply', 'complete', 'trello-setup', 'draft', 'handoff', 'grill-me'],
38
39
  },
39
40
  };
40
41
  export const DEFAULT_PROFILE = 'standard';
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Shared utilities for generating skill and command files.
5
5
  */
6
- import { getExploreSkillTemplate, getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getCompleteChangeSkillTemplate, getBulkArchiveChangeSkillTemplate, getVerifyChangeSkillTemplate, getOnboardSkillTemplate, getProposeSkillTemplate, getTrelloSetupSkillTemplate, getTrelloDraftSkillTemplate, getHandoffSkillTemplate, getPsExploreCommandTemplate, getPsNewCommandTemplate, getPsContinueCommandTemplate, getPsApplyCommandTemplate, getPsFfCommandTemplate, getPsCompleteCommandTemplate, getPsBulkArchiveCommandTemplate, getPsVerifyCommandTemplate, getPsOnboardCommandTemplate, getPsProposeCommandTemplate, getTrelloSetupCommandTemplate, getTrelloDraftCommandTemplate, getHandoffCommandTemplate, } from '../templates/skill-templates.js';
6
+ import { getExploreSkillTemplate, getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getCompleteChangeSkillTemplate, getBulkArchiveChangeSkillTemplate, getVerifyChangeSkillTemplate, getOnboardSkillTemplate, getProposeSkillTemplate, getTrelloSetupSkillTemplate, getTrelloDraftSkillTemplate, getHandoffSkillTemplate, getGrillMeSkillTemplate, getPsExploreCommandTemplate, getPsNewCommandTemplate, getPsContinueCommandTemplate, getPsApplyCommandTemplate, getPsFfCommandTemplate, getPsCompleteCommandTemplate, getPsBulkArchiveCommandTemplate, getPsVerifyCommandTemplate, getPsOnboardCommandTemplate, getPsProposeCommandTemplate, getTrelloSetupCommandTemplate, getTrelloDraftCommandTemplate, getHandoffCommandTemplate, getGrillMeCommandTemplate, } from '../templates/skill-templates.js';
7
7
  /**
8
8
  * Gets skill templates with their directory names, optionally filtered by workflow IDs.
9
9
  *
@@ -26,6 +26,7 @@ export function getSkillTemplates(workflowFilter) {
26
26
  { template: getTrelloDraftSkillTemplate(), dirName: 'pscode-trello-draft', workflowId: 'draft' },
27
27
  // Productivity workflows
28
28
  { template: getHandoffSkillTemplate(), dirName: 'pscode-handoff', workflowId: 'handoff' },
29
+ { template: getGrillMeSkillTemplate(), dirName: 'pscode-grill-me', workflowId: 'grill-me' },
29
30
  ];
30
31
  if (!workflowFilter)
31
32
  return all;
@@ -54,6 +55,7 @@ export function getCommandTemplates(workflowFilter) {
54
55
  { template: getTrelloDraftCommandTemplate(), id: 'draft' },
55
56
  // Productivity workflows
56
57
  { template: getHandoffCommandTemplate(), id: 'handoff' },
58
+ { template: getGrillMeCommandTemplate(), id: 'grill-me' },
57
59
  ];
58
60
  if (!workflowFilter)
59
61
  return all;
@@ -18,4 +18,5 @@ export { getFeedbackSkillTemplate } from './workflows/feedback.js';
18
18
  export { getTrelloSetupSkillTemplate, getTrelloSetupCommandTemplate } from './workflows/trello-setup.js';
19
19
  export { getTrelloDraftSkillTemplate, getTrelloDraftCommandTemplate } from './workflows/trello-draft.js';
20
20
  export { getHandoffSkillTemplate, getHandoffCommandTemplate } from './workflows/handoff.js';
21
+ export { getGrillMeSkillTemplate, getGrillMeCommandTemplate } from './workflows/grill-me.js';
21
22
  //# sourceMappingURL=skill-templates.d.ts.map
@@ -19,4 +19,5 @@ export { getTrelloSetupSkillTemplate, getTrelloSetupCommandTemplate } from './wo
19
19
  export { getTrelloDraftSkillTemplate, getTrelloDraftCommandTemplate } from './workflows/trello-draft.js';
20
20
  // Productivity workflows
21
21
  export { getHandoffSkillTemplate, getHandoffCommandTemplate } from './workflows/handoff.js';
22
+ export { getGrillMeSkillTemplate, getGrillMeCommandTemplate } from './workflows/grill-me.js';
22
23
  //# sourceMappingURL=skill-templates.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Grill Me Skill / Command Template
3
+ *
4
+ * Conducts a structured interrogation of a plan — one question at a time,
5
+ * each with a recommended answer — exploring the codebase when evidence is
6
+ * available, until shared understanding is reached. Ported (in Portuguese)
7
+ * from the `grill-me` skill (mattpocock/skills).
8
+ */
9
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
10
+ export declare function getGrillMeSkillTemplate(): SkillTemplate;
11
+ export declare function getGrillMeInstructions(): string;
12
+ export declare function getGrillMeCommandTemplate(): CommandTemplate;
13
+ //# sourceMappingURL=grill-me.d.ts.map
@@ -0,0 +1,64 @@
1
+ export function getGrillMeSkillTemplate() {
2
+ return {
3
+ name: 'pscode-grill-me',
4
+ description: 'Interroga um plano antes da implementação — uma pergunta por vez, com resposta recomendada, explorando o código quando há evidência, até entendimento compartilhado. Use quando o usuário quer validar e refinar um plano antes de escrever artefatos ou código.',
5
+ instructions: getGrillMeInstructions(),
6
+ compatibility: 'Works with any pscode project.',
7
+ metadata: { author: 'pscode', version: '1.0' },
8
+ };
9
+ }
10
+ export function getGrillMeInstructions() {
11
+ return `Interrogue o plano do usuário até atingir entendimento compartilhado sobre o que realmente deve existir — não apenas sobre o que foi descrito. O objetivo é pressionar cada decisão e ambiguidade do plano **antes** de escrever qualquer artefato ou código.
12
+
13
+ **Princípio central**: faça **uma pergunta por vez**. Nunca despeje uma lista de perguntas de uma só vez. Aguarde a resposta, incorpore-a ao seu entendimento e só então formule a próxima.
14
+
15
+ **Steps**
16
+
17
+ 1. **Entenda o plano inicial**
18
+
19
+ Leia a descrição do usuário (e qualquer artefato/contexto já disponível). Identifique a árvore de decisões: requisitos, escopo, abordagem técnica, trade-offs e os pontos onde o plano está vago, ambíguo ou assume algo não dito.
20
+
21
+ 2. **Explore o código antes de perguntar**
22
+
23
+ Se uma pergunta pode ser respondida com evidência presente no próprio repositório (convenções existentes, padrões de arquitetura, como features semelhantes já foram feitas), **investigue o código** em vez de perguntar ao usuário. Use o resultado da investigação para formular perguntas melhores ou para já resolver a decisão.
24
+
25
+ Só pergunte ao usuário o que o código não responde — decisões de produto, prioridades, trade-offs e intenção.
26
+
27
+ 3. **Conduza a interrogação — uma pergunta por vez**
28
+
29
+ Para cada ponto não resolvido, na ordem em que as dependências entre decisões exigem (resolva primeiro o que destrava as demais):
30
+
31
+ - Faça **uma** pergunta clara e específica.
32
+ - Sempre acompanhe a pergunta com a **sua resposta recomendada** e um motivo curto — para orientar a decisão e permitir que o usuário apenas concorde e siga em frente quando a recomendação fizer sentido.
33
+ - Quando houver opções discretas, use a **ferramenta AskUserQuestion** com a recomendação como primeira opção (marcada como "(Recomendada)"). Para perguntas abertas, formule a recomendação no texto.
34
+ - Aguarde a resposta antes de prosseguir. Incorpore-a e reavalie a árvore de decisão: a resposta pode tornar perguntas seguintes desnecessárias ou abrir novas.
35
+
36
+ 4. **Navegue a árvore de decisão progressivamente**
37
+
38
+ À medida que cada decisão é resolvida, atualize seu entendimento e siga para a próxima decisão relevante. Não pergunte algo que já foi respondido (direta ou indiretamente) por uma resposta anterior ou pelo código.
39
+
40
+ 5. **Encerre por entendimento compartilhado**
41
+
42
+ Quando todos os ramos relevantes da árvore de decisão estiverem resolvidos e não restar ambiguidade material, **encerre a interrogação** e apresente um **resumo do entendimento compartilhado**: o que será construído, as decisões tomadas (com seus motivos) e os pontos explicitamente fora de escopo.
43
+
44
+ Confirme com o usuário que o resumo reflete o que deve existir. A partir daí, o plano está pronto para virar artefatos/implementação.
45
+
46
+ **Guardrails**
47
+ - Uma pergunta por vez — sempre. Nunca despeje várias perguntas juntas.
48
+ - Toda pergunta vem com uma resposta recomendada.
49
+ - Prefira investigar o código a perguntar, quando a resposta está no repositório.
50
+ - Não invente decisões: se algo é genuinamente do usuário, pergunte.
51
+ - Pare assim que houver entendimento compartilhado — não prolongue a interrogação além do necessário.
52
+ - Se o usuário passou argumentos, trate-os como a descrição do plano a ser interrogado.
53
+ `;
54
+ }
55
+ export function getGrillMeCommandTemplate() {
56
+ return {
57
+ name: 'PS: Grill Me',
58
+ description: 'Interroga um plano antes da implementação — uma pergunta por vez, com resposta recomendada, até entendimento compartilhado',
59
+ category: 'Workflow',
60
+ tags: ['grill', 'refinamento', 'plano', 'workflow'],
61
+ content: getGrillMeInstructions(),
62
+ };
63
+ }
64
+ //# sourceMappingURL=grill-me.js.map
@@ -52,6 +52,18 @@ When ready to implement, run /ps:apply
52
52
 
53
53
  **IMPORTANT**: Do NOT proceed without understanding what the user wants to build.
54
54
 
55
+ 1b. **Fase de grill — interrogue o plano antes de gerar artefatos**
56
+
57
+ Antes de criar a change e gerar os artefatos, conduza a **fase de grill** para garantir que a proposta reflita o que realmente deve existir — não apenas a descrição inicial. Aplique o mesmo comportamento da skill \`grill-me\` (\`/ps:grill-me\`):
58
+
59
+ - Faça **uma pergunta por vez** — nunca despeje várias perguntas juntas. Aguarde a resposta antes da próxima.
60
+ - Acompanhe **cada** pergunta com a **sua resposta recomendada** e um motivo curto. Quando houver opções discretas, use a **ferramenta AskUserQuestion** com a recomendação como primeira opção ("(Recomendada)").
61
+ - **Explore o código quando há evidência**: se uma pergunta pode ser respondida pelo próprio repositório (convenções, padrões, features semelhantes), investigue o código em vez de perguntar. Só pergunte ao usuário decisões de produto, prioridades, trade-offs e intenção.
62
+ - Navegue a árvore de decisão progressivamente, resolvendo dependências; não repergunte o que já foi respondido pelo código ou por uma resposta anterior.
63
+ - Encerre quando houver **entendimento compartilhado** e apresente um resumo curto (o que será construído, decisões com motivos, fora de escopo) antes de seguir.
64
+
65
+ Os artefatos gerados a partir do Passo 2 SHALL refletir esse entendimento refinado.
66
+
55
67
  2. **Create the change directory**
56
68
  \`\`\`bash
57
69
  pscode new change "<name>"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thiagodiogo/pscode",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "description": "AI-native system for spec-driven development",
5
5
  "keywords": [
6
6
  "pscode",