@mriekki/project-forge 0.0.0-stage → 2.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.
Files changed (117) hide show
  1. package/README.md +134 -2
  2. package/assets/components.json +33 -0
  3. package/assets/core/distribution.json +66 -0
  4. package/assets/deployment/distribution.json +54 -0
  5. package/assets/generated/ASSEMBLY.json +557 -0
  6. package/assets/generated/core/core/agents/coach.agent.md +69 -0
  7. package/assets/generated/core/core/agents/reviewer.agent.md +85 -0
  8. package/assets/generated/core/core/instructions/project-forge-docs.instructions.md +45 -0
  9. package/assets/generated/core/core/instructions/project-forge-workflow.instructions.md +79 -0
  10. package/assets/generated/core/core/learning/CODING_DRILLS.md +35 -0
  11. package/assets/generated/core/core/learning/DIAGRAM_GUIDE.md +59 -0
  12. package/assets/generated/core/core/learning/ENGINEERING_LEARNING_WORKBOOK.md +108 -0
  13. package/assets/generated/core/core/learning/LEARNING_MAP.md +108 -0
  14. package/assets/generated/core/core/learning/LEARNING_PROGRESS.md +39 -0
  15. package/assets/generated/core/core/learning/RESOURCE_CATALOG.md +25 -0
  16. package/assets/generated/core/core/learning/SQL_DRILLS.md +90 -0
  17. package/assets/generated/core/core/learning/SYSTEM_DESIGN_DRILLS.md +301 -0
  18. package/assets/generated/core/core/process/COACHING_GUIDE.md +92 -0
  19. package/assets/generated/core/core/process/DATABASE_LEARNING_WORKBENCH.md +397 -0
  20. package/assets/generated/core/core/process/DEPLOYMENT_ENABLEMENT.md +166 -0
  21. package/assets/generated/core/core/process/GUIDED_NEXT_STEPS.md +48 -0
  22. package/assets/generated/core/core/process/HUMAN_GATES.md +83 -0
  23. package/assets/generated/core/core/process/INTERACTIVE_SESSION_GUIDE.md +64 -0
  24. package/assets/generated/core/core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md +326 -0
  25. package/assets/generated/core/core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md +308 -0
  26. package/assets/generated/core/core/process/PR_WORKFLOW.md +55 -0
  27. package/assets/generated/core/core/process/SETUP_ACCEPTANCE_CHECKLIST.md +72 -0
  28. package/assets/generated/core/core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md +520 -0
  29. package/assets/generated/core/core/process/WORK_ITEM_MODEL.md +56 -0
  30. package/assets/generated/core/core/skills/cleanup-branches/SKILL.md +190 -0
  31. package/assets/generated/core/core/skills/coach/SKILL.md +174 -0
  32. package/assets/generated/core/core/skills/code-walkthrough/SKILL.md +197 -0
  33. package/assets/generated/core/core/skills/core-sync/SKILL.md +178 -0
  34. package/assets/generated/core/core/skills/db-lab/SKILL.md +245 -0
  35. package/assets/generated/core/core/skills/define-feature/SKILL.md +144 -0
  36. package/assets/generated/core/core/skills/deliver/SKILL.md +397 -0
  37. package/assets/generated/core/core/skills/deploy/SKILL.md +188 -0
  38. package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +234 -0
  39. package/assets/generated/core/core/skills/developer-env-mode/SKILL.md +231 -0
  40. package/assets/generated/core/core/skills/docs/SKILL.md +116 -0
  41. package/assets/generated/core/core/skills/grill-me/SKILL.md +77 -0
  42. package/assets/generated/core/core/skills/grill-with-docs/SKILL.md +90 -0
  43. package/assets/generated/core/core/skills/learning-review/SKILL.md +90 -0
  44. package/assets/generated/core/core/skills/next-step/SKILL.md +221 -0
  45. package/assets/generated/core/core/skills/progress/SKILL.md +207 -0
  46. package/assets/generated/core/core/skills/project-forge-update/SKILL.md +228 -0
  47. package/assets/generated/core/core/skills/pull-latest/SKILL.md +166 -0
  48. package/assets/generated/core/core/skills/refine-requirements/SKILL.md +207 -0
  49. package/assets/generated/core/core/skills/setup/SKILL.md +362 -0
  50. package/assets/generated/core/core/skills/start-work/SKILL.md +190 -0
  51. package/assets/generated/core/core/skills/system-lab/SKILL.md +333 -0
  52. package/assets/generated/core/core/skills/tear-down/SKILL.md +140 -0
  53. package/assets/generated/core/core/skills/upstream-fix/SKILL.md +221 -0
  54. package/assets/generated/core/core/skills/wait-what/SKILL.md +86 -0
  55. package/assets/generated/core/core/templates/ADR_TEMPLATE.md +41 -0
  56. package/assets/generated/core/core/templates/FEATURE_BRIEF_TEMPLATE.md +27 -0
  57. package/assets/generated/core/core/templates/PRODUCT_BRIEF_TEMPLATE.md +27 -0
  58. package/assets/generated/core/core/templates/PULL_REQUEST_TEMPLATE.md +37 -0
  59. package/assets/generated/core/core/templates/REQUIREMENTS_TEMPLATE.md +17 -0
  60. package/assets/generated/core/profiles/greenfield/project-forge-workspace.json +12 -0
  61. package/assets/generated/core/tools/db_lab/sqlite_workbench.py +463 -0
  62. package/assets/generated/core/tools/docs_site/docs_site.py +512 -0
  63. package/assets/generated/core/tools/package/check_baseline.py +102 -0
  64. package/assets/generated/core/tools/package/check_upstream.py +171 -0
  65. package/assets/generated/core/tools/system_lab/system_workbench.py +243 -0
  66. package/assets/generated/deployment/distribution/project-forge-deploy.py +8 -0
  67. package/assets/generated/deployment/docs/DEVELOPER_ENVIRONMENTS.md +335 -0
  68. package/assets/generated/deployment/docs/ENVIRONMENT_PROOF.md +95 -0
  69. package/assets/generated/deployment/docs/WORKSPACE_INSTANCES.md +154 -0
  70. package/assets/generated/deployment/docs/images/developer-environment-journey.svg +56 -0
  71. package/assets/generated/deployment/docs/images/personal-environment-architecture.svg +54 -0
  72. package/assets/generated/deployment/docs/images/poc-environment-model.svg +61 -0
  73. package/assets/generated/deployment/src/project_forge_deployment/__init__.py +3 -0
  74. package/assets/generated/deployment/src/project_forge_deployment/__main__.py +3 -0
  75. package/assets/generated/deployment/src/project_forge_deployment/app_cli.py +163 -0
  76. package/assets/generated/deployment/src/project_forge_deployment/app_runtime.py +455 -0
  77. package/assets/generated/deployment/src/project_forge_deployment/app_runtime_remote.py +416 -0
  78. package/assets/generated/deployment/src/project_forge_deployment/app_runtime_workstation.py +136 -0
  79. package/assets/generated/deployment/src/project_forge_deployment/box_platform.py +208 -0
  80. package/assets/generated/deployment/src/project_forge_deployment/box_platform_assets.py +100 -0
  81. package/assets/generated/deployment/src/project_forge_deployment/box_platform_remote.py +271 -0
  82. package/assets/generated/deployment/src/project_forge_deployment/cli.py +437 -0
  83. package/assets/generated/deployment/src/project_forge_deployment/doctor.py +121 -0
  84. package/assets/generated/deployment/src/project_forge_deployment/entrypoint.py +37 -0
  85. package/assets/generated/deployment/src/project_forge_deployment/environment_cli.py +271 -0
  86. package/assets/generated/deployment/src/project_forge_deployment/environment_probe.py +228 -0
  87. package/assets/generated/deployment/src/project_forge_deployment/errors.py +5 -0
  88. package/assets/generated/deployment/src/project_forge_deployment/home_lab.py +328 -0
  89. package/assets/generated/deployment/src/project_forge_deployment/image_transfer.py +105 -0
  90. package/assets/generated/deployment/src/project_forge_deployment/keys.py +171 -0
  91. package/assets/generated/deployment/src/project_forge_deployment/local_cli.py +189 -0
  92. package/assets/generated/deployment/src/project_forge_deployment/local_runtime.py +526 -0
  93. package/assets/generated/deployment/src/project_forge_deployment/local_spec.py +82 -0
  94. package/assets/generated/deployment/src/project_forge_deployment/local_sqlite.py +205 -0
  95. package/assets/generated/deployment/src/project_forge_deployment/portable_profile.py +181 -0
  96. package/assets/generated/deployment/src/project_forge_deployment/profile_migration.py +70 -0
  97. package/assets/generated/deployment/src/project_forge_deployment/profile_repository.py +348 -0
  98. package/assets/generated/deployment/src/project_forge_deployment/profiles.py +204 -0
  99. package/assets/generated/deployment/src/project_forge_deployment/registry_access.py +114 -0
  100. package/assets/generated/deployment/src/project_forge_deployment/registry_cli.py +51 -0
  101. package/assets/generated/deployment/src/project_forge_deployment/route_registry.py +367 -0
  102. package/assets/generated/deployment/src/project_forge_deployment/route_registry_remote.py +443 -0
  103. package/assets/generated/deployment/src/project_forge_deployment/security.py +290 -0
  104. package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter.py +335 -0
  105. package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter_remote.py +340 -0
  106. package/assets/generated/deployment/src/project_forge_deployment/sqlite_cli.py +86 -0
  107. package/assets/generated/deployment/src/project_forge_deployment/sqlite_import_recovery.py +437 -0
  108. package/assets/generated/deployment/src/project_forge_deployment/ssh.py +119 -0
  109. package/assets/generated/deployment/src/project_forge_deployment/teardown.py +300 -0
  110. package/assets/generated/deployment/src/project_forge_deployment/teardown_cli.py +139 -0
  111. package/assets/generated/deployment/src/project_forge_deployment/teardown_remote.py +100 -0
  112. package/assets/generated/deployment/src/project_forge_deployment/trust.py +278 -0
  113. package/bin/project-forge.mjs +9 -0
  114. package/package.json +31 -4
  115. package/src/cli.mjs +150 -0
  116. package/src/engine.mjs +243 -0
  117. package/src/package-data.mjs +18 -0
