baldart 3.22.1 → 3.23.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/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to BALDART will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.23.0] - 2026-05-27
9
+
10
+ Aggiunto il flag `-full` / `--full` a `/new` per espandere un epic ai suoi figli in un colpo solo — `/new FEAT-005 -full` lancia automaticamente `FEAT-005-1`, `FEAT-005-2`, … senza domande di grouping né di branch. Risolve il pattern ricorrente "ho un epic con 5 child card, le voglio tutte ora": prima richiedeva di listarle a mano (`/new FEAT-005-1 FEAT-005-2 FEAT-005-3 …`) o di usare l'hyphen-range solo se gli ID erano numericamente contigui.
11
+
12
+ ### Added — `/new` epic expansion flag
13
+
14
+ - **[framework/.claude/skills/new/SKILL.md](framework/.claude/skills/new/SKILL.md)**: nuova regola di parsing `Epic expansion (-full / --full)` nella sezione args. Discovery dei figli via union di due rules: (1) filename in `${paths.backlog_dir}` con prefisso `<PARENT-ID>-` (separator letterale, quindi `FEAT-005-1.yml` matcha ma `FEAT-005.yml` e `FEAT-0050.yml` no); (2) cards con `group.parent: <PARENT-ID>`. Il parent stesso è escluso (override esplicito: `/new FEAT-005 FEAT-005 -full`). Ordinamento per `group.sequence` ASC, fallback lessicografico. Batch-scoped: `/new FEAT-005 FEAT-008 -full` espande entrambi gli epic. Zero figli trovati → HALT esplicito (no silent no-op). Mixed batches supportati: `/new FEAT-005 -full FEAT-007` accoda i figli di 005 + FEAT-007 standalone.
15
+ - **[framework/.claude/commands/new.md](framework/.claude/commands/new.md)**: versione condensata della stessa regola, allineata al SKILL canonico.
16
+
17
+ ### Why MINOR (not PATCH)
18
+
19
+ Capability addition pura: nuovo flag, nessuna modifica al comportamento esistente. Tutti gli invocation pattern pre-3.23 continuano a funzionare identici. Per la decision tree in MAINTAINING.md "Did you add new functionality? → YES → MINOR".
20
+
21
+ ### Why no schema-change propagation
22
+
23
+ Modifica testuale a due file di skill/command. Zero chiavi nuove in `baldart.config.yml`, zero modifiche CLI (`src/commands/*`), zero hook, zero adapter. La discovery dei figli sfrutta `${paths.backlog_dir}` già presente nella config schema da v3.0.0.
24
+
8
25
  ## [3.22.1] - 2026-05-27
9
26
 
10
27
  Rimosso il gate `AskUserQuestion` di conferma merge introdotto in v3.22.0 Step 7 — era friction inutile contro il "seamless" che è il punto della release. Quando l'utente lancia `/prd` ha già implicitamente accettato la pipeline completa (discovery → design → cards → commit → merge in develop). Chiedere "Procedo con merge?" a fine sessione equivale a chiedere "sei sicuro di voler completare quello che mi hai chiesto di fare?".
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.22.1
1
+ 3.23.0
@@ -9,6 +9,7 @@ Parse the card IDs from the arguments. Cards can be specified as:
9
9
  - Space-separated: `GLOB-001 GLOB-002 GLOB-003`
10
10
  - Hyphen-range: `GLOB-001-GLOB-008` (expands to all cards in range)
11
11
  - Comma-separated: `GLOB-001, GLOB-002, GLOB-003`
12
+ - **Epic expansion (`-full` / `--full`)**: `/new <PARENT-ID> -full` (e.g., `/new FEAT-005 -full`) expands to ALL children of the parent epic with **NO questions asked**. Children = YAML files in `backlog/` whose filename starts with `<PARENT-ID>-` (e.g., `FEAT-005-1.yml`, `FEAT-005-2.yml`) OR whose `group.parent` field equals `<PARENT-ID>`. The parent epic card itself is excluded. Sort by `group.sequence` ASC, fallback to lexicographic ID. The flag is batch-scoped (`/new FEAT-005 FEAT-008 -full` expands both). If a parent has zero children → HALT and report. All children share `group.parent`, so the existing worktree logic groups them into ONE worktree under the parent's `git_strategy.branch`.
12
13
 
13
14
  If no card IDs are provided, ask the user which cards to implement.
14
15
 
@@ -23,6 +23,13 @@ Parse the card IDs from the arguments. Cards can be specified as:
23
23
  - Space-separated: `GLOB-001 GLOB-002 GLOB-003`
24
24
  - Hyphen-range: `GLOB-001-GLOB-008` (expands to all cards in range)
25
25
  - Comma-separated: `GLOB-001, GLOB-002, GLOB-003`
26
+ - **Epic expansion (`-full` / `--full`)**: `/new <PARENT-ID> -full` (e.g., `/new FEAT-005 -full`) expands to ALL children of the parent epic with **NO questions asked**. Children discovery — union of two rules:
27
+ 1. YAML files in `${paths.backlog_dir}` whose filename starts with `<PARENT-ID>-` (matches `FEAT-005-1.yml`, `FEAT-005-2.yml`, …; never matches `FEAT-005.yml` itself, never matches `FEAT-0050.yml` because the separator is a literal dash).
28
+ 2. Cards in `${paths.backlog_dir}` whose `group.parent` YAML field equals `<PARENT-ID>` (catches children that don't follow the prefix convention).
29
+
30
+ The parent epic card itself is **excluded** (epic parents are typically planning containers; to include it, list it explicitly: `/new FEAT-005 FEAT-005 -full`). Children are sorted by `group.sequence` ASC, falling back to lexicographic ID order. The flag is **batch-scoped**: `/new FEAT-005 FEAT-008 -full` expands BOTH parents. If a `-full` parent has zero discovered children → HALT and report (do not silently no-op). With `-full`, all children share the same `group.parent`, so the existing worktree-grouping logic (pre-flight step 4) places them in ONE worktree under the parent's `git_strategy.branch` — no grouping question is asked.
31
+
32
+ Parser contract: strip `-full` / `--full` tokens from the args list, treat each remaining token as a parent ID, and expand via the rules above. Mixed batches are allowed (`/new FEAT-005 -full FEAT-007` queues all children of FEAT-005 PLUS the standalone FEAT-007).
26
33
 
27
34
  If no card IDs are provided, ask the user which cards to implement.
28
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "3.22.1",
3
+ "version": "3.23.0",
4
4
  "description": "Claude Agent Framework - Reusable framework for coordinating AI agents and humans in software projects",
5
5
  "bin": {
6
6
  "baldart": "./bin/baldart.js"