devflow-kit 3.17.0 → 3.18.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,14 @@ All notable changes to Devflow 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.18.0] - 2026-11-07
9
+
10
+ ### Added
11
+
12
+ - **`/plan` adds a Size forecast line to the plan** ([#771](https://github.com/dean0x/devflow/issues/771)). The design artifact's Implementation Plan section ends with one plain line, `Size forecast: files a-b, added a-b, removed a-b, commits a-b`: whole-number ranges, a <= b, for the files the change writes, the added and removed diff lines (tests and docs included) and the commits `/implement` makes before review. Gate 2 and the run report show it. `/plan` copies the line only when it has this shape, else leaves it out and says so. It changes no gate, depth or level, and `/implement` does not pass it to its agents. The four `/plan` build ceilings rise by 690 bytes and the four `/implement` ceilings by 39.
13
+
14
+ ---
15
+
8
16
  ## [3.17.0] - 2026-11-06
9
17
 
10
18
  ### Added
@@ -2513,6 +2521,7 @@ devflow init
2513
2521
  ---
2514
2522
 
2515
2523
  [Unreleased]: https://github.com/dean0x/devflow/compare/v3.8.0...HEAD
2524
+ [3.18.0]: https://github.com/dean0x/devflow/compare/v3.17.0...v3.18.0
2516
2525
  [3.17.0]: https://github.com/dean0x/devflow/compare/v3.16.0...v3.17.0
2517
2526
  [3.16.0]: https://github.com/dean0x/devflow/compare/v3.15.0...v3.16.0
2518
2527
  [3.15.0]: https://github.com/dean0x/devflow/compare/v3.14.0...v3.15.0
@@ -54,7 +54,7 @@ Set `EVIDENCE_POLICY`, `ISSUE_REQUIRED`, `APPLY_CONVENTIONS` and `REQUIRE_NON_AU
54
54
  **Plan Document Handling** (when `COMMAND_INPUT` is a path ending in `.md`):
55
55
  1. Read the plan document. From its YAML frontmatter, take `execution-strategy` and `issue`.
56
56
  2. If the frontmatter `issue` is present and is not `pending`: forward it verbatim as the setup-task `ISSUE_INPUT` (`pending` means /plan's issue step degraded or was declined — treat it as absent)
57
- 3. Extract its Subtask Breakdown, Implementation Plan, Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
57
+ 3. Extract its Subtask Breakdown, Implementation Plan (without its Size forecast line), Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
58
58
 
59
59
  `PR_DESCRIPTION_GUIDANCE` is the full `## PR Description Guidance` section of the plan document. Any other input, empty input included, or a plan without that section, gives `(none)`.
60
60
 
@@ -206,7 +206,7 @@ A KB with no Rules section labels its entries `Rules ({section name}):` and give
206
206
  **Produces:** CODE_AGENT_OUTPUT, FILES_CHANGED
207
207
  **Requires:** TASK_ID, BASE_BRANCH, EXECUTION_PLAN
208
208
 
209
- Setup context is the plan document, issue body or conversation.
209
+ Setup context is EXECUTION_PLAN, else the issue body or conversation.
210
210
 
211
211
  **Strategy Selection**:
212
212
  - If plan document provided: use `execution-strategy` from frontmatter (if absent, use the table below)
@@ -351,7 +351,7 @@ Combine into: patterns to follow, integration points, reusable code, edge cases"
351
351
  **Produces:** PLAN_OUTPUTS
352
352
  **Requires:** IMPL_EXPLORATION_SYNTHESIS, GAP_SYNTHESIS
353
353
 
354
- Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.`
354
+ Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.` Ask the agent that reports the steps for one plain line right after them, in the message (no bullet, bold or backticks): `Size forecast: files a-b, added a-b, removed a-b, commits a-b`, whole numbers, a <= b, for the whole change with tests and docs: files written (created, changed or deleted), diff lines added and removed, commits `/implement` makes before review. Never drop or shrink a step to fit it.
355
355
 
356
356
  | Focus | Output |
357
357
  |-------|--------|
@@ -396,7 +396,7 @@ Use AskUserQuestion to present:
396
396
 
397
397
  1. **Implementation Plan Summary**
398
398
  - Execution strategy
399
- - Key implementation steps with files
399
+ - Key implementation steps with files, and the steps report's Size forecast line if it fits the Phase 10 shape, else its absence
400
400
  - Test strategy — the test plan as TP lines, at least one per acceptance criterion (shape below)
401
401
 
402
402
  2. **Design Review Findings**
@@ -461,7 +461,7 @@ context-risk: LOW
461
461
  Required sections, in this order, no others:
462
462
  1. **Acceptance Criteria** — testable success conditions, numbered AC-1, AC-2, ...: `ACCEPTANCE_CRITERIA` when fetched, refined by exploration + gap analysis
463
463
  2. **Subtask Breakdown** — phases with domains, dependencies and a Serves cell (the item-1 ACs it serves); only with more than one subtask
464
- 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung
464
+ 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung; last, after a blank line, the one Size forecast line Gate 2 showed (the latest Plan run's), unchanged, and no other copy; none if Gate 2 showed none
465
465
  4. **Patterns to Follow** — from exploration synthesis (file:line references)
466
466
  5. **Known limits and deferrals** — accepted risks, deferred and excluded items, each with one reason
467
467
  6. **PR Description Guidance** — the block below
@@ -550,6 +550,7 @@ Display completion summary:
550
550
  - Gap analysis summary (N blocking, M should-address)
551
551
  - Design review summary (N anti-patterns found, M mitigated in plan)
552
552
  - Gate level: {GATE_LEVEL}, depth {depth from CONFIRMED_SCOPE, else normal}, with any level note
553
+ - Size forecast line, or why it is absent
553
554
  - Suggested next step: `/implement {artifact-path}` or `/implement #{issue-number}`
554
555
 
555
556
  ## Principles
@@ -55,7 +55,7 @@ When `EVIDENCE_POLICY` is `required`, record `TRACEABILITY: DEGRADED (compliance
55
55
  **Plan Document Handling** (when `COMMAND_INPUT` is a path ending in `.md`):
56
56
  1. Read the plan document. From its YAML frontmatter, take `execution-strategy` and `issue`.
57
57
  2. If the frontmatter `issue` is present and is not `pending`: forward it verbatim as the setup-task `ISSUE_INPUT` (`pending` means /plan's issue step degraded or was declined — treat it as absent)
58
- 3. Extract its Subtask Breakdown, Implementation Plan, Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
58
+ 3. Extract its Subtask Breakdown, Implementation Plan (without its Size forecast line), Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
59
59
 
60
60
  `PR_DESCRIPTION_GUIDANCE` is the full `## PR Description Guidance` section of the plan document. Any other input, empty input included, or a plan without that section, gives `(none)`.
61
61
 
@@ -218,7 +218,7 @@ A KB with no Rules section labels its entries `Rules ({section name}):` and give
218
218
  **Produces:** CODE_AGENT_OUTPUT, FILES_CHANGED
219
219
  **Requires:** TASK_ID, BASE_BRANCH, EXECUTION_PLAN
220
220
 
221
- Setup context is the plan document, issue body or conversation.
221
+ Setup context is EXECUTION_PLAN, else the issue body or conversation.
222
222
 
223
223
  **Strategy Selection**:
224
224
  - If plan document provided: use `execution-strategy` from frontmatter (if absent, use the table below)
@@ -351,7 +351,7 @@ Combine into: patterns to follow, integration points, reusable code, edge cases"
351
351
  **Produces:** PLAN_OUTPUTS
352
352
  **Requires:** IMPL_EXPLORATION_SYNTHESIS, GAP_SYNTHESIS
353
353
 
354
- Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.`
354
+ Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.` Ask the agent that reports the steps for one plain line right after them, in the message (no bullet, bold or backticks): `Size forecast: files a-b, added a-b, removed a-b, commits a-b`, whole numbers, a <= b, for the whole change with tests and docs: files written (created, changed or deleted), diff lines added and removed, commits `/implement` makes before review. Never drop or shrink a step to fit it.
355
355
 
356
356
  | Focus | Output |
357
357
  |-------|--------|
@@ -396,7 +396,7 @@ Use AskUserQuestion to present:
396
396
 
397
397
  1. **Implementation Plan Summary**
398
398
  - Execution strategy
399
- - Key implementation steps with files
399
+ - Key implementation steps with files, and the steps report's Size forecast line if it fits the Phase 10 shape, else its absence
400
400
  - Test strategy — the test plan as TP lines, at least one per acceptance criterion (shape below)
401
401
 
402
402
  2. **Design Review Findings**
@@ -461,7 +461,7 @@ context-risk: LOW
461
461
  Required sections, in this order, no others:
462
462
  1. **Acceptance Criteria** — testable success conditions, numbered AC-1, AC-2, ...: `ACCEPTANCE_CRITERIA` when fetched, refined by exploration + gap analysis
463
463
  2. **Subtask Breakdown** — phases with domains, dependencies and a Serves cell (the item-1 ACs it serves); only with more than one subtask
464
- 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung
464
+ 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung; last, after a blank line, the one Size forecast line Gate 2 showed (the latest Plan run's), unchanged, and no other copy; none if Gate 2 showed none
465
465
  4. **Patterns to Follow** — from exploration synthesis (file:line references)
466
466
  5. **Known limits and deferrals** — accepted risks, deferred and excluded items, each with one reason
467
467
  6. **PR Description Guidance** — the block below
@@ -545,6 +545,7 @@ Display completion summary:
545
545
  - Gap analysis summary (N blocking, M should-address)
546
546
  - Design review summary (N anti-patterns found, M mitigated in plan)
547
547
  - Gate level: {GATE_LEVEL}, depth {depth from CONFIRMED_SCOPE, else normal}, with any level note
548
+ - Size forecast line, or why it is absent
548
549
  - Suggested next step: `/implement {artifact-path}` or `/implement #{issue-number}`
549
550
 
550
551
  ## Principles
@@ -55,7 +55,7 @@ When `EVIDENCE_POLICY` is `required`, record `TRACEABILITY: DEGRADED (compliance
55
55
  **Plan Document Handling** (when `COMMAND_INPUT` is a path ending in `.md`):
56
56
  1. Read the plan document. From its YAML frontmatter, take `execution-strategy` and `issue`.
57
57
  2. If the frontmatter `issue` is present and is not `pending`: forward it verbatim as the setup-task `ISSUE_INPUT` (`pending` means /plan's issue step degraded or was declined — treat it as absent)
58
- 3. Extract its Subtask Breakdown, Implementation Plan, Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
58
+ 3. Extract its Subtask Breakdown, Implementation Plan (without its Size forecast line), Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
59
59
 
60
60
  `PR_DESCRIPTION_GUIDANCE` is the full `## PR Description Guidance` section of the plan document. Any other input, empty input included, or a plan without that section, gives `(none)`.
61
61
 
@@ -192,7 +192,7 @@ A KB with no Rules section labels its entries `Rules ({section name}):` and give
192
192
  **Produces:** CODE_AGENT_OUTPUT, FILES_CHANGED
193
193
  **Requires:** TASK_ID, BASE_BRANCH, EXECUTION_PLAN
194
194
 
195
- Setup context is the plan document, issue body or conversation.
195
+ Setup context is EXECUTION_PLAN, else the issue body or conversation.
196
196
 
197
197
  **Strategy Selection**:
198
198
  - If plan document provided: use `execution-strategy` from frontmatter (if absent, use the table below)
@@ -323,7 +323,7 @@ Combine into: patterns to follow, integration points, reusable code, edge cases"
323
323
  **Produces:** PLAN_OUTPUTS
324
324
  **Requires:** IMPL_EXPLORATION_SYNTHESIS, GAP_SYNTHESIS
325
325
 
326
- Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.`
326
+ Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.` Ask the agent that reports the steps for one plain line right after them, in the message (no bullet, bold or backticks): `Size forecast: files a-b, added a-b, removed a-b, commits a-b`, whole numbers, a <= b, for the whole change with tests and docs: files written (created, changed or deleted), diff lines added and removed, commits `/implement` makes before review. Never drop or shrink a step to fit it.
327
327
 
328
328
  | Focus | Output |
329
329
  |-------|--------|
@@ -368,7 +368,7 @@ Use AskUserQuestion to present:
368
368
 
369
369
  1. **Implementation Plan Summary**
370
370
  - Execution strategy
371
- - Key implementation steps with files
371
+ - Key implementation steps with files, and the steps report's Size forecast line if it fits the Phase 10 shape, else its absence
372
372
  - Test strategy — the test plan as TP lines, at least one per acceptance criterion (shape below)
373
373
 
374
374
  2. **Design Review Findings**
@@ -433,7 +433,7 @@ context-risk: LOW
433
433
  Required sections, in this order, no others:
434
434
  1. **Acceptance Criteria** — testable success conditions, numbered AC-1, AC-2, ...: `ACCEPTANCE_CRITERIA` when fetched, refined by exploration + gap analysis
435
435
  2. **Subtask Breakdown** — phases with domains, dependencies and a Serves cell (the item-1 ACs it serves); only with more than one subtask
436
- 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung
436
+ 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung; last, after a blank line, the one Size forecast line Gate 2 showed (the latest Plan run's), unchanged, and no other copy; none if Gate 2 showed none
437
437
  4. **Patterns to Follow** — from exploration synthesis (file:line references)
438
438
  5. **Known limits and deferrals** — accepted risks, deferred and excluded items, each with one reason
439
439
  6. **PR Description Guidance** — the block below
@@ -517,6 +517,7 @@ Display completion summary:
517
517
  - Gap analysis summary (N blocking, M should-address)
518
518
  - Design review summary (N anti-patterns found, M mitigated in plan)
519
519
  - Gate level: {GATE_LEVEL}, depth {depth from CONFIRMED_SCOPE, else normal}, with any level note
520
+ - Size forecast line, or why it is absent
520
521
  - Suggested next step: `/implement {artifact-path}` or `/implement #{issue-number}`
521
522
 
522
523
  ## Principles
@@ -54,7 +54,7 @@ Set `EVIDENCE_POLICY`, `ISSUE_REQUIRED`, `APPLY_CONVENTIONS` and `REQUIRE_NON_AU
54
54
  **Plan Document Handling** (when `COMMAND_INPUT` is a path ending in `.md`):
55
55
  1. Read the plan document. From its YAML frontmatter, take `execution-strategy` and `issue`.
56
56
  2. If the frontmatter `issue` is present and is not `pending`: forward it verbatim as the setup-task `ISSUE_INPUT` (`pending` means /plan's issue step degraded or was declined — treat it as absent)
57
- 3. Extract its Subtask Breakdown, Implementation Plan, Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
57
+ 3. Extract its Subtask Breakdown, Implementation Plan (without its Size forecast line), Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
58
58
 
59
59
  `PR_DESCRIPTION_GUIDANCE` is the full `## PR Description Guidance` section of the plan document. Any other input, empty input included, or a plan without that section, gives `(none)`.
60
60
 
@@ -180,7 +180,7 @@ A KB with no Rules section labels its entries `Rules ({section name}):` and give
180
180
  **Produces:** CODE_AGENT_OUTPUT, FILES_CHANGED
181
181
  **Requires:** TASK_ID, BASE_BRANCH, EXECUTION_PLAN
182
182
 
183
- Setup context is the plan document, issue body or conversation.
183
+ Setup context is EXECUTION_PLAN, else the issue body or conversation.
184
184
 
185
185
  **Strategy Selection**:
186
186
  - If plan document provided: use `execution-strategy` from frontmatter (if absent, use the table below)
@@ -323,7 +323,7 @@ Combine into: patterns to follow, integration points, reusable code, edge cases"
323
323
  **Produces:** PLAN_OUTPUTS
324
324
  **Requires:** IMPL_EXPLORATION_SYNTHESIS, GAP_SYNTHESIS
325
325
 
326
- Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.`
326
+ Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.` Ask the agent that reports the steps for one plain line right after them, in the message (no bullet, bold or backticks): `Size forecast: files a-b, added a-b, removed a-b, commits a-b`, whole numbers, a <= b, for the whole change with tests and docs: files written (created, changed or deleted), diff lines added and removed, commits `/implement` makes before review. Never drop or shrink a step to fit it.
327
327
 
328
328
  | Focus | Output |
329
329
  |-------|--------|
@@ -368,7 +368,7 @@ Use AskUserQuestion to present:
368
368
 
369
369
  1. **Implementation Plan Summary**
370
370
  - Execution strategy
371
- - Key implementation steps with files
371
+ - Key implementation steps with files, and the steps report's Size forecast line if it fits the Phase 10 shape, else its absence
372
372
  - Test strategy — the test plan as TP lines, at least one per acceptance criterion (shape below)
373
373
 
374
374
  2. **Design Review Findings**
@@ -433,7 +433,7 @@ context-risk: LOW
433
433
  Required sections, in this order, no others:
434
434
  1. **Acceptance Criteria** — testable success conditions, numbered AC-1, AC-2, ...: `ACCEPTANCE_CRITERIA` when fetched, refined by exploration + gap analysis
435
435
  2. **Subtask Breakdown** — phases with domains, dependencies and a Serves cell (the item-1 ACs it serves); only with more than one subtask
436
- 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung
436
+ 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung; last, after a blank line, the one Size forecast line Gate 2 showed (the latest Plan run's), unchanged, and no other copy; none if Gate 2 showed none
437
437
  4. **Patterns to Follow** — from exploration synthesis (file:line references)
438
438
  5. **Known limits and deferrals** — accepted risks, deferred and excluded items, each with one reason
439
439
  6. **PR Description Guidance** — the block below
@@ -522,6 +522,7 @@ Display completion summary:
522
522
  - Gap analysis summary (N blocking, M should-address)
523
523
  - Design review summary (N anti-patterns found, M mitigated in plan)
524
524
  - Gate level: {GATE_LEVEL}, depth {depth from CONFIRMED_SCOPE, else normal}, with any level note
525
+ - Size forecast line, or why it is absent
525
526
  - Suggested next step: `/implement {artifact-path}` or `/implement #{issue-number}`
526
527
 
527
528
  ## Principles
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devflow-kit",
3
- "version": "3.17.0",
3
+ "version": "3.18.0",
4
4
  "description": "A meta-harness for Claude Code — turns a single coding agent into an engineering team: orchestration, parallel review, persistent memory and curated decisions",
5
5
  "type": "module",
6
6
  "bin": {
@@ -59,7 +59,7 @@ When `EVIDENCE_POLICY` is `required`, record `TRACEABILITY: DEGRADED (compliance
59
59
  **Plan Document Handling** (when `COMMAND_INPUT` is a path ending in `.md`):
60
60
  1. Read the plan document. From its YAML frontmatter, take `execution-strategy` and `issue`.
61
61
  2. If the frontmatter `issue` is present and is not `pending`: forward it verbatim as the setup-task `ISSUE_INPUT` (`pending` means /plan's issue step degraded or was declined — treat it as absent)
62
- 3. Extract its Subtask Breakdown, Implementation Plan, Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
62
+ 3. Extract its Subtask Breakdown, Implementation Plan (without its Size forecast line), Patterns to Follow, Known limits and Acceptance Criteria as `EXECUTION_PLAN`. Captured values override defaults from Git agent where present.
63
63
 
64
64
  `PR_DESCRIPTION_GUIDANCE` is the full `## PR Description Guidance` section of the plan document. Any other input, empty input included, or a plan without that section, gives `(none)`.
65
65
 
@@ -197,7 +197,7 @@ Pass `DECISIONS_CONTEXT` to Code agent (Phase 2) and Harden agent (Phase 4).
197
197
  **Produces:** CODE_AGENT_OUTPUT, FILES_CHANGED
198
198
  **Requires:** TASK_ID, BASE_BRANCH, EXECUTION_PLAN
199
199
 
200
- Setup context is the plan document, issue body or conversation.
200
+ Setup context is EXECUTION_PLAN, else the issue body or conversation.
201
201
 
202
202
  **Strategy Selection**:
203
203
  - If plan document provided: use `execution-strategy` from frontmatter (if absent, use the table below)
@@ -290,7 +290,7 @@ Combine into: patterns to follow, integration points, reusable code, edge cases"
290
290
  **Produces:** PLAN_OUTPUTS
291
291
  **Requires:** IMPL_EXPLORATION_SYNTHESIS, GAP_SYNTHESIS
292
292
 
293
- Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.`
293
+ Spawn 3 `Agent(subagent_type="Plan")` agents **in a single message**, each with implementation exploration synthesis and `GAP_SYNTHESIS`. Ask each agent for a final report of at most about 1,500 tokens: the plan itself, not a restatement of the exploration. Add this line to every Plan prompt, at every level: `Per step give its files, the callers and consumers to update, its Must lines (what has to hold) and one rung, the lowest that meets the acceptance criteria: not needed, reuse, standard library, installed dependency, one line, minimum new code. Add Known limits: accepted risks and deferred items of the whole change, each with one reason; a limit of one step goes on its Must line. Never lower or flag a trust-boundary, security, data-loss or fail-closed guard, or its test.` Ask the agent that reports the steps for one plain line right after them, in the message (no bullet, bold or backticks): `Size forecast: files a-b, added a-b, removed a-b, commits a-b`, whole numbers, a <= b, for the whole change with tests and docs: files written (created, changed or deleted), diff lines added and removed, commits `/implement` makes before review. Never drop or shrink a step to fit it.
294
294
 
295
295
  | Focus | Output |
296
296
  |-------|--------|
@@ -335,7 +335,7 @@ Use AskUserQuestion to present:
335
335
 
336
336
  1. **Implementation Plan Summary**
337
337
  - Execution strategy
338
- - Key implementation steps with files
338
+ - Key implementation steps with files, and the steps report's Size forecast line if it fits the Phase 10 shape, else its absence
339
339
  - Test strategy — the test plan as TP lines, at least one per acceptance criterion (shape below)
340
340
 
341
341
  2. **Design Review Findings**
@@ -395,7 +395,7 @@ context-risk: LOW
395
395
  Required sections, in this order, no others:
396
396
  1. **Acceptance Criteria** — testable success conditions, numbered AC-1, AC-2, ...: `ACCEPTANCE_CRITERIA` when fetched, refined by exploration + gap analysis
397
397
  2. **Subtask Breakdown** — phases with domains, dependencies and a Serves cell (the item-1 ACs it serves); only with more than one subtask
398
- 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung
398
+ 3. **Implementation Plan** — ordered steps, each with Files, Callers and consumers to update, Must lines and Rung; last, after a blank line, the one Size forecast line Gate 2 showed (the latest Plan run's), unchanged, and no other copy; none if Gate 2 showed none
399
399
  4. **Patterns to Follow** — from exploration synthesis (file:line references)
400
400
  5. **Known limits and deferrals** — accepted risks, deferred and excluded items, each with one reason
401
401
  6. **PR Description Guidance** — the block below
@@ -491,6 +491,7 @@ Display completion summary:
491
491
  - Gap analysis summary (N blocking, M should-address)
492
492
  - Design review summary (N anti-patterns found, M mitigated in plan)
493
493
  - Gate level: {GATE_LEVEL}, depth {depth from CONFIRMED_SCOPE, else normal}, with any level note
494
+ - Size forecast line, or why it is absent
494
495
  - Suggested next step: `/implement {artifact-path}` or `/implement #{issue-number}`
495
496
 
496
497
  ## Principles
@@ -24,7 +24,6 @@ Each phase or subtask names the AC numbers it serves.
24
24
  ### Execution Strategy
25
25
  **Type**: {SINGLE_CODE_AGENT | SEQUENTIAL_CODE_AGENTS | PARALLEL_CODE_AGENTS}
26
26
  **Context Risk**: {LOW | MEDIUM | HIGH | CRITICAL}
27
- **File Estimate**: {n} files across {m} modules
28
27
  **Reason**: {why this strategy}
29
28
 
30
29
  ### Subtask Breakdown (if not SINGLE_CODE_AGENT)
@@ -39,6 +38,8 @@ Each phase or subtask names the AC numbers it serves.
39
38
  | 1 | {action} | `file` | `caller` | {what has to hold} | {lowest rung that works} | `test_file` | - |
40
39
  | 2 | {action} | `file` | `caller` | {what has to hold} | {lowest rung that works} | `test_file` | Step 1 |
41
40
 
41
+ {the steps report's Size forecast line, unchanged; no line when it has none}
42
+
42
43
  ### Known limits and deferrals
43
44
  | Limit | Reason |
44
45
  |-------|--------|