@@ -0,0 +1,308 @@
1
+ # Project Forge Platform — Engineering Guide
2
+
3
+ > This Markdown guide began as a repository-friendly conversion of the **Project Forge Platform | Integrated Briefing** prepared 16 October 2026. The platform has continued to evolve. Live repository evidence, accepted baselines, and current process docs outrank historical example/status statements when they differ.
4
+
5
+ ## From Idea to Engineering Environment
6
+
7
+ **Core promise:** provide an easy way to turn a personal software idea into a reproducible, AI-enabled engineering project — with technology choice, streamlined setup, deliberate learning, real SDLC practices, and a deployment model that can scale from one-machine local use to distinct Staging / Production environments when the project actually needs them.
8
+
9
+ ```mermaid
10
+ flowchart LR
11
+ IDEA[Idea] --> DISCOVERY[Discovery]
12
+ DISCOVERY --> GENERATE[Generate]
13
+ GENERATE --> BUILD[Build + Learn]
14
+ BUILD --> DELIVER[Deliver]
15
+ DELIVER --> DEPLOY[Deploy when selected]
16
+ ```
17
+
18
+ Technology choice + deterministic setup + Project Forge AI workflow + learning + CI + explicit deployment topology.
19
+
20
+ ---
21
+
22
+ ## 1. Purpose & Executive Thesis
23
+
24
+ ### Make experimentation easy without making engineering disposable
25
+
26
+ The platform lowers the friction of starting a personal project while preserving enough professional engineering structure that the work is repeatable, teachable, and credible.
27
+
28
+ | Principle | Meaning |
29
+ | --- | --- |
30
+ | Low friction | Start from a short idea instead of hand-assembling repository conventions, setup scripts, AI instructions, and workflow boilerplate. |
31
+ | Choice | Select a technology direction based on project needs or learning goals, with explicit support-state signals rather than hidden assumptions. |
32
+ | Discipline | Use a Project Forge workflow with bounded implementation, review, CI evidence, and meaningful human acceptance points. |
33
+ | Learning | Build understanding alongside code through work-item guides, code walkthroughs, learning review, and targeted coaching. |
34
+ | Realism | Exercise containerization, source control, CI, releases, environment isolation, and deployment tradeoffs without pretending every POC needs dedicated Staging/Production computers. |
35
+ | Repeatability | Create self-contained generated repositories with explicit provenance and controlled platform updates. |
36
+
37
+ ### Why this is different from “generate me an app”
38
+
39
+ The outcome is not just source code. It is a project with an engineering operating model: approved scope, stack decision, workspace conventions, AI behavior, work items, setup/readiness, CI, delivery gates, learning support, and deployment boundaries.
40
+
41
+ ---
42
+
43
+ ## 2. Value Stream
44
+
45
+ ### One guided path from idea to a working engineering system
46
+
47
+ AI is used where conversation and judgment help; deterministic tooling is used where reproducibility and safety matter.
48
+
49
+ 1. **Define** — conversational discovery turns a vague idea into users, workflows, state/lifecycle, success criteria, non-goals, security/privacy, and learning goals.
50
+ 2. **Choose** — technology and deployment outcome/topology are selected against a live catalog and recipe model, with support maturity made visible.
51
+ 3. **Generate** — a human-approved manifest drives deterministic generation of a self-contained repository and AI-ready workspace.
52
+ 4. **Build** — work items flow through Project Forge implementation, tests, review, meaningful-diff acceptance, and CI-backed delivery.
53
+ 5. **Learn** — the same work becomes deliberate practice through walkthrough, learning review, and focused coaching.
54
+ 6. **Operate** — when deployment is selected, the logical environment topology is explicit: workstation, remote target, supported provider adapter, or intentionally deferred.
55
+
56
+ **Design rule:** conversational product discovery is separate from deterministic repository generation.
57
+
58
+ ---
59
+
60
+ ## 3. Platform Architecture
61
+
62
+ ### Reusable platform layers; self-contained consumer projects
63
+
64
+ Clear ownership boundaries keep process, package transport, orchestration, deployment mechanics, and product state from collapsing into one AI-controlled blob.
65
+
66
+ ```mermaid
67
+ flowchart TB
68
+ BOOT[POC Bootstrap<br/>Discovery, catalog, manifests,<br/>deterministic generation] --> POC[Generated POC<br/>self-contained consumer]
69
+ CORE[Agentic Core<br/>Workflow, agents, skills,<br/>HITL gates, learning] --> POC
70
+ PLATFORM[Project Forge Platform / @mriekki/project-forge<br/>Exact accepted reusable components] --> POC
71
+ CONTROL[Control Plane<br/>GitHub App orchestration<br/>and safe publication] --> POC
72
+ DEPLOY[Deployment Kit<br/>Workstation + remote-target mechanics] --> POC
73
+ ```
74
+
75
+ | Layer | Responsibility |
76
+ | --- | --- |
77
+ | POC Bootstrap | Discovery protocol, catalog/support states, approved `PROJECT_BOOTSTRAP.json`, deployment topology intent, deterministic generation, setup/readiness helpers, work-item materialization. |
78
+ | Agentic Core | Reusable workflow behavior, agents/skills, Human-in-the-Loop gates, review/delivery semantics, learning flows, topology-aware deployment orchestration. |
79
+ | Project Forge Platform | Consumer-facing `@mriekki/project-forge` package that assembles exact accepted reusable components and records provenance. |
80
+ | Control Plane | GitHub App orchestration for target validation, short-lived scoped credentials, deterministic generation, and safe publication. |
81
+ | Deployment Kit | Reusable one-workstation loopback-container runtime plus strict remote target/access, Ubuntu/Docker/Caddy routing, persistence, and scoped tear-down mechanics. Managed hosting remains adapter-specific rather than generic implied support. |
82
+ | Generated POC | Owns product scope, architecture, code/tests, work items, CI evidence, logical environment/topology facts, concrete deployment bindings, accepted baselines, and implementation history. |
83
+
84
+ **Architectural outcome:** a generated POC remains usable on its own. Normal development and deployment do not depend on sibling clones of the platform repositories.
85
+
86
+ ---
87
+
88
+ ## 4. Technology Choice
89
+
90
+ ### Standardization without stack lock-in
91
+
92
+ The platform separates “what I want to use” from “what the bootstrap system can automate confidently today.”
93
+
94
+ - **Choice remains explicit.** Stack selection is part of discovery and can reflect product constraints, developer preference, or a learning objective.
95
+ - **Support is declared.** Catalog entries and recipes expose support state.
96
+ - **Gaps are visible.** An uncataloged recommendation can still be reasonable engineering advice, but it is labeled `CATALOG GAP` rather than presented as supported automation.
97
+ - **Automation can grow.** New recipes, deployment adapters, and support states can be added to repository-owned catalog definitions without changing the overall experience.
98
+
99
+ Reference recipes captured in the original source briefing:
100
+
101
+ - `dotnet-react-sqlite` — Partial support
102
+ - `java-angular-postgres` — Partial support
103
+ - `java-angular-sqlite` — Partial support
104
+ - `react-vite` — Partial support
105
+
106
+ **Implication:** avoid both a rigid golden path that blocks experimentation and ungoverned AI that implies unsupported stacks/providers are production-ready. Choice is broad; automation claims stay evidence-based.
107
+
108
+ ---
109
+
110
+ ## 5. Bootstrap & Provenance
111
+
112
+ ### Definition is conversational; generation is deterministic
113
+
114
+ Once scope is approved, generation authority becomes an explicit manifest rather than conversation memory.
115
+
116
+ ```mermaid
117
+ flowchart LR
118
+ IDEA[Idea] --> DISC[Discovery]
119
+ DISC --> SCOPE[Scope + non-goals]
120
+ SCOPE --> STACK[Stack + support]
121
+ STACK --> ITEMS[Work items]
122
+ ITEMS --> MANIFEST[Approved manifest]
123
+ MANIFEST --> GEN[Generate + publish]
124
+ GEN --> CI[CI]
125
+ CI --> SETUP[Clone + setup]
126
+ SETUP --> ACCEPT[Doctor + acceptance]
127
+ ACCEPT --> START[/start-work]
128
+ START --> IMPL[Implement + review]
129
+ IMPL --> DELIVER[/deliver]
130
+ DELIVER --> MERGE[Merge gate]
131
+ ```
132
+
133
+ 1. Human approves schema-v2 `PROJECT_BOOTSTRAP.json` with initial work items and an exact `@mriekki/project-forge` package version/profile/integrity.
134
+ 2. The private target repository is seeded with only the approved manifest; a public Control Plane request identifies only the repository.
135
+ 3. The Control Plane validates the private seed, uses short-lived scoped credentials, obtains the exact package artifact, and verifies integrity before reusable target mutation.
136
+ 4. Bootstrap materializes project-owned content; the exact Project Forge package applies its reusable profile only after drift/collision preflight.
137
+ 5. The generated repository records umbrella and component-native baselines, is published without force/history rewrite, and must pass default-branch CI before local setup continues.
138
+
139
+ ### Why provenance matters
140
+
141
+ A future AI session can inspect what was actually accepted instead of guessing which reusable behavior or generator version produced the workspace.
142
+
143
+ ---
144
+
145
+ ## 6. Generated Developer Experience
146
+
147
+ ### Generation creates an engineering workspace — not just folders
148
+
149
+ A project can be generated, set up, and accepted as an engineering workspace even when its application scaffold or deployment binding is intentionally deferred.
150
+
151
+ | Area | Generated experience |
152
+ | --- | --- |
153
+ | Workspace shell | VS Code workspace, editor conventions, `.gitignore`/`.gitattributes`, settings/extensions, and pre-scaffold launch surfaces. |
154
+ | Agent behavior | `AGENTS.md` plus repository-local agents, skills, scoped instructions, process guidance, and provider-specific integration. |
155
+ | Project definition | Materialized product scope, roadmap, approved work items, architecture/design context, deployment topology, and implementation/learning guidance. |
156
+ | Setup + doctor | Workstation setup and readiness checks stay distinct from human editor/workspace acceptance. A deferred deployment target is not a failed development workspace. |
157
+ | CI baseline | CI exists before substantive implementation and becomes reusable evidence throughout delivery. |
158
+ | Provenance | `PROJECT_BOOTSTRAP.json`, `PROJECT_FORGE_BASELINE.json`, component baselines, `DEV_ENVIRONMENT.json`, and `SCAFFOLD_PLAN.json` make generated state inspectable. |
159
+
160
+ **Important distinction:** machine success is evidence, not human acceptance. Setup and doctor checks can prove tools are ready; the human still decides whether the checkout is actually usable.
161
+
162
+ ---
163
+
164
+ ## 7. Project Forge Agentic Engineering
165
+
166
+ ### AI handles mechanics; humans retain engineering authority
167
+
168
+ The Project Forge workflow removes ceremonial prompts while preserving explicit control where scope, acceptance, merge, deployment, or destructive actions are consequential.
169
+
170
+ ```mermaid
171
+ flowchart LR
172
+ WORK[Work Item<br/>requirements + plan] --> IMPLEMENT[Implement<br/>AI-assisted bounded change]
173
+ IMPLEMENT --> REVIEW[Review<br/>Reviewer + meaningful diff]
174
+ REVIEW --> DELIVER[Deliver<br/>commit + push + PR + CI]
175
+ DELIVER --> LEARN[Learn<br/>walkthrough + review + coach]
176
+ LEARN --> WORK
177
+ ```
178
+
179
+ - **`/start-work <ID>`** loads approved work-item context, refines requirements/plan when warranted, then authorizes bounded implementation and routine branch setup.
180
+ - **Implement + Review** is AI-assisted bounded change with tests and Reviewer evidence, followed by human meaningful-diff acceptance.
181
+ - **`/deliver`** performs selective stage, staged-diff verification, commit, push, PR creation/update, and CI inspection after delivery is invoked.
182
+ - **Merge gate** remains one explicit “Merge and finalize delivery?” decision. If evidence materially changes, review re-opens.
183
+ - **Post-merge** verifies default-branch CI and safely cleans up only the delivered short-lived branch.
184
+ - **`/wait-what`** is read-only communication repair: explain what just happened without silently doing work or authorizing the pending action.
185
+
186
+ **Governance pattern:** standardize high-frequency routine mechanics; preserve human authority for material requirements, meaningful implementation acceptance, merge/finalization, release publication, Production deployment, and destructive operations.
187
+
188
+ ---
189
+
190
+ ## 8. Learning Mechanism
191
+
192
+ ### Use AI to increase capability, not only throughput
193
+
194
+ The system treats a personal POC as both a software deliverable and a deliberate learning vehicle — without turning learning into a release gate.
195
+
196
+ - **Embedded context** — work-item Implementation & Learning Guides connect engineering outcomes to concepts, reasoning prompts, things to notice, hands-on opportunities, and learning evidence.
197
+ - **Code walkthrough** — `/code-walkthrough` explains the actual implementation, architecture boundaries, control flow, and important tradeoffs after the work exists.
198
+ - **Learning review** — `/learning-review` distinguishes what the developer can explain from what was merely generated and accepted.
199
+ - **Targeted coaching** — `/coach` focuses on specific gaps instead of re-teaching the whole project.
200
+ - **Evidence labs** — `/db-lab` and `/system-lab` reconstruct current database/system evidence and support change-focused learning without requiring hand-maintained diagrams.
201
+
202
+ ### Comprehension model
203
+
204
+ Distinguish:
205
+
206
+ - personally implemented/used;
207
+ - AI-generated but reviewed/understood;
208
+ - studied/practiced;
209
+ - not yet understood.
210
+
211
+ The goal is evidence of understanding, not artificial claims of authorship.
212
+
213
+ ### No delivery tax
214
+
215
+ Learning is optional and deliberately non-blocking. The project can be delivered once engineering acceptance is satisfied, even if the developer chooses to defer the learning flow.
216
+
217
+ ---
218
+
219
+ ## 9. Environments & Deployment
220
+
221
+ ### Logical environments, flexible physical topology
222
+
223
+ Environment purpose is independent from machine count.
224
+
225
+ ```mermaid
226
+ flowchart TB
227
+ DEV[Development] --> CHOICE{Desired deployment outcome}
228
+ CHOICE --> LOCAL[Demo on workstation<br/>container + loopback]
229
+ CHOICE --> REMOTE[Remote target<br/>one or more logical environments]
230
+ CHOICE --> DEFER[Deferred binding<br/>continue development now]
231
+ CHOICE --> PROVIDER[Managed provider<br/>only through supported adapter]
232
+ ```
233
+
234
+ Keep these dimensions separate:
235
+
236
+ ```text
237
+ purpose / role
238
+ placement
239
+ isolation
240
+ exposure
241
+ binding state / adapter
242
+ target or provider
243
+ failure domain
244
+ ```
245
+
246
+ Examples:
247
+
248
+ | Topology | Meaning |
249
+ | --- | --- |
250
+ | One workstation | `demo` may run as a loopback-only container; no second PC or SSH onboarding required. |
251
+ | Separate remote hosts | Staging and Production can each have their own target/failure domain. |
252
+ | One shared VPS | Staging and Production can remain separate logical environments while sharing a physical failure domain; Project Forge must state that this does not prove host-level Production isolation. |
253
+ | Deployment deferred | A desired shareable/production-like outcome can be recorded without forcing immediate infrastructure provisioning. |
254
+ | Managed provider | Only an implemented/cataloged provider adapter may be called supported; otherwise it is `CATALOG GAP`/planned. |
255
+
256
+ Production remains separately authorized regardless of physical placement. Colocation never turns Staging validation into Production evidence and never weakens Production data/deployment gates.
257
+
258
+ ### Current maturity statement
259
+
260
+ Reusable deployment mechanics exist for a loopback-only workstation-container path and the strict remote Ubuntu/SSH path. Bootstrap support remains partial until the corresponding package-delivered unrelated generated-consumer proofs are completed. Managed service hosting is an adapter boundary rather than a generic support claim.
261
+
262
+ ---
263
+
264
+ ## 10. Concrete Historical Example
265
+
266
+ ### Family Meal Planner v3: a generated consumer, not a platform fork
267
+
268
+ The original briefing used Family Meal Planner v3 to demonstrate re-baselining a mature product definition into the reusable platform without copying historical execution state.
269
+
270
+ - **Product goal:** private, mobile-friendly household Recipe Library with structured recipes, ingredients/tags, lifecycle management, search/filtering, and family ratings.
271
+ - **Selected stack:** `dotnet-react-sqlite` recipe with partial support; generic scaffold intentionally deferred rather than allowed to overwrite mature architecture decisions.
272
+ - **First work item:** EN-001 — Application Foundation / Walking Skeleton: prove React, ASP.NET, browser-to-API, SQLite through approved layers, dependency injection, health/system info, Compose, and CI.
273
+ - **App-specific deployment model in that reference consumer:** Production and Staging are distinct Ubuntu environments over trusted-LAN SSH with separate target/access contracts and no cross-environment fallback.
274
+ - **Learning goal:** use the project as a hands-on software-engineering POC and build enough understanding to review and explain the system rather than only accept generated implementation.
275
+ - **Lifecycle point in the original briefing:** the v3 repository had an approved seed manifest and was at the GitHub-first generation handoff when the original briefings were prepared.
276
+
277
+ The FMP topology is an **example consumer choice**, not a reusable requirement for other Project Forge users.
278
+
279
+ **Why the example matters:** it demonstrates that the platform can preserve non-trivial product, architecture, work-item, deployment, and learning intent while still applying a standardized engineering workspace and Project Forge operating model.
280
+
281
+ ---
282
+
283
+ ## 11. Boundaries, Maturity & Takeaway
284
+
285
+ ### Make the easy path a disciplined path
286
+
287
+ The strongest claim is not that AI can do everything. It is that a reusable operating model can make disciplined engineering the lowest-friction way to explore an idea.
288
+
289
+ - **Not “any stack, fully automated.”** Technology choice is broad; Bootstrap automation is claimed only where the live catalog supports it.
290
+ - **Not “every POC needs servers.”** One-machine local/demo and explicitly deferred deployment are valid outcomes.
291
+ - **Not generic cloud support.** A plausible provider is not supported until a provider adapter is cataloged, implemented, and proven.
292
+ - **Not autonomous Production.** Merge, CI, or release publication never implies Production deployment. Production and destructive operations remain separately gated regardless of placement.
293
+ - **Not model-dependent.** Repository-local workflow assets define behavior; Core does not rely on one fixed AI model to preserve the engineering process.
294
+ - **Not hidden regeneration.** Generated POCs are self-contained consumers. Reusable updates go through controlled package/baseline paths rather than silent wholesale regeneration.
295
+ - **AI drift is bounded.** Repository protocol, catalog, baselines, and project-owned artifacts outrank conversational inference about project state.
296
+ - **Still a POC platform.** This is a disciplined engineering POC platform with strong foundations and explicit remaining proof/maturity work — not a finished enterprise developer platform.
297
+
298
+ ### Strategic takeaway
299
+
300
+ This is a small-system proving ground for AI-native engineering: low-friction project creation, governed technology choice, repository-owned AI behavior, realistic delivery/deployment practice, and learning built into the same workflow.
301
+
302
+ ---
303
+
304
+ ## Source Basis
305
+
306
+ Current reusable claims in this guide are constrained by live Project Forge repository evidence, accepted baselines, and current process contracts.
307
+
308
+ Historical migration handoffs and superseded consumer examples are not part of the current Project Forge contract.
@@ -0,0 +1,55 @@
1
+ # Pull Request / Merge Workflow
2
+
3
+ After:
4
+
5
+ ```text
6
+ implementation complete
7
+ → relevant local checks satisfactory
8
+ → Reviewer READY
9
+ → human meaningful local-diff approval
10
+ ```
11
+
12
+ run `/deliver`.
13
+
14
+ Normal delivery is intentionally streamlined:
15
+
16
+ ```text
17
+ /deliver
18
+ → establish/recover short-lived work branch if needed
19
+ → selective stage
20
+ → verify staged diff
21
+ → commit
22
+ → push
23
+ → create/update PR
24
+ → PR CI
25
+ → one MERGE + FINALIZE decision
26
+ → merge
27
+ → post-merge default-branch CI when configured, plus any observable enforced checks
28
+ → safe delivered-branch cleanup
29
+ → delivery complete
30
+ ```
31
+
32
+ Invoking `/deliver` is the bounded authorization for the routine mechanics through PR creation/update and PR-CI inspection. Do not add separate branch/commit/push/PR/CI permission prompts when the work remains inside the already-reviewed delivery scope.
33
+
34
+ Key rules:
35
+ - existing repository branch/PR/CI/merge policy outranks Project Forge defaults,
36
+ - `required CI` means the configured workflows/checks that apply to the exact commit plus any additional enforced repository policy observable through available tooling,
37
+ - inability to read branch-protection/ruleset admin settings alone is not a human gate and must not be converted into a Settings-page questionnaire; ask only when missing policy data creates a concrete block to merge/release,
38
+ - `/start-work` should establish the short-lived work branch when implementation begins; `/deliver` may recover safely if reviewed work is still on the default branch,
39
+ - PR templates are internal scaffolding and do not require a separate validation ceremony,
40
+ - because implementation was already meaningfully accepted locally, a final PR acceptance prompt does not need to be separate from merge when the PR head/diff still exactly matches that accepted scope,
41
+ - green PR CI is necessary evidence but never merge authorization by itself,
42
+ - the explicit `Merge and finalize delivery` choice is both final acceptance of the observed PR and merge authorization,
43
+ - if new commits/material diff changes/conflicts/regressed checks appear, final PR review is required before merge,
44
+ - merge authorization is not production-deployment authorization,
45
+ - for a normal short-lived delivered branch, `Merge and finalize delivery` also authorizes safe local/remote cleanup after applicable post-merge default-branch CI/policy evidence is satisfied,
46
+ - no second branch-deletion prompt is needed for that delivered branch when the cleanup evidence remains exact and safe,
47
+ - unrelated, accumulated, protected/default, release/integration/environment, policy-retained, changed, or ambiguous branches are preserved,
48
+ - squash/rebase merges require merged-PR/head-SHA evidence before any local force deletion is considered safe,
49
+ - do not claim checks passed or branches were deleted unless the remote/local state was actually observed,
50
+ - do not silently modify code after CI failure; inspect/diagnose and return through review as warranted,
51
+ - rerunning `/deliver` after interruption resumes from the furthest observed safe delivery state instead of repeating completed actions or re-asking routine authorization.
52
+
53
+ If PR CI or post-merge CI remains pending beyond the practical interaction/tool window, preserve state and report that rerunning `/deliver` will resume observation/finalization.
54
+
55
+ Use `/cleanup-branches` for preview-first maintenance of accumulated, previously retained, unrelated, or otherwise out-of-band branches outside the active `/deliver` flow.
@@ -0,0 +1,72 @@
1
+ # Setup Acceptance Checklist
2
+
3
+ Do not confuse generated files, installed tools, operational dependencies, editor/agent discovery, AI execution-surface discovery, and human acceptance.
4
+
5
+ Use this checklist after creating or adopting a Project Forge workspace and before beginning the first substantive work item.
6
+
7
+ ## Workstation
8
+
9
+ - [ ] All required tools declared by the workspace environment are installed at acceptable versions.
10
+ - [ ] Required external CLIs are authenticated to the intended account when authentication is part of the workflow.
11
+ - [ ] Required local services or engines are actually running, not merely installed.
12
+ - [ ] Container tooling and Compose work when the selected stack declares containers.
13
+ - [ ] Repository-pinned runtimes are active.
14
+ - [ ] Optional tools are either available or consciously deferred.
15
+
16
+ ## Repository / workspace
17
+
18
+ - [ ] Git repository and remote state are understood.
19
+ - [ ] `AGENTS.md` is present and identifies the repository source-of-truth hierarchy.
20
+ - [ ] `.github/project-forge-workspace.json` is present.
21
+ - [ ] expected Project Forge agents, instructions, and skills are present.
22
+ - [ ] product/work-item source documents needed for the next work item are present.
23
+ - [ ] CI configuration is present when CI is part of the workspace contract.
24
+ - [ ] Core baseline integrity passes when `CORE_BASELINE.json` is present.
25
+
26
+ ## Editor / agentic AI discovery
27
+
28
+ After opening/reloading the intended editor workspace:
29
+
30
+ - [ ] the selected AI coding assistant is signed in and usable when required.
31
+ - [ ] `Reviewer` is discoverable.
32
+ - [ ] `Coach` is discoverable when the workspace includes coaching.
33
+ - [ ] expected Project Forge skills are discoverable, including `/start-work`, `/deliver`, and `/wait-what` when included by the distribution/capability set.
34
+ - [ ] path-specific instructions are present when the workspace declares them.
35
+ - [ ] path-specific instructions are recognized/applied for matching files when the host supports them.
36
+ - [ ] the human controls the routine model/tier; the workspace does not silently pin or upgrade it.
37
+
38
+ ## Copilot CLI + VS Code discovery
39
+
40
+ When GitHub Copilot CLI is an intended execution surface:
41
+
42
+ - [ ] `copilot` starts successfully from the repository checkout without requiring `--allow-all` or `--yolo`.
43
+ - [ ] `/user` reports the intended GitHub identity.
44
+ - [ ] `/skills list` shows the expected repository-local Project Forge skills from `.github/skills/`.
45
+ - [ ] the expected custom agents are selectable, including `Reviewer` and `Coach` when included by the distribution/capability set.
46
+ - [ ] `/ide` is connected to the intended trusted VS Code workspace when editor/CLI integration is desired.
47
+ - [ ] CLI-proposed edits can be reviewed through the configured approval flow; when VS Code diff integration is enabled, proposed file edits appear as editor diffs rather than being silently applied.
48
+ - [ ] the `Reviewer` agent exposes only the intended `read`, `search`, and `execute` tool classes and remains non-mutating in practice.
49
+ - [ ] Project Forge human gates behave the same whether the interaction starts in Copilot Chat or Copilot CLI.
50
+
51
+ Copilot CLI is an additional supported execution surface, not a separate Project Forge workflow. Normal Project Forge use must not require blanket tool approval. Autopilot/delegated execution is outside the default Project Forge delivery lifecycle unless a repository explicitly defines and accepts that behavior.
52
+
53
+ ## Application stage
54
+
55
+ - [ ] application scaffold is either intentionally absent for the current stage or present as expected.
56
+ - [ ] declared restore/build/test commands succeed for the artifacts that currently exist.
57
+ - [ ] deferred scaffold-dependent checks are clearly identified rather than reported as passed.
58
+
59
+ ## Smoke test
60
+
61
+ - [ ] static workspace diagnostics pass when provided.
62
+ - [ ] normal AI chat can summarize the approved product/work-item intent without inventing scope.
63
+ - [ ] a read-only challenge/review capability can be invoked without editing files.
64
+ - [ ] `/wait-what` can re-explain a prior response without changing repository state when the workspace includes it.
65
+ - [ ] the Reviewer remains review-focused when selected.
66
+ - [ ] when Copilot CLI is enabled, invoking a Project Forge skill there preserves the same scope, source-of-truth, and Human-in-the-Loop rules as the editor chat surface.
67
+
68
+ ## Human acceptance
69
+
70
+ Setup is accepted only when the human confirms this checkout is usable for the next intended work item.
71
+
72
+ A successful generator, installer, static file check, tool-version probe, CLI connection, or agent/skill discovery check alone is not human acceptance.