Releases: eipastel/pscode
v3.1.2
Patch Changes
-
#55
feded73Thanks @eipastel! - feat(content): padroniza AskUserQuestion para perguntas e confirmações em todo o fluxoToda interação que pede input ao usuário — em qualquer skill ou comando — passa a
usar oAskUserQuestionnativo, com a opção recomendada primeiro. Confirmações de
progresso que antes eram texto livre (ex.: "Posso marcar[x]e fechar a
sub-issue?") agora são oferecidas como uma escolhaSim/Nãode um clique. A
diretriz central foi reforçada no bloco AGENTS e empscode-guided-sdd, e os
pontos de confirmação emtask-runner,dev,complete,cancel,mini-spec,
drafterefinepassaram a apontar para oAskUserQuestion. -
#55
feded73Thanks @eipastel! - feat(draft): padrão[tipo] descriçãopara o título do cardO
/ps:draftpassa a montar o título do card no formato[<tipo>] <descrição>
(tipos de commit:feat,fix,refactor,test,docs,chore) e o slug
interno como<tipo>-<descrição-kebab>. O tipo é inferido do pedido e confirmado
viaAskUserQuestion. As skillspscode-guided-sddepscode-github-syncforam
atualizadas para refletir o padrão.
v3.1.1
Patch Changes
-
#54
e240f4cThanks @eipastel! - feat(draft): padrão[tipo] descriçãopara o título do cardO
/ps:draftpassa a montar o título do card no formato[<tipo>] <descrição>
(tipos de commit:feat,fix,refactor,test,docs,chore) e o slug
interno como<tipo>-<descrição-kebab>. O tipo é inferido do pedido e confirmado
viaAskUserQuestion. As skillspscode-guided-sddepscode-github-syncforam
atualizadas para refletir o padrão.
v3.1.0
Minor Changes
-
#43
1b85492Thanks @eipastel! - refactor(draft):/ps:draftapenas registra a Issue, brief migra para o refineO
/ps:draftdeixa de criarbrief.md(e a pasta local): agora só registra a
mudança como card no Backlog, com uma descrição curta no corpo da Issue. Sem
GitHub, há um fallback que grava umbrief.mdlocal mínimo. A pasta da change e o
brief.mdpassam a nascer no/ps:refine(a partir da descrição da Issue), antes
dorefine.md. -
#43
1b85492Thanks @eipastel! - feat(init): torna o fluxo de PR opcionalAdiciona a pergunta "usar fluxo de PR?" no
pscode init(antes da pergunta do
board) e as flags--pr/--no-pr. A escolha é gravada em
pscode/config.yaml(pr_flow) e seleciona qual forma dos comandos/skills de
dev é instalada: o fluxo com pull request (abre PR draft, marca Ready for Review,
não faz merge) ou o fluxo direto na branch atual (commit direto, sem PR). O
conteúdo condicional é resolvido via marcadores{{#pr}}/{{^pr}}
(core/content/flags.ts) no momento da renderização;updatere-renderiza
respeitando opr_flowdo projeto.
v3.0.0
Major Changes
-
#38
2f41dcdThanks @eipastel! - Reframe PSCode as a lightweight guided-SDD installer.PSCode is no longer a spec-driven-development framework with a workflow engine,
artifact DAG, schemas and deep validation. It is now a small installer that lays
down the rails — slash commands, skills, instructions and a minimalpscode/
structure — so a coding agent runs a short, human-validated flow.- New CLI:
init,update,doctor,clean,status. - Installs 6 slash commands (
/ps:draft,/ps:refine,/ps:dev,
/ps:complete,/ps:cancel,/ps:board-setup) and 9 skills
(pscode-guided-sdd,pscode-grill-me,pscode-refine,pscode-mini-spec,
pscode-task-runner,pscode-dev,pscode-complete,pscode-github-sync,
pscode-board-setup) for Claude Code, Codex, Cursor and Gemini. The guided
flow mirrors the GitHub Project board, moving the card at each step:
/ps:draft(Backlog) →/ps:refine <card#>(In Refinement → Ready to Dev) →
/ps:dev <card#>(In Development → In Code Review → In Test → Ready to Deploy)
→/ps:complete <card#>(Done)./ps:cancel <card#>sends a card to Cancelled.
Every command accepts the card number for direct reference. /ps:refineclaims the card (assigns the user, moves it to In Refinement),
analyzes the code, runs Grill Me, and turns the draft into a refined,
issue-ready document in one standard format (lean summary, technical detail,
in/out of scope, subtask breakdown) written topscode/changes/<slug>/refine.md.
Whenpscode/github.yamlexists it reads the open Issue description + comments
as input and, on approval, turns each## Subtasksitem into a native
sub-issue of the card (so the board shows the breakdown + a progress bar),
updates the Issue body fromrefine.md(dropping the now-redundant checklist),
and moves the card to Ready to Dev./ps:devcloses each sub-issue as its
subtask is ticked./ps:devopens a draft PR linked to the Issue (Closes #), moves the card to
In Development and assigns the user, implements therefine.mdsubtasks one at
a time, then — once the project builds and its tests pass — walks the card
through In Code Review (PR marked Ready for Review) → In Test → Ready to
Deploy. Merging the PR stays a human/CI decision./ps:completewrites a short openspec-style delta spec, archives the change to
pscode/changes/archive/<YYYY-MM-DD>-<slug>/, and moves the card to Done
(closing the Issue)./ps:cancelarchives with a reason and moves the card to
Cancelled.- Adds
pscode/config.yaml(short-document limits + one-task-at-a-time and
approval guardrails) and short change templates. - Writes the managed instruction block into the file each selected agent reads:
Claude Code →CLAUDE.md, the others →AGENTS.md(both when mixed). initis an interactive wizard by default (language → agents), with--yes
and explicit flags as the non-interactive bypass. The agent picker offers only
Claude Code (marked recommended) and Codex; Cursor and Gemini stay reachable
via--agentand detection.pscode initcan enable Claude Code'sbypassPermissionsmode: when Claude
Code is selected, the wizard asks whether to write
permissions.defaultMode: bypassPermissionsinto.claude/settings.json
(merging into existing settings). Defaults to yes; control it with
--bypass-permissions/--no-bypass-permissions. Never written when Claude
Code is not selected. Its yes/no prompt resolves on the first keypress.- When
initfinishes it can open the selected agent's CLI (claude,codex
orgemini) — Claude Code preferred when more than one is selected — handing
off the terminal. Defaults to yes and is honored in--yesruns; control it
with--open/--no-open. The agent is only launched when a real terminal
is present; in CI or piped runs PSCode prints how to start it instead of
blocking. Cursor has no unambiguous CLI, so it is never auto-opened. updatenow wipes thecommands/ps/folder and everyskills/pscode-*folder
before rewriting, so commands or skills removed/renamed in a new version don't
linger.- Environment verification concentrated in
init(core/preflight.ts):
initanddoctorrun a non-blocking check — Git installed, inside a repo,
GitHub remote, GitHub CLI installed and authenticated, Node version, the
selected agent CLI — and scan the project's MCP config files (.mcp.json,
.cursor/mcp.json,.vscode/mcp.json,.claude/settings*.json) for declared
MCP servers. A failing check prints how to fix it andinitcarries on. (A CLI
can only see whether an MCP is declared, not connected — that stays the
agent's job.) - GitHub Projects + Issues setup (
core/github.ts,commands/init-github.ts):
one wizard question — use an existing Project, create a new one, or skip. For
an existing Project it lists the account's Projects to pick from (plus an
"Other — paste a link" fallback); when creating, it prompts for the Project
name (defaulting to the project folder name). It discovers the GraphQL ids via
ghand writespscode/github.yaml(repo,
project node id, Status field id, stage→option-id map). Non-interactive via
--project <ref>; skipped by default when non-interactive. Everyghcall is
non-blocking. New flags:--github/--no-github,--project <url|owner/repo>.
A newgithub.enabledflag inconfig.yamlrecords it (andupdatepreserves
it). - Per-step board sync (
pscode-github-syncskill + sections in the command
bodies): whenpscode/github.yamlexists the agent keeps the Issue, board,
assignee and PR in sync across the nine columns —/ps:draftcreates the
Issue, adds it to the Project, sets Backlog and stores the number in
pscode/changes/<slug>/.issue;/ps:refine→ In Refinement (assigns the
user) then Ready to Dev;/ps:devopens a draft PR and goes In
Development → In Code Review → In Test → Ready to Deploy;
/ps:complete→ Done (closes the Issue);/ps:cancel→ Cancelled. The
change↔issue link resolves deterministically (links→.issue→
<issuePattern>-NN, viaresolveIssueNumber), and every command also accepts
the card number directly.github.yamlnow also stores the Projectownerso
gh project …calls work for org-owned Projects. "Non-blocking" means tolerate
failure, not skip the work: the agent always attempts every action a step
prescribes — the status move (twoghcalls:item-listthenitem-edit) is
the core action and is never skipped just because the cheaperassignalready
ran — and confirms the move landed; only agh/auth/network failure makes it
report and carry on. - Board setup (
/ps:board-setup+pscode-board-setupskill): a fresh
GitHub Project is a plain Table with the default Status options. This command
drives the GitHub UI through the Chrome MCP to create the kanban columns
(Backlog, In Refinement, Ready to Dev, In Development, In Code Review, In Test,
Ready to Deploy, Done, Cancelled) and switch the view to a Status-grouped
Board, then re-discovers the option ids viaghand rewrites thestatuses
map inpscode/github.yaml. Whenever the board is set up (existing or new
Project),inithands off straight into/ps:board-setupif it opens Claude
Code, otherwise it prints a hint to run it.github.yamlnow also stores the
ProjectownerTypeso the board URL can be built. The flow's nine stages map
one-to-one onto the columns (backlog,proposed/In Refinement,
ready_to_dev,in_progress/In Development,review/In Code Review,
in_test,ready_to_deploy,done,cancelled), all written into the
statusesmap by/ps:board-setup. - Requirements manifest (
pscode/requirements.yaml):initwrites what each
active integration needs and what it verified (preflight results + declared
MCPs), for the agent to consume instead of re-probing the environment. - The "open the agent now?" prompt runs last — after every other question
(language, agents, bypassPermissions, GitHub) and after the install summary. - Removes the workflow engine, schemas, artifact graph, validation, workspaces,
context store/initiatives, telemetry, completions, the local board and related
commands.
BREAKING CHANGE: the previous commands, schemas and APIs have been removed.
- New CLI:
v2.16.0
Minor Changes
-
#35
3d6b4a6Thanks @AddisonSouza! - Add GitHub Projects (v2) as an alternative tracker alongside TrelloIntroduces a second tracker integration that uses the
ghCLI instead of the Trello MCP server. All tracker-aware commands now auto-detect which config is present (pscode/trello.yamltakes precedence;pscode/github.yamlis the fallback). No breaking changes for existing Trello users.New workflow:
github-setup- Interactive wizard that auto-discovers project node ID, status field ID, and status option IDs via
ghCLI and GraphQL, then writespscode/github.yaml - Configurable
issuePatternprefix (e.g.issue,task,rf) to extract issue numbers from change names; manuallinks:map for overrides
Updated workflow:
board-setup- Now asks "Trello or GitHub Projects?" upfront, then runs the appropriate setup inline
Updated workflows:
apply,complete,propose- Dual-tracker detection: reads
trello.yamlfirst (original behaviour preserved), then falls back togithub.yaml - GitHub Projects path updates project item status at each stage:
proposed → accepted → in_progress → in_review → done - Posts comments on GitHub Issues at key moments (refinement, apply start, validation, complete)
- All
ghcall failures are non-blocking — the workflow continues regardless
New source module:
github-projects-config.tsGitHubProjectsConfigtype,readGitHubProjectsConfig,writeGitHubProjectsConfig,extractIssueNumber,resolveGhBin,resolveOwner
- Interactive wizard that auto-discovers project node ID, status field ID, and status option IDs via
-
#34
3ad9b88Thanks @eipastel! - Re-sincroniza os context docs canônicos do perfil Dixi empscode/context/durante opscode update. Antes os docs só eram escritos noinite ficavam desatualizados; agoraapplyDixiCommandOverridessobrescreve o conjunto canônico (shared/ sempre + java/ ou react/ conforme a stack registrada) e remove órfãos via manifest (.pscode-context-manifest.json), preservando arquivos custom do usuário.
v2.15.0
Minor Changes
- #32
5832e39Thanks @eipastel! - Alinha o perfil Dixi ao gitflow canônico (Confluence DROP/1574993927): o setup de PR do
initpassa a usar o padrão de branch ticket-first{ticket}-{type}-{change-name}(e título
coerente) quando o perfil édixi, mantendofeat/{change-name}para os demais perfis. Os
docs de contexto e templatesCLAUDE.mddo preset Dixi foram sincronizados: convenção de
branch emdev-flow.md, metas de cobertura 90% global / 100% no código novo em
java/testing.mdereact/testing.md, basemasterempr-flow.md/dod.mde nos CI kits,
e ponteiros doCLAUDE.mdcorrigidos para o layout achatado (pscode/context/<arquivo>.md).
v2.14.1
Patch Changes
- #31
c95fee1Thanks @eipastel! - Realinha a convenção de commits do profile dixi (commits.md) à doc canônica
oficial: formato<type>(<scope>): <msg> [TICKET-123], mensagem sempre em
português, ticket obrigatório em todos os tipos com[NO-TICKET]como fallback,
e novas seções de boas práticas e antipadrões.
v2.14.0
Minor Changes
-
#28
1f74165Thanks @eipastel! - Melhorias no perfildixi: os overrides/ps:*passam a manter o tracker (Trello + JIRA)
sincronizado em todas as etapas do pipeline de forma não-bloqueante — propose move a tarefa
para "Em Refinamento" (puxando-a ao board) e, ao aprovar, "Ready to Dev"; apply move para
"Em Desenvolvimento"; conclusão/PR/teste/deploy/done para as colunas correspondentes. O
propose agora localiza e vincula a issue JIRA automaticamente (extraijiraIssueKeyda URL,
pergunta o link quando ausente), reescreve a descrição da issue/card antes da aprovação, e
gere o responsável (opcional no propose, automático no apply com comentário de handoff). O
jiraIssueKeyé consumido no corpo do PR (linhaJIRA: <url>), em comentário do PR na issue,
e como contexto real no apply. Novo campo opcionaljiraIssueUrlno metadata da change.fix: corrige a regra hexagonal do hook
arch-guard.mjsdo perfildixi, que invertia a
direção de dependência — agora permiteinfrastructure → domain/applicatione bloqueia
apenasdomain → application/infrastructureeapplication → infrastructure. Opscode update
passa a sobrescrever oarch-guard.mjsdefasado nos projetos-alvo. O override de apply também
passa a encerrar processos de aplicação iniciados apenas para verificação em runtime, liberando
a porta e preservando daemons legítimos.
v2.9.0
Minor Changes
- #20
cb11e74Thanks @eipastel! -/ps:apply: ao concluir as tasks, popular o PR ativo com um corpo rico derivado dos artefatos da change (resumo, decisões técnicas, tasks concluídas, escopo e referências) e promovê-lo de draft para "ready for review". Após a validação aprovada, o corpo do PR é reatualizado com o resultado dos testes. Todas as operações deghsão não-bloqueantes e condicionais apr.enabled: truecom um PR ativo.
v2.8.0
Minor Changes
- #19
6e0c61fThanks @eipastel! - As skills e comandos do pscode gerados para o Claude Code agora carregam uma diretriz que orienta o agente a preferir a ferramentaAskUserQuestionem perguntas de decisão/confirmação, com 2–4 opções sugeridas e a resposta livre ("Other") sempre disponível. A diretriz é exclusiva do Claude —codex,cursor,geminiegithub-copilotmantêm o conteúdo atual. A injeção é aditiva e idempotente (regenerar viaupdatenão duplica o bloco). A escolha de transform por tool foi centralizada emresolveSkillTransformer, eliminando a expressão duplicada eminit,updateeworkspace/skills.