@mriekki/project-forge 2.1.0 → 3.0.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 +3 -3
- package/assets/deployment/distribution.json +1 -1
- package/assets/generated/ASSEMBLY.json +40 -40
- 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/DEPLOYMENT_ENABLEMENT.md +1 -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/process/PROJECT_DOCUMENTATION_FRAMEWORK.md +3 -3
- package/assets/generated/core/core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md +14 -14
- 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 +3 -3
- package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +1 -1
- 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/progress/SKILL.md +1 -1
- 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 +25 -22
- package/assets/generated/core/core/skills/start-work/SKILL.md +11 -9
- package/assets/generated/core/core/skills/tear-down/SKILL.md +4 -4
- package/assets/generated/deployment/docs/DEVELOPER_ENVIRONMENTS.md +11 -11
- package/assets/generated/deployment/docs/ENVIRONMENT_PROOF.md +2 -2
- package/assets/generated/deployment/docs/WORKSPACE_INSTANCES.md +1 -1
- package/assets/generated/deployment/docs/images/developer-environment-journey.svg +2 -2
- package/assets/generated/deployment/docs/images/{poc-environment-model.svg → project-environment-model.svg} +4 -4
- package/assets/generated/deployment/src/project_forge_deployment/cli.py +1 -1
- package/assets/generated/deployment/src/project_forge_deployment/entrypoint.py +1 -1
- package/assets/generated/deployment/src/project_forge_deployment/environment_probe.py +2 -2
- package/assets/generated/deployment/src/project_forge_deployment/route_registry.py +2 -2
- package/assets/generated/deployment/src/project_forge_deployment/teardown.py +7 -7
- package/assets/generated/deployment/src/project_forge_deployment/teardown_cli.py +6 -6
- package/assets/generated/deployment/src/project_forge_deployment/teardown_remote.py +6 -6
- package/package.json +1 -1
|
@@ -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
|
|
|
@@ -48,7 +48,7 @@ Read only what is needed, including when present:
|
|
|
48
48
|
- fresh setup-time environment-proof evidence for this workstation;
|
|
49
49
|
- established application deployment facts.
|
|
50
50
|
|
|
51
|
-
For package-managed generated
|
|
51
|
+
For package-managed generated Projects, prefer the repository-distributed launcher:
|
|
52
52
|
|
|
53
53
|
```text
|
|
54
54
|
tools/project-forge-deployment/project-forge-deploy.py
|
|
@@ -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
|
|
|
@@ -171,7 +171,7 @@ select exact project-defined environment
|
|
|
171
171
|
→ /deploy <environment>
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
-
For remote placement, reuse valid existing target access rather than creating duplicate credentials simply because another
|
|
174
|
+
For remote placement, reuse valid existing target access rather than creating duplicate credentials simply because another Project/environment uses the same machine.
|
|
175
175
|
|
|
176
176
|
## 6. Read-only status
|
|
177
177
|
|
|
@@ -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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: progress
|
|
3
|
-
description: "Read-only developer-facing progress view across
|
|
3
|
+
description: "Read-only developer-facing progress view across Project creation, this workspace instance, work-item/delivery state, and exact project-defined environment capabilities."
|
|
4
4
|
argument-hint: "[optional work-item ID or environment]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -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
|
|
|
@@ -8,7 +8,7 @@ disable-model-invocation: true
|
|
|
8
8
|
|
|
9
9
|
# Setup
|
|
10
10
|
|
|
11
|
-
Purpose: give the developer one obvious entry point after cloning/opening a Project Forge workspace, whether this is the first workstation for the project or an additional independent workstation for an existing
|
|
11
|
+
Purpose: give the developer one obvious entry point after cloning/opening a Project Forge workspace, whether this is the first workstation for the project or an additional independent workstation for an existing Project.
|
|
12
12
|
|
|
13
13
|
Normal first use is simply:
|
|
14
14
|
|
|
@@ -107,7 +107,7 @@ Each workstation normally owns independent local development data. Reproduce sch
|
|
|
107
107
|
|
|
108
108
|
## 4. Establish/sync the developer's personal Project Forge profile
|
|
109
109
|
|
|
110
|
-
When the installed Deployment Kit exposes personal-profile operations, `/setup` should establish the authenticated developer's portable non-secret profile as routine setup state. This repo is per developer, not per
|
|
110
|
+
When the installed Deployment Kit exposes personal-profile operations, `/setup` should establish the authenticated developer's portable non-secret profile as routine setup state. This repo is per developer, not per Project or workstation.
|
|
111
111
|
|
|
112
112
|
First inspect profile status and authenticated GitHub login. If the expected private repository is missing, tell the developer what will happen before writing:
|
|
113
113
|
|
|
@@ -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
|
|
|
@@ -171,7 +170,7 @@ Use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fa
|
|
|
171
170
|
|
|
172
171
|
`PROJECT_BOOTSTRAP.json` is generation/provenance evidence and should not be casually rewritten merely because a developer adds an environment later.
|
|
173
172
|
|
|
174
|
-
If an older
|
|
173
|
+
If an older Project has no `DEPLOYMENT_TOPOLOGY.json` and the developer chooses to add/change a logical environment, first materialize the currently approved deployment topology into the project-owned file, then make the scoped project configuration change there. Preserve the original Bootstrap provenance file.
|
|
175
174
|
|
|
176
175
|
A topology entry should keep logical identity distinct from purpose and placement. A name such as `demo`, `qa`, or `prod-east` is the command-facing environment identity. Its purpose remains one of the project-supported semantic roles such as development/demo/staging/production.
|
|
177
176
|
|
|
@@ -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
|
|
|
@@ -221,7 +220,7 @@ If host prerequisites cannot yet be prepared automatically, report the exact pre
|
|
|
221
220
|
|
|
222
221
|
When the installed Deployment Kit exposes environment proof operations, a selected remote environment should normally be taken through an end-to-end **environment proof deployment** during setup.
|
|
223
222
|
|
|
224
|
-
The proof is not the
|
|
223
|
+
The proof is not the Project application. It is a tiny disposable Project Forge-owned probe that should:
|
|
225
224
|
|
|
226
225
|
```text
|
|
227
226
|
acquire a small stable probe image on this workstation
|
|
@@ -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
|
|
@@ -346,7 +349,7 @@ When the installed Deployment Kit exposes profile migration and this workstation
|
|
|
346
349
|
|
|
347
350
|
Never ask the developer to paste passwords, PATs, private SSH keys, or other credentials into chat.
|
|
348
351
|
|
|
349
|
-
When a repository/tool needs a credential, direct the deterministic local tool to prompt in the local terminal using a hidden/secure prompt. Secrets remain workstation-local and must not be committed to the
|
|
352
|
+
When a repository/tool needs a credential, direct the deterministic local tool to prompt in the local terminal using a hidden/secure prompt. Secrets remain workstation-local and must not be committed to the Project repository or portable profile.
|
|
350
353
|
|
|
351
354
|
## 13. Relationship to other Project Forge commands
|
|
352
355
|
|