@mriekki/project-forge 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -3
- package/assets/components.json +33 -0
- package/assets/core/distribution.json +66 -0
- package/assets/deployment/distribution.json +54 -0
- package/assets/generated/ASSEMBLY.json +557 -0
- package/assets/generated/core/core/agents/coach.agent.md +69 -0
- package/assets/generated/core/core/agents/reviewer.agent.md +85 -0
- package/assets/generated/core/core/instructions/project-forge-docs.instructions.md +45 -0
- package/assets/generated/core/core/instructions/project-forge-workflow.instructions.md +79 -0
- package/assets/generated/core/core/learning/CODING_DRILLS.md +35 -0
- package/assets/generated/core/core/learning/DIAGRAM_GUIDE.md +59 -0
- package/assets/generated/core/core/learning/ENGINEERING_LEARNING_WORKBOOK.md +108 -0
- package/assets/generated/core/core/learning/LEARNING_MAP.md +108 -0
- package/assets/generated/core/core/learning/LEARNING_PROGRESS.md +39 -0
- package/assets/generated/core/core/learning/RESOURCE_CATALOG.md +25 -0
- package/assets/generated/core/core/learning/SQL_DRILLS.md +90 -0
- package/assets/generated/core/core/learning/SYSTEM_DESIGN_DRILLS.md +301 -0
- package/assets/generated/core/core/process/COACHING_GUIDE.md +92 -0
- package/assets/generated/core/core/process/DATABASE_LEARNING_WORKBENCH.md +397 -0
- package/assets/generated/core/core/process/DEPLOYMENT_ENABLEMENT.md +166 -0
- package/assets/generated/core/core/process/GUIDED_NEXT_STEPS.md +48 -0
- package/assets/generated/core/core/process/HUMAN_GATES.md +83 -0
- package/assets/generated/core/core/process/INTERACTIVE_SESSION_GUIDE.md +64 -0
- package/assets/generated/core/core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md +326 -0
- package/assets/generated/core/core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md +308 -0
- package/assets/generated/core/core/process/PR_WORKFLOW.md +55 -0
- package/assets/generated/core/core/process/SETUP_ACCEPTANCE_CHECKLIST.md +72 -0
- package/assets/generated/core/core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md +520 -0
- package/assets/generated/core/core/process/WORK_ITEM_MODEL.md +56 -0
- package/assets/generated/core/core/skills/cleanup-branches/SKILL.md +190 -0
- package/assets/generated/core/core/skills/coach/SKILL.md +174 -0
- package/assets/generated/core/core/skills/code-walkthrough/SKILL.md +197 -0
- package/assets/generated/core/core/skills/core-sync/SKILL.md +178 -0
- package/assets/generated/core/core/skills/db-lab/SKILL.md +245 -0
- package/assets/generated/core/core/skills/define-feature/SKILL.md +144 -0
- package/assets/generated/core/core/skills/deliver/SKILL.md +397 -0
- package/assets/generated/core/core/skills/deploy/SKILL.md +188 -0
- package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +234 -0
- package/assets/generated/core/core/skills/developer-env-mode/SKILL.md +231 -0
- package/assets/generated/core/core/skills/docs/SKILL.md +116 -0
- package/assets/generated/core/core/skills/grill-me/SKILL.md +77 -0
- package/assets/generated/core/core/skills/grill-with-docs/SKILL.md +90 -0
- package/assets/generated/core/core/skills/learning-review/SKILL.md +90 -0
- package/assets/generated/core/core/skills/next-step/SKILL.md +221 -0
- package/assets/generated/core/core/skills/progress/SKILL.md +207 -0
- package/assets/generated/core/core/skills/project-forge-update/SKILL.md +228 -0
- package/assets/generated/core/core/skills/pull-latest/SKILL.md +166 -0
- package/assets/generated/core/core/skills/refine-requirements/SKILL.md +207 -0
- package/assets/generated/core/core/skills/setup/SKILL.md +362 -0
- package/assets/generated/core/core/skills/start-work/SKILL.md +190 -0
- package/assets/generated/core/core/skills/system-lab/SKILL.md +333 -0
- package/assets/generated/core/core/skills/tear-down/SKILL.md +140 -0
- package/assets/generated/core/core/skills/upstream-fix/SKILL.md +221 -0
- package/assets/generated/core/core/skills/wait-what/SKILL.md +86 -0
- package/assets/generated/core/core/templates/ADR_TEMPLATE.md +41 -0
- package/assets/generated/core/core/templates/FEATURE_BRIEF_TEMPLATE.md +27 -0
- package/assets/generated/core/core/templates/PRODUCT_BRIEF_TEMPLATE.md +27 -0
- package/assets/generated/core/core/templates/PULL_REQUEST_TEMPLATE.md +37 -0
- package/assets/generated/core/core/templates/REQUIREMENTS_TEMPLATE.md +17 -0
- package/assets/generated/core/profiles/greenfield/project-forge-workspace.json +12 -0
- package/assets/generated/core/tools/db_lab/sqlite_workbench.py +463 -0
- package/assets/generated/core/tools/docs_site/docs_site.py +512 -0
- package/assets/generated/core/tools/package/check_baseline.py +102 -0
- package/assets/generated/core/tools/package/check_upstream.py +171 -0
- package/assets/generated/core/tools/system_lab/system_workbench.py +243 -0
- package/assets/generated/deployment/distribution/project-forge-deploy.py +8 -0
- package/assets/generated/deployment/docs/DEVELOPER_ENVIRONMENTS.md +335 -0
- package/assets/generated/deployment/docs/ENVIRONMENT_PROOF.md +95 -0
- package/assets/generated/deployment/docs/WORKSPACE_INSTANCES.md +154 -0
- package/assets/generated/deployment/docs/images/developer-environment-journey.svg +56 -0
- package/assets/generated/deployment/docs/images/personal-environment-architecture.svg +54 -0
- package/assets/generated/deployment/docs/images/poc-environment-model.svg +61 -0
- package/assets/generated/deployment/src/project_forge_deployment/__init__.py +3 -0
- package/assets/generated/deployment/src/project_forge_deployment/__main__.py +3 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_cli.py +163 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime.py +455 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime_remote.py +416 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime_workstation.py +136 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform.py +208 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform_assets.py +100 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform_remote.py +271 -0
- package/assets/generated/deployment/src/project_forge_deployment/cli.py +437 -0
- package/assets/generated/deployment/src/project_forge_deployment/doctor.py +121 -0
- package/assets/generated/deployment/src/project_forge_deployment/entrypoint.py +37 -0
- package/assets/generated/deployment/src/project_forge_deployment/environment_cli.py +271 -0
- package/assets/generated/deployment/src/project_forge_deployment/environment_probe.py +228 -0
- package/assets/generated/deployment/src/project_forge_deployment/errors.py +5 -0
- package/assets/generated/deployment/src/project_forge_deployment/home_lab.py +328 -0
- package/assets/generated/deployment/src/project_forge_deployment/image_transfer.py +105 -0
- package/assets/generated/deployment/src/project_forge_deployment/keys.py +171 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_cli.py +189 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_runtime.py +526 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_spec.py +82 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_sqlite.py +205 -0
- package/assets/generated/deployment/src/project_forge_deployment/portable_profile.py +181 -0
- package/assets/generated/deployment/src/project_forge_deployment/profile_migration.py +70 -0
- package/assets/generated/deployment/src/project_forge_deployment/profile_repository.py +348 -0
- package/assets/generated/deployment/src/project_forge_deployment/profiles.py +204 -0
- package/assets/generated/deployment/src/project_forge_deployment/registry_access.py +114 -0
- package/assets/generated/deployment/src/project_forge_deployment/registry_cli.py +51 -0
- package/assets/generated/deployment/src/project_forge_deployment/route_registry.py +367 -0
- package/assets/generated/deployment/src/project_forge_deployment/route_registry_remote.py +443 -0
- package/assets/generated/deployment/src/project_forge_deployment/security.py +290 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter.py +335 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter_remote.py +340 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_cli.py +86 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_import_recovery.py +437 -0
- package/assets/generated/deployment/src/project_forge_deployment/ssh.py +119 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown.py +300 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown_cli.py +139 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown_remote.py +100 -0
- package/assets/generated/deployment/src/project_forge_deployment/trust.py +278 -0
- package/bin/project-forge.mjs +9 -0
- package/package.json +33 -6
- package/src/cli.mjs +150 -0
- package/src/engine.mjs +243 -0
- package/src/package-data.mjs +18 -0
package/README.md
CHANGED
|
@@ -1,3 +1,135 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# Project Forge
|
|
2
|
+
|
|
3
|
+
**Build real software. Learn the engineering behind it.**
|
|
4
|
+
|
|
5
|
+
Project Forge is an AI-guided software development and learning platform for building your own projects from idea through definition, implementation, testing, deployment, and structured learning.
|
|
6
|
+
|
|
7
|
+
The Builder brings the idea and makes the material decisions. Project Forge supplies a repeatable engineering path, deterministic project generation, AI-assisted implementation and review, environment setup and deployment guidance, and optional learning and coaching.
|
|
8
|
+
|
|
9
|
+
## What it feels like
|
|
10
|
+
|
|
11
|
+
Start with an idea:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
New Project: I want to build a hiking trail tracker.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Project Forge guides the Builder through:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
idea
|
|
21
|
+
→ project discovery
|
|
22
|
+
→ V1 scope and non-goals
|
|
23
|
+
→ technology and testing choices
|
|
24
|
+
→ project definition
|
|
25
|
+
→ private GitHub project creation
|
|
26
|
+
→ deterministic workspace generation
|
|
27
|
+
→ local setup
|
|
28
|
+
→ small work items
|
|
29
|
+
→ implementation + tests
|
|
30
|
+
→ meaningful review
|
|
31
|
+
→ delivery / pull request / CI
|
|
32
|
+
→ optional deployment
|
|
33
|
+
→ optional code walkthrough, learning review, and coaching
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## What Project Forge is for
|
|
37
|
+
|
|
38
|
+
Project Forge supports personal software projects, learning projects, technology explorations, automation, APIs, web/mobile/desktop applications, embedded projects, AI/LLM projects, testing projects, and other supported software shapes.
|
|
39
|
+
|
|
40
|
+
Projects can grow beyond an initial experiment. They can have persistent data, CI, multiple workstations, named environments such as Demo, Staging, and Production, deployment, and ongoing work items.
|
|
41
|
+
|
|
42
|
+
## Human control stays meaningful
|
|
43
|
+
|
|
44
|
+
Project Forge automates routine mechanics but keeps important decisions with the Builder:
|
|
45
|
+
|
|
46
|
+
- material requirements and scope;
|
|
47
|
+
- substantive implementation plans when warranted;
|
|
48
|
+
- meaningful code and diff acceptance;
|
|
49
|
+
- pull-request merge and finalization;
|
|
50
|
+
- release publication;
|
|
51
|
+
- Production deployment or destructive Production actions.
|
|
52
|
+
|
|
53
|
+
Learning is optional and never blocks delivery.
|
|
54
|
+
|
|
55
|
+
## Your projects are yours
|
|
56
|
+
|
|
57
|
+
Each Builder owns their own project repositories and development credentials.
|
|
58
|
+
|
|
59
|
+
Project Forge authorization does not grant access to another developer's private projects. Builders do not need access to Project Forge's private platform implementation repositories.
|
|
60
|
+
|
|
61
|
+
Private platform components provide the engineering workflow, project-generation, deployment, and orchestration capabilities behind the public Project Forge experience. Builders interact with Project Forge through the public onboarding flow, their own generated project repositories, the public ChatGPT contract, and the published `@mriekki/project-forge` package.
|
|
62
|
+
|
|
63
|
+
## New Builder onboarding
|
|
64
|
+
|
|
65
|
+
Read the product overview and onboarding journey in [`WELCOME.md`](WELCOME.md).
|
|
66
|
+
|
|
67
|
+
An invited Builder normally does only this:
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
open personal invitation
|
|
71
|
+
→ install/approve Project Forge Builder
|
|
72
|
+
→ accept invitation
|
|
73
|
+
→ automatic readiness verification
|
|
74
|
+
→ configure one ChatGPT coding Project
|
|
75
|
+
→ New Project: <idea>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Project Forge Builder** is the GitHub App used for Project Forge authorization and project orchestration.
|
|
79
|
+
|
|
80
|
+
One-time ChatGPT setup is documented in [`chatgpt/SETUP.md`](chatgpt/SETUP.md).
|
|
81
|
+
|
|
82
|
+
## Working in a generated project
|
|
83
|
+
|
|
84
|
+
A generated project is self-contained for normal development. The normal workstation flow is:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
clone repository
|
|
88
|
+
→ open generated VS Code workspace
|
|
89
|
+
→ /setup
|
|
90
|
+
→ /progress or /next-step
|
|
91
|
+
→ /start-work <ID>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Project Forge supports independent workspace instances on multiple developer computers. Git/GitHub is the shared source boundary; local databases, credentials, SSH keys/trust, Docker state, and readiness stay workstation-local.
|
|
95
|
+
|
|
96
|
+
## Public ChatGPT contract
|
|
97
|
+
|
|
98
|
+
Project Forge's public ChatGPT bootstrap entrypoint is [`chatgpt/START_HERE.md`](chatgpt/START_HERE.md).
|
|
99
|
+
|
|
100
|
+
The stable descriptor at `chatgpt/current.json` resolves an immutable Project Forge contract snapshot for each conversation/session. New contract versions are published as new snapshot directories so an already-resolved session keeps a stable contract.
|
|
101
|
+
|
|
102
|
+
## Public engineering distribution
|
|
103
|
+
|
|
104
|
+
`@mriekki/project-forge` is the public distribution for Project Forge engineering assets used by generated projects.
|
|
105
|
+
|
|
106
|
+
Project Forge assembles that package from approved private platform components using exact pinned source commits and deterministic distribution descriptors. Published packages are self-contained; Builders do not need access to the private implementation repositories to install or update managed assets.
|
|
107
|
+
|
|
108
|
+
Install:
|
|
109
|
+
|
|
110
|
+
```powershell
|
|
111
|
+
npx @mriekki/project-forge install
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Update to the newest published package:
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
npx @mriekki/project-forge@latest update
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Inspect and verify:
|
|
121
|
+
|
|
122
|
+
```powershell
|
|
123
|
+
npx @mriekki/project-forge@latest status
|
|
124
|
+
npx @mriekki/project-forge@latest check
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Managed updates verify baselines and refuse unsafe drift or conflicts before modifying Project Forge-managed files.
|
|
128
|
+
|
|
129
|
+
## Maintainer release process
|
|
130
|
+
|
|
131
|
+
Project Forge maintainers use a gated release workflow that resolves accepted component commits, verifies the assembled package, creates the package pull request, verifies CI, and stops at the explicit publication gate.
|
|
132
|
+
|
|
133
|
+
Publication uses npm Trusted Publishing (OIDC), reconstructs the exact package from pinned sources, verifies registry identity and integrity, and smoke-tests the public package from a neutral directory.
|
|
134
|
+
|
|
135
|
+
See [`docs/RELEASE_PROCESS.md`](docs/RELEASE_PROCESS.md) for the technical release contract.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"package": "@mriekki/project-forge",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"defaultProfile": "greenfield-project",
|
|
6
|
+
"profiles": {
|
|
7
|
+
"greenfield-project": {
|
|
8
|
+
"components": [
|
|
9
|
+
"core",
|
|
10
|
+
"deployment"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"components": {
|
|
15
|
+
"core": {
|
|
16
|
+
"repository": "mriekki/project-forge-core",
|
|
17
|
+
"commit": "78065f0ab59506e8cc703f6bf7dfd31fc71f313f",
|
|
18
|
+
"version": "2.0.0",
|
|
19
|
+
"distribution": "greenfield-workspace",
|
|
20
|
+
"descriptor": "assets/core/distribution.json",
|
|
21
|
+
"sourceRoot": "assets/generated/core",
|
|
22
|
+
"canonicalDescriptor": "distributions/greenfield-workspace.json"
|
|
23
|
+
},
|
|
24
|
+
"deployment": {
|
|
25
|
+
"repository": "mriekki/project-forge-deployment-kit",
|
|
26
|
+
"commit": "54fcc256c525ea8762568043c3900f4d2d36c816",
|
|
27
|
+
"distribution": "greenfield-project",
|
|
28
|
+
"descriptor": "assets/deployment/distribution.json",
|
|
29
|
+
"sourceRoot": "assets/generated/deployment",
|
|
30
|
+
"canonicalDescriptor": "distributions/greenfield-project.json"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "greenfield-workspace",
|
|
3
|
+
"profileSource": "profiles/greenfield/project-forge-workspace.json",
|
|
4
|
+
"profileDestination": ".github/project-forge-workspace.json",
|
|
5
|
+
"mappings": [
|
|
6
|
+
{"source":"core/agents/reviewer.agent.md","destination":".github/agents/reviewer.agent.md"},
|
|
7
|
+
{"source":"core/agents/coach.agent.md","destination":".github/agents/coach.agent.md"},
|
|
8
|
+
{"source":"core/instructions/project-forge-workflow.instructions.md","destination":".github/instructions/project-forge-workflow.instructions.md"},
|
|
9
|
+
{"source":"core/instructions/project-forge-docs.instructions.md","destination":".github/instructions/project-forge-docs.instructions.md"},
|
|
10
|
+
{"source":"core/skills/define-feature/SKILL.md","destination":".github/skills/define-feature/SKILL.md"},
|
|
11
|
+
{"source":"core/skills/grill-me/SKILL.md","destination":".github/skills/grill-me/SKILL.md"},
|
|
12
|
+
{"source":"core/skills/grill-with-docs/SKILL.md","destination":".github/skills/grill-with-docs/SKILL.md"},
|
|
13
|
+
{"source":"core/skills/refine-requirements/SKILL.md","destination":".github/skills/refine-requirements/SKILL.md"},
|
|
14
|
+
{"source":"core/skills/start-work/SKILL.md","destination":".github/skills/start-work/SKILL.md"},
|
|
15
|
+
{"source":"core/skills/setup/SKILL.md","destination":".github/skills/setup/SKILL.md"},
|
|
16
|
+
{"source":"core/skills/progress/SKILL.md","destination":".github/skills/progress/SKILL.md"},
|
|
17
|
+
{"source":"core/skills/next-step/SKILL.md","destination":".github/skills/next-step/SKILL.md"},
|
|
18
|
+
{"source":"core/skills/deliver/SKILL.md","destination":".github/skills/deliver/SKILL.md"},
|
|
19
|
+
{"source":"core/skills/cleanup-branches/SKILL.md","destination":".github/skills/cleanup-branches/SKILL.md"},
|
|
20
|
+
{"source":"core/skills/pull-latest/SKILL.md","destination":".github/skills/pull-latest/SKILL.md"},
|
|
21
|
+
{"source":"core/skills/project-forge-update/SKILL.md","destination":".github/skills/project-forge-update/SKILL.md"},
|
|
22
|
+
{"source":"core/skills/core-sync/SKILL.md","destination":".github/skills/core-sync/SKILL.md"},
|
|
23
|
+
{"source":"core/skills/upstream-fix/SKILL.md","destination":".github/skills/upstream-fix/SKILL.md"},
|
|
24
|
+
{"source":"core/skills/wait-what/SKILL.md","destination":".github/skills/wait-what/SKILL.md"},
|
|
25
|
+
{"source":"core/skills/developer-env-mode/SKILL.md","destination":".github/skills/developer-env-mode/SKILL.md"},
|
|
26
|
+
{"source":"core/skills/deployment-readiness/SKILL.md","destination":".github/skills/deployment-readiness/SKILL.md"},
|
|
27
|
+
{"source":"core/skills/deploy/SKILL.md","destination":".github/skills/deploy/SKILL.md"},
|
|
28
|
+
{"source":"core/skills/tear-down/SKILL.md","destination":".github/skills/tear-down/SKILL.md"},
|
|
29
|
+
{"source":"core/skills/coach/SKILL.md","destination":".github/skills/coach/SKILL.md"},
|
|
30
|
+
{"source":"core/skills/db-lab/SKILL.md","destination":".github/skills/db-lab/SKILL.md"},
|
|
31
|
+
{"source":"core/skills/system-lab/SKILL.md","destination":".github/skills/system-lab/SKILL.md"},
|
|
32
|
+
{"source":"core/skills/docs/SKILL.md","destination":".github/skills/docs/SKILL.md"},
|
|
33
|
+
{"source":"core/skills/code-walkthrough/SKILL.md","destination":".github/skills/code-walkthrough/SKILL.md"},
|
|
34
|
+
{"source":"core/skills/learning-review/SKILL.md","destination":".github/skills/learning-review/SKILL.md"},
|
|
35
|
+
{"source":"core/process/WORK_ITEM_MODEL.md","destination":"docs/process/WORK_ITEM_MODEL.md"},
|
|
36
|
+
{"source":"core/process/PR_WORKFLOW.md","destination":"docs/process/PR_WORKFLOW.md"},
|
|
37
|
+
{"source":"core/process/DEPLOYMENT_ENABLEMENT.md","destination":"docs/process/DEPLOYMENT_ENABLEMENT.md"},
|
|
38
|
+
{"source":"core/process/HUMAN_GATES.md","destination":"docs/process/HUMAN_IN_LOOP_GATES.md"},
|
|
39
|
+
{"source":"core/process/GUIDED_NEXT_STEPS.md","destination":"docs/process/GUIDED_NEXT_STEPS.md"},
|
|
40
|
+
{"source":"core/process/INTERACTIVE_SESSION_GUIDE.md","destination":"docs/process/INTERACTIVE_SESSION_GUIDE.md"},
|
|
41
|
+
{"source":"core/process/COACHING_GUIDE.md","destination":"docs/process/COACHING_GUIDE.md"},
|
|
42
|
+
{"source":"core/process/DATABASE_LEARNING_WORKBENCH.md","destination":"docs/process/DATABASE_LEARNING_WORKBENCH.md"},
|
|
43
|
+
{"source":"core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md","destination":"docs/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md"},
|
|
44
|
+
{"source":"core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md","destination":"docs/process/PROJECT_DOCUMENTATION_FRAMEWORK.md"},
|
|
45
|
+
{"source":"core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md","destination":"docs/project-forge/PROJECT_FORGE_ENGINEERING_GUIDE.md"},
|
|
46
|
+
{"source":"core/process/SETUP_ACCEPTANCE_CHECKLIST.md","destination":"docs/process/SETUP_ACCEPTANCE_CHECKLIST.md"},
|
|
47
|
+
{"source":"core/templates/PULL_REQUEST_TEMPLATE.md","destination":".github/PULL_REQUEST_TEMPLATE.md"},
|
|
48
|
+
{"source":"core/templates/PRODUCT_BRIEF_TEMPLATE.md","destination":"docs/templates/PRODUCT_BRIEF_TEMPLATE.md"},
|
|
49
|
+
{"source":"core/templates/FEATURE_BRIEF_TEMPLATE.md","destination":"docs/templates/FEATURE_BRIEF_TEMPLATE.md"},
|
|
50
|
+
{"source":"core/templates/REQUIREMENTS_TEMPLATE.md","destination":"docs/templates/REQUIREMENTS_TEMPLATE.md"},
|
|
51
|
+
{"source":"core/templates/ADR_TEMPLATE.md","destination":"docs/templates/ADR_TEMPLATE.md"},
|
|
52
|
+
{"source":"core/learning/ENGINEERING_LEARNING_WORKBOOK.md","destination":"learning/ENGINEERING_LEARNING_WORKBOOK.md"},
|
|
53
|
+
{"source":"core/learning/LEARNING_MAP.md","destination":"learning/LEARNING_MAP.md"},
|
|
54
|
+
{"source":"core/learning/LEARNING_PROGRESS.md","destination":"learning/LEARNING_PROGRESS.md"},
|
|
55
|
+
{"source":"core/learning/CODING_DRILLS.md","destination":"learning/CODING_DRILLS.md"},
|
|
56
|
+
{"source":"core/learning/SQL_DRILLS.md","destination":"learning/SQL_DRILLS.md"},
|
|
57
|
+
{"source":"core/learning/SYSTEM_DESIGN_DRILLS.md","destination":"learning/SYSTEM_DESIGN_DRILLS.md"},
|
|
58
|
+
{"source":"core/learning/DIAGRAM_GUIDE.md","destination":"learning/DIAGRAM_GUIDE.md"},
|
|
59
|
+
{"source":"core/learning/RESOURCE_CATALOG.md","destination":"learning/RESOURCE_CATALOG.md"},
|
|
60
|
+
{"source":"tools/db_lab/sqlite_workbench.py","destination":"tools/project-forge-db-lab/sqlite-workbench.py"},
|
|
61
|
+
{"source":"tools/system_lab/system_workbench.py","destination":"tools/project-forge-system-lab/system-workbench.py"},
|
|
62
|
+
{"source":"tools/docs_site/docs_site.py","destination":"tools/project-forge-docs/docs-site.py"},
|
|
63
|
+
{"source":"tools/package/check_baseline.py","destination":"tools/project-forge-core/check-core-baseline.py"},
|
|
64
|
+
{"source":"tools/package/check_upstream.py","destination":"tools/project-forge-core/check-core-upstream.py"}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "greenfield-project",
|
|
3
|
+
"schemaVersion": 1,
|
|
4
|
+
"description": "Reusable deployment tooling for generated Project Forge projects.",
|
|
5
|
+
"mappings": [
|
|
6
|
+
{"source": "distribution/project-forge-deploy.py", "destination": "tools/project-forge-deployment/project-forge-deploy.py"},
|
|
7
|
+
{"source": "src/project_forge_deployment/__init__.py", "destination": "tools/project-forge-deployment/project_forge_deployment/__init__.py"},
|
|
8
|
+
{"source": "src/project_forge_deployment/__main__.py", "destination": "tools/project-forge-deployment/project_forge_deployment/__main__.py"},
|
|
9
|
+
{"source": "src/project_forge_deployment/app_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/app_cli.py"},
|
|
10
|
+
{"source": "src/project_forge_deployment/app_runtime.py", "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime.py"},
|
|
11
|
+
{"source": "src/project_forge_deployment/app_runtime_remote.py", "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime_remote.py"},
|
|
12
|
+
{"source": "src/project_forge_deployment/app_runtime_workstation.py", "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime_workstation.py"},
|
|
13
|
+
{"source": "src/project_forge_deployment/box_platform.py", "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform.py"},
|
|
14
|
+
{"source": "src/project_forge_deployment/box_platform_assets.py", "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform_assets.py"},
|
|
15
|
+
{"source": "src/project_forge_deployment/box_platform_remote.py", "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform_remote.py"},
|
|
16
|
+
{"source": "src/project_forge_deployment/cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/cli.py"},
|
|
17
|
+
{"source": "src/project_forge_deployment/doctor.py", "destination": "tools/project-forge-deployment/project_forge_deployment/doctor.py"},
|
|
18
|
+
{"source": "src/project_forge_deployment/entrypoint.py", "destination": "tools/project-forge-deployment/project_forge_deployment/entrypoint.py"},
|
|
19
|
+
{"source": "src/project_forge_deployment/environment_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/environment_cli.py"},
|
|
20
|
+
{"source": "src/project_forge_deployment/environment_probe.py", "destination": "tools/project-forge-deployment/project_forge_deployment/environment_probe.py"},
|
|
21
|
+
{"source": "src/project_forge_deployment/errors.py", "destination": "tools/project-forge-deployment/project_forge_deployment/errors.py"},
|
|
22
|
+
{"source": "src/project_forge_deployment/home_lab.py", "destination": "tools/project-forge-deployment/project_forge_deployment/home_lab.py"},
|
|
23
|
+
{"source": "src/project_forge_deployment/image_transfer.py", "destination": "tools/project-forge-deployment/project_forge_deployment/image_transfer.py"},
|
|
24
|
+
{"source": "src/project_forge_deployment/keys.py", "destination": "tools/project-forge-deployment/project_forge_deployment/keys.py"},
|
|
25
|
+
{"source": "src/project_forge_deployment/local_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/local_cli.py"},
|
|
26
|
+
{"source": "src/project_forge_deployment/local_runtime.py", "destination": "tools/project-forge-deployment/project_forge_deployment/local_runtime.py"},
|
|
27
|
+
{"source": "src/project_forge_deployment/local_spec.py", "destination": "tools/project-forge-deployment/project_forge_deployment/local_spec.py"},
|
|
28
|
+
{"source": "src/project_forge_deployment/local_sqlite.py", "destination": "tools/project-forge-deployment/project_forge_deployment/local_sqlite.py"},
|
|
29
|
+
{"source": "src/project_forge_deployment/portable_profile.py", "destination": "tools/project-forge-deployment/project_forge_deployment/portable_profile.py"},
|
|
30
|
+
{"source": "src/project_forge_deployment/profile_migration.py", "destination": "tools/project-forge-deployment/project_forge_deployment/profile_migration.py"},
|
|
31
|
+
{"source": "src/project_forge_deployment/profile_repository.py", "destination": "tools/project-forge-deployment/project_forge_deployment/profile_repository.py"},
|
|
32
|
+
{"source": "src/project_forge_deployment/profiles.py", "destination": "tools/project-forge-deployment/project_forge_deployment/profiles.py"},
|
|
33
|
+
{"source": "src/project_forge_deployment/registry_access.py", "destination": "tools/project-forge-deployment/project_forge_deployment/registry_access.py"},
|
|
34
|
+
{"source": "src/project_forge_deployment/registry_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/registry_cli.py"},
|
|
35
|
+
{"source": "src/project_forge_deployment/route_registry.py", "destination": "tools/project-forge-deployment/project_forge_deployment/route_registry.py"},
|
|
36
|
+
{"source": "src/project_forge_deployment/route_registry_remote.py", "destination": "tools/project-forge-deployment/project_forge_deployment/route_registry_remote.py"},
|
|
37
|
+
{"source": "src/project_forge_deployment/security.py", "destination": "tools/project-forge-deployment/project_forge_deployment/security.py"},
|
|
38
|
+
{"source": "src/project_forge_deployment/sqlite_adapter.py", "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_adapter.py"},
|
|
39
|
+
{"source": "src/project_forge_deployment/sqlite_adapter_remote.py", "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_adapter_remote.py"},
|
|
40
|
+
{"source": "src/project_forge_deployment/sqlite_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_cli.py"},
|
|
41
|
+
{"source": "src/project_forge_deployment/sqlite_import_recovery.py", "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_import_recovery.py"},
|
|
42
|
+
{"source": "src/project_forge_deployment/ssh.py", "destination": "tools/project-forge-deployment/project_forge_deployment/ssh.py"},
|
|
43
|
+
{"source": "src/project_forge_deployment/teardown.py", "destination": "tools/project-forge-deployment/project_forge_deployment/teardown.py"},
|
|
44
|
+
{"source": "src/project_forge_deployment/teardown_cli.py", "destination": "tools/project-forge-deployment/project_forge_deployment/teardown_cli.py"},
|
|
45
|
+
{"source": "src/project_forge_deployment/teardown_remote.py", "destination": "tools/project-forge-deployment/project_forge_deployment/teardown_remote.py"},
|
|
46
|
+
{"source": "src/project_forge_deployment/trust.py", "destination": "tools/project-forge-deployment/project_forge_deployment/trust.py"},
|
|
47
|
+
{"source": "docs/DEVELOPER_ENVIRONMENTS.md", "destination": "docs/project-forge/DEVELOPER_ENVIRONMENTS.md"},
|
|
48
|
+
{"source": "docs/WORKSPACE_INSTANCES.md", "destination": "docs/project-forge/WORKSPACE_INSTANCES.md"},
|
|
49
|
+
{"source": "docs/ENVIRONMENT_PROOF.md", "destination": "docs/project-forge/ENVIRONMENT_PROOF.md"},
|
|
50
|
+
{"source": "docs/images/developer-environment-journey.svg", "destination": "docs/project-forge/images/developer-environment-journey.svg"},
|
|
51
|
+
{"source": "docs/images/personal-environment-architecture.svg", "destination": "docs/project-forge/images/personal-environment-architecture.svg"},
|
|
52
|
+
{"source": "docs/images/poc-environment-model.svg", "destination": "docs/project-forge/images/poc-environment-model.svg"}
|
|
53
|
+
]
|
|
54
|
+
}
|