@mriekki/project-forge 1.0.0 → 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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@mriekki/project-forge",
4
- "version": "1.0.0",
4
+ "version": "2.0.0",
5
5
  "components": {
6
6
  "core": {
7
7
  "repository": "mriekki/project-forge-core",
8
- "commit": "78065f0ab59506e8cc703f6bf7dfd31fc71f313f",
9
- "version": "2.0.0",
8
+ "commit": "80ff581ec89533f5a22bd05c65c7b67bb314c715",
9
+ "version": "3.0.0",
10
10
  "distribution": "greenfield-workspace",
11
11
  "files": [
12
12
  {
@@ -62,12 +62,12 @@
62
62
  {
63
63
  "source": "core/skills/setup/SKILL.md",
64
64
  "destination": ".github/skills/setup/SKILL.md",
65
- "sha256": "a3f3fae1962cdc3ed844a14fe5578d8e9769c850d6c34ba0948efb33b0eb643c"
65
+ "sha256": "e700e914afc291ffb1153bb796a8ef150c624c5b54032e29d3abda221260285f"
66
66
  },
67
67
  {
68
68
  "source": "core/skills/progress/SKILL.md",
69
69
  "destination": ".github/skills/progress/SKILL.md",
70
- "sha256": "c06a899fb3729534203eee49f61e38f599d96eb10d711d95c47e94dd4fdf1fef"
70
+ "sha256": "7c9524859f4683feee2e8fac33ef3aa24f2b7b38099a37c3b65eb746aaba7391"
71
71
  },
72
72
  {
73
73
  "source": "core/skills/next-step/SKILL.md",
@@ -92,7 +92,7 @@
92
92
  {
93
93
  "source": "core/skills/project-forge-update/SKILL.md",
94
94
  "destination": ".github/skills/project-forge-update/SKILL.md",
95
- "sha256": "47a939f56370b946d186288a8556e0bb630b555e9a63c7db6166924fdffe046b"
95
+ "sha256": "70170e57a77f143c719a8c349161c580e339397e782d28133d9f3734f6625847"
96
96
  },
97
97
  {
98
98
  "source": "core/skills/core-sync/SKILL.md",
@@ -112,22 +112,22 @@
112
112
  {
113
113
  "source": "core/skills/developer-env-mode/SKILL.md",
114
114
  "destination": ".github/skills/developer-env-mode/SKILL.md",
115
- "sha256": "74ba23df627300131ce9d6162fc67e922841ef5f98182bca1a1cc8b0190982dd"
115
+ "sha256": "2e45e00e30f17edda5b259bd24852233d2bcace46f7e095d3b28faf9ce35cedb"
116
116
  },
117
117
  {
118
118
  "source": "core/skills/deployment-readiness/SKILL.md",
119
119
  "destination": ".github/skills/deployment-readiness/SKILL.md",
120
- "sha256": "dfde7006be24ed1bcbff13dc70e9b6b7d9b3b907bbae7aa26530393c6c9573f6"
120
+ "sha256": "846ddacc3f9acaecfce3ba62a6c1eb01149f1afd1013e307a81dc65e1351cbc4"
121
121
  },
122
122
  {
123
123
  "source": "core/skills/deploy/SKILL.md",
124
124
  "destination": ".github/skills/deploy/SKILL.md",
125
- "sha256": "cddf03ae08045d5d42701d4095752d55316d2532e8a3c804c6c769dedf31eb60"
125
+ "sha256": "7bacd366014bf8c890328ec2b78412a39a0abff2f6b44dd53ca129102a7a30c8"
126
126
  },
127
127
  {
128
128
  "source": "core/skills/tear-down/SKILL.md",
129
129
  "destination": ".github/skills/tear-down/SKILL.md",
130
- "sha256": "36d5e0ef56173d85dc326a4afc12ddd26b65e70d419dceef728cccaa837df058"
130
+ "sha256": "5fcda93f4a0d1eca76a8a753f340fcb1799bddfe515324493e7d910f1c2253a3"
131
131
  },
132
132
  {
133
133
  "source": "core/skills/coach/SKILL.md",
@@ -212,7 +212,7 @@
212
212
  {
213
213
  "source": "core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md",
214
214
  "destination": "docs/project-forge/PROJECT_FORGE_ENGINEERING_GUIDE.md",
215
- "sha256": "4db0d0f7ba21e8d8a36ada3fbe392fc2f7e38af377bbbe023996f40d827af97e"
215
+ "sha256": "431eb3af7593f5f79f74ffdd306f56b5249a632c480fd6c3e5f0223161d376d9"
216
216
  },
217
217
  {
218
218
  "source": "core/process/SETUP_ACCEPTANCE_CHECKLIST.md",
@@ -74,7 +74,7 @@ flowchart TB
74
74
 
75
75
  | Layer | Responsibility |
76
76
  | --- | --- |
77
- | POC Bootstrap | Discovery protocol, catalog/support states, approved `POC_BOOTSTRAP.json`, deployment topology intent, deterministic generation, setup/readiness helpers, work-item materialization. |
77
+ | POC Bootstrap | Discovery protocol, catalog/support states, approved `PROJECT_BOOTSTRAP.json`, deployment topology intent, deterministic generation, setup/readiness helpers, work-item materialization. |
78
78
  | Agentic Core | Reusable workflow behavior, agents/skills, Human-in-the-Loop gates, review/delivery semantics, learning flows, topology-aware deployment orchestration. |
79
79
  | Project Forge Platform | Consumer-facing `@mriekki/project-forge` package that assembles exact accepted reusable components and records provenance. |
80
80
  | Control Plane | GitHub App orchestration for target validation, short-lived scoped credentials, deterministic generation, and safe publication. |
@@ -130,7 +130,7 @@ flowchart LR
130
130
  DELIVER --> MERGE[Merge gate]
131
131
  ```
132
132
 
133
- 1. Human approves schema-v2 `POC_BOOTSTRAP.json` with initial work items and an exact `@mriekki/project-forge` package version/profile/integrity.
133
+ 1. Human approves schema-v2 `PROJECT_BOOTSTRAP.json` with initial work items and an exact `@mriekki/project-forge` package version/profile/integrity.
134
134
  2. The private target repository is seeded with only the approved manifest; a public Control Plane request identifies only the repository.
135
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
136
  4. Bootstrap materializes project-owned content; the exact Project Forge package applies its reusable profile only after drift/collision preflight.
@@ -155,7 +155,7 @@ A project can be generated, set up, and accepted as an engineering workspace eve
155
155
  | Project definition | Materialized product scope, roadmap, approved work items, architecture/design context, deployment topology, and implementation/learning guidance. |
156
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
157
  | CI baseline | CI exists before substantive implementation and becomes reusable evidence throughout delivery. |
158
- | Provenance | `POC_BOOTSTRAP.json`, `PROJECT_FORGE_BASELINE.json`, component baselines, `DEV_ENVIRONMENT.json`, and `SCAFFOLD_PLAN.json` make generated state inspectable. |
158
+ | Provenance | `PROJECT_BOOTSTRAP.json`, `PROJECT_FORGE_BASELINE.json`, component baselines, `DEV_ENVIRONMENT.json`, and `SCAFFOLD_PLAN.json` make generated state inspectable. |
159
159
 
160
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
161
 
@@ -27,7 +27,7 @@ Prefer:
27
27
  DEPLOYMENT_TOPOLOGY.json
28
28
  ```
29
29
 
30
- Use `POC_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
30
+ Use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
31
31
 
32
32
  Resolve exact configured name, purpose/Production classification, placement, isolation, exposure, binding, adapter, target/provider, and failure domain.
33
33
 
@@ -29,7 +29,7 @@ Prefer the project-owned mutable topology:
29
29
  DEPLOYMENT_TOPOLOGY.json
30
30
  ```
31
31
 
32
- Use `POC_BOOTSTRAP.json` deployment topology only as the initial topology fallback. Do not rewrite Bootstrap provenance merely because a later environment changes.
32
+ Use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fallback. Do not rewrite Bootstrap provenance merely because a later environment changes.
33
33
 
34
34
  Resolve the exact configured environment name plus, when present:
35
35
 
@@ -31,7 +31,7 @@ Never record a requested mode as ready until its readiness contract passes. If c
31
31
 
32
32
  From the repository root inspect, when present:
33
33
 
34
- - `POC_BOOTSTRAP.json`;
34
+ - `PROJECT_BOOTSTRAP.json`;
35
35
  - `PROJECT_FORGE_BASELINE.json` and component baselines;
36
36
  - `DEV_ENVIRONMENT.json`;
37
37
  - application setup/build/test commands and project-owned persistence configuration;
@@ -16,7 +16,7 @@ Invocation is read-only. `/progress` is a navigation/status surface, not a secon
16
16
 
17
17
  Inspect only the evidence needed for the current lifecycle position. Useful sources include:
18
18
 
19
- - `POC_BOOTSTRAP.json`, generated baselines, and repository history for project creation/provenance;
19
+ - `PROJECT_BOOTSTRAP.json`, generated baselines, and repository history for project creation/provenance;
20
20
  - `DEPLOYMENT_TOPOLOGY.json` as preferred project-owned mutable environment topology when present;
21
21
  - `DEV_ENVIRONMENT.json`, generated setup scripts, workstation-local setup/developer-mode evidence, and safe setup checks for local readiness;
22
22
  - observed OS/platform and machine-local evidence for **this workspace instance**;
@@ -24,7 +24,7 @@ Inspect only the evidence needed for the current lifecycle position. Useful sour
24
24
  - work-item docs, Reviewer evidence, PR/CI state, and default-branch evidence;
25
25
  - environment proof/readiness/deployment evidence for exact project-defined environments.
26
26
 
27
- If `DEPLOYMENT_TOPOLOGY.json` does not exist, use `POC_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
27
+ If `DEPLOYMENT_TOPOLOGY.json` does not exist, use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
28
28
 
29
29
  Never invent completion because a prior step normally happens. Prefer `UNKNOWN`/`NOT EVIDENCED` over false green state.
30
30
 
@@ -30,7 +30,7 @@ From the consumer root read:
30
30
  - `PROJECT_FORGE_BASELINE.json`;
31
31
  - `CORE_BASELINE.json` when present;
32
32
  - `DEPLOYMENT_BASELINE.json` when present;
33
- - `POC_BOOTSTRAP.json` when present;
33
+ - `PROJECT_BOOTSTRAP.json` when present;
34
34
  - current Git status, branch, remotes, and default branch when observable.
35
35
 
36
36
  Require `PROJECT_FORGE_BASELINE.json` to identify:
@@ -47,13 +47,13 @@ Do not synthesize or repair missing umbrella provenance by hand.
47
47
 
48
48
  ### Bootstrap-generated consumers
49
49
 
50
- If `POC_BOOTSTRAP.json` exists, treat it as approved generated-consumer provenance, not unrelated product data.
50
+ If `PROJECT_BOOTSTRAP.json` exists, treat it as approved generated-consumer provenance, not unrelated product data.
51
51
 
52
52
  Before planning an update, require `generation.projectForge.package`, `generation.projectForge.version`, and `generation.projectForge.profile` to agree exactly with the installed `PROJECT_FORGE_BASELINE.json`. Require `generation.projectForge.integrity` to be a non-empty exact registry integrity value for that installed package/version. Verify that integrity read-only from the registry when registry access is available.
53
53
 
54
54
  If those values disagree before the update, report `GENERATED PROJECT FORGE METADATA DRIFT` and stop. Do not use `/project-forge-update` to silently reconcile an already-incoherent generated consumer.
55
55
 
56
- Also inspect generated package-verification surfaces such as `.github/workflows/ci.yml` when present. If they duplicate the approved package version/integrity literally, record that current shape as companion generated metadata that must remain coherent with `POC_BOOTSTRAP.json` during the update. Do not rewrite locally customized or unrecognized generated surfaces by guesswork.
56
+ Also inspect generated package-verification surfaces such as `.github/workflows/ci.yml` when present. If they duplicate the approved package version/integrity literally, record that current shape as companion generated metadata that must remain coherent with `PROJECT_BOOTSTRAP.json` during the update. Do not rewrite locally customized or unrecognized generated surfaces by guesswork.
57
57
 
58
58
  ## 2. Verify the installed package baseline first
59
59
 
@@ -117,8 +117,8 @@ A modified retired Core path is different: never auto-add `--accept-retired core
117
117
 
118
118
  For a Bootstrap-generated consumer, also preview the companion generated-consumer changes:
119
119
 
120
- - `POC_BOOTSTRAP.json` keeps the same package/profile but changes `generation.projectForge.version` and `generation.projectForge.integrity` to the exact reviewed target;
121
- - generated package-verification surfaces should consume `POC_BOOTSTRAP.json` dynamically when the accepted Bootstrap contract supports that form;
120
+ - `PROJECT_BOOTSTRAP.json` keeps the same package/profile but changes `generation.projectForge.version` and `generation.projectForge.integrity` to the exact reviewed target;
121
+ - generated package-verification surfaces should consume `PROJECT_BOOTSTRAP.json` dynamically when the accepted Bootstrap contract supports that form;
122
122
  - a recognized older Bootstrap-generated verification block may be migrated only when its embedded old package/version/integrity exactly match the currently approved manifest metadata;
123
123
  - an unrecognized or locally modified generated verification surface is a stop condition, not permission to reconstruct Bootstrap output by hand.
124
124
 
@@ -148,7 +148,7 @@ Choosing option 1 authorizes only:
148
148
  - creation/switch to one repository-appropriate short-lived update branch when needed;
149
149
  - exact target package apply;
150
150
  - removal of unchanged retired package-managed files that the reviewed preview classified as `REMOVE`;
151
- - when `POC_BOOTSTRAP.json` is present, update of its exact `generation.projectForge.version` and `generation.projectForge.integrity` to the reviewed target while preserving package/profile;
151
+ - when `PROJECT_BOOTSTRAP.json` is present, update of its exact `generation.projectForge.version` and `generation.projectForge.integrity` to the reviewed target while preserving package/profile;
152
152
  - migration of a recognized Bootstrap-generated package-verification block from duplicated current literals to the accepted manifest-driven form, only when the existing block still exactly matches the current approved metadata;
153
153
  - package/baseline/generated-consumer verification;
154
154
  - inspection of the resulting meaningful diff.
@@ -173,7 +173,7 @@ npx --yes @mriekki/project-forge@<target-version> update --apply
173
173
 
174
174
  If explicit Core retired-path ownership transfer was separately approved, pass only the exact reviewed modified paths using the package's `--accept-retired core:<path>` contract. Never widen that set implicitly. Unchanged retired managed paths do not need this flag; the package updater removes them according to the reviewed `REMOVE` plan.
175
175
 
176
- For a Bootstrap-generated consumer, complete the reviewed companion metadata changes in the same bounded update before declaring success. Preserve every unrelated `POC_BOOTSTRAP.json` field. Never change package identity or profile as an incidental version update.
176
+ For a Bootstrap-generated consumer, complete the reviewed companion metadata changes in the same bounded update before declaring success. Preserve every unrelated `PROJECT_BOOTSTRAP.json` field. Never change package identity or profile as an incidental version update.
177
177
 
178
178
  Do not run direct `tools/package/sync.py`, Deployment Kit sync, or a remote `[sync-core]` request as part of a package-managed update.
179
179
 
@@ -190,7 +190,7 @@ Then inspect:
190
190
  ```text
191
191
  git status --short --branch
192
192
  git diff --stat
193
- git diff -- PROJECT_FORGE_BASELINE.json CORE_BASELINE.json DEPLOYMENT_BASELINE.json POC_BOOTSTRAP.json .github/workflows/ci.yml
193
+ git diff -- PROJECT_FORGE_BASELINE.json CORE_BASELINE.json DEPLOYMENT_BASELINE.json PROJECT_BOOTSTRAP.json .github/workflows/ci.yml
194
194
  ```
195
195
 
196
196
  Confirm:
@@ -199,7 +199,7 @@ Confirm:
199
199
  - component baseline commits/distributions match the umbrella baseline;
200
200
  - package check passes for the whole profile;
201
201
  - unchanged retired managed files shown as `REMOVE` in the preview are actually absent after apply, while any explicitly transferred modified retired Core file remains present and is no longer Core-managed;
202
- - when `POC_BOOTSTRAP.json` exists, its package/version/profile agree with `PROJECT_FORGE_BASELINE.json` and its integrity equals the exact reviewed target registry integrity;
202
+ - when `PROJECT_BOOTSTRAP.json` exists, its package/version/profile agree with `PROJECT_FORGE_BASELINE.json` and its integrity equals the exact reviewed target registry integrity;
203
203
  - when the repository contains `tools/project-forge-package/check-managed-baselines.py`, that generated baseline checker passes after all companion metadata changes;
204
204
  - generated package-verification surfaces no longer contradict the approved manifest metadata;
205
205
  - consumer-owned content was not overwritten;
@@ -218,7 +218,7 @@ Present the meaningful diff for human review. After acceptance, recommend `/deli
218
218
  - performs a downgrade/rollback as an ordinary update;
219
219
  - overwrites unexplained managed drift;
220
220
  - auto-accepts Core retired-path ownership transfer for a modified retired file;
221
- - silently repairs a pre-existing mismatch between `POC_BOOTSTRAP.json` and `PROJECT_FORGE_BASELINE.json`;
221
+ - silently repairs a pre-existing mismatch between `PROJECT_BOOTSTRAP.json` and `PROJECT_FORGE_BASELINE.json`;
222
222
  - changes a generated consumer's package identity/profile or regenerates the repository as an incidental version update;
223
223
  - guesses at locally modified/unrecognized Bootstrap-generated verification logic;
224
224
  - publishes npm/Core/Deployment/Bootstrap releases or tags;
@@ -24,7 +24,7 @@ From the repository root inspect only what is needed:
24
24
 
25
25
  - `DEV_ENVIRONMENT.json`;
26
26
  - `DEPLOYMENT_TOPOLOGY.json` when present;
27
- - `POC_BOOTSTRAP.json` as generation/provenance and initial topology fallback;
27
+ - `PROJECT_BOOTSTRAP.json` as generation/provenance and initial topology fallback;
28
28
  - `SCAFFOLD_PLAN.json` when present;
29
29
  - `.github/project-forge-workspace.json` and Project Forge/component baselines when present;
30
30
  - `scripts/setup.ps1` on Windows or `scripts/setup.sh` on macOS;
@@ -167,9 +167,9 @@ Prefer project-owned mutable deployment topology:
167
167
  DEPLOYMENT_TOPOLOGY.json
168
168
  ```
169
169
 
170
- Use `POC_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
170
+ Use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
171
171
 
172
- `POC_BOOTSTRAP.json` is generation/provenance evidence and should not be casually rewritten merely because a developer adds an environment later.
172
+ `PROJECT_BOOTSTRAP.json` is generation/provenance evidence and should not be casually rewritten merely because a developer adds an environment later.
173
173
 
174
174
  If an older POC has no `DEPLOYMENT_TOPOLOGY.json` and the developer chooses to add/change a logical environment, first materialize the currently approved deployment topology into the project-owned file, then make the scoped project configuration change there. Preserve the original Bootstrap provenance file.
175
175
 
@@ -29,7 +29,7 @@ Prefer:
29
29
  DEPLOYMENT_TOPOLOGY.json
30
30
  ```
31
31
 
32
- Use `POC_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
32
+ Use `PROJECT_BOOTSTRAP.json` deployment topology only as the initial topology fallback.
33
33
 
34
34
  Resolve only configured logical environments and their current purpose/Production classification, placement/target binding, repository/application identity, and ownership evidence.
35
35
 
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env node
2
- import { run } from '../src/cli.mjs';
3
-
4
- try {
5
- process.exitCode = await run();
6
- } catch (error) {
7
- console.error(`Project Forge error: ${error.message}`);
8
- process.exitCode = 2;
9
- }
1
+ #!/usr/bin/env node
2
+ import { run } from '../src/cli.mjs';
3
+
4
+ try {
5
+ process.exitCode = await run();
6
+ } catch (error) {
7
+ console.error(`Project Forge error: ${error.message}`);
8
+ process.exitCode = 2;
9
+ }
package/package.json CHANGED
@@ -1,33 +1,33 @@
1
- {
2
- "name": "@mriekki/project-forge",
3
- "version": "1.0.0",
4
- "description": "Public consumer distribution and updater for Project Forge engineering assets.",
5
- "type": "module",
6
- "bin": {
7
- "project-forge": "bin/project-forge.mjs"
8
- },
9
- "files": [
10
- "bin/",
11
- "src/",
12
- "assets/",
13
- "README.md"
14
- ],
15
- "scripts": {
16
- "test": "node --test",
17
- "assemble:assets": "node scripts/assemble-assets.mjs",
18
- "verify:assets": "node scripts/verify-assets.mjs",
19
- "release:prepare": "node scripts/prepare-release.mjs",
20
- "prepack": "npm run verify:assets"
21
- },
22
- "engines": {
23
- "node": ">=20"
24
- },
25
- "repository": {
26
- "type": "git",
27
- "url": "git+https://github.com/mriekki/project-forge-platform.git"
28
- },
29
- "publishConfig": {
30
- "access": "public",
31
- "provenance": true
32
- }
33
- }
1
+ {
2
+ "name": "@mriekki/project-forge",
3
+ "version": "2.0.0",
4
+ "description": "Public consumer distribution and updater for Project Forge engineering assets.",
5
+ "type": "module",
6
+ "bin": {
7
+ "project-forge": "bin/project-forge.mjs"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "src/",
12
+ "assets/",
13
+ "README.md"
14
+ ],
15
+ "scripts": {
16
+ "test": "node --test",
17
+ "assemble:assets": "node scripts/assemble-assets.mjs",
18
+ "verify:assets": "node scripts/verify-assets.mjs",
19
+ "release:prepare": "node scripts/prepare-release.mjs",
20
+ "prepack": "npm run verify:assets"
21
+ },
22
+ "engines": {
23
+ "node": ">=20"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/mriekki/project-forge-platform.git"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public",
31
+ "provenance": true
32
+ }
33
+ }