You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(setup): reframe strategy options from user perspective
Replaces technical labels (Solo/Team/Trunk) with user-intent
descriptions: "Review each unit individually", "Build everything,
then open one MR", "Build everything on default branch."
Adds source branch selection to all strategies.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: plugin/schemas/settings.schema.json
+17-2Lines changed: 17 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -225,9 +225,24 @@
225
225
"properties": {
226
226
"change_strategy": {
227
227
"type": "string",
228
-
"enum": ["trunk", "unit", "intent"],
229
228
"default": "unit",
230
-
"description": "How changes are organized:\n- trunk: All work on main branch, no feature branches\n- unit: One branch per unit, each gets its own MR reviewed individually (default)\n- intent: One long-lived branch per intent, agents build autonomously via DAG ordering"
229
+
"oneOf": [
230
+
{
231
+
"const": "unit",
232
+
"title": "Review each unit individually",
233
+
"description": "Each unit opens its own PR/MR. Dependent units wait until their dependencies are merged."
234
+
},
235
+
{
236
+
"const": "intent",
237
+
"title": "Build everything, then open one MR",
238
+
"description": "Units merge into an intent branch as they complete. One final MR for the whole intent."
239
+
},
240
+
{
241
+
"const": "trunk",
242
+
"title": "Build everything on default branch",
243
+
"description": "All work happens directly on the default branch. No feature branches or MRs."
Copy file name to clipboardExpand all lines: plugin/skills/elaborate/SKILL.md
+60-17Lines changed: 60 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -744,27 +744,63 @@ Then ask with `AskUserQuestion`:
744
744
745
745
## Phase 5.8: Git Strategy
746
746
747
-
Ask about the branching and merge strategy for this intent. These settings control how unit work is organized and merged.
747
+
Ask about the delivery strategy, source branch, and merge behavior for this intent. These settings control how unit work is organized and delivered.
748
748
749
749
Use `AskUserQuestion`:
750
+
751
+
**Question 1: Delivery strategy**
752
+
750
753
```json
751
754
{
752
755
"questions": [
753
756
{
754
-
"question": "How should unit work be branched?",
755
-
"header": "Branching",
757
+
"question": "How should completed units be delivered?",
758
+
"header": "Delivery Strategy",
756
759
"options": [
757
-
{"label": "Unit branches (Recommended)", "description": "Each unit gets its own branch and MR, reviewed individually. Supports human or agent builders and /construct <unit-name> targeting. Best for teams adopting AI-DLC gradually."},
758
-
{"label": "Intent branch", "description": "All units merge into a single intent branch. Agents build autonomously via DAG ordering, one MR reviewed at the end. Best for fully autonomous workflows."},
759
-
{"label": "Trunk-based", "description": "All work on main, no feature branches. Best for small, low-risk changes."}
760
+
{
761
+
"label": "Review each unit individually",
762
+
"description": "Each unit opens its own PR/MR. Dependent units wait until their dependencies are merged. Best when you want to validate each piece before moving on."
763
+
},
764
+
{
765
+
"label": "Build everything, then open one MR",
766
+
"description": "Units merge into an intent branch as they complete. Dependent units start automatically once their dependencies are done. One final MR for the whole intent."
767
+
},
768
+
{
769
+
"label": "Build everything on my default branch",
770
+
"description": "Same as above, but all work happens directly on the default branch. No feature branches, no MR — relies on CI to gate quality."
771
+
}
760
772
],
761
773
"multiSelect": false
762
774
}
763
775
]
764
776
}
765
777
```
766
778
767
-
**If the user selected "Intent branch"**, ask a follow-up about auto-merge:
779
+
**Question 2: Source branch***(asked for ALL strategies)*
780
+
781
+
```json
782
+
{
783
+
"questions": [
784
+
{
785
+
"question": "Which branch should units be created from?",
786
+
"header": "Source Branch",
787
+
"options": [
788
+
{
789
+
"label": "Use the default branch (recommended)",
790
+
"description": "Create unit/intent branches from the repo's default branch (e.g. main, dev)."
791
+
},
792
+
{
793
+
"label": "Use my current branch",
794
+
"description": "Create branches from the branch you're currently on."
795
+
}
796
+
],
797
+
"multiSelect": false
798
+
}
799
+
]
800
+
}
801
+
```
802
+
803
+
**Question 3: Auto-merge***(only if user selected "Build everything, then open one MR")*
768
804
769
805
```json
770
806
{
@@ -782,7 +818,7 @@ Use `AskUserQuestion`:
782
818
}
783
819
```
784
820
785
-
**Skip the auto-merge question for "Unit branches"** — in unit strategy, each unit creates its own PR and the user is responsible for merging. **Skip for "Trunk-based"** — no branches to merge.
821
+
**Skip the auto-merge question for "Review each unit individually"** — in unit strategy, each unit creates its own PR and the user is responsible for merging. **Skip for "Build everything on my default branch"** — no branches to merge.
786
822
787
823
Store the selections. These will be written into the `intent.md` frontmatter in Phase 6 under a `git:` key:
788
824
@@ -794,36 +830,43 @@ git:
794
830
```
795
831
796
832
Map user selections to config values:
797
-
- "Unit branches" → `unit` (no `auto_merge` key — user merges their own PRs)
798
-
- "Intent branch"→ `intent`
799
-
- "Trunk-based"→ `trunk`
833
+
834
+
| What You Want | Strategy Value |
835
+
|--------------|----------------|
836
+
| Review each unit individually | `unit` |
837
+
| Build everything, then open one MR | `intent` |
838
+
| Build everything on my default branch | `trunk` |
839
+
840
+
- "Review each unit individually"→ `unit` (no `auto_merge` key — user merges their own PRs)
841
+
- "Build everything, then open one MR"→ `intent`
842
+
- "Build everything on my default branch"→ `trunk`
If the user selected **"Intent branch"** strategy, ask whether any foundational units should use per-unit branching instead. This creates a **hybrid** strategy where one or more units get their own PR (merged directly to the default branch), while the remaining units merge into the intent branch.
848
+
If the user selected **"Build everything, then open one MR"** (intent strategy), ask whether any foundational units should use per-unit branching instead. This creates a **hybrid** strategy where one or more units get their own PR (merged directly to the default branch), while the remaining units merge into the intent branch.
806
849
807
850
This is useful when a foundational unit (e.g., database schema, shared library setup) needs to land on `main` before other units can build on it.
808
851
809
852
Use `AskUserQuestion`:
810
853
```json
811
854
{
812
855
"questions": [{
813
-
"question": "Should any foundational units use per-unit branching (own PR to main) while others use the intent branch?",
856
+
"question": "Should any foundational units be reviewed individually (own PR to main) while others merge into the intent branch?",
814
857
"header": "Hybrid",
815
858
"options": [
816
-
{"label": "No, all intent branch", "description": "All units merge into the intent branch (standard intent strategy)"},
817
-
{"label": "Yes, some per-unit", "description": "I'll specify which foundational units should get their own PR"}
859
+
{"label": "No, build everything into the intent branch", "description": "All units merge into the intent branch (standard intent strategy)"},
860
+
{"label": "Yes, some reviewed individually", "description": "I'll specify which foundational units should get their own PR"}
818
861
],
819
862
"multiSelect": false
820
863
}]
821
864
}
822
865
```
823
866
824
-
If the user selects "Yes", ask which units should use per-unit branching. Note these units — their `git: { change_strategy: unit }` override will be written into unit frontmatter in Phase 6 Step 3.
867
+
If the user selects "Yes", ask which units should be reviewed individually. Note these units — their `git: { change_strategy: unit }` override will be written into unit frontmatter in Phase 6 Step 3.
825
868
826
-
**Skip this question entirely if the user selected "Unit branches" or "Trunk-based" in the main strategy question** — per-unit overrides only make sense with the intent branch strategy.
869
+
**Skip this question entirely if the user selected "Review each unit individually" or "Build everything on my default branch"** — per-unit overrides only make sense with the intent branch strategy.
Copy file name to clipboardExpand all lines: plugin/skills/setup/SKILL.md
+59-9Lines changed: 59 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -255,28 +255,78 @@ For each **confirmed provider**, offer to customize how AI-DLC interacts with it
255
255
256
256
## Phase 5: VCS Strategy
257
257
258
-
Ask the user about their preferred change strategy and auto-merge behavior.
258
+
Ask the user about their preferred delivery strategy, source branch, and auto-merge behavior.
259
259
260
260
Use `AskUserQuestion`:
261
261
262
-
**Question 1: Change strategy**
263
-
- "How should AI-DLC organize code changes?"
264
-
- Options:
265
-
- **Unit branches (Recommended)** — Each unit gets its own branch and MR, reviewed individually. Supports human or agent builders and `/construct <unit-name>` targeting. Best for teams adopting AI-DLC gradually.
266
-
- **Intent branch** — All units merge into a single intent branch. Agents build autonomously via DAG ordering, one MR reviewed at the end. Best for fully autonomous workflows.
267
-
- **Trunk** — All work on main branch, no feature branches
262
+
**Question 1: Delivery strategy**
263
+
264
+
```json
265
+
{
266
+
"questions": [
267
+
{
268
+
"question": "How should completed units be delivered?",
269
+
"header": "Delivery Strategy",
270
+
"options": [
271
+
{
272
+
"label": "Review each unit individually",
273
+
"description": "Each unit opens its own PR/MR. Dependent units wait until their dependencies are merged. Best when you want to validate each piece before moving on."
274
+
},
275
+
{
276
+
"label": "Build everything, then open one MR",
277
+
"description": "Units merge into an intent branch as they complete. Dependent units start automatically once their dependencies are done. One final MR for the whole intent."
278
+
},
279
+
{
280
+
"label": "Build everything on my default branch",
281
+
"description": "Same as above, but all work happens directly on the default branch. No feature branches, no MR — relies on CI to gate quality."
282
+
}
283
+
],
284
+
"multiSelect": false
285
+
}
286
+
]
287
+
}
288
+
```
268
289
269
290
Pre-fill from existing `settings.yml` `{vcs}.change_strategy` if available.
- "Review each unit individually" → `change_strategy: unit`
294
+
- "Build everything, then open one MR" → `change_strategy: intent`
295
+
- "Build everything on my default branch" → `change_strategy: trunk`
296
+
297
+
**Question 2: Source branch** *(asked for ALL strategies)*
298
+
299
+
```json
300
+
{
301
+
"questions": [
302
+
{
303
+
"question": "Which branch should units be created from?",
304
+
"header": "Source Branch",
305
+
"options": [
306
+
{
307
+
"label": "Use the default branch (recommended)",
308
+
"description": "Create unit/intent branches from the repo's default branch (e.g. main, dev)."
309
+
},
310
+
{
311
+
"label": "Use my current branch",
312
+
"description": "Create branches from the branch you're currently on."
313
+
}
314
+
],
315
+
"multiSelect": false
316
+
}
317
+
]
318
+
}
319
+
```
320
+
321
+
**Question 3: Auto-merge** *(only if user selected "Build everything, then open one MR")*
272
322
- "Should completed unit branches be automatically merged into the intent branch?"
273
323
- Options:
274
324
- **Yes (Recommended)** — Auto-merge when unit passes review
275
325
- **No** — Manual merge after review
276
326
277
327
Pre-fill from existing `settings.yml` `{vcs}.auto_merge` if available.
278
328
279
-
Only ask auto-merge if strategy is `intent`. For `unit` strategy, merging is the user's responsibility (they merge their own PRs), so skip this question and do not set`auto_merge`. For `trunk`, branches aren't used.
329
+
Only ask auto-merge if strategy is `intent` ("Build everything, then open one MR"). For `unit` ("Review each unit individually"), merging is the user's responsibility (they merge their own PRs), so skip this question and do not set`auto_merge`. For `trunk` ("Build everything on my default branch"), branches aren't used.
0 commit comments