@mriekki/project-forge 2.2.0 → 4.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 +4 -4
- package/assets/core/distribution.json +0 -4
- package/assets/deployment/distribution.json +1 -1
- package/assets/generated/ASSEMBLY.json +31 -51
- package/assets/generated/core/core/instructions/project-forge-workflow.instructions.md +8 -2
- package/assets/generated/core/core/process/DEPLOYMENT_ENABLEMENT.md +1 -1
- package/assets/generated/core/core/process/INTERACTIVE_SESSION_GUIDE.md +1 -2
- package/assets/generated/core/core/process/OPERATION_JOURNAL.md +1 -2
- 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/deploy/SKILL.md +1 -1
- package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +1 -1
- package/assets/generated/core/core/skills/grill-me/SKILL.md +84 -46
- package/assets/generated/core/core/skills/progress/SKILL.md +1 -1
- package/assets/generated/core/core/skills/setup/SKILL.md +149 -199
- package/assets/generated/core/core/skills/start-work/SKILL.md +5 -6
- 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
- package/assets/generated/core/core/agents/coach.agent.md +0 -69
- package/assets/generated/core/core/skills/core-sync/SKILL.md +0 -184
- package/assets/generated/core/core/skills/developer-env-mode/SKILL.md +0 -231
- package/assets/generated/core/core/skills/grill-with-docs/SKILL.md +0 -88
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: setup
|
|
3
|
-
description: "Guide and execute setup for this workstation/workspace instance, including optional named deployment-environment onboarding and disposable deployment-path proof."
|
|
3
|
+
description: "Guide and execute setup for this workstation/workspace instance, including verified local runtime convergence, optional remote-enabled capability, named deployment-environment onboarding, and disposable deployment-path proof."
|
|
4
4
|
argument-hint: "[status|repair|local|remote|<environment>]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -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
|
|
11
|
+
Purpose: give the developer one obvious entry point after cloning/opening a Project Forge workspace and whenever this workstation later needs local or remote environment preparation.
|
|
12
12
|
|
|
13
13
|
Normal first use is simply:
|
|
14
14
|
|
|
@@ -16,7 +16,26 @@ Normal first use is simply:
|
|
|
16
16
|
/setup
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Supported focused forms include:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
/setup status
|
|
23
|
+
/setup repair
|
|
24
|
+
/setup local
|
|
25
|
+
/setup remote
|
|
26
|
+
/setup <environment>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`/setup` is the conversational/orchestration layer. Repository-local setup scripts and Deployment Kit commands remain the deterministic machine implementations. Do not duplicate installer, SSH, Docker, deployment, or profile mechanics in the skill when the repository already provides them.
|
|
30
|
+
|
|
31
|
+
The governing readiness invariant is:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
REQUESTED MODE != ready state
|
|
35
|
+
READY = verified operational evidence
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
A requested local/remote capability becomes ready only after its applicable readiness contract passes. Preserve the prior ready state when convergence fails.
|
|
20
39
|
|
|
21
40
|
## 1. Resolve this workspace instance
|
|
22
41
|
|
|
@@ -29,12 +48,12 @@ From the repository root inspect only what is needed:
|
|
|
29
48
|
- `.github/project-forge-workspace.json` and Project Forge/component baselines when present;
|
|
30
49
|
- `scripts/setup.ps1` on Windows or `scripts/setup.sh` on macOS;
|
|
31
50
|
- current Git branch/status/upstream evidence so setup does not overwrite unrelated work;
|
|
32
|
-
- workstation-local
|
|
33
|
-
-
|
|
51
|
+
- workstation-local setup/readiness evidence when present;
|
|
52
|
+
- actual workstation OS/platform and machine-local identity needed to describe this workspace instance.
|
|
34
53
|
|
|
35
54
|
If package-managed Project Forge files are drifted, route that problem to `/project-forge-update`; do not silently replace managed files during setup.
|
|
36
55
|
|
|
37
|
-
A **workspace instance** is one checkout of one Project Forge project on one developer workstation. Multiple
|
|
56
|
+
A **workspace instance** is one checkout of one Project Forge project on one developer workstation. Multiple workstations may work on the same project concurrently, and multiple workspace instances are normal.
|
|
38
57
|
|
|
39
58
|
When project provenance/configuration exists but this computer has no local readiness evidence for the checkout, treat the situation as:
|
|
40
59
|
|
|
@@ -44,23 +63,33 @@ EXISTING PROJECT — NEW WORKSTATION
|
|
|
44
63
|
|
|
45
64
|
Do not require another workstation to be online and do not treat another computer as the project's primary machine.
|
|
46
65
|
|
|
47
|
-
Detect the current OS automatically. Do not ask the developer which setup launcher to use when the platform can be observed.
|
|
66
|
+
Detect the current OS automatically. Do not ask the developer which setup launcher to use when the platform can be observed.
|
|
67
|
+
|
|
68
|
+
A workspace instance owns machine-local state such as local runtime/data, SSH private keys/trust, credential-manager entries, Docker state, and repository-scoped readiness evidence. Git/GitHub is the shared source-code coordination boundary. Never invent a central workstation registry merely to coordinate another computer.
|
|
69
|
+
|
|
70
|
+
## 2. `status` is read-only
|
|
71
|
+
|
|
72
|
+
`/setup status` performs no setup writes. Inspect current workstation evidence and live prerequisites, then report local workspace/runtime readiness plus any configured remote capabilities.
|
|
73
|
+
|
|
74
|
+
Prefer a compact result such as:
|
|
48
75
|
|
|
49
76
|
```text
|
|
50
|
-
|
|
77
|
+
SETUP STATUS
|
|
51
78
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
79
|
+
Workspace ......... READY / NOT CONFIGURED / BLOCKED
|
|
80
|
+
Local runtime ..... READY / STALE / NOT APPLICABLE
|
|
81
|
+
Build/tests ....... READY / STALE / BLOCKED
|
|
82
|
+
Local data ........ READY / NOT APPLICABLE / BLOCKED
|
|
83
|
+
Personal profile .. READY / DEFERRED / BLOCKED
|
|
84
|
+
Remote capability . READY / PARTIAL / NOT CONFIGURED
|
|
58
85
|
|
|
59
|
-
|
|
86
|
+
NEXT
|
|
87
|
+
/setup local | /setup remote | /setup <environment> | /next-step
|
|
88
|
+
```
|
|
60
89
|
|
|
61
|
-
|
|
90
|
+
Do not silently repair state during `status`.
|
|
62
91
|
|
|
63
|
-
##
|
|
92
|
+
## 3. Run generated workstation setup
|
|
64
93
|
|
|
65
94
|
Select the launcher for the actual workstation OS:
|
|
66
95
|
|
|
@@ -69,25 +98,23 @@ Windows -> .\scripts\setup.ps1
|
|
|
69
98
|
macOS -> ./scripts/setup.sh
|
|
70
99
|
```
|
|
71
100
|
|
|
72
|
-
Do not ask the developer to choose an OS launcher when the OS can be observed.
|
|
73
|
-
|
|
74
101
|
For normal setup, run the launcher with repository restore enabled when supported:
|
|
75
102
|
|
|
76
103
|
```text
|
|
77
104
|
setup --restore
|
|
78
105
|
```
|
|
79
106
|
|
|
80
|
-
For
|
|
107
|
+
For a read-only generated setup check, use the script's check mode when supported:
|
|
81
108
|
|
|
82
109
|
```text
|
|
83
110
|
setup --check
|
|
84
111
|
```
|
|
85
112
|
|
|
86
|
-
A manually invoked `/setup` authorizes routine, bounded, non-destructive local setup that the generated script already owns: supported tool installation, VS Code extension installation, dependency restore, personal Project Forge profile initialization, and other declared workstation preparation.
|
|
113
|
+
A manually invoked `/setup` authorizes routine, bounded, non-destructive local setup that the generated script already owns: supported tool installation, VS Code extension installation, dependency restore, personal Project Forge profile initialization, and other declared workstation preparation.
|
|
87
114
|
|
|
88
115
|
Stop before destructive replacement, unrelated machine mutation, secret disclosure, or repair outside the declared setup contract.
|
|
89
116
|
|
|
90
|
-
##
|
|
117
|
+
## 4. `/setup local` converges verified local development readiness
|
|
91
118
|
|
|
92
119
|
The first success target is:
|
|
93
120
|
|
|
@@ -95,88 +122,87 @@ The first success target is:
|
|
|
95
122
|
LOCAL WORKSPACE READY
|
|
96
123
|
```
|
|
97
124
|
|
|
98
|
-
Remote environments must not block
|
|
125
|
+
Remote environments must not block local setup unless the approved project explicitly requires a remote dependency for local development.
|
|
99
126
|
|
|
100
|
-
|
|
127
|
+
If application scaffolding is intentionally deferred by `SCAFFOLD_PLAN.json` or approved work-item state, local workspace readiness may be valid without an application runtime. Do not invent source/runtime work merely to make local setup look complete.
|
|
101
128
|
|
|
102
|
-
|
|
103
|
-
- if `SCAFFOLD_PLAN.json` or the approved work-item plan intentionally defers application scaffolding, report local **workspace** readiness without inventing application runtime work;
|
|
104
|
-
- if Docker or another runtime is not required by the current project state, mark it `NOT APPLICABLE`, not failed.
|
|
129
|
+
When application source/runtime exists, converge only the repository-owned local development contract.
|
|
105
130
|
|
|
106
|
-
|
|
131
|
+
### A. Prerequisites and restore
|
|
107
132
|
|
|
108
|
-
|
|
133
|
+
Verify supported tools/versions using repository setup/doctor tooling when present. Run repository-defined dependency restore/setup commands when missing or stale. Preserve pinned versions and project conventions.
|
|
109
134
|
|
|
110
|
-
|
|
135
|
+
### B. Local persistence
|
|
111
136
|
|
|
112
|
-
|
|
137
|
+
For SQLite local development, resolve the project-owned database path and migration/initialization contract from repository evidence. Prefer installed Deployment Kit local SQLite ensure/status primitives when available.
|
|
113
138
|
|
|
114
|
-
|
|
115
|
-
Project Forge will create a private GitHub repository for your portable environment definitions:
|
|
139
|
+
When the database is absent, creating the owned local SQLite file/directory and running normal forward initialization/migrations may be routine setup.
|
|
116
140
|
|
|
117
|
-
|
|
141
|
+
If an existing database is corrupt, incompatible, has unexpected ownership/schema state, or recovery would be destructive, stop. **Never delete, replace, reset, or migrate destructively** merely to make setup pass. Other persistence engines require their own explicit repository-owned setup contract.
|
|
118
142
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
143
|
+
Each workstation normally owns independent local development data; do not silently copy mutable local databases or runtime state from another computer.
|
|
144
|
+
|
|
145
|
+
### C. Build and tests
|
|
122
146
|
|
|
123
|
-
|
|
147
|
+
Run the repository's required local build and test commands. A missing/stale build is a normal convergence condition; rebuild it. If required build/tests fail, report:
|
|
124
148
|
|
|
125
149
|
```text
|
|
126
|
-
|
|
150
|
+
LOCAL MODE NOT READY
|
|
127
151
|
```
|
|
128
152
|
|
|
129
|
-
|
|
153
|
+
and do not record local runtime readiness.
|
|
130
154
|
|
|
131
|
-
|
|
155
|
+
### D. Local immutable runtime artifact
|
|
132
156
|
|
|
133
|
-
|
|
157
|
+
When local execution is Docker-based, build/acquire the application image through repository-owned commands and resolve an immutable identity. A repository-supported workstation adapter may accept an exact registry digest or a local Docker image ID (`sha256:<64 hex>`) for workstation-only execution. Never treat a mutable tag as final runtime identity.
|
|
134
158
|
|
|
135
|
-
|
|
159
|
+
### E. Local runtime and health
|
|
136
160
|
|
|
137
|
-
|
|
161
|
+
Converge the project-owned local application runtime through the repository-distributed workstation adapter when available. Current reusable workstation-container topology remains loopback-only:
|
|
138
162
|
|
|
139
|
-
|
|
163
|
+
```text
|
|
164
|
+
placement: workstation
|
|
165
|
+
isolation: container
|
|
166
|
+
exposure: loopback
|
|
167
|
+
```
|
|
140
168
|
|
|
141
|
-
|
|
169
|
+
Mount only project-owned local persistence as required. Verify the declared health endpoint/smoke check when the project defines one. Do not resolve SSH targets, publish images, create public routes, or deploy Staging/Production while preparing local development.
|
|
142
170
|
|
|
143
|
-
|
|
171
|
+
Only after applicable prerequisites, persistence, build/tests, runtime, and health checks pass should local readiness be recorded as ready.
|
|
144
172
|
|
|
145
|
-
|
|
146
|
-
- each existing project-defined environment from current topology
|
|
147
|
-
- `Other / define another environment`
|
|
173
|
+
## 5. Establish/sync the personal Project Forge profile
|
|
148
174
|
|
|
149
|
-
|
|
175
|
+
When 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.
|
|
150
176
|
|
|
151
|
-
If the
|
|
177
|
+
If the expected private profile repository is missing, explain the intended creation before writing. It stores only non-secret target definitions/preferences. SSH private keys, passwords, PATs, known-host contents, mutable local databases, Docker credentials, and machine-local readiness remain local.
|
|
152
178
|
|
|
153
|
-
|
|
179
|
+
Use repository-provided deterministic profile operations when supported. If GitHub is unavailable, otherwise-ready local development remains valid; report profile portability as `DEFERRED`.
|
|
154
180
|
|
|
155
|
-
|
|
156
|
-
- Show each environment's purpose/role compactly when the name alone is ambiguous.
|
|
157
|
-
- Selecting an environment means **prepare this workstation for that environment**; it does not deploy the project's real application.
|
|
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.
|
|
181
|
+
Never ask the developer to paste credentials into chat.
|
|
160
182
|
|
|
161
|
-
|
|
183
|
+
## 6. Present guided environment setup selection
|
|
162
184
|
|
|
163
|
-
|
|
185
|
+
After local readiness/profile state is understood, show the environments this workstation can be prepared to use.
|
|
164
186
|
|
|
165
|
-
|
|
166
|
-
DEPLOYMENT_TOPOLOGY.json
|
|
167
|
-
```
|
|
187
|
+
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 native multi-select; in VS Code use a question surface such as `vscode_askQuestions`.
|
|
168
188
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
189
|
+
Conceptual choices are:
|
|
190
|
+
- `Local development`;
|
|
191
|
+
- each existing project-defined environment from current topology;
|
|
192
|
+
- `Other / define another environment`.
|
|
172
193
|
|
|
173
|
-
|
|
194
|
+
Recommend/select `Local development` by default only because Project Forge is local-first. Do not automatically recommend additional environments without project-specific evidence.
|
|
174
195
|
|
|
175
|
-
|
|
196
|
+
Rules:
|
|
197
|
+
- existing names come from `DEPLOYMENT_TOPOLOGY.json`, falling back to Bootstrap topology only for the initial topology;
|
|
198
|
+
- selecting an environment means **prepare this workstation for that environment**, not deploy the project application;
|
|
199
|
+
- do not force every environment to be configured in one session;
|
|
200
|
+
- the recorded setup scope comes from the developer's actual selections;
|
|
201
|
+
- later environment changes belong in mutable project topology, not casual rewrites of Bootstrap provenance.
|
|
176
202
|
|
|
177
|
-
###
|
|
203
|
+
### Define another environment
|
|
178
204
|
|
|
179
|
-
|
|
205
|
+
For `Other / define another environment`, collect only material durable facts, normally:
|
|
180
206
|
|
|
181
207
|
```text
|
|
182
208
|
Name ............ demo
|
|
@@ -187,11 +213,12 @@ Isolation ....... <project/catalog-supported option>
|
|
|
187
213
|
Exposure ........ <project/catalog-supported option>
|
|
188
214
|
```
|
|
189
215
|
|
|
190
|
-
Use
|
|
216
|
+
Use structured single-select controls for bounded mutually exclusive fields when available. Keep names/targets open-ended. Persist the approved logical environment definition before claiming it is configured.
|
|
191
217
|
|
|
192
|
-
|
|
218
|
+
Normal commands then use that exact name, for example:
|
|
193
219
|
|
|
194
220
|
```text
|
|
221
|
+
/setup demo
|
|
195
222
|
/deployment-readiness demo
|
|
196
223
|
/deploy demo
|
|
197
224
|
/tear-down demo
|
|
@@ -199,54 +226,43 @@ Persist the approved logical environment definition before claiming it is config
|
|
|
199
226
|
|
|
200
227
|
Do not create an environment whose required placement/adapter is unsupported; report the concrete `CATALOG GAP` or deferred state instead.
|
|
201
228
|
|
|
202
|
-
##
|
|
229
|
+
## 7. `/setup remote` and `/setup <environment>` prepare remote-enabled capability
|
|
203
230
|
|
|
204
|
-
|
|
231
|
+
Remote setup proves that this workstation can later work with the configured non-Production or Production-class environment under its normal safety contract. It does **not** publish an artifact or deploy the real application.
|
|
205
232
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
233
|
+
Verify as applicable:
|
|
234
|
+
- local developer prerequisites still needed to build/test;
|
|
235
|
+
- project topology contains the selected non-deferred environment;
|
|
236
|
+
- exact target/provider binding exists when required;
|
|
237
|
+
- workstation-to-target identity/trust/access is valid;
|
|
238
|
+
- target OS/runtime/platform prerequisites are valid;
|
|
239
|
+
- persistence/readiness prerequisites can be inspected safely;
|
|
240
|
+
- GitHub/registry access needed for a later release/publish step is available;
|
|
241
|
+
- repository deployment tooling/baselines are coherent.
|
|
214
242
|
|
|
215
|
-
Never copy SSH private keys/trust from another workstation
|
|
243
|
+
For remote SSH preserve strict host identity. Unknown/changed host identity is a stop condition. Never copy SSH private keys/trust from another workstation and never fall back to another target/provider simply to make setup pass.
|
|
216
244
|
|
|
217
|
-
|
|
245
|
+
Remote readiness does not require configuring Production when the selected environment is non-Production. Production classification remains project topology/policy, not a literal-name check.
|
|
218
246
|
|
|
219
|
-
##
|
|
247
|
+
## 8. Prove supported remote mechanics with a disposable Project Forge probe
|
|
220
248
|
|
|
221
249
|
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.
|
|
222
250
|
|
|
223
|
-
The proof is not the
|
|
251
|
+
The proof is not the Project application. It is a tiny disposable Project Forge-owned probe:
|
|
224
252
|
|
|
225
253
|
```text
|
|
226
|
-
acquire a
|
|
227
|
-
→ resolve
|
|
228
|
-
→ transfer
|
|
229
|
-
→ deploy under
|
|
254
|
+
acquire a stable probe image locally
|
|
255
|
+
→ resolve exact immutable digest
|
|
256
|
+
→ transfer using the real workstation-mediated path
|
|
257
|
+
→ deploy under reserved probe identity
|
|
230
258
|
→ verify runtime/HTTP health
|
|
231
|
-
→ remove
|
|
259
|
+
→ remove probe
|
|
232
260
|
→ verify cleanup
|
|
233
261
|
```
|
|
234
262
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
```text
|
|
238
|
-
python tools/project-forge-deployment/project-forge-deploy.py environment proof plan \
|
|
239
|
-
<target> --owner-repo <owner/repo> --environment <name>
|
|
240
|
-
|
|
241
|
-
python tools/project-forge-deployment/project-forge-deploy.py environment proof run \
|
|
242
|
-
<target> --owner-repo <owner/repo> --environment <name> --yes
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Use the actual installed command/help contract rather than blindly copying examples.
|
|
246
|
-
|
|
247
|
-
A successful proof demonstrates this workstation can use the real image-transfer/application-runtime/health path. It must not create project data or claim the project's application has been deployed.
|
|
263
|
+
Use the actual installed command/help contract. Never claim the Project application is deployed because the probe succeeds.
|
|
248
264
|
|
|
249
|
-
Preferred
|
|
265
|
+
Preferred evidence:
|
|
250
266
|
|
|
251
267
|
```text
|
|
252
268
|
Environment ........... demo
|
|
@@ -256,110 +272,44 @@ Deployment path ....... PROVEN
|
|
|
256
272
|
Project application ... NOT YET DEPLOYED
|
|
257
273
|
```
|
|
258
274
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
### Authorization during setup
|
|
262
|
-
|
|
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.
|
|
264
|
-
|
|
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:
|
|
266
|
-
|
|
267
|
-
```text
|
|
268
|
-
PRODUCTION ENVIRONMENT PROOF
|
|
269
|
-
|
|
270
|
-
Project Forge is ready to temporarily deploy a disposable environment probe to <name>,
|
|
271
|
-
verify it, and remove it. No project application or project data will be deployed.
|
|
272
|
-
```
|
|
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
|
-
|
|
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.
|
|
283
|
-
|
|
284
|
-
## 8. First real application deployment remains streamlined
|
|
285
|
-
|
|
286
|
-
Environment proof should intentionally answer environment/mechanics questions once. Later, the first `/deploy <environment>` with real application code should ask only application-specific questions that are still unresolved, such as exact health contract, persistence, exposure/route, or immutable application artifact policy.
|
|
287
|
-
|
|
288
|
-
Do not repeat already-proven target/access/transport setup unless evidence changed.
|
|
289
|
-
|
|
290
|
-
Environment proof never authorizes a later real application deployment, and Production proof never authorizes Production application deployment.
|
|
291
|
-
|
|
292
|
-
## 9. Human workspace acceptance remains meaningful
|
|
293
|
-
|
|
294
|
-
Machine success is evidence, not human acceptance.
|
|
295
|
-
|
|
296
|
-
When selected setup work passes, report what is ready and hand off to `/next-step` for remaining human editor/workspace acceptance and work-item navigation.
|
|
297
|
-
|
|
298
|
-
Preferred completion shape:
|
|
299
|
-
|
|
300
|
-
```text
|
|
301
|
-
SETUP COMPLETE
|
|
302
|
-
|
|
303
|
-
Workspace instance .... <machine/platform or local friendly name>
|
|
304
|
-
Workstation tools ...... READY
|
|
305
|
-
Personal profile ....... READY / DEFERRED
|
|
306
|
-
Project dependencies ... READY / DEFERRED
|
|
307
|
-
Local runtime .......... READY / DEFERRED / NOT APPLICABLE
|
|
308
|
-
Workspace checks ....... READY
|
|
309
|
-
|
|
310
|
-
ENVIRONMENT CAPABILITIES
|
|
311
|
-
Local .................. READY
|
|
312
|
-
Demo ................... PROVEN / READY / NOT CONFIGURED
|
|
313
|
-
Staging ................ PROVEN / READY / NOT CONFIGURED
|
|
314
|
-
Production ............. PROVEN / ACCESS READY / NOT CONFIGURED
|
|
315
|
-
|
|
316
|
-
Next:
|
|
317
|
-
/next-step
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
Do not silently mark editor/agent discovery accepted on the developer's behalf.
|
|
321
|
-
|
|
322
|
-
## 10. Concurrent workspace rules
|
|
323
|
-
|
|
324
|
-
Multiple workstations may work on the same project concurrently.
|
|
325
|
-
|
|
326
|
-
Prefer independent short-lived branches for independent workstreams. If this checkout uses a branch another workspace may also update, inspect upstream/remote divergence before branch-changing, delivery, or history-sensitive actions. A remote branch advancing from another workstation is normal evidence, not corruption.
|
|
275
|
+
For a Production-class environment, keep the proof explicitly labeled as a **PRODUCTION ENVIRONMENT PROOF** only when topology says the selected environment is Production-class. The disposable proof still does not authorize real Production deployment.
|
|
327
276
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
`/setup` itself does not commit, push, merge, switch work-item branches, copy worktree changes between computers, or use stash as cross-workstation storage.
|
|
331
|
-
|
|
332
|
-
Shared remote environment mutations remain protected by the Deployment Kit's environment/application locking and readiness contracts.
|
|
333
|
-
|
|
334
|
-
## 11. `status`, `repair`, local, remote, and named-environment options
|
|
277
|
+
If cleanup fails, report `PROOF PASSED — CLEANUP ACTION NEEDED`; do not claim a clean setup.
|
|
335
278
|
|
|
336
|
-
|
|
279
|
+
## 9. `repair` is bounded and fail-closed
|
|
337
280
|
|
|
338
|
-
`/setup repair`
|
|
281
|
+
`/setup repair` may re-run safe deterministic setup/readiness operations after classifying the blocker. It may create missing local directories/caches, restore dependencies, rebuild outputs, create a new owned local database, run normal forward initialization, or recreate an owned disposable/local runtime when the repository contract permits those actions.
|
|
339
282
|
|
|
340
|
-
|
|
283
|
+
Stop for a separate explicit decision before:
|
|
284
|
+
- deleting/resetting an existing database;
|
|
285
|
+
- destructive migration or rollback;
|
|
286
|
+
- replacing unexplained persistent data;
|
|
287
|
+
- deleting unrelated containers/images/volumes;
|
|
288
|
+
- publishing an artifact remotely;
|
|
289
|
+
- rebinding a target;
|
|
290
|
+
- weakening host verification;
|
|
291
|
+
- changing public/LAN exposure;
|
|
292
|
+
- deploying Staging or Production.
|
|
341
293
|
|
|
342
|
-
|
|
294
|
+
## 10. Relationship to deployment readiness
|
|
343
295
|
|
|
344
|
-
`/setup
|
|
296
|
+
`/setup` establishes workstation/workspace capability and may prove reusable environment mechanics.
|
|
345
297
|
|
|
346
|
-
|
|
298
|
+
`/deployment-readiness <environment>` remains the later pre-deployment check for one exact environment. It reuses fresh setup-time proof where valid, then verifies application-specific prerequisites for the real deployment.
|
|
347
299
|
|
|
348
|
-
|
|
300
|
+
`/setup` never implies `/deploy`. A successful setup/proof does not authorize a remote or Production application write.
|
|
349
301
|
|
|
350
|
-
|
|
302
|
+
## 11. Completion and handoff
|
|
351
303
|
|
|
352
|
-
|
|
304
|
+
After setup, report evidence rather than inferring human acceptance.
|
|
353
305
|
|
|
354
|
-
|
|
306
|
+
A generated setup/doctor/proof success is machine evidence. Human workspace acceptance remains distinct.
|
|
355
307
|
|
|
356
|
-
|
|
357
|
-
- `/
|
|
358
|
-
- `/
|
|
359
|
-
- `/
|
|
360
|
-
- `/
|
|
361
|
-
- `/
|
|
362
|
-
- `/deploy <environment>` — deploy the real application to any exact project-defined environment, with Production classification preserved.
|
|
363
|
-
- `/tear-down <environment>` — destructively clean only the exact named environment after its own authorization gates.
|
|
308
|
+
Useful next actions include:
|
|
309
|
+
- `/next-step` — one sensible next action after current evidence is known;
|
|
310
|
+
- `/start-work <ID>` — implementation authorization after workspace acceptance;
|
|
311
|
+
- `/deployment-readiness <environment>` — final pre-deploy evidence for a prepared environment;
|
|
312
|
+
- `/deploy <environment>` — only after readiness and its own authorization contract;
|
|
313
|
+
- `/tear-down <scope>` — destructive cleanup under its separate gate.
|
|
364
314
|
|
|
365
|
-
|
|
315
|
+
Do not create a second top-level developer-environment-mode workflow. Local/remote workstation convergence belongs here.
|
|
@@ -41,7 +41,7 @@ If local requirements exist, are they DRAFT or APPROVED?
|
|
|
41
41
|
Are material decisions unresolved?
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
If detailed precision is warranted but incomplete, recommend `/refine-requirements
|
|
44
|
+
If detailed precision is warranted but incomplete, recommend `/refine-requirements` or `/grill-me` rather than silently inventing behavior. `/grill-me` may remain read-only or, when the human selects its session-level reconciliation option, write resolved decisions into permitted authorities.
|
|
45
45
|
|
|
46
46
|
If local requirements are DRAFT and carry material behavior, human approval is the gate before substantive planning/implementation.
|
|
47
47
|
|
|
@@ -114,11 +114,10 @@ Explain why the level was chosen.
|
|
|
114
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
116
|
Relevant choices are:
|
|
117
|
-
|
|
118
|
-
- `
|
|
119
|
-
- `/
|
|
120
|
-
-
|
|
121
|
-
- `Stop`
|
|
117
|
+
- `Continue without coaching` — `RECOMMENDED` default;
|
|
118
|
+
- `/coach` for a short pre-build concept review;
|
|
119
|
+
- `/grill-me` for challenge rather than teaching;
|
|
120
|
+
- `Stop`.
|
|
122
121
|
|
|
123
122
|
Use a numbered text list only when structured choice UI is unavailable. For LIGHT work, do not interrupt with coaching unless requested.
|
|
124
123
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tear-down
|
|
3
|
-
description: "Guided destructive cleanup for local state, one exact repository-defined named environment, or all explicitly configured
|
|
3
|
+
description: "Guided destructive cleanup for local state, one exact repository-defined named environment, or all explicitly configured Project environments. Preserves ownership boundaries and resolved Production-data authorization."
|
|
4
4
|
argument-hint: "[local|<environment>|all]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -8,7 +8,7 @@ disable-model-invocation: true
|
|
|
8
8
|
|
|
9
9
|
# Tear Down
|
|
10
10
|
|
|
11
|
-
`/tear-down` is the human-facing destructive cleanup workflow for repository-owned
|
|
11
|
+
`/tear-down` is the human-facing destructive cleanup workflow for repository-owned Project state.
|
|
12
12
|
|
|
13
13
|
Logical environment names are data-driven and are not limited to Staging/Production:
|
|
14
14
|
|
|
@@ -47,7 +47,7 @@ all
|
|
|
47
47
|
|
|
48
48
|
If no scope is named, present only scopes the repository actually supports; never silently default to a Production environment or `all`.
|
|
49
49
|
|
|
50
|
-
`all` means only all explicitly configured scopes for this
|
|
50
|
+
`all` means only all explicitly configured scopes for this Project; it never means machine-wide cleanup.
|
|
51
51
|
|
|
52
52
|
Selecting scope does not authorize deletion. Physical colocation never merges ownership: deleting `demo` must not remove `staging` or `prod-east` merely because they share hardware.
|
|
53
53
|
|
|
@@ -99,7 +99,7 @@ Do not promise deletion of named/shared Docker volumes unless the installed dete
|
|
|
99
99
|
Every modifying tear-down requires the installed normal authorization, conceptually:
|
|
100
100
|
|
|
101
101
|
```text
|
|
102
|
-
[
|
|
102
|
+
[PROJECT TEAR DOWN]
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
whenever **any selected environment is Production-class**, require the stronger Production-data deletion authorization, conceptually:
|