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
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
@@ -902,27 +902,63 @@ Then ask with `AskUserQuestion`:
902
902
903
903
## Phase 5.8: Git Strategy
904
904
905
-
Ask about the branching and merge strategy for this intent. These settings control how unit work is organized and merged.
905
+
Ask about the delivery strategy, source branch, and merge behavior for this intent. These settings control how unit work is organized and delivered.
906
906
907
907
Use `AskUserQuestion`:
908
+
909
+
**Question 1: Delivery strategy**
910
+
908
911
```json
909
912
{
910
913
"questions": [
911
914
{
912
-
"question": "How should unit work be branched?",
913
-
"header": "Branching",
915
+
"question": "How should completed units be delivered?",
916
+
"header": "Delivery Strategy",
914
917
"options": [
915
-
{"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."},
916
-
{"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."},
917
-
{"label": "Trunk-based", "description": "All work on main, no feature branches. Best for small, low-risk changes."}
918
+
{
919
+
"label": "Review each unit individually",
920
+
"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."
921
+
},
922
+
{
923
+
"label": "Build everything, then open one MR",
924
+
"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."
925
+
},
926
+
{
927
+
"label": "Build everything on my default branch",
928
+
"description": "Same as above, but all work happens directly on the default branch. No feature branches, no MR — relies on CI to gate quality."
929
+
}
918
930
],
919
931
"multiSelect": false
920
932
}
921
933
]
922
934
}
923
935
```
924
936
925
-
**If the user selected "Intent branch"**, ask a follow-up about auto-merge:
937
+
**Question 2: Source branch***(asked for ALL strategies)*
938
+
939
+
```json
940
+
{
941
+
"questions": [
942
+
{
943
+
"question": "Which branch should units be created from?",
944
+
"header": "Source Branch",
945
+
"options": [
946
+
{
947
+
"label": "Use the default branch (recommended)",
948
+
"description": "Create unit/intent branches from the repo's default branch (e.g. main, dev)."
949
+
},
950
+
{
951
+
"label": "Use my current branch",
952
+
"description": "Create branches from the branch you're currently on."
953
+
}
954
+
],
955
+
"multiSelect": false
956
+
}
957
+
]
958
+
}
959
+
```
960
+
961
+
**Question 3: Auto-merge***(only if user selected "Build everything, then open one MR")*
926
962
927
963
```json
928
964
{
@@ -940,7 +976,7 @@ Use `AskUserQuestion`:
940
976
}
941
977
```
942
978
943
-
**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.
979
+
**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.
944
980
945
981
Store the selections. These will be written into the `intent.md` frontmatter in Phase 6 under a `git:` key:
946
982
@@ -952,36 +988,43 @@ git:
952
988
```
953
989
954
990
Map user selections to config values:
955
-
- "Unit branches" → `unit` (no `auto_merge` key — user merges their own PRs)
956
-
- "Intent branch"→ `intent`
957
-
- "Trunk-based"→ `trunk`
991
+
992
+
| What You Want | Strategy Value |
993
+
|--------------|----------------|
994
+
| Review each unit individually | `unit` |
995
+
| Build everything, then open one MR | `intent` |
996
+
| Build everything on my default branch | `trunk` |
997
+
998
+
- "Review each unit individually"→ `unit` (no `auto_merge` key — user merges their own PRs)
999
+
- "Build everything, then open one MR"→ `intent`
1000
+
- "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.
1006
+
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.
964
1007
965
1008
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.
966
1009
967
1010
Use `AskUserQuestion`:
968
1011
```json
969
1012
{
970
1013
"questions": [{
971
-
"question": "Should any foundational units use per-unit branching (own PR to main) while others use the intent branch?",
1014
+
"question": "Should any foundational units be reviewed individually (own PR to main) while others merge into the intent branch?",
972
1015
"header": "Hybrid",
973
1016
"options": [
974
-
{"label": "No, all intent branch", "description": "All units merge into the intent branch (standard intent strategy)"},
975
-
{"label": "Yes, some per-unit", "description": "I'll specify which foundational units should get their own PR"}
1017
+
{"label": "No, build everything into the intent branch", "description": "All units merge into the intent branch (standard intent strategy)"},
1018
+
{"label": "Yes, some reviewed individually", "description": "I'll specify which foundational units should get their own PR"}
976
1019
],
977
1020
"multiSelect": false
978
1021
}]
979
1022
}
980
1023
```
981
1024
982
-
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.
1025
+
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.
983
1026
984
-
**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.
1027
+
**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