Arness Batch Planning
Plan multiple features in a single session with parallel pre-analysis and pipelined plan generation. Supports features from greenfield Feature Tracker (F-NNN), GitHub issues, Jira issues, or plain descriptions. Pre-analyzes all selected features in parallel using arn-code-batch-analyzer agents to generate draft specs, then guides the user through sequential review. Plans are generated in the background while the user reviews the next spec.
This skill is a sequencer. It MUST NOT duplicate sub-skill logic. All pipeline work is done by the invoked skills and agents (arn-code-batch-analyzer, arn-code-feature-spec, arn-code-feature-planner, arn-code-save-plan). Arness-code-batch-planning handles: source detection, feature selection, parallel pre-analysis orchestration, sequential spec review, pipelined plan generation, plan review, and chaining.
Pipeline position:
Sources:
arn-spark (greenfield) -> feature-backlog.md ─┐
GitHub issues ─────────────────────────────────┤
Jira issues ───────────────────────────────────┤
v
**arn-code-batch-planning**
|
+-- Step 2.5: scope assessment (score each feature → swift/standard/thorough)
+-- Step 2.6: generate SWIFT/STANDARD plans (auto, no review)
+-- Step 2.7: parallel arn-code-batch-analyzer (thorough only → draft specs)
+-- Step 3: per thorough feature: arn-code-feature-spec (resume from draft)
+-- Step 3.5: per thorough feature: plan review → save-plan
|
v
arn-code-batch-implement
Step 0: Ensure Configuration
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-ensure-config/references/step-0-fast-path.md and follow its instructions. This guarantees a user profile exists and ## Arness is configured with Arness Code fields before proceeding.
After configuration is ensured, extract the following from ## Arness:
- Plans directory — base path where project plans and PLAN_PREVIEW files are stored
- Specs directory — path to the directory containing specification files
- Code patterns — path to the directory containing stored pattern documentation
- Vision directory (if exists) — path to greenfield vision artifacts
- Use cases directory (if exists) — path to UC documents
- Issue tracker — determines remote issue tracker type (
github,jira, ornone) - Template path — path to report templates
Step 1: Detect Feature Sources
Batch planning supports multiple feature sources. Check them in order — the first match determines the primary source.
1a. Check for Greenfield Feature Tracker
Read the backlog-selection reference: ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-batch-planning/references/backlog-selection.md. Follow its procedure to scan the Feature Tracker and identify unblocked features.
If greenfield backlog exists with 2+ unblocked features: Proceed to Step 2 with greenfield features (input_type: greenfield for each).
If greenfield backlog exists with exactly 1 unblocked feature:
Inform the user: "Only 1 unblocked feature found: F-XXX [Feature Name]. Batch planning is designed for 2+ features."
Ask (using AskUserQuestion):
"How would you like to proceed?"
Options:
- Plan this feature — Switch to arn-planning with F-XXX
- Proceed with batch anyway — Use the batch pipeline for this single feature
- Exit
If Plan this feature: invoke Skill: arn-code:arn-planning with the F-XXX reference. Exit batch-planning.
If Proceed with batch anyway: continue to Step 2 with the single feature pre-selected.
If Exit: STOP.
If greenfield backlog exists with zero unblocked features:
Inform the user: "No unblocked features found. All pending features have incomplete dependencies." Present the summary counts.
Ask (using AskUserQuestion):
"No features are available for batch planning. What would you like to do?"
Options:
- Switch to single-feature planning — Run arn-planning to describe a feature or report a bug
- Exit — I'll wait for dependencies to complete
If Switch: invoke Skill: arn-code:arn-planning. Exit batch-planning.
If Exit: STOP.
1b. Check for Remote Issues (Non-Greenfield Fallback)
If no greenfield Feature Tracker exists (no Vision directory field, or no feature-backlog.md) BUT Issue tracker is github or jira:
Ask (using AskUserQuestion):
"No greenfield feature backlog found, but [GitHub/Jira] issues are available. How would you like to select features?"
Options:
- Browse [GitHub/Jira] issues — Select multiple issues to plan in batch
- Switch to arn-planning — Plan a single feature instead
- Exit
If Browse issues:
- For GitHub:
gh issue list --state open --limit 20 --json number,title,labels - For Jira: fetch open issues via MCP
- Present in a table with number, title, and labels
- Let user multi-select which issues to plan (same layered selection as Step 2)
- For each selected issue, set input_type:
github_issueorjira_issue - Proceed to Step 2 with the selected issues
If Switch: invoke Skill: arn-code:arn-planning. Exit.
If Exit: STOP.
1c. No Feature Source Available
If no greenfield backlog AND no Issue tracker configured:
Inform the user: "Batch planning requires either a greenfield feature backlog or an issue tracker (GitHub/Jira). Run arn-brainstorming to set up the greenfield pipeline, or configure an issue tracker in ## Arness." Offer: "Or run arn-planning to plan a single feature by description." STOP.
Step 2: Feature Selection
Present the unblocked features in a table sorted by phase then priority:
Unblocked features ready for planning:
| # | ID | Feature | Priority | Phase | Deps |
|---|------|---------|----------|-------|------|
| 1 | F-001 | [Name] | Must-have | Foundation | None |
| 2 | F-003 | [Name] | Should-have | Core | F-001 |
| ... | ... | ... | ... | ... | ... |
Also show summary: "[total] features in tracker, [unblocked] unblocked, [in-progress] in progress, [done] done."
Selection flow
If 4 or fewer unblocked features:
Ask (using AskUserQuestion, multiSelect: true):
"Which features would you like to plan for batch implementation? Select all that apply."
Options: list each unblocked feature as F-XXX: [Feature Name]
If more than 4 unblocked features:
Use layered selection to stay within the 4-option AskUserQuestion limit.
First, ask (using AskUserQuestion):
"There are [N] unblocked features. How would you like to select?"
Options:
- All unblocked features — Plan all [N] features sequentially
- Let me choose — Pick specific features from the list
If All unblocked features: select all, proceed to Step 2.5.
If Let me choose: present features in groups of 4 using sequential AskUserQuestion calls (multiSelect: true). After each group, ask if the user wants to select from the next group or proceed with current selections. Continue until all groups are offered or the user says proceed.
After feature selection is confirmed, inform the user about the batch workflow:
"Batch planning workflow: After all features are planned, the specs and plans will be committed to a new branch, pushed, and a PR will be opened to merge them into main. This is required before batch implementation — workers need the plans on main to find them. You'll be asked to confirm the PR merge before any implementation begins."
If Git is no: instead inform: "Plans will be saved locally. Note: batch implementation requires git — you can implement features one at a time with /arn-implementing."