@mriekki/project-forge 2.1.0 → 2.2.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/assets/components.json +2 -2
- package/assets/generated/ASSEMBLY.json +19 -19
- package/assets/generated/core/core/agents/reviewer.agent.md +1 -1
- package/assets/generated/core/core/instructions/project-forge-workflow.instructions.md +5 -1
- package/assets/generated/core/core/process/GUIDED_NEXT_STEPS.md +22 -6
- package/assets/generated/core/core/process/INTERACTIVE_SESSION_GUIDE.md +31 -1
- package/assets/generated/core/core/skills/cleanup-branches/SKILL.md +6 -10
- package/assets/generated/core/core/skills/code-walkthrough/SKILL.md +12 -8
- package/assets/generated/core/core/skills/core-sync/SKILL.md +17 -11
- package/assets/generated/core/core/skills/define-feature/SKILL.md +9 -18
- package/assets/generated/core/core/skills/deliver/SKILL.md +12 -8
- package/assets/generated/core/core/skills/deploy/SKILL.md +2 -2
- package/assets/generated/core/core/skills/grill-with-docs/SKILL.md +6 -8
- package/assets/generated/core/core/skills/next-step/SKILL.md +10 -11
- package/assets/generated/core/core/skills/project-forge-update/SKILL.md +10 -6
- package/assets/generated/core/core/skills/pull-latest/SKILL.md +16 -10
- package/assets/generated/core/core/skills/refine-requirements/SKILL.md +37 -16
- package/assets/generated/core/core/skills/setup/SKILL.md +20 -17
- package/assets/generated/core/core/skills/start-work/SKILL.md +11 -9
- package/package.json +1 -1
package/assets/components.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"defaultProfile": "greenfield-project",
|
|
6
6
|
"profiles": {
|
|
7
7
|
"greenfield-project": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"components": {
|
|
15
15
|
"core": {
|
|
16
16
|
"repository": "mriekki/project-forge-core",
|
|
17
|
-
"commit": "
|
|
17
|
+
"commit": "d4487e07e732db4129bd092f86f6ceab36b02c15",
|
|
18
18
|
"version": "3.3.0",
|
|
19
19
|
"distribution": "greenfield-workspace",
|
|
20
20
|
"descriptor": "assets/core/distribution.json",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"components": {
|
|
6
6
|
"core": {
|
|
7
7
|
"repository": "mriekki/project-forge-core",
|
|
8
|
-
"commit": "
|
|
8
|
+
"commit": "d4487e07e732db4129bd092f86f6ceab36b02c15",
|
|
9
9
|
"version": "3.3.0",
|
|
10
10
|
"distribution": "greenfield-workspace",
|
|
11
11
|
"files": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{
|
|
18
18
|
"source": "core/agents/reviewer.agent.md",
|
|
19
19
|
"destination": ".github/agents/reviewer.agent.md",
|
|
20
|
-
"sha256": "
|
|
20
|
+
"sha256": "94255c72a6c875722ebaf8b0cb328fe019856c01443b550ca6e2f6c422da983e"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"source": "core/agents/coach.agent.md",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
{
|
|
28
28
|
"source": "core/instructions/project-forge-workflow.instructions.md",
|
|
29
29
|
"destination": ".github/instructions/project-forge-workflow.instructions.md",
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "aa03af8ef23d32d90a85adaeb549873e4de32798c58bfdaf7fe4183a549b1a17"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"source": "core/instructions/project-forge-docs.instructions.md",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
{
|
|
38
38
|
"source": "core/skills/define-feature/SKILL.md",
|
|
39
39
|
"destination": ".github/skills/define-feature/SKILL.md",
|
|
40
|
-
"sha256": "
|
|
40
|
+
"sha256": "c9f85d76a701b3d1af5c70cd74b19ce119b5735cf3537e2618159d58394ffd02"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"source": "core/skills/grill-me/SKILL.md",
|
|
@@ -47,22 +47,22 @@
|
|
|
47
47
|
{
|
|
48
48
|
"source": "core/skills/grill-with-docs/SKILL.md",
|
|
49
49
|
"destination": ".github/skills/grill-with-docs/SKILL.md",
|
|
50
|
-
"sha256": "
|
|
50
|
+
"sha256": "facdfecee977ab01bbe908f6f122e483ea27c98a8f1562973f59f9266b63323e"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"source": "core/skills/refine-requirements/SKILL.md",
|
|
54
54
|
"destination": ".github/skills/refine-requirements/SKILL.md",
|
|
55
|
-
"sha256": "
|
|
55
|
+
"sha256": "ee5085ac6bbf8fb33ab5f6b52e0ac954c164fd3ea51f90965c9bde86adc88def"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"source": "core/skills/start-work/SKILL.md",
|
|
59
59
|
"destination": ".github/skills/start-work/SKILL.md",
|
|
60
|
-
"sha256": "
|
|
60
|
+
"sha256": "5f4d46323d19bb7a1d4e64f233ae64aae8e1874da072d38cb344d3d834bdea8e"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"source": "core/skills/setup/SKILL.md",
|
|
64
64
|
"destination": ".github/skills/setup/SKILL.md",
|
|
65
|
-
"sha256": "
|
|
65
|
+
"sha256": "c295193b341accf03a35105e2e4defdf11aee0198b1e24b74ab371f3a6824985"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"source": "core/skills/build/SKILL.md",
|
|
@@ -92,32 +92,32 @@
|
|
|
92
92
|
{
|
|
93
93
|
"source": "core/skills/next-step/SKILL.md",
|
|
94
94
|
"destination": ".github/skills/next-step/SKILL.md",
|
|
95
|
-
"sha256": "
|
|
95
|
+
"sha256": "7c24a15b9069dcc5218319ab7fb72231e48efd2ebd325d8ff250e142cb3aa813"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"source": "core/skills/deliver/SKILL.md",
|
|
99
99
|
"destination": ".github/skills/deliver/SKILL.md",
|
|
100
|
-
"sha256": "
|
|
100
|
+
"sha256": "238d6c81a7253c4241e4cf8588be5a5986b406b7e3a56cac115fc47a46071c71"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"source": "core/skills/cleanup-branches/SKILL.md",
|
|
104
104
|
"destination": ".github/skills/cleanup-branches/SKILL.md",
|
|
105
|
-
"sha256": "
|
|
105
|
+
"sha256": "b44af82b8e21693fcc600cb9628c50f49a117c7cfb7840af0f2ccedad2f96dc7"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"source": "core/skills/pull-latest/SKILL.md",
|
|
109
109
|
"destination": ".github/skills/pull-latest/SKILL.md",
|
|
110
|
-
"sha256": "
|
|
110
|
+
"sha256": "709471b55c41ec72fe0ca4eb87af0740ab9a947ef0b31c36f8cf51afc58d3ccb"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"source": "core/skills/project-forge-update/SKILL.md",
|
|
114
114
|
"destination": ".github/skills/project-forge-update/SKILL.md",
|
|
115
|
-
"sha256": "
|
|
115
|
+
"sha256": "3463a68171fa30ef10f1ca514424236317ec364f015c5446f49911a1a3c9bb12"
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
"source": "core/skills/core-sync/SKILL.md",
|
|
119
119
|
"destination": ".github/skills/core-sync/SKILL.md",
|
|
120
|
-
"sha256": "
|
|
120
|
+
"sha256": "cbc498597cea7a48004fc507f9a6efc130544e57f347c0efdbb073f71f14965e"
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"source": "core/skills/upstream-fix/SKILL.md",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
{
|
|
143
143
|
"source": "core/skills/deploy/SKILL.md",
|
|
144
144
|
"destination": ".github/skills/deploy/SKILL.md",
|
|
145
|
-
"sha256": "
|
|
145
|
+
"sha256": "a2092940eea537223abcd4ed1cbea20dccdead538b21841b305f243686715af0"
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
148
|
"source": "core/skills/tear-down/SKILL.md",
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
{
|
|
173
173
|
"source": "core/skills/code-walkthrough/SKILL.md",
|
|
174
174
|
"destination": ".github/skills/code-walkthrough/SKILL.md",
|
|
175
|
-
"sha256": "
|
|
175
|
+
"sha256": "34cb60680a3effc6af3a5ec22fe0c20d4b9b8064b8b808afed673be988b0f210"
|
|
176
176
|
},
|
|
177
177
|
{
|
|
178
178
|
"source": "core/skills/learning-review/SKILL.md",
|
|
@@ -202,12 +202,12 @@
|
|
|
202
202
|
{
|
|
203
203
|
"source": "core/process/GUIDED_NEXT_STEPS.md",
|
|
204
204
|
"destination": "docs/process/GUIDED_NEXT_STEPS.md",
|
|
205
|
-
"sha256": "
|
|
205
|
+
"sha256": "f25f08e6b2e904f44652fb7ea78b9f576f544a55950d63741b6f4806e4ee3287"
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
"source": "core/process/INTERACTIVE_SESSION_GUIDE.md",
|
|
209
209
|
"destination": "docs/process/INTERACTIVE_SESSION_GUIDE.md",
|
|
210
|
-
"sha256": "
|
|
210
|
+
"sha256": "c35f2f4bc1b52746b205eab65982b32d9a2fe58f1c750f9744ddfdd320c3f52c"
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"source": "core/process/COACHING_GUIDE.md",
|
|
@@ -72,7 +72,7 @@ READY / CHANGES REQUIRED / INSUFFICIENT EVIDENCE
|
|
|
72
72
|
|
|
73
73
|
## Guided ending
|
|
74
74
|
|
|
75
|
-
After findings use CURRENT STATE, RECOMMENDED NEXT STEP, and a small
|
|
75
|
+
After findings use CURRENT STATE, RECOMMENDED NEXT STEP, and a small set of relevant action choices. When the host exposes structured question controls, render mutually exclusive actions through **single-select** UI following `INTERACTIVE_SESSION_GUIDE.md`; in VS Code use the native question surface such as `vscode_askQuestions`. Use a numbered text menu only when structured choice UI is unavailable. Reviewer itself does not commit, push, create/merge PRs, or deploy.
|
|
76
76
|
|
|
77
77
|
When implementation is READY and the human accepts the meaningful local diff, explicitly recommend:
|
|
78
78
|
|
|
@@ -20,7 +20,11 @@ For implementation, establish the repository-appropriate short-lived work branch
|
|
|
20
20
|
|
|
21
21
|
Continuous modes such as `/grill-me`, `/grill-with-docs`, `/refine-requirements`, `/coach`, `/learning-review`, and `/deployment-readiness` continue until stopped or naturally complete.
|
|
22
22
|
|
|
23
|
-
During interactive questioning, prefer concise choice-first options for genuinely bounded human decisions, including `Other / specify` and `Not sure — recommend one` when appropriate.
|
|
23
|
+
During interactive questioning, prefer concise choice-first options for genuinely bounded human decisions, including `Other / specify` and `Not sure — recommend one` when appropriate. When the host exposes native structured question controls, use them instead of a plain numbered chat list. In VS Code, use the host's structured question surface such as `vscode_askQuestions` when available: single-select for mutually exclusive decisions/actions and multi-select only when several simultaneous selections are valid. A textual numbered menu is only the fallback when structured choice UI is unavailable.
|
|
24
|
+
|
|
25
|
+
Make a recommendation only when current evidence, repository policy, or a clear engineering tradeoff supports one. Mark exactly one supported choice with the host's `recommended` indicator when available and give a brief rationale. If no option is clearly better, do not mark any option recommended. A recommendation is advice, not approval: record only the human's selected/confirmed answer. If the human asks for no recommendation on one decision, honor that for that decision only; later questions may still include evidence-backed recommendations.
|
|
26
|
+
|
|
27
|
+
Keep factual/environment-specific values and questions intended to elicit the human's own framing, reasoning, debugging approach, design rationale, or understanding open-ended unless options are later useful as scaffolding.
|
|
24
28
|
|
|
25
29
|
For deployment readiness, inspect existing non-secret configuration before asking setup questions. Show already-known simple machine facts such as hostname/address, deployment user, port, and target OS for confirmation. Ask only for missing or conflicting facts. Keep deployment-tool implementation identifiers such as logical target names, `targetName`, SSH aliases, profile paths, and trust-file paths internal unless troubleshooting or genuine ambiguity requires them.
|
|
26
30
|
|
|
@@ -11,18 +11,34 @@ CURRENT STATE
|
|
|
11
11
|
RECOMMENDED NEXT STEP
|
|
12
12
|
<one action and why>
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
CHOICES
|
|
15
|
+
<only the relevant bounded actions, rendered through host structured choice UI when available>
|
|
16
|
+
|
|
17
|
+
RECOMMENDED PATH
|
|
18
|
+
<only when multiple future steps are useful>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For the current choice, follow `INTERACTIVE_SESSION_GUIDE.md`:
|
|
22
|
+
|
|
23
|
+
- use the host's structured choice UI when available; in VS Code use the native question surface such as `vscode_askQuestions`;
|
|
24
|
+
- action menus are normally **single-select** because the developer is choosing one next action;
|
|
25
|
+
- use multi-select only when the workflow explicitly permits several simultaneous selections;
|
|
26
|
+
- make the recommended choice visible when evidence supports one;
|
|
27
|
+
- include `Other / specify` or free-text when the action space may be incomplete;
|
|
28
|
+
- keep genuinely open-ended questions open-ended.
|
|
29
|
+
|
|
30
|
+
A textual numbered menu is only the documented fallback when no structured choice UI is available. Fallback shape:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
OPTIONS — TEXT FALLBACK ONLY
|
|
15
34
|
1. ... [READ ONLY]
|
|
16
35
|
2. ... [MODIFIES DOCS]
|
|
17
36
|
3. ... [MODIFIES FILES]
|
|
18
37
|
4. ... [GIT + GITHUB WRITE]
|
|
19
38
|
5. Stop [NO ACTION]
|
|
20
|
-
|
|
21
|
-
RECOMMENDED PATH
|
|
22
|
-
<only when multiple future steps are useful>
|
|
23
39
|
```
|
|
24
40
|
|
|
25
|
-
Show only relevant
|
|
41
|
+
Show only relevant choices.
|
|
26
42
|
|
|
27
43
|
Standard action labels include:
|
|
28
44
|
|
|
@@ -41,7 +57,7 @@ Standard action labels include:
|
|
|
41
57
|
[NO ACTION]
|
|
42
58
|
```
|
|
43
59
|
|
|
44
|
-
A selected
|
|
60
|
+
A selected choice authorizes only the bounded action described, except where a skill explicitly defines a continuous session or compound mechanical action.
|
|
45
61
|
|
|
46
62
|
A manually invoked compound action skill may itself be the bounded authorization for its routine mechanics. `/deliver`, for example, may proceed through safe short-lived-branch setup/recovery, staging, commit, push, PR creation/update, and CI inspection without inserting separate options for each mechanical step. It still stops at its explicit merge/finalize gate and whenever evidence becomes ambiguous or unsafe.
|
|
47
63
|
|
|
@@ -27,12 +27,42 @@ Choose the question shape based on what the interaction is trying to learn or de
|
|
|
27
27
|
When a material question has a reasonable bounded answer space and the human is choosing or confirming a decision, prefer a concise choice-first presentation:
|
|
28
28
|
|
|
29
29
|
- offer a small set of plausible choices, normally 3-6;
|
|
30
|
-
- mark a materially preferred option as `RECOMMENDED` when current evidence or repository guidance justifies it;
|
|
31
30
|
- include `Other / specify` when the choices are not exhaustive;
|
|
32
31
|
- include `Not sure — recommend one` when the human can reasonably delegate the choice;
|
|
33
32
|
- accept a choice label/text or a free-form answer;
|
|
34
33
|
- treat choices as interaction aids, not additional requirements.
|
|
35
34
|
|
|
35
|
+
### Host-native structured choice UI
|
|
36
|
+
|
|
37
|
+
When the current host exposes a structured question/choice UI, use it for bounded choices instead of rendering a plain numbered chat menu. In VS Code, use the native question surface exposed by the host, such as `vscode_askQuestions` when available.
|
|
38
|
+
|
|
39
|
+
Presentation rules:
|
|
40
|
+
|
|
41
|
+
- use **single-select** when the choices are mutually exclusive or one action is being authorized;
|
|
42
|
+
- use **multi-select** only when selecting several choices at the same time is semantically valid;
|
|
43
|
+
- preserve one-material-question-at-a-time cadence whenever practical even if the host can batch questions;
|
|
44
|
+
- keep consequence/action labels such as `[READ ONLY]`, `[REQUIREMENTS GATE]`, or `[GIT + GITHUB WRITE]` visible when they matter to authorization;
|
|
45
|
+
- include `Other / specify` or host-supported free-text input when the option set may be incomplete; after `Other / specify`, collect the missing value without forcing another invented menu;
|
|
46
|
+
- accept equivalent free-text answers even when a structured selector is shown, unless the host UI itself requires a selection;
|
|
47
|
+
- map the returned structured value to the same semantic choice the workflow would have accepted by label/text.
|
|
48
|
+
|
|
49
|
+
### Recommendations inside choices
|
|
50
|
+
|
|
51
|
+
A recommendation is optional advice, not a required field and not an accepted decision.
|
|
52
|
+
|
|
53
|
+
- mark **exactly one** choice as `RECOMMENDED` only when current evidence, repository policy, or a clear engineering tradeoff supports it;
|
|
54
|
+
- use the host's `recommended` indicator/metadata when available and add a brief rationale in the choice description or surrounding prompt;
|
|
55
|
+
- do not mark multiple choices recommended;
|
|
56
|
+
- do not invent a preference merely to populate recommendation metadata;
|
|
57
|
+
- when no option is clearly better, present the choices with **no recommendation**;
|
|
58
|
+
- if the human asks for no recommendation on a specific decision, omit the recommendation for that question only; later questions may still include evidence-backed recommendations;
|
|
59
|
+
- the human may select a different option or answer free-form;
|
|
60
|
+
- record only the human's selected/confirmed answer as the requirement, action, or decision. Never record the recommendation itself as accepted state.
|
|
61
|
+
|
|
62
|
+
A structured selector is presentation, not extra authorization. Selecting a choice authorizes only the action/session that the workflow says that choice authorizes.
|
|
63
|
+
|
|
64
|
+
When the host has no structured question UI, use a concise textual fallback. A numbered list is acceptable **only as this fallback**; keep the same labels/recommendation/consequence tags and accept the number, label, or a free-form answer. Do not use a plain numbered list as the normal VS Code interaction when native structured choice UI is available.
|
|
65
|
+
|
|
36
66
|
Keep questions open-ended when predefined choices would weaken the purpose of the interaction. This includes:
|
|
37
67
|
|
|
38
68
|
- user-authored problem/outcome/workflow framing where the human's own wording matters;
|
|
@@ -114,18 +114,14 @@ If no branch is safely deletable, stop after the preview.
|
|
|
114
114
|
|
|
115
115
|
## 5. Cleanup gate
|
|
116
116
|
|
|
117
|
-
For a non-empty verified-safe set, present one bounded destructive gate:
|
|
117
|
+
For a non-empty verified-safe set, present one bounded destructive gate using the host-native **single-select structured choice UI** when available; in VS Code use the native question surface such as `vscode_askQuestions`. Offer:
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
2. Delete verified-safe remote branches only [GITHUB WRITE]
|
|
124
|
-
3. Delete verified-safe local branches only [GIT WRITE]
|
|
125
|
-
4. Stop [NO ACTION]
|
|
126
|
-
```
|
|
119
|
+
- `Delete verified-safe local + remote branches` `[GIT + GITHUB WRITE]` — `RECOMMENDED`
|
|
120
|
+
- `Delete verified-safe remote branches only` `[GITHUB WRITE]`
|
|
121
|
+
- `Delete verified-safe local branches only` `[GIT WRITE]`
|
|
122
|
+
- `Stop` `[NO ACTION]`
|
|
127
123
|
|
|
128
|
-
Only the selected
|
|
124
|
+
Use a numbered text menu only when structured choice UI is unavailable. Only the selected choice authorizes the corresponding deletions. Do not include REVIEW REQUIRED branches in the bounded action.
|
|
129
125
|
|
|
130
126
|
## 6. Revalidate before deletion
|
|
131
127
|
|
|
@@ -58,6 +58,8 @@ Deep — important methods/blocks, state/data flow, dependencies, edge cases,
|
|
|
58
58
|
|
|
59
59
|
Depth may vary by file. Treat trivial configuration lightly unless it materially affects behavior; spend more depth on implementation anchors.
|
|
60
60
|
|
|
61
|
+
If the human needs to choose a depth, use host-native **single-select structured choice UI** when available. Do not recommend a depth unless the requested learning goal or change complexity clearly supports one; `Focused` is a descriptive default, not permission to manufacture a recommendation.
|
|
62
|
+
|
|
61
63
|
## 4. Build the walkthrough plan
|
|
62
64
|
|
|
63
65
|
Before explaining the first file:
|
|
@@ -125,13 +127,15 @@ Group trivial generated/configuration changes when that improves learning, but d
|
|
|
125
127
|
|
|
126
128
|
Default to one file or one tightly related file group at a time. Do not dump the whole implementation at once.
|
|
127
129
|
|
|
128
|
-
At a natural file boundary,
|
|
130
|
+
At a natural file boundary, a compact navigation cue may be shown:
|
|
129
131
|
|
|
130
132
|
```text
|
|
131
133
|
NEXT: <suggested file>
|
|
132
134
|
Use: next | deeper | explain this | trace | why this design | diagram | quiz | debug | interview | skip | stop
|
|
133
135
|
```
|
|
134
136
|
|
|
137
|
+
When the host exposes structured choice UI and the human is being asked to choose among these navigation actions, prefer a relevant **single-select** subset rather than forcing the human to type a token. Keep free-text commands valid. Do not turn the full command vocabulary into a large mandatory selector when the next action is already obvious.
|
|
138
|
+
|
|
135
139
|
Interpret these naturally:
|
|
136
140
|
- `next` — continue to the suggested next file;
|
|
137
141
|
- `deeper` — increase depth for the current file/topic;
|
|
@@ -185,13 +189,13 @@ When the planned change set is covered or the human stops, summarize:
|
|
|
185
189
|
- learning gaps or topics worth revisiting,
|
|
186
190
|
- optional next learning actions.
|
|
187
191
|
|
|
188
|
-
|
|
192
|
+
When offering bounded next actions, use host-native **single-select structured choice UI** when available. Relevant choices may include:
|
|
189
193
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
- `/learning-review <same scope>` `[READ ONLY]`
|
|
195
|
+
- `/coach <specific concept>` `[READ ONLY]`
|
|
196
|
+
- `Return to engineering workflow` `[NO ACTION]`
|
|
197
|
+
- `Stop` `[NO ACTION]`
|
|
198
|
+
|
|
199
|
+
Recommend at most one only when the walkthrough evidence shows a clear learning gap or the engineering workflow is clearly the better next step; otherwise present the choices without a recommendation. Use a numbered text menu only when structured choice UI is unavailable.
|
|
196
200
|
|
|
197
201
|
Do not create a new engineering state such as `CODE_WALKTHROUGH_PENDING`. Walkthrough completion is learning evidence, not a delivery gate.
|
|
@@ -94,7 +94,9 @@ If the checkout is dirty, ahead, diverged, intentionally pinned, or ambiguous, p
|
|
|
94
94
|
|
|
95
95
|
## 5. Present one bounded component-sync choice
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
Use the host-native **single-select structured choice UI** when available because exactly one next action is authorized. In VS Code use the native question surface such as `vscode_askQuestions`. Preserve the consequence labels and show the recommended choice. Use a numbered text list only when structured choice UI is unavailable.
|
|
98
|
+
|
|
99
|
+
For a safe local source, show the evidence:
|
|
98
100
|
|
|
99
101
|
```text
|
|
100
102
|
CORE SYNC READY
|
|
@@ -102,13 +104,15 @@ CORE SYNC READY
|
|
|
102
104
|
Consumer baseline: <commit/version>
|
|
103
105
|
Source: LOCAL <core-path>
|
|
104
106
|
Distribution: <distribution>
|
|
105
|
-
|
|
106
|
-
1. Sync the component-only Core baseline [GIT + FILE WRITE] — recommended
|
|
107
|
-
2. Keep inspecting only [READ ONLY]
|
|
108
|
-
3. Stop [NO ACTION]
|
|
109
107
|
```
|
|
110
108
|
|
|
111
|
-
|
|
109
|
+
Then offer:
|
|
110
|
+
|
|
111
|
+
- `Sync the component-only Core baseline` `[GIT + FILE WRITE]` — `RECOMMENDED`
|
|
112
|
+
- `Keep inspecting only` `[READ ONLY]`
|
|
113
|
+
- `Stop` `[NO ACTION]`
|
|
114
|
+
|
|
115
|
+
For a configured remote source, show:
|
|
112
116
|
|
|
113
117
|
```text
|
|
114
118
|
CORE SYNC READY
|
|
@@ -116,17 +120,19 @@ CORE SYNC READY
|
|
|
116
120
|
Consumer baseline: <commit/version>
|
|
117
121
|
Source: REMOTE PROVIDER
|
|
118
122
|
Provider: <provider repository>
|
|
119
|
-
|
|
120
|
-
1. Request remote Core sync [REMOTE WRITE] — recommended
|
|
121
|
-
2. Keep inspecting only [READ ONLY]
|
|
122
|
-
3. Stop [NO ACTION]
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
+
Then offer:
|
|
126
|
+
|
|
127
|
+
- `Request remote Core sync` `[REMOTE WRITE]` — `RECOMMENDED`
|
|
128
|
+
- `Keep inspecting only` `[READ ONLY]`
|
|
129
|
+
- `Stop` `[NO ACTION]`
|
|
130
|
+
|
|
125
131
|
The selected choice does not authorize merge, release publication, or deployment.
|
|
126
132
|
|
|
127
133
|
## 6. Local component path
|
|
128
134
|
|
|
129
|
-
After
|
|
135
|
+
After `Sync the component-only Core baseline` is selected:
|
|
130
136
|
|
|
131
137
|
1. Refresh Core remote state.
|
|
132
138
|
2. Reclassify the accepted/default Core branch.
|
|
@@ -63,7 +63,7 @@ Do not create a competing source of truth.
|
|
|
63
63
|
|
|
64
64
|
Ask one material question at a time when a real decision is unresolved.
|
|
65
65
|
|
|
66
|
-
For bounded decisions with a small credible answer space, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md`. Keep initial product/problem framing, desired outcomes, workflows, and other answers that need the human's own wording open-ended rather than constraining them to invented options.
|
|
66
|
+
For bounded decisions with a small credible answer space, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md`. When the host exposes structured choice controls, render mutually exclusive alternatives through single-select UI rather than a plain numbered menu; use multi-select only when several simultaneous selections are actually valid. Keep `Other / specify` or free-text available when choices may be incomplete. Keep initial product/problem framing, desired outcomes, workflows, and other answers that need the human's own wording open-ended rather than constraining them to invented options.
|
|
67
67
|
|
|
68
68
|
Clarify only what matters, such as:
|
|
69
69
|
- user/engineering outcome,
|
|
@@ -123,22 +123,13 @@ If systematic lower-level coverage is valuable, recommend:
|
|
|
123
123
|
|
|
124
124
|
## 7. Guided ending
|
|
125
125
|
|
|
126
|
-
Use a small evidence-backed
|
|
126
|
+
Use a small evidence-backed set of relevant actions. In VS Code, render them through the host-native **single-select structured choice UI** such as `vscode_askQuestions` when available. Conceptual choices may include:
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
OPTIONS
|
|
136
|
-
1. Review definition [READ ONLY]
|
|
137
|
-
2. Grill unresolved behavior [READ ONLY]
|
|
138
|
-
3. Refine detailed requirements [READ ONLY initially]
|
|
139
|
-
4. Approve requirements/scope when applicable [REQUIREMENTS GATE]
|
|
140
|
-
5. Start work if already ready [READ ONLY]
|
|
141
|
-
6. Stop [NO ACTION]
|
|
142
|
-
```
|
|
128
|
+
- `Review definition` `[READ ONLY]`
|
|
129
|
+
- `Grill unresolved behavior` `[READ ONLY]`
|
|
130
|
+
- `Refine detailed requirements` `[READ ONLY initially]`
|
|
131
|
+
- `Approve requirements/scope` `[REQUIREMENTS GATE]` when applicable
|
|
132
|
+
- `Start work` `[READ ONLY]` when already ready
|
|
133
|
+
- `Stop` `[NO ACTION]`
|
|
143
134
|
|
|
144
|
-
|
|
135
|
+
Make the recommended next action visible when evidence supports one. Use a numbered text menu only when structured choice UI is unavailable. A file-changing choice authorizes only that bounded action/session.
|
|
@@ -197,7 +197,7 @@ If a Draft PR was required earlier and all readiness conditions are now satisfie
|
|
|
197
197
|
|
|
198
198
|
## 8. Single merge + finalize gate
|
|
199
199
|
|
|
200
|
-
When PR evidence still matches the accepted implementation and CI/policy are satisfactory, combine final PR acceptance and merge authorization into one meaningful gate:
|
|
200
|
+
When PR evidence still matches the accepted implementation and CI/policy are satisfactory, combine final PR acceptance and merge authorization into one meaningful gate. First show:
|
|
201
201
|
|
|
202
202
|
```text
|
|
203
203
|
MERGE READY
|
|
@@ -206,13 +206,17 @@ PR CI: GREEN
|
|
|
206
206
|
Reviewer: READY
|
|
207
207
|
PR diff: matches accepted delivery scope
|
|
208
208
|
Mergeable/policy: <observed state>
|
|
209
|
-
|
|
210
|
-
1. Merge and finalize delivery [HUMAN ACCEPTANCE + GITHUB/GIT WRITE] — recommended
|
|
211
|
-
2. Review final PR diff first [READ ONLY]
|
|
212
|
-
3. Leave PR open [NO ACTION]
|
|
213
209
|
```
|
|
214
210
|
|
|
215
|
-
|
|
211
|
+
Then render the mutually exclusive gate through the host-native **single-select structured choice UI** when available. In VS Code use the native question surface such as `vscode_askQuestions`. Offer:
|
|
212
|
+
|
|
213
|
+
- `Merge and finalize delivery` `[HUMAN ACCEPTANCE + GITHUB/GIT WRITE]` — `RECOMMENDED`
|
|
214
|
+
- `Review final PR diff first` `[READ ONLY]`
|
|
215
|
+
- `Leave PR open` `[NO ACTION]`
|
|
216
|
+
|
|
217
|
+
Use a numbered text list only when structured choice UI is unavailable.
|
|
218
|
+
|
|
219
|
+
Selecting `Merge and finalize delivery` means:
|
|
216
220
|
- the human accepts the final PR as observed,
|
|
217
221
|
- merge is authorized using the repository-approved strategy,
|
|
218
222
|
- applicable post-merge default-branch CI/policy may be observed/rechecked automatically,
|
|
@@ -247,7 +251,7 @@ Only after configured post-merge default-branch CI and any additional observable
|
|
|
247
251
|
|
|
248
252
|
## 10. Delivered-branch finalization
|
|
249
253
|
|
|
250
|
-
For a normal short-lived delivered branch,
|
|
254
|
+
For a normal short-lived delivered branch, the `Merge and finalize delivery` gate choice already authorizes finalization. Do not ask a separate `Delete branch?` question.
|
|
251
255
|
|
|
252
256
|
Preserve by default:
|
|
253
257
|
- the configured default branch,
|
|
@@ -394,4 +398,4 @@ The optional learning handoff does not block or replace deployment readiness whe
|
|
|
394
398
|
|
|
395
399
|
`/deliver` takes reviewed/accepted work through routine branch/commit/push/PR/CI mechanics automatically, then stops once for the merge-and-finalize decision. After successful engineering completion it may prepare disposable learning workbenches and shows an optional learning handoff without creating another gate.
|
|
396
400
|
|
|
397
|
-
`/cleanup-branches` is the standalone preview-first path for accumulated, previously retained, unrelated, or otherwise out-of-band branch housekeeping.
|
|
401
|
+
`/cleanup-branches` is the standalone preview-first path for accumulated, previously retained, unrelated, or otherwise out-of-band branch housekeeping.
|
|
@@ -33,7 +33,7 @@ Resolve exact configured name, purpose/Production classification, placement, iso
|
|
|
33
33
|
|
|
34
34
|
If `demo` exists, `/deploy demo` targets exactly `demo`. If `prod-east` has purpose `production`, `/deploy prod-east` remains a Production deployment even though the literal name differs.
|
|
35
35
|
|
|
36
|
-
If no environment is named, enumerate configured environments and ask the human to choose; never silently default to Production. The deployment workflow must never fall back to another environment/placement/host/provider because deployment fails.
|
|
36
|
+
If no environment is named, enumerate configured environments and ask the human to choose through host-native **single-select structured choice UI** when available; in VS Code use the native question surface such as `vscode_askQuestions`; never silently default to Production. Do not recommend an environment unless current project evidence or the user's stated deployment goal clearly supports one. The deployment workflow must never fall back to another environment/placement/host/provider because deployment fails.
|
|
37
37
|
|
|
38
38
|
If the requested environment is missing or ambiguous, route to `/setup` rather than guessing.
|
|
39
39
|
|
|
@@ -73,7 +73,7 @@ immutable application image/release policy
|
|
|
73
73
|
smoke validation
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
When a bounded choice is useful,
|
|
76
|
+
When a bounded choice is useful, follow `INTERACTIVE_SESSION_GUIDE.md`: use host-native structured choice UI when available, single-select for mutually exclusive values and multi-select only when several simultaneous selections are valid. Keep `Other / specify` or free-text available when the choices may be incomplete. Recommend at most one option, only when evidence or a clear engineering tradeoff supports it, and explain why briefly; otherwise show the choices without a recommendation. Record only the human's selected/confirmed answer.
|
|
77
77
|
|
|
78
78
|
Once these facts are durably established, later deployments should be routine rather than repeating onboarding.
|
|
79
79
|
|
|
@@ -34,7 +34,7 @@ Ask one material question at a time and challenge:
|
|
|
34
34
|
- architecture/operational tradeoffs,
|
|
35
35
|
- testability.
|
|
36
36
|
|
|
37
|
-
When the challenge is a bounded decision with a small credible option set, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md` and explain important tradeoffs. When the purpose is to expose or strengthen the human's reasoning, ask open-ended first; introduce options or hints later only when useful as scaffolding.
|
|
37
|
+
When the challenge is a bounded decision with a small credible option set, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md` and explain important tradeoffs. Use host-native single-select UI for mutually exclusive alternatives when available, and multi-select only when several choices may be valid together. When the purpose is to expose or strengthen the human's reasoning, ask open-ended first; introduce options or hints later only when useful as scaffolding.
|
|
38
38
|
|
|
39
39
|
Cadence:
|
|
40
40
|
|
|
@@ -66,15 +66,13 @@ For local-document models, common homes are:
|
|
|
66
66
|
|
|
67
67
|
Invocation alone does not imply broad document-write permission.
|
|
68
68
|
|
|
69
|
-
When document changes are needed, present a bounded choice such as:
|
|
69
|
+
When document changes are needed, present a bounded **single-select structured choice** through the host UI when available. In VS Code use the native question surface such as `vscode_askQuestions`. Relevant choices are:
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
3. Stop [NO ACTION]
|
|
75
|
-
```
|
|
71
|
+
- `Continue grilling only` `[READ ONLY]`
|
|
72
|
+
- `Reconcile resolved decisions during this session` `[MODIFIES DOCS]`
|
|
73
|
+
- `Stop` `[NO ACTION]`
|
|
76
74
|
|
|
77
|
-
After
|
|
75
|
+
Use a numbered text list only when structured choice UI is unavailable. After `Reconcile resolved decisions during this session` is selected, focused updates to the permitted current work-item documents are authorized for the active session. Do not ask again after each answer.
|
|
78
76
|
|
|
79
77
|
Pause only when a new answer would change higher-level approved scope, contradict another authority/ADR, or require a new cross-cutting decision.
|
|
80
78
|
|
|
@@ -70,7 +70,7 @@ When deterministic setup passes but human workspace acceptance is still needed,
|
|
|
70
70
|
|
|
71
71
|
When the workspace is accepted and the first approved work item is clear, recommend `/start-work <ID>`.
|
|
72
72
|
|
|
73
|
-
If the developer wants the broader status instead of one action, offer `/progress` as a read-only
|
|
73
|
+
If the developer wants the broader status instead of one action, offer `/progress` as a read-only choice.
|
|
74
74
|
|
|
75
75
|
## 3. Engineering/delivery states
|
|
76
76
|
|
|
@@ -111,14 +111,13 @@ CURRENT STATE
|
|
|
111
111
|
RECOMMENDED NEXT STEP
|
|
112
112
|
<one action and why>
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
2. ... [MODIFIES FILES]
|
|
117
|
-
3. ... [GIT + GITHUB WRITE]
|
|
118
|
-
4. Stop [NO ACTION]
|
|
114
|
+
CHOICES
|
|
115
|
+
<only relevant bounded actions, rendered through structured choice UI when available>
|
|
119
116
|
```
|
|
120
117
|
|
|
121
|
-
|
|
118
|
+
When there is more than one relevant action, use the host's native **single-select structured choice UI** following `INTERACTIVE_SESSION_GUIDE.md`. In VS Code, use the question surface such as `vscode_askQuestions` when available. Keep consequence labels visible, mark the recommended choice where evidence supports one, and include `Other / specify` or free-text only when the action space may be incomplete. Use multi-select only for an explicitly multi-action workflow; ordinary `/next-step` choices are mutually exclusive.
|
|
119
|
+
|
|
120
|
+
A textual numbered `OPTIONS` list is only the fallback when no structured choice UI is available. Only show relevant choices. `/next-step` orients; it does not become another workflow database.
|
|
122
121
|
|
|
123
122
|
For an unprepared generated workspace, a good result is simply:
|
|
124
123
|
|
|
@@ -128,12 +127,10 @@ Local setup has not been completed on this computer.
|
|
|
128
127
|
|
|
129
128
|
RECOMMENDED NEXT STEP
|
|
130
129
|
/setup
|
|
131
|
-
|
|
132
|
-
OPTIONS
|
|
133
|
-
1. /progress [READ ONLY]
|
|
134
|
-
2. Stop [NO ACTION]
|
|
135
130
|
```
|
|
136
131
|
|
|
132
|
+
If useful, offer `/progress` `[READ ONLY]` and `Stop` `[NO ACTION]` through the structured selector; do not print a numbered menu in normal VS Code use.
|
|
133
|
+
|
|
137
134
|
## 5. Optional documentation and learning choices
|
|
138
135
|
|
|
139
136
|
When implementation is stable enough to understand or document, `/next-step` may offer these choices without making them gates:
|
|
@@ -147,6 +144,8 @@ When implementation is stable enough to understand or document, `/next-step` may
|
|
|
147
144
|
/system-lab [changes <work-item>]
|
|
148
145
|
```
|
|
149
146
|
|
|
147
|
+
If the human is being asked to select one of these bounded next actions, use the same single-select structured-choice rule. The command list above is descriptive, not a required numbered menu.
|
|
148
|
+
|
|
150
149
|
Prefer `/docs` for the coherent project briefing/document map, `/code-walkthrough` for implementation flow, `/db-lab` for concrete schema/query/index/ORM evidence, and `/system-lab` for architecture/runtime/failure/scale evidence.
|
|
151
150
|
|
|
152
151
|
Safe generated projections may be prepared automatically. Do not silently rewrite project-owned prose, accept an ADR, or make learning mandatory before `/deliver` unless the approved work item explicitly requires it.
|
|
@@ -124,7 +124,7 @@ For a Bootstrap-generated consumer, also preview the companion generated-consume
|
|
|
124
124
|
|
|
125
125
|
## 5. Present one bounded update choice
|
|
126
126
|
|
|
127
|
-
When the exact target package plan and any generated-consumer companion plan are safe,
|
|
127
|
+
When the exact target package plan and any generated-consumer companion plan are safe, show the reviewed evidence:
|
|
128
128
|
|
|
129
129
|
```text
|
|
130
130
|
PROJECT FORGE UPDATE READY
|
|
@@ -137,13 +137,17 @@ Core: <old> → <new>
|
|
|
137
137
|
Deployment: <old> → <new> / unchanged
|
|
138
138
|
Generated consumer metadata: <not present / coherent update planned>
|
|
139
139
|
Managed drift/conflicts: NONE
|
|
140
|
-
|
|
141
|
-
1. Apply the exact Project Forge package update [GIT + FILE WRITE] — recommended
|
|
142
|
-
2. Keep inspecting only [READ ONLY]
|
|
143
|
-
3. Stop [NO ACTION]
|
|
144
140
|
```
|
|
145
141
|
|
|
146
|
-
|
|
142
|
+
Then use the host-native **single-select structured choice UI** when available; in VS Code use the native question surface such as `vscode_askQuestions`. Offer:
|
|
143
|
+
|
|
144
|
+
- `Apply the exact Project Forge package update` `[GIT + FILE WRITE]` — `RECOMMENDED`
|
|
145
|
+
- `Keep inspecting only` `[READ ONLY]`
|
|
146
|
+
- `Stop` `[NO ACTION]`
|
|
147
|
+
|
|
148
|
+
Use a numbered text menu only when structured choice UI is unavailable.
|
|
149
|
+
|
|
150
|
+
Choosing `Apply the exact Project Forge package update` authorizes only:
|
|
147
151
|
|
|
148
152
|
- creation/switch to one repository-appropriate short-lived update branch when needed;
|
|
149
153
|
- exact target package apply;
|
|
@@ -49,21 +49,25 @@ Never use `reset --hard`, force-push, merge, or rebase as part of `/pull-latest`
|
|
|
49
49
|
|
|
50
50
|
## 3. Choose the update target
|
|
51
51
|
|
|
52
|
+
When the user must choose an update action, use the host-native **single-select structured choice UI** when available; in VS Code use the native question surface such as `vscode_askQuestions`. Use a numbered text menu only when structured choice UI is unavailable.
|
|
53
|
+
|
|
52
54
|
If the human supplied a branch, use that branch as the requested target when it can be resolved safely.
|
|
53
55
|
|
|
54
|
-
If no branch was supplied and the current branch is the default branch,
|
|
56
|
+
If no branch was supplied and the current branch is the default branch, show:
|
|
55
57
|
|
|
56
58
|
```text
|
|
57
59
|
PULL LATEST READY
|
|
58
60
|
|
|
59
61
|
Current branch: <branch>
|
|
60
62
|
Working tree: CLEAN
|
|
61
|
-
|
|
62
|
-
1. Refresh remote state and pull latest <branch> [GIT WRITE] — recommended
|
|
63
|
-
2. Stop [NO ACTION]
|
|
64
63
|
```
|
|
65
64
|
|
|
66
|
-
|
|
65
|
+
Then offer:
|
|
66
|
+
|
|
67
|
+
- `Refresh remote state and pull latest <branch>` `[GIT WRITE]` — `RECOMMENDED`
|
|
68
|
+
- `Stop` `[NO ACTION]`
|
|
69
|
+
|
|
70
|
+
If no branch was supplied and the current branch is a non-default branch, show:
|
|
67
71
|
|
|
68
72
|
```text
|
|
69
73
|
PULL LATEST READY
|
|
@@ -71,13 +75,15 @@ PULL LATEST READY
|
|
|
71
75
|
Current branch: <branch>
|
|
72
76
|
Default branch: <default>
|
|
73
77
|
Working tree: CLEAN
|
|
74
|
-
|
|
75
|
-
1. Refresh and pull the current branch [GIT WRITE]
|
|
76
|
-
2. Switch to the default branch and pull latest [GIT WRITE] — recommended for returning to baseline
|
|
77
|
-
3. Stop [NO ACTION]
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
Then offer:
|
|
81
|
+
|
|
82
|
+
- `Refresh and pull the current branch` `[GIT WRITE]`
|
|
83
|
+
- `Switch to the default branch and pull latest` `[GIT WRITE]` — `RECOMMENDED` when returning to baseline
|
|
84
|
+
- `Stop` `[NO ACTION]`
|
|
85
|
+
|
|
86
|
+
Only the selected choice authorizes fetch/switch/pull mechanics for the selected branch.
|
|
81
87
|
|
|
82
88
|
## 4. Refresh remote state
|
|
83
89
|
|
|
@@ -113,22 +113,24 @@ STATUS
|
|
|
113
113
|
<DRAFT / APPROVED / external status / not represented locally>
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
Then present only relevant
|
|
116
|
+
Then present only relevant actions as a **single-select structured choice** when the host supports it. In VS Code, use the native question surface such as `vscode_askQuestions` rather than printing a numbered menu. Conceptual choices may include:
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
118
|
+
- `Review outcomes` `[READ ONLY]`
|
|
119
|
+
- `Review rules` `[READ ONLY]`
|
|
120
|
+
- `Review acceptance scenarios` `[READ ONLY]`
|
|
121
|
+
- `Refine identified gaps` `[MODIFIES DOCS or PROPOSED EXTERNAL UPDATE]`
|
|
122
|
+
- `Grill an unresolved decision` `[READ ONLY]`
|
|
123
|
+
- `Review full requirements/work item` `[READ ONLY]`
|
|
124
|
+
- `Approve local requirements` `[REQUIREMENTS GATE]` when applicable
|
|
125
|
+
- `Stop` `[NO ACTION]`
|
|
126
|
+
|
|
127
|
+
Make a recommendation only when current requirement evidence or a clear engineering tradeoff supports one. If so, mark exactly one choice with the host's `recommended` indicator and briefly explain why. If there is no clear basis, show the choices without a recommendation. The selected answer, not the recommendation, controls what the session does or records.
|
|
128
|
+
|
|
129
|
+
If the host has no structured choice UI, present the same relevant choices as a concise numbered text fallback and accept the number, label, or free-form intent. Do not use the numbered fallback as the normal VS Code path.
|
|
128
130
|
|
|
129
131
|
## 5. Active refinement session
|
|
130
132
|
|
|
131
|
-
Once the human selects a modifying refinement
|
|
133
|
+
Once the human selects a modifying refinement choice, enter a bounded continuous session:
|
|
132
134
|
|
|
133
135
|
```text
|
|
134
136
|
ask one material requirement question
|
|
@@ -139,7 +141,26 @@ ask one material requirement question
|
|
|
139
141
|
→ next material question
|
|
140
142
|
```
|
|
141
143
|
|
|
142
|
-
For bounded requirement decisions such as lifecycle policy, validation behavior, destructive/reversible handling, or a small set of credible alternatives, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md`. Keep outcome wording, workflow descriptions, acceptance intent, and other human-authored framing open-ended when predefined choices would constrain the requirement.
|
|
144
|
+
For bounded requirement decisions such as lifecycle policy, validation behavior, destructive/reversible handling, or a small set of credible alternatives, use the choice-first interaction guidance from `INTERACTIVE_SESSION_GUIDE.md`. Render mutually exclusive alternatives through host-native **single-select** controls when available. Use multi-select only when the requirement genuinely permits multiple simultaneous selections. Keep `Other / specify` or free-text available when the option set may be incomplete. Keep outcome wording, workflow descriptions, acceptance intent, and other human-authored framing open-ended when predefined choices would constrain the requirement.
|
|
145
|
+
|
|
146
|
+
Recommendation behavior follows the shared guide: recommend at most one option, only when evidence/tradeoffs support it; give a concise rationale; never record the recommendation as accepted until the human selects or confirms it; and honor a `no recommendation` request for that question only.
|
|
147
|
+
|
|
148
|
+
Example of a supported recommendation:
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
Decision: How should a browser-to-real-SQLite path be proven for a narrowly scoped work item?
|
|
152
|
+
|
|
153
|
+
Choices:
|
|
154
|
+
- Integration test against real SQLite
|
|
155
|
+
- Browser smoke check through the API
|
|
156
|
+
- Both
|
|
157
|
+
- Other / specify
|
|
158
|
+
|
|
159
|
+
Recommendation: Both
|
|
160
|
+
Why: one real-SQLite integration test proves the persistence path and one browser smoke check proves the browser/API path without implying a broad end-to-end suite.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Treat this as advice for the human to accept, change, or replace. Do not record `Both` as a requirement until the human selects or confirms it.
|
|
143
164
|
|
|
144
165
|
Do not ask after each answer whether to update.
|
|
145
166
|
|
|
@@ -162,7 +183,7 @@ Stop automatic reconciliation when an answer would:
|
|
|
162
183
|
- require a cross-cutting architecture decision,
|
|
163
184
|
- remain too ambiguous to record faithfully.
|
|
164
185
|
|
|
165
|
-
Then present a small explicit choice.
|
|
186
|
+
Then present a small explicit choice using the same host-native structured-choice rule. Keep the question open-ended instead when the human needs to explain or reframe the conflict in their own words.
|
|
166
187
|
|
|
167
188
|
## 7. Approval gate
|
|
168
189
|
|
|
@@ -175,7 +196,7 @@ APPROVED
|
|
|
175
196
|
|
|
176
197
|
Human approval is explicit. Do not infer approval from review/planning/implementation.
|
|
177
198
|
|
|
178
|
-
Before approval report coverage and open material decisions. Only an explicit `[REQUIREMENTS GATE]` choice may change local status to `APPROVED`.
|
|
199
|
+
Before approval report coverage and open material decisions. Only an explicit `[REQUIREMENTS GATE]` choice may change local status to `APPROVED`. When the host offers structured choices, render this approval gate as a single-select action, not a numbered chat menu.
|
|
179
200
|
|
|
180
201
|
External work-item status/approval follows the external team's conventions; Project Forge must not fabricate a local approval state.
|
|
181
202
|
|
|
@@ -198,7 +219,7 @@ Authority/status:
|
|
|
198
219
|
<source and status>
|
|
199
220
|
```
|
|
200
221
|
|
|
201
|
-
Then offer review, more grilling/refinement, approval when applicable, or stop.
|
|
222
|
+
Then offer review, more grilling/refinement, approval when applicable, or stop using the same structured-choice-first rule.
|
|
202
223
|
|
|
203
224
|
## 9. Stop boundary
|
|
204
225
|
|
|
@@ -138,26 +138,25 @@ If GitHub is temporarily unavailable, otherwise-ready local development remains
|
|
|
138
138
|
|
|
139
139
|
After local readiness/profile state is understood, show the environments that this workstation can be prepared to use.
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
This is an intentionally **multi-select** decision because preparing the workstation for several environments in one setup session is valid. When the host exposes structured choice UI, use its native multi-select control; in VS Code use the question surface such as `vscode_askQuestions`. Do not emulate checkboxes as ordinary chat text when native multi-select is available.
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
SET UP THIS WORKSTATION FOR
|
|
143
|
+
Conceptual choices are:
|
|
145
144
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
- `Local development`
|
|
146
|
+
- each existing project-defined environment from current topology
|
|
147
|
+
- `Other / define another environment`
|
|
148
|
+
|
|
149
|
+
Recommend/select `Local development` by default only because Project Forge's local-first setup policy makes it the normal initial capability and remote environments must not block local coding. Surface that rationale briefly. Do not automatically mark any additional environment recommended without project-specific evidence.
|
|
150
|
+
|
|
151
|
+
If the host has no structured multi-select UI, a checkbox-like or concise textual list is the documented fallback. Free-form selection remains valid.
|
|
152
152
|
|
|
153
153
|
Rules:
|
|
154
154
|
|
|
155
|
-
- Local development is the recommended/default initial selection.
|
|
156
155
|
- Existing named environments come from the project's current deployment topology, not a hard-coded Staging/Production list.
|
|
157
156
|
- Show each environment's purpose/role compactly when the name alone is ambiguous.
|
|
158
|
-
- Free-form selection remains valid when checkbox UI is unavailable.
|
|
159
157
|
- Selecting an environment means **prepare this workstation for that environment**; it does not deploy the project's real application.
|
|
160
158
|
- Do not force the developer to configure every environment in one session. `/setup` can be rerun later to add another capability.
|
|
159
|
+
- The recorded setup scope comes from the developer's actual selections, not from any recommended/default choice.
|
|
161
160
|
|
|
162
161
|
### Topology source of truth
|
|
163
162
|
|
|
@@ -188,7 +187,7 @@ Isolation ....... <project/catalog-supported option>
|
|
|
188
187
|
Exposure ........ <project/catalog-supported option>
|
|
189
188
|
```
|
|
190
189
|
|
|
191
|
-
|
|
190
|
+
Use host-native single-select controls for bounded mutually exclusive fields such as purpose/placement/isolation/exposure when available. Keep names, targets, and other factual values open-ended. Recommend at most one option only when current topology/catalog evidence or a clear engineering tradeoff supports it; otherwise show the bounded choices without a recommendation. Always allow `Other / specify` or `Not sure — recommend one` where appropriate.
|
|
192
191
|
|
|
193
192
|
Persist the approved logical environment definition before claiming it is configured. Normalize the command-facing name to the repository-supported safe slug form. Once saved, all normal environment commands use that exact name, for example:
|
|
194
193
|
|
|
@@ -263,19 +262,23 @@ If cleanup fails, report `PROOF PASSED — CLEANUP ACTION NEEDED`; do not claim
|
|
|
263
262
|
|
|
264
263
|
For a selected **non-Production** environment, the developer's explicit `/setup` selection plus a clear preview of the disposable proof may cover the bounded proof write. Use the deterministic tool's exact authorization contract and do not add multiple ceremonial prompts.
|
|
265
264
|
|
|
266
|
-
For any environment whose resolved purpose is **production**, keep one explicit consequential gate before the proof writes to it:
|
|
265
|
+
For any environment whose resolved purpose is **production**, keep one explicit consequential gate before the proof writes to it. Render this gate through host-native **single-select** structured choice UI when available:
|
|
267
266
|
|
|
268
267
|
```text
|
|
269
268
|
PRODUCTION ENVIRONMENT PROOF
|
|
270
269
|
|
|
271
270
|
Project Forge is ready to temporarily deploy a disposable environment probe to <name>,
|
|
272
271
|
verify it, and remove it. No project application or project data will be deployed.
|
|
273
|
-
|
|
274
|
-
1. Run Production environment proof
|
|
275
|
-
2. Verify access/readiness only
|
|
276
|
-
3. Skip this environment for now
|
|
277
272
|
```
|
|
278
273
|
|
|
274
|
+
Choices:
|
|
275
|
+
|
|
276
|
+
- `Run Production environment proof`
|
|
277
|
+
- `Verify access/readiness only`
|
|
278
|
+
- `Skip this environment for now`
|
|
279
|
+
|
|
280
|
+
Do not mark a choice recommended merely because a recommendation field exists. Recommend `Run Production environment proof` only when the selected setup goal and current evidence make end-to-end proof the clearly preferred next step, and explain why. Use a numbered text fallback only when structured choice UI is unavailable.
|
|
281
|
+
|
|
279
282
|
A custom Production name such as `prod-east` remains Production because of its resolved purpose/classification. Never downgrade Production safety based on the literal environment string.
|
|
280
283
|
|
|
281
284
|
## 8. First real application deployment remains streamlined
|
|
@@ -111,16 +111,16 @@ Explain why the level was chosen.
|
|
|
111
111
|
|
|
112
112
|
## 4. Optional learning checkpoint
|
|
113
113
|
|
|
114
|
-
For STANDARD/ELEVATED work, once requirements are ready, coaching may be offered but is never required
|
|
114
|
+
For STANDARD/ELEVATED work, once requirements are ready, coaching may be offered but is never required. When the human needs to choose, render a **single-select structured choice** through the host UI when available; in VS Code use the native question surface such as `vscode_askQuestions`.
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
1. Continue without coaching — recommended default
|
|
118
|
-
2. /coach for a short pre-build concept review
|
|
119
|
-
3. /grill-me for challenge rather than teaching
|
|
120
|
-
4. Stop
|
|
121
|
-
```
|
|
116
|
+
Relevant choices are:
|
|
122
117
|
|
|
123
|
-
|
|
118
|
+
- `Continue without coaching` — `RECOMMENDED` default
|
|
119
|
+
- `/coach` for a short pre-build concept review
|
|
120
|
+
- `/grill-me` for challenge rather than teaching
|
|
121
|
+
- `Stop`
|
|
122
|
+
|
|
123
|
+
Use a numbered text list only when structured choice UI is unavailable. For LIGHT work, do not interrupt with coaching unless requested.
|
|
124
124
|
|
|
125
125
|
## 5. Planning rules
|
|
126
126
|
|
|
@@ -185,6 +185,8 @@ Return:
|
|
|
185
185
|
- requirement readiness,
|
|
186
186
|
- branch state / expected short-lived branch when implementation is about to begin,
|
|
187
187
|
- RECOMMENDED NEXT STEP,
|
|
188
|
-
- a small
|
|
188
|
+
- a small set of relevant action choices.
|
|
189
|
+
|
|
190
|
+
Render mutually exclusive next actions through the host's **single-select structured choice UI** when available, following `INTERACTIVE_SESSION_GUIDE.md`. In VS Code, use the native question surface such as `vscode_askQuestions`. Make the recommended action visible when evidence supports one, include `Other / specify` or free-text only when the action set may be incomplete, and use a numbered text menu only as the no-structured-UI fallback.
|
|
189
191
|
|
|
190
192
|
Do not skip an unresolved requirement/plan gate merely because implementation is technically possible. Once implementation is selected/approved, do not insert a separate ceremonial branch-creation gate when the branch setup is safe and deterministic.
|