@mriekki/lean 0.4.3 → 0.4.5
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/core/distribution.json +8 -0
- package/assets/deployment/distribution.json +2 -0
- package/assets/generated/ASSEMBLY.json +73 -23
- package/assets/generated/core/core/instructions/lean-docs.instructions.md +33 -2
- package/assets/generated/core/core/instructions/lean-workflow.instructions.md +42 -0
- package/assets/generated/core/core/learning/DIAGRAM_GUIDE.md +46 -6
- package/assets/generated/core/core/learning/ENGINEERING_LEARNING_WORKBOOK.md +29 -6
- package/assets/generated/core/core/learning/LEARNING_MAP.md +37 -2
- package/assets/generated/core/core/learning/LEARNING_PROGRESS.md +15 -7
- package/assets/generated/core/core/learning/SYSTEM_DESIGN_DRILLS.md +299 -19
- package/assets/generated/core/core/process/COACHING_GUIDE.md +35 -2
- package/assets/generated/core/core/process/DATABASE_LEARNING_WORKBENCH.md +153 -102
- package/assets/generated/core/core/process/DEPLOYMENT_ENABLEMENT.md +108 -71
- package/assets/generated/core/core/process/LEAN_ENGINEERING_GUIDE.md +317 -0
- package/assets/generated/core/core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md +324 -0
- package/assets/generated/core/core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md +520 -0
- package/assets/generated/core/core/skills/coach/SKILL.md +31 -4
- package/assets/generated/core/core/skills/db-lab/SKILL.md +59 -16
- package/assets/generated/core/core/skills/deliver/SKILL.md +77 -5
- package/assets/generated/core/core/skills/deploy/SKILL.md +164 -121
- package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +223 -250
- package/assets/generated/core/core/skills/docs/SKILL.md +116 -0
- package/assets/generated/core/core/skills/next-step/SKILL.md +21 -6
- package/assets/generated/core/core/skills/system-lab/SKILL.md +333 -0
- package/assets/generated/core/core/skills/tear-down/SKILL.md +101 -61
- package/assets/generated/core/core/templates/ADR_TEMPLATE.md +41 -0
- package/assets/generated/core/tools/docs_site/docs_site.py +382 -0
- package/assets/generated/core/tools/system_lab/system_workbench.py +243 -0
- package/assets/generated/deployment/src/lean_poc_deployment/entrypoint.py +5 -1
- package/assets/generated/deployment/src/lean_poc_deployment/local_cli.py +112 -0
- package/assets/generated/deployment/src/lean_poc_deployment/local_runtime.py +523 -0
- package/assets/generated/deployment/src/lean_poc_deployment/teardown.py +49 -35
- package/assets/generated/deployment/src/lean_poc_deployment/teardown_cli.py +31 -12
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Deployment enablement is the guided operational lane between delivered deployment engineering and `/deploy`.
|
|
4
4
|
|
|
5
|
-
A repository may
|
|
5
|
+
A **logical environment is not a physical computer**. A repository may define `demo`, `staging`, `production`, or other named environments; one developer may use only a workstation, several environments may share one VPS, or a desired deployment may remain explicitly deferred.
|
|
6
6
|
|
|
7
7
|
The normal human-facing entry point is state-driven:
|
|
8
8
|
|
|
@@ -10,120 +10,157 @@ The normal human-facing entry point is state-driven:
|
|
|
10
10
|
/deployment-readiness <environment>
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
For a read-only local overview use:
|
|
13
|
+
Read-only overview:
|
|
16
14
|
|
|
17
15
|
```text
|
|
18
16
|
/deployment-readiness status [environment]
|
|
19
17
|
```
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
The workflow discovers current topology/state and continues from the furthest safe point. The human does not choose separate `discovery`, `enable`, or `resume` modes.
|
|
20
|
+
|
|
21
|
+
## Topology before machine questions
|
|
22
|
+
|
|
23
|
+
Resolve these independently when repository evidence provides them:
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
```text
|
|
26
|
+
environment name / role / purpose
|
|
27
|
+
placement
|
|
28
|
+
isolation
|
|
29
|
+
exposure
|
|
30
|
+
binding state
|
|
31
|
+
adapter
|
|
32
|
+
target/provider binding
|
|
33
|
+
failure domain
|
|
34
|
+
```
|
|
24
35
|
|
|
25
|
-
|
|
36
|
+
Current placement classes include:
|
|
26
37
|
|
|
27
|
-
|
|
38
|
+
- `workstation` — local execution; current reusable container adapter is loopback-only;
|
|
39
|
+
- `remote-target` — an explicitly bound remote machine/target;
|
|
40
|
+
- `managed-service` — only when a provider-specific adapter actually exists;
|
|
41
|
+
- `deferred` — desired deployment exists but no current target/provider binding is selected.
|
|
28
42
|
|
|
29
|
-
|
|
43
|
+
Do not ask remote-machine questions until `remote-target` is actually the selected placement.
|
|
30
44
|
|
|
31
|
-
|
|
32
|
-
- hostname or IP address;
|
|
33
|
-
- SSH/deployment user when applicable;
|
|
34
|
-
- non-default SSH port when applicable;
|
|
35
|
-
- target OS when known.
|
|
45
|
+
## Workstation readiness
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
A one-machine local/demo topology is normal.
|
|
38
48
|
|
|
39
|
-
|
|
49
|
+
For current `workstation-container` support, readiness focuses on:
|
|
40
50
|
|
|
41
|
-
|
|
51
|
+
- local Docker/runtime availability;
|
|
52
|
+
- repository-distributed local deployment tooling;
|
|
53
|
+
- exact immutable artifact/image identity;
|
|
54
|
+
- local port/container ownership and health configuration;
|
|
55
|
+
- persistence prerequisites where relevant;
|
|
56
|
+
- Production policy if the logical environment is Production.
|
|
42
57
|
|
|
43
|
-
|
|
58
|
+
It does not require SSH, a hostname, target profile, host trust, Caddy, Avahi, or a second computer.
|
|
44
59
|
|
|
45
|
-
|
|
60
|
+
The adapter's current exposure is loopback. Do not silently widen it to LAN/public sharing.
|
|
46
61
|
|
|
47
|
-
|
|
62
|
+
## Remote-target readiness
|
|
63
|
+
|
|
64
|
+
For remote placement, retain the strict target/access model:
|
|
48
65
|
|
|
49
66
|
```text
|
|
50
|
-
|
|
51
|
-
→
|
|
52
|
-
→
|
|
53
|
-
→
|
|
54
|
-
→ authorize read-only connectivity/identity verification
|
|
55
|
-
→ run repository/Deployment-Kit doctor/verify checks
|
|
56
|
-
→ reuse working access OR repair only missing setup OR onboard a new workstation
|
|
57
|
-
→ verify target/platform/security/artifact/registry/data prerequisites
|
|
58
|
-
→ ENVIRONMENT READY TO DEPLOY
|
|
59
|
-
→ /deploy <environment>
|
|
67
|
+
named environment
|
|
68
|
+
→ explicit target binding
|
|
69
|
+
→ current address/discovery
|
|
70
|
+
→ independently verified host identity
|
|
60
71
|
```
|
|
61
72
|
|
|
62
|
-
|
|
73
|
+
Human-facing facts normally include hostname/IP, deployment user, non-default port, and target OS when relevant.
|
|
63
74
|
|
|
64
|
-
|
|
75
|
+
Internal target/profile/SSH/trust paths should be discovered, reused, or derived whenever possible rather than pushed onto the human as first questions.
|
|
65
76
|
|
|
66
|
-
|
|
77
|
+
If existing configuration is present, show known facts for confirmation. If partial, ask only for the smallest missing fact. If absent, start with the actual machine/address rather than an internal target identifier.
|
|
67
78
|
|
|
68
|
-
|
|
79
|
+
Remote probing requires explicit read-only authorization. Address discovery never substitutes for cryptographic host identity. Unknown/changed SSH identity fails closed.
|
|
69
80
|
|
|
70
|
-
|
|
81
|
+
## Deferred readiness
|
|
71
82
|
|
|
72
|
-
|
|
73
|
-
- key/agent/trust setup;
|
|
74
|
-
- target-side access setup;
|
|
75
|
-
- runtime/platform prerequisite setup;
|
|
76
|
-
- data/backup directory preparation;
|
|
77
|
-
- firewall preparation;
|
|
78
|
-
- registry credential setup.
|
|
83
|
+
A deferred placement is intentional configuration state:
|
|
79
84
|
|
|
80
|
-
|
|
85
|
+
```text
|
|
86
|
+
DEPLOYMENT INTENTIONALLY DEFERRED
|
|
87
|
+
```
|
|
81
88
|
|
|
82
|
-
|
|
89
|
+
It must not block repository generation, local development, CI, documentation, or learning. Readiness should explain the next material decision—choose/configure a supported target/provider adapter—without guessing infrastructure or asking for secrets.
|
|
83
90
|
|
|
84
|
-
|
|
91
|
+
## Managed-service boundary
|
|
85
92
|
|
|
86
|
-
|
|
93
|
+
Managed hosting is adapter-specific. General model knowledge may recommend a provider, but absent a live catalog/implementation contract it remains `CATALOG GAP`/planned.
|
|
87
94
|
|
|
88
|
-
|
|
95
|
+
No provider credentials or provisioning should occur merely because a deployment outcome is public/shareable.
|
|
89
96
|
|
|
90
|
-
|
|
91
|
-
- actual target OS/architecture and supported runtime/platform;
|
|
92
|
-
- validated/available route names and collision checks;
|
|
93
|
-
- approved immutable artifact identity;
|
|
94
|
-
- registry/artifact access readiness;
|
|
95
|
-
- persistence/data/backup prerequisites;
|
|
96
|
-
- migration capability;
|
|
97
|
-
- deployment locking capability;
|
|
98
|
-
- rollback/recovery capability and boundaries;
|
|
99
|
-
- stronger Production backup/recovery prerequisites when applicable.
|
|
97
|
+
## Colocated environments
|
|
100
98
|
|
|
101
|
-
|
|
99
|
+
Two logical environments may intentionally share one physical failure domain.
|
|
102
100
|
|
|
103
|
-
|
|
101
|
+
Keep their targetable scope, runtime/container, route, data, readiness evidence, and authorization independent. When Staging and Production share one target, surface:
|
|
104
102
|
|
|
105
|
-
|
|
103
|
+
```text
|
|
104
|
+
TOPOLOGY NOTE
|
|
106
105
|
|
|
107
|
-
|
|
106
|
+
Staging and Production are logically isolated but share one physical
|
|
107
|
+
failure domain. This may fit POC cost/learning goals, but it does not
|
|
108
|
+
demonstrate host-level Production isolation.
|
|
109
|
+
```
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
Production backup/recovery/security/deploy/destructive gates remain stronger regardless of colocation.
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
## Readiness cadence
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
select environment
|
|
117
|
+
→ resolve topology
|
|
118
|
+
→ inspect placement-relevant local state
|
|
119
|
+
→ show/confirm known facts
|
|
120
|
+
→ authorize relevant read-only verification
|
|
121
|
+
→ repair only missing prerequisites under explicit write gates
|
|
122
|
+
→ ENVIRONMENT READY TO DEPLOY
|
|
123
|
+
→ /deploy <environment>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
For workstation placement there is no remote-access stage. For deferred placement the workflow intentionally stops before verification/provisioning.
|
|
127
|
+
|
|
128
|
+
## Readiness writes versus deployment writes
|
|
129
|
+
|
|
130
|
+
Readiness may perform bounded setup writes when separately authorized and supported by installed tooling, such as local configuration, SSH key/agent/trust setup, target-side access setup, runtime/platform preparation, data/backup directories, firewall preparation, or registry/provider credential configuration.
|
|
131
|
+
|
|
132
|
+
Readiness does **not** hide application deployment inside setup.
|
|
133
|
+
|
|
134
|
+
Application runtime deployment, release-specific migration, route/port publication, live health/readiness, smoke validation, and release-specific evidence belong to `/deploy` when the installed adapter defines them.
|
|
135
|
+
|
|
136
|
+
## Pre-deploy versus post-deploy evidence
|
|
137
|
+
|
|
138
|
+
Readiness proves only facts that can exist before deployment, such as:
|
|
139
|
+
|
|
140
|
+
- logical environment/topology selection;
|
|
141
|
+
- supported adapter availability;
|
|
142
|
+
- local Docker readiness or verified remote target/identity depending on placement;
|
|
143
|
+
- target OS/runtime when applicable;
|
|
144
|
+
- artifact identity/access;
|
|
145
|
+
- route/port ownership availability;
|
|
146
|
+
- persistence/backup/migration prerequisites;
|
|
147
|
+
- deployment lock/recovery capability;
|
|
148
|
+
- stronger Production prerequisites.
|
|
149
|
+
|
|
150
|
+
First-deploy live route, health, smoke, deployed-release identity, and release-specific rollback evidence are post-deploy facts owned by `/deploy`.
|
|
112
151
|
|
|
113
152
|
## Environment independence
|
|
114
153
|
|
|
115
|
-
Readiness
|
|
154
|
+
Readiness of one logical environment never proves another environment ready—even if both share one physical target.
|
|
155
|
+
|
|
156
|
+
Failure of one environment never redirects to another environment, machine, provider, or wider exposure.
|
|
116
157
|
|
|
117
|
-
Production remains a role with stronger
|
|
158
|
+
Production remains a logical role/policy with stronger gates, not a separate readiness command or a requirement for a dedicated physical computer.
|
|
118
159
|
|
|
119
|
-
Once
|
|
160
|
+
Once ready:
|
|
120
161
|
|
|
121
162
|
```text
|
|
122
163
|
/deploy <environment>
|
|
123
164
|
```
|
|
124
165
|
|
|
125
|
-
`/deploy` verifies
|
|
126
|
-
|
|
127
|
-
A Production deployment remains separately authorized and never becomes implicit because readiness passed. A non-production remote deployment still requires the repository/tool's bounded remote-write authorization.
|
|
128
|
-
|
|
129
|
-
Remote read-only authorization never implies permission for writes. Secret values stay out of tracked documentation and logs. Database restore/destructive recovery remains a separate decision when data safety warrants it.
|
|
166
|
+
`/deploy` verifies current topology/target/artifact evidence, presents the exact installed-tool authorization gate, delegates deterministic mechanics, and verifies placement-relevant live evidence.
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Lean POC Platform — Engineering Guide
|
|
2
|
+
|
|
3
|
+
> This Markdown guide began as a repository-friendly conversion of the **Lean POC 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 + Lean 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 Lean Agentic 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 Lean 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[Lean Platform / @mriekki/lean<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 `POC_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
|
+
| Lean Platform | Consumer-facing `@mriekki/lean` 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 `POC_BOOTSTRAP.json` with initial work items and an exact `@mriekki/lean` 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 Lean 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 | `POC_BOOTSTRAP.json`, `LEAN_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. Lean Agentic Engineering
|
|
165
|
+
|
|
166
|
+
### AI handles mechanics; humans retain engineering authority
|
|
167
|
+
|
|
168
|
+
The Lean 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; Lean 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 Lean 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 Lean 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
|
+
The original integrated briefing retained source basis from:
|
|
307
|
+
|
|
308
|
+
- `lean-poc-bootstrap`
|
|
309
|
+
- `lean-agentic-core`
|
|
310
|
+
- `lean-platform`
|
|
311
|
+
- `lean-poc-control-plane`
|
|
312
|
+
- `lean-poc-deployment-kit`
|
|
313
|
+
- `family-meal-planner-v3`
|
|
314
|
+
- `Lean_Coding_Projects_Shared_Handoff_v3_1.md`
|
|
315
|
+
- `Mark_Coding_Projects_Handoff_v3_1.md`
|
|
316
|
+
|
|
317
|
+
Historical example/status statements originated in the briefing prepared 16 October 2026. Current reusable claims in this guide are constrained by live repository evidence.
|