Skip to content

Releases: eipastel/pscode

v3.1.2

24 Jun 00:51

Choose a tag to compare

Patch Changes

  • #55 feded73 Thanks @eipastel! - feat(content): padroniza AskUserQuestion para perguntas e confirmações em todo o fluxo

    Toda interação que pede input ao usuário — em qualquer skill ou comando — passa a
    usar o AskUserQuestion nativo, 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 escolha Sim / Não de um clique. A
    diretriz central foi reforçada no bloco AGENTS e em pscode-guided-sdd, e os
    pontos de confirmação em task-runner, dev, complete, cancel, mini-spec,
    draft e refine passaram a apontar para o AskUserQuestion.

  • #55 feded73 Thanks @eipastel! - feat(draft): padrão [tipo] descrição para o título do card

    O /ps:draft passa 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
    via AskUserQuestion. As skills pscode-guided-sdd e pscode-github-sync foram
    atualizadas para refletir o padrão.

v3.1.1

24 Jun 00:44

Choose a tag to compare

Patch Changes

  • #54 e240f4c Thanks @eipastel! - feat(draft): padrão [tipo] descrição para o título do card

    O /ps:draft passa 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
    via AskUserQuestion. As skills pscode-guided-sdd e pscode-github-sync foram
    atualizadas para refletir o padrão.

v3.1.0

22 Jun 04:35

Choose a tag to compare

Minor Changes

  • #43 1b85492 Thanks @eipastel! - refactor(draft): /ps:draft apenas registra a Issue, brief migra para o refine

    O /ps:draft deixa de criar brief.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 um brief.md local mínimo. A pasta da change e o
    brief.md passam a nascer no /ps:refine (a partir da descrição da Issue), antes
    do refine.md.

  • #43 1b85492 Thanks @eipastel! - feat(init): torna o fluxo de PR opcional

    Adiciona 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; update re-renderiza
    respeitando o pr_flow do projeto.

v3.0.0

21 Jun 23:57

Choose a tag to compare

Major Changes

  • #38 2f41dcd Thanks @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 minimal pscode/
    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:refine claims 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 to pscode/changes/<slug>/refine.md.
      When pscode/github.yaml exists it reads the open Issue description + comments
      as input and, on approval, turns each ## Subtasks item into a native
      sub-issue of the card (so the board shows the breakdown + a progress bar),
      updates the Issue body from refine.md (dropping the now-redundant checklist),
      and moves the card to Ready to Dev. /ps:dev closes each sub-issue as its
      subtask is ticked.
    • /ps:dev opens a draft PR linked to the Issue (Closes #), moves the card to
      In Development and assigns the user, implements the refine.md subtasks 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:complete writes 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:cancel archives 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).
    • init is 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 --agent and detection.
    • pscode init can enable Claude Code's bypassPermissions mode: when Claude
      Code is selected, the wizard asks whether to write
      permissions.defaultMode: bypassPermissions into .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 init finishes it can open the selected agent's CLI (claude, codex
      or gemini) — Claude Code preferred when more than one is selected — handing
      off the terminal. Defaults to yes and is honored in --yes runs; 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.
    • update now wipes the commands/ps/ folder and every skills/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):
      init and doctor run 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 and init carries 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
      gh and writes pscode/github.yaml (repo,
      project node id, Status field id, stage→option-id map). Non-interactive via
      --project <ref>; skipped by default when non-interactive. Every gh call is
      non-blocking. New flags: --github / --no-github, --project <url|owner/repo>.
      A new github.enabled flag in config.yaml records it (and update preserves
      it).
    • Per-step board sync (pscode-github-sync skill + sections in the command
      bodies): when pscode/github.yaml exists the agent keeps the Issue, board,
      assignee and PR in sync across the nine columns — /ps:draft creates the
      Issue, adds it to the Project, sets Backlog and stores the number in
      pscode/changes/<slug>/.issue; /ps:refineIn Refinement (assigns the
      user) then Ready to Dev; /ps:dev opens a draft PR and goes In
      Development
      In Code ReviewIn TestReady to Deploy;
      /ps:completeDone (closes the Issue); /ps:cancelCancelled. The
      change↔issue link resolves deterministically (links.issue
      <issuePattern>-NN, via resolveIssueNumber), and every command also accepts
      the card number directly. github.yaml now also stores the Project owner so
      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 (two gh calls: item-list then item-edit) is
      the core action and is never skipped just because the cheaper assign already
      ran — and confirms the move landed; only a gh/auth/network failure makes it
      report and carry on.
    • Board setup (/ps:board-setup + pscode-board-setup skill): 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 via gh and rewrites the statuses
      map in pscode/github.yaml. Whenever the board is set up (existing or new
      Project), init hands off straight into /ps:board-setup if it opens Claude
      Code, otherwise it prints a hint to run it. github.yaml now also stores the
      Project ownerType so 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
      statuses map by /ps:board-setup.
    • Requirements manifest (pscode/requirements.yaml): init writes 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.

v2.16.0

05 Jun 20:57

Choose a tag to compare

Minor Changes

  • #35 3d6b4a6 Thanks @AddisonSouza! - Add GitHub Projects (v2) as an alternative tracker alongside Trello

    Introduces a second tracker integration that uses the gh CLI instead of the Trello MCP server. All tracker-aware commands now auto-detect which config is present (pscode/trello.yaml takes precedence; pscode/github.yaml is 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 gh CLI and GraphQL, then writes pscode/github.yaml
    • Configurable issuePattern prefix (e.g. issue, task, rf) to extract issue numbers from change names; manual links: 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.yaml first (original behaviour preserved), then falls back to github.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 gh call failures are non-blocking — the workflow continues regardless

    New source module: github-projects-config.ts

    • GitHubProjectsConfig type, readGitHubProjectsConfig, writeGitHubProjectsConfig, extractIssueNumber, resolveGhBin, resolveOwner
  • #34 3ad9b88 Thanks @eipastel! - Re-sincroniza os context docs canônicos do perfil Dixi em pscode/context/ durante o pscode update. Antes os docs só eram escritos no init e ficavam desatualizados; agora applyDixiCommandOverrides sobrescreve 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

03 Jun 19:44

Choose a tag to compare

Minor Changes

  • #32 5832e39 Thanks @eipastel! - Alinha o perfil Dixi ao gitflow canônico (Confluence DROP/1574993927): o setup de PR do
    init passa a usar o padrão de branch ticket-first {ticket}-{type}-{change-name} (e título
    coerente) quando o perfil é dixi, mantendo feat/{change-name} para os demais perfis. Os
    docs de contexto e templates CLAUDE.md do preset Dixi foram sincronizados: convenção de
    branch em dev-flow.md, metas de cobertura 90% global / 100% no código novo em
    java/testing.md e react/testing.md, base master em pr-flow.md/dod.md e nos CI kits,
    e ponteiros do CLAUDE.md corrigidos para o layout achatado (pscode/context/<arquivo>.md).

v2.14.1

03 Jun 18:31

Choose a tag to compare

Patch Changes

  • #31 c95fee1 Thanks @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

03 Jun 13:41

Choose a tag to compare

Minor Changes

  • #28 1f74165 Thanks @eipastel! - Melhorias no perfil dixi: 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 (extrai jiraIssueKey da 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 (linha JIRA: <url>), em comentário do PR na issue,
    e como contexto real no apply. Novo campo opcional jiraIssueUrl no metadata da change.

    fix: corrige a regra hexagonal do hook arch-guard.mjs do perfil dixi, que invertia a
    direção de dependência — agora permite infrastructure → domain/application e bloqueia
    apenas domain → application/infrastructure e application → infrastructure. O pscode update
    passa a sobrescrever o arch-guard.mjs defasado 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

02 Jun 05:10

Choose a tag to compare

Minor Changes

  • #20 cb11e74 Thanks @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 de gh são não-bloqueantes e condicionais a pr.enabled: true com um PR ativo.

v2.8.0

02 Jun 04:26

Choose a tag to compare

Minor Changes

  • #19 6e0c61f Thanks @eipastel! - As skills e comandos do pscode gerados para o Claude Code agora carregam uma diretriz que orienta o agente a preferir a ferramenta AskUserQuestion em 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, gemini e github-copilot mantêm o conteúdo atual. A injeção é aditiva e idempotente (regenerar via update não duplica o bloco). A escolha de transform por tool foi centralizada em resolveSkillTransformer, eliminando a expressão duplicada em init, update e workspace/skills.