@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,557 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "package": "@mriekki/project-forge",
4
+ "version": "2.0.0",
5
+ "components": {
6
+ "core": {
7
+ "repository": "mriekki/project-forge-core",
8
+ "commit": "80ff581ec89533f5a22bd05c65c7b67bb314c715",
9
+ "version": "3.0.0",
10
+ "distribution": "greenfield-workspace",
11
+ "files": [
12
+ {
13
+ "source": "profiles/greenfield/project-forge-workspace.json",
14
+ "destination": ".github/project-forge-workspace.json",
15
+ "sha256": "c827fabe0ca3130edbdd5fb3f62d8a05c921d5834f058bcb4ad641e400565b92"
16
+ },
17
+ {
18
+ "source": "core/agents/reviewer.agent.md",
19
+ "destination": ".github/agents/reviewer.agent.md",
20
+ "sha256": "ad00d8d0fad932687a8c7372e70993ba0f40f3f763a8b41fd9b6ee03a9a70df0"
21
+ },
22
+ {
23
+ "source": "core/agents/coach.agent.md",
24
+ "destination": ".github/agents/coach.agent.md",
25
+ "sha256": "f2da3ed8ba1890f0886615c0d7a66411265524dcaf04648ef10dfd195dde522e"
26
+ },
27
+ {
28
+ "source": "core/instructions/project-forge-workflow.instructions.md",
29
+ "destination": ".github/instructions/project-forge-workflow.instructions.md",
30
+ "sha256": "1cd1677a5692d00c252a3b38a07e7ae1b70edc0bd23436b8c2c424efb62217e1"
31
+ },
32
+ {
33
+ "source": "core/instructions/project-forge-docs.instructions.md",
34
+ "destination": ".github/instructions/project-forge-docs.instructions.md",
35
+ "sha256": "8ea123843f3e565a58e481dd5dc7182d84569bcd22d4b169c464b792bbe76275"
36
+ },
37
+ {
38
+ "source": "core/skills/define-feature/SKILL.md",
39
+ "destination": ".github/skills/define-feature/SKILL.md",
40
+ "sha256": "1efa4c18d41deb4b26f132d440d881310864f8b0d37423d6b23431efeedb2e78"
41
+ },
42
+ {
43
+ "source": "core/skills/grill-me/SKILL.md",
44
+ "destination": ".github/skills/grill-me/SKILL.md",
45
+ "sha256": "d3c9885e1b32feeb940403a4c890f7ac552b7e9648a2589adb2cfabe33e19182"
46
+ },
47
+ {
48
+ "source": "core/skills/grill-with-docs/SKILL.md",
49
+ "destination": ".github/skills/grill-with-docs/SKILL.md",
50
+ "sha256": "c2c24089f5f5437de1702777dc60e794e26a1a0919eba7e39c32d137fdf23471"
51
+ },
52
+ {
53
+ "source": "core/skills/refine-requirements/SKILL.md",
54
+ "destination": ".github/skills/refine-requirements/SKILL.md",
55
+ "sha256": "70ee4dcf4fd3568c835428dae4b2a830604793d3d486e1c903c26e100fab6e64"
56
+ },
57
+ {
58
+ "source": "core/skills/start-work/SKILL.md",
59
+ "destination": ".github/skills/start-work/SKILL.md",
60
+ "sha256": "edc58cdd20c3401ee20a725e18063e604830396f6b88f9bf2555b3f043362c7f"
61
+ },
62
+ {
63
+ "source": "core/skills/setup/SKILL.md",
64
+ "destination": ".github/skills/setup/SKILL.md",
65
+ "sha256": "e700e914afc291ffb1153bb796a8ef150c624c5b54032e29d3abda221260285f"
66
+ },
67
+ {
68
+ "source": "core/skills/progress/SKILL.md",
69
+ "destination": ".github/skills/progress/SKILL.md",
70
+ "sha256": "7c9524859f4683feee2e8fac33ef3aa24f2b7b38099a37c3b65eb746aaba7391"
71
+ },
72
+ {
73
+ "source": "core/skills/next-step/SKILL.md",
74
+ "destination": ".github/skills/next-step/SKILL.md",
75
+ "sha256": "68c05ad11f9c9fad7b0bc122995ca259fd54c523cb1fa5ac0e105ae523ef9d86"
76
+ },
77
+ {
78
+ "source": "core/skills/deliver/SKILL.md",
79
+ "destination": ".github/skills/deliver/SKILL.md",
80
+ "sha256": "ffe9dbc862f83828b3acd8f8bf49ea912b7998dc0c844655bf83dfafcf7f4434"
81
+ },
82
+ {
83
+ "source": "core/skills/cleanup-branches/SKILL.md",
84
+ "destination": ".github/skills/cleanup-branches/SKILL.md",
85
+ "sha256": "99b082f5a6eb183161bc6dc2f40e383e744a4443e6e3c56615ca9d010845eaf8"
86
+ },
87
+ {
88
+ "source": "core/skills/pull-latest/SKILL.md",
89
+ "destination": ".github/skills/pull-latest/SKILL.md",
90
+ "sha256": "ca7dc6669c6eb81fd3a7961dc123cc9822fcccb7da3e86e3391f5f92b15fe093"
91
+ },
92
+ {
93
+ "source": "core/skills/project-forge-update/SKILL.md",
94
+ "destination": ".github/skills/project-forge-update/SKILL.md",
95
+ "sha256": "70170e57a77f143c719a8c349161c580e339397e782d28133d9f3734f6625847"
96
+ },
97
+ {
98
+ "source": "core/skills/core-sync/SKILL.md",
99
+ "destination": ".github/skills/core-sync/SKILL.md",
100
+ "sha256": "97accdf58527f51c0e5f5b8e6a75468d9d687bc2c07dcd9ab6ff1bef9f103c58"
101
+ },
102
+ {
103
+ "source": "core/skills/upstream-fix/SKILL.md",
104
+ "destination": ".github/skills/upstream-fix/SKILL.md",
105
+ "sha256": "72466740638688f99b0a1dd6c56ef7bc90ac218b27642d0af8b3237074b97fec"
106
+ },
107
+ {
108
+ "source": "core/skills/wait-what/SKILL.md",
109
+ "destination": ".github/skills/wait-what/SKILL.md",
110
+ "sha256": "dba3aa4f042b813de960b60c47ae4c8a3dccb72fdc89c597fe04b720b27f5316"
111
+ },
112
+ {
113
+ "source": "core/skills/developer-env-mode/SKILL.md",
114
+ "destination": ".github/skills/developer-env-mode/SKILL.md",
115
+ "sha256": "2e45e00e30f17edda5b259bd24852233d2bcace46f7e095d3b28faf9ce35cedb"
116
+ },
117
+ {
118
+ "source": "core/skills/deployment-readiness/SKILL.md",
119
+ "destination": ".github/skills/deployment-readiness/SKILL.md",
120
+ "sha256": "846ddacc3f9acaecfce3ba62a6c1eb01149f1afd1013e307a81dc65e1351cbc4"
121
+ },
122
+ {
123
+ "source": "core/skills/deploy/SKILL.md",
124
+ "destination": ".github/skills/deploy/SKILL.md",
125
+ "sha256": "7bacd366014bf8c890328ec2b78412a39a0abff2f6b44dd53ca129102a7a30c8"
126
+ },
127
+ {
128
+ "source": "core/skills/tear-down/SKILL.md",
129
+ "destination": ".github/skills/tear-down/SKILL.md",
130
+ "sha256": "5fcda93f4a0d1eca76a8a753f340fcb1799bddfe515324493e7d910f1c2253a3"
131
+ },
132
+ {
133
+ "source": "core/skills/coach/SKILL.md",
134
+ "destination": ".github/skills/coach/SKILL.md",
135
+ "sha256": "68c28d5b9a55eedbf4261d12f1cd06f86b905e973b7ed7973fa4c49cf5338091"
136
+ },
137
+ {
138
+ "source": "core/skills/db-lab/SKILL.md",
139
+ "destination": ".github/skills/db-lab/SKILL.md",
140
+ "sha256": "340af48955f6413df249fb3123fb3006d9a0ed2e0a7b3cc0ab1a8b767b89b545"
141
+ },
142
+ {
143
+ "source": "core/skills/system-lab/SKILL.md",
144
+ "destination": ".github/skills/system-lab/SKILL.md",
145
+ "sha256": "a2f408105eec47a547c64315a22f21bd6d4a86457667fb5f9a2f91a4fa2b4489"
146
+ },
147
+ {
148
+ "source": "core/skills/docs/SKILL.md",
149
+ "destination": ".github/skills/docs/SKILL.md",
150
+ "sha256": "25016d90af1a6f94b72f46b41dbb59bb7179d7c4c01348ea897efae5b571a85c"
151
+ },
152
+ {
153
+ "source": "core/skills/code-walkthrough/SKILL.md",
154
+ "destination": ".github/skills/code-walkthrough/SKILL.md",
155
+ "sha256": "0391f98dac6dfd41882c330425567ae595fde01fce63de521563c95647d2b889"
156
+ },
157
+ {
158
+ "source": "core/skills/learning-review/SKILL.md",
159
+ "destination": ".github/skills/learning-review/SKILL.md",
160
+ "sha256": "b77ccbbd85fbe6c8d77d42bfea4b0d474e320c182f7d1f72010ff2301d869e66"
161
+ },
162
+ {
163
+ "source": "core/process/WORK_ITEM_MODEL.md",
164
+ "destination": "docs/process/WORK_ITEM_MODEL.md",
165
+ "sha256": "20a8dcc6ead4fe9b491917766ae402265bc84daa5ba1445d3628900044e9a1ab"
166
+ },
167
+ {
168
+ "source": "core/process/PR_WORKFLOW.md",
169
+ "destination": "docs/process/PR_WORKFLOW.md",
170
+ "sha256": "a98338d7883b25136d8b5c7768c796ed88e19686a8972109cd284ed7d10a03f2"
171
+ },
172
+ {
173
+ "source": "core/process/DEPLOYMENT_ENABLEMENT.md",
174
+ "destination": "docs/process/DEPLOYMENT_ENABLEMENT.md",
175
+ "sha256": "987f6e68a2ab58d23388127fae2318b385ef86de389fc616c1e40b48c0ff3b07"
176
+ },
177
+ {
178
+ "source": "core/process/HUMAN_GATES.md",
179
+ "destination": "docs/process/HUMAN_IN_LOOP_GATES.md",
180
+ "sha256": "ac6ab2343728679d2ae50e9872b4b2f52a49605a2ea7ed17d806a839da4376c1"
181
+ },
182
+ {
183
+ "source": "core/process/GUIDED_NEXT_STEPS.md",
184
+ "destination": "docs/process/GUIDED_NEXT_STEPS.md",
185
+ "sha256": "3a6ec8523fdb1c4f4e357b13fc712bd7f732ea9cd25754ae4f8c84fb438f2452"
186
+ },
187
+ {
188
+ "source": "core/process/INTERACTIVE_SESSION_GUIDE.md",
189
+ "destination": "docs/process/INTERACTIVE_SESSION_GUIDE.md",
190
+ "sha256": "15d47509919e83786ada6df1e5482bd9f73ca4955cda66287f6d6b1f9722c853"
191
+ },
192
+ {
193
+ "source": "core/process/COACHING_GUIDE.md",
194
+ "destination": "docs/process/COACHING_GUIDE.md",
195
+ "sha256": "cf141525e71467b189b18283ba8616859c665bba632f92de80e94f2de2e8f7b4"
196
+ },
197
+ {
198
+ "source": "core/process/DATABASE_LEARNING_WORKBENCH.md",
199
+ "destination": "docs/process/DATABASE_LEARNING_WORKBENCH.md",
200
+ "sha256": "b00a8b2a66b72c8d085acb8ff0517f3331dff2f4dad14f879a2409d0f1e4f46c"
201
+ },
202
+ {
203
+ "source": "core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md",
204
+ "destination": "docs/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md",
205
+ "sha256": "a4ce68e5180ee86507b0a5cf5351ac68111efe60f320c17ef570470ee59a6340"
206
+ },
207
+ {
208
+ "source": "core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md",
209
+ "destination": "docs/process/PROJECT_DOCUMENTATION_FRAMEWORK.md",
210
+ "sha256": "3e77e85e7c8d466f8f3fbe588569cb6f0d9e1ca52e81f1803fae4481c8ea93d3"
211
+ },
212
+ {
213
+ "source": "core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md",
214
+ "destination": "docs/project-forge/PROJECT_FORGE_ENGINEERING_GUIDE.md",
215
+ "sha256": "431eb3af7593f5f79f74ffdd306f56b5249a632c480fd6c3e5f0223161d376d9"
216
+ },
217
+ {
218
+ "source": "core/process/SETUP_ACCEPTANCE_CHECKLIST.md",
219
+ "destination": "docs/process/SETUP_ACCEPTANCE_CHECKLIST.md",
220
+ "sha256": "b5f8b39de15b464a1c80b26a6c150c6d2a363751abc05d33df4cebcad6b49d9b"
221
+ },
222
+ {
223
+ "source": "core/templates/PULL_REQUEST_TEMPLATE.md",
224
+ "destination": ".github/PULL_REQUEST_TEMPLATE.md",
225
+ "sha256": "e108fcde3eaae4f4f89b3199844a894c60164d43af42586382e2e9621cbd7505"
226
+ },
227
+ {
228
+ "source": "core/templates/PRODUCT_BRIEF_TEMPLATE.md",
229
+ "destination": "docs/templates/PRODUCT_BRIEF_TEMPLATE.md",
230
+ "sha256": "fcab7508dd5d53ea9dac3a35b7c31b4adac8c1c37b5df2224f2fb47c52432f58"
231
+ },
232
+ {
233
+ "source": "core/templates/FEATURE_BRIEF_TEMPLATE.md",
234
+ "destination": "docs/templates/FEATURE_BRIEF_TEMPLATE.md",
235
+ "sha256": "d09737d7e67b7bad50a779ce0a6b3a95d17ba9de7a2e60423763ea3d934ce768"
236
+ },
237
+ {
238
+ "source": "core/templates/REQUIREMENTS_TEMPLATE.md",
239
+ "destination": "docs/templates/REQUIREMENTS_TEMPLATE.md",
240
+ "sha256": "ec85cc723071edb01f09acca41e20e9833afe21d06d103b39dfcdbfb59a31aed"
241
+ },
242
+ {
243
+ "source": "core/templates/ADR_TEMPLATE.md",
244
+ "destination": "docs/templates/ADR_TEMPLATE.md",
245
+ "sha256": "f802ae066438642de9a4948980a4ab48c4cb68309fa5de16d48b08415a1a31fb"
246
+ },
247
+ {
248
+ "source": "core/learning/ENGINEERING_LEARNING_WORKBOOK.md",
249
+ "destination": "learning/ENGINEERING_LEARNING_WORKBOOK.md",
250
+ "sha256": "e065342b6a5fb8a5f39ec616c1f59b7417cf3cba4238d01b0fee6d23ba881af6"
251
+ },
252
+ {
253
+ "source": "core/learning/LEARNING_MAP.md",
254
+ "destination": "learning/LEARNING_MAP.md",
255
+ "sha256": "c1e3b565b57fa0cced6a0a1abe66cbbe67c7cd4960ff9c0307564cf1e2c76470"
256
+ },
257
+ {
258
+ "source": "core/learning/LEARNING_PROGRESS.md",
259
+ "destination": "learning/LEARNING_PROGRESS.md",
260
+ "sha256": "50a19d3d3c7da4c2082ab7f5832c1ed5f90b54495db6c4aced3cb3a07ad78f89"
261
+ },
262
+ {
263
+ "source": "core/learning/CODING_DRILLS.md",
264
+ "destination": "learning/CODING_DRILLS.md",
265
+ "sha256": "cbdb054ea5571b1c79f6dcf104bffb1b830ac8b99f04eb77dcede4b00d1f1234"
266
+ },
267
+ {
268
+ "source": "core/learning/SQL_DRILLS.md",
269
+ "destination": "learning/SQL_DRILLS.md",
270
+ "sha256": "696b9c97d3c1bd7adc7be1a43dcd655056bbf55ab58bc7741c59225d52f8c239"
271
+ },
272
+ {
273
+ "source": "core/learning/SYSTEM_DESIGN_DRILLS.md",
274
+ "destination": "learning/SYSTEM_DESIGN_DRILLS.md",
275
+ "sha256": "1fbcd5b0cebfb1fa0ba3051cb019ef110790190b06e034075a37109711963154"
276
+ },
277
+ {
278
+ "source": "core/learning/DIAGRAM_GUIDE.md",
279
+ "destination": "learning/DIAGRAM_GUIDE.md",
280
+ "sha256": "a2c9a3475dca76f2192b0ad2250ae20731c6ab213204b364e2305e37bf867e84"
281
+ },
282
+ {
283
+ "source": "core/learning/RESOURCE_CATALOG.md",
284
+ "destination": "learning/RESOURCE_CATALOG.md",
285
+ "sha256": "88fc894dd51da7280aabd3df439bcbda337f437ece43640d86dfc0842dd0f91e"
286
+ },
287
+ {
288
+ "source": "tools/db_lab/sqlite_workbench.py",
289
+ "destination": "tools/project-forge-db-lab/sqlite-workbench.py",
290
+ "sha256": "323a4fe977cacf658b1ec331c44dcf554f262ffbfe579fedb6dae6b3fbe1fe20"
291
+ },
292
+ {
293
+ "source": "tools/system_lab/system_workbench.py",
294
+ "destination": "tools/project-forge-system-lab/system-workbench.py",
295
+ "sha256": "3fc6c6d575ad53aa09d9dd68f020b9d9937da56a00ac57d84cde977c37aa88d9"
296
+ },
297
+ {
298
+ "source": "tools/docs_site/docs_site.py",
299
+ "destination": "tools/project-forge-docs/docs-site.py",
300
+ "sha256": "8b0fe9a63a84a09ceeb71db0265186e427e92c8ce61e925b98f3be66682078ec"
301
+ },
302
+ {
303
+ "source": "tools/package/check_baseline.py",
304
+ "destination": "tools/project-forge-core/check-core-baseline.py",
305
+ "sha256": "fdd8c85a29e7549cc469e50f592a006cef45c7b92cc19b35e9c7f1ab2b351365"
306
+ },
307
+ {
308
+ "source": "tools/package/check_upstream.py",
309
+ "destination": "tools/project-forge-core/check-core-upstream.py",
310
+ "sha256": "8c23422f0a72b3e8ec6021791bb46d484ddb5f014ba9f81eccb004b0605d931a"
311
+ }
312
+ ]
313
+ },
314
+ "deployment": {
315
+ "repository": "mriekki/project-forge-deployment-kit",
316
+ "commit": "54fcc256c525ea8762568043c3900f4d2d36c816",
317
+ "distribution": "greenfield-project",
318
+ "files": [
319
+ {
320
+ "source": "distribution/project-forge-deploy.py",
321
+ "destination": "tools/project-forge-deployment/project-forge-deploy.py",
322
+ "sha256": "b1ef86051ca0afafa8c763323950749322d4cc4a8d31e7db06d3fa6918312ea8"
323
+ },
324
+ {
325
+ "source": "src/project_forge_deployment/__init__.py",
326
+ "destination": "tools/project-forge-deployment/project_forge_deployment/__init__.py",
327
+ "sha256": "abcd28e99d48cdbd0890f1f3c4c7af64df56e0e389f0b805a45cac678fc9f98a"
328
+ },
329
+ {
330
+ "source": "src/project_forge_deployment/__main__.py",
331
+ "destination": "tools/project-forge-deployment/project_forge_deployment/__main__.py",
332
+ "sha256": "8742c1b766812edb07174a724d676ffeff58b71b3c192d35102a3e652e962946"
333
+ },
334
+ {
335
+ "source": "src/project_forge_deployment/app_cli.py",
336
+ "destination": "tools/project-forge-deployment/project_forge_deployment/app_cli.py",
337
+ "sha256": "405c5b4ceb08885b3f789dad5af5bacc5ccd6913b73a6304f562229f29196338"
338
+ },
339
+ {
340
+ "source": "src/project_forge_deployment/app_runtime.py",
341
+ "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime.py",
342
+ "sha256": "5f7c6fdd2e84d1f239ceae605018b3c7b8a911aac442241b000333ffadf1fdeb"
343
+ },
344
+ {
345
+ "source": "src/project_forge_deployment/app_runtime_remote.py",
346
+ "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime_remote.py",
347
+ "sha256": "f86defc9a0841deee40198c7acc3b25a093e514000f0bd08030cbb253f3fa6ee"
348
+ },
349
+ {
350
+ "source": "src/project_forge_deployment/app_runtime_workstation.py",
351
+ "destination": "tools/project-forge-deployment/project_forge_deployment/app_runtime_workstation.py",
352
+ "sha256": "a176074fc7948b802f22adb03730d53b12aac520ba476604a2a9c1e8e29a52b4"
353
+ },
354
+ {
355
+ "source": "src/project_forge_deployment/box_platform.py",
356
+ "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform.py",
357
+ "sha256": "163c022bbd8ecccadebbebdc8cef8e272fc95dd0dc3cdb35d4e6e10013c91040"
358
+ },
359
+ {
360
+ "source": "src/project_forge_deployment/box_platform_assets.py",
361
+ "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform_assets.py",
362
+ "sha256": "84ef997cb81ea5d726d095aa79e513ebc90a20a1a29d993021d4498b4905c6a3"
363
+ },
364
+ {
365
+ "source": "src/project_forge_deployment/box_platform_remote.py",
366
+ "destination": "tools/project-forge-deployment/project_forge_deployment/box_platform_remote.py",
367
+ "sha256": "65de94ac4b6e980d83ce99ea55b9555aa96959c11808cce8c6ed537b27c15533"
368
+ },
369
+ {
370
+ "source": "src/project_forge_deployment/cli.py",
371
+ "destination": "tools/project-forge-deployment/project_forge_deployment/cli.py",
372
+ "sha256": "594915682f6b4e60bc6b63a43c5847d557f1fbfd3c22a2623e5bb572b6ab4dda"
373
+ },
374
+ {
375
+ "source": "src/project_forge_deployment/doctor.py",
376
+ "destination": "tools/project-forge-deployment/project_forge_deployment/doctor.py",
377
+ "sha256": "139914e437832fd8c5b8d2d8d6fc0ef8aa004862fde45989547e572c461f299d"
378
+ },
379
+ {
380
+ "source": "src/project_forge_deployment/entrypoint.py",
381
+ "destination": "tools/project-forge-deployment/project_forge_deployment/entrypoint.py",
382
+ "sha256": "8f27177c65121a1e83b6a534ac18fc6474e138e0953caf2204ede95eb724cba9"
383
+ },
384
+ {
385
+ "source": "src/project_forge_deployment/environment_cli.py",
386
+ "destination": "tools/project-forge-deployment/project_forge_deployment/environment_cli.py",
387
+ "sha256": "ccb38228bd8bf975f9ca9c9298b172b23bec4af7192da0c1cf3aa39bde4dce2d"
388
+ },
389
+ {
390
+ "source": "src/project_forge_deployment/environment_probe.py",
391
+ "destination": "tools/project-forge-deployment/project_forge_deployment/environment_probe.py",
392
+ "sha256": "6b0b9be56cf7ab4e7683755bc990c7c24a66951a3d9179862694ee2ff74e67ae"
393
+ },
394
+ {
395
+ "source": "src/project_forge_deployment/errors.py",
396
+ "destination": "tools/project-forge-deployment/project_forge_deployment/errors.py",
397
+ "sha256": "0bc20b1b739f999960422b7bd05249f4179f3612910ecbb6cf2805b5f4babd61"
398
+ },
399
+ {
400
+ "source": "src/project_forge_deployment/home_lab.py",
401
+ "destination": "tools/project-forge-deployment/project_forge_deployment/home_lab.py",
402
+ "sha256": "071391b687aac7e4bade0a27bf7d47257935a21c8f9151138fe74185f6c54cfb"
403
+ },
404
+ {
405
+ "source": "src/project_forge_deployment/image_transfer.py",
406
+ "destination": "tools/project-forge-deployment/project_forge_deployment/image_transfer.py",
407
+ "sha256": "de8666d8687e1544603fa259c6b302f2f29ab699e6d01b8795b9fce28821c7ed"
408
+ },
409
+ {
410
+ "source": "src/project_forge_deployment/keys.py",
411
+ "destination": "tools/project-forge-deployment/project_forge_deployment/keys.py",
412
+ "sha256": "619da5559d9e5bac2f31112c4eb90af391735ff0b0a0c29ebec7d2fc6917a310"
413
+ },
414
+ {
415
+ "source": "src/project_forge_deployment/local_cli.py",
416
+ "destination": "tools/project-forge-deployment/project_forge_deployment/local_cli.py",
417
+ "sha256": "f44d4900852354ee38703d35025a3efefd32686f2158659dcb62a7c2142400e0"
418
+ },
419
+ {
420
+ "source": "src/project_forge_deployment/local_runtime.py",
421
+ "destination": "tools/project-forge-deployment/project_forge_deployment/local_runtime.py",
422
+ "sha256": "b83c9eeef0e53088bf9617a237f5ff864903b4f9e83797d34e9f2b8763b36e8e"
423
+ },
424
+ {
425
+ "source": "src/project_forge_deployment/local_spec.py",
426
+ "destination": "tools/project-forge-deployment/project_forge_deployment/local_spec.py",
427
+ "sha256": "372b8c041edd9d3a1005861d85bb3a6bad38064b0be081a470460ad2dc62be4d"
428
+ },
429
+ {
430
+ "source": "src/project_forge_deployment/local_sqlite.py",
431
+ "destination": "tools/project-forge-deployment/project_forge_deployment/local_sqlite.py",
432
+ "sha256": "767c91f2af1f0df6f88b81a867826e4beaa1871865a97a9002a6b3fc53c781c9"
433
+ },
434
+ {
435
+ "source": "src/project_forge_deployment/portable_profile.py",
436
+ "destination": "tools/project-forge-deployment/project_forge_deployment/portable_profile.py",
437
+ "sha256": "604406f9eac914f8a7532593a51be304b9a6f09501cde11a9ba5b8d8519ef381"
438
+ },
439
+ {
440
+ "source": "src/project_forge_deployment/profile_migration.py",
441
+ "destination": "tools/project-forge-deployment/project_forge_deployment/profile_migration.py",
442
+ "sha256": "02e63ec3729d17c02fe654c8fedaa83f71b831d5d2435ec25d0aeaa95e2cc736"
443
+ },
444
+ {
445
+ "source": "src/project_forge_deployment/profile_repository.py",
446
+ "destination": "tools/project-forge-deployment/project_forge_deployment/profile_repository.py",
447
+ "sha256": "8891e17c1d149d29d4b8edeecd8294649eeab8a022af83d4a9e8a08afa86d4c4"
448
+ },
449
+ {
450
+ "source": "src/project_forge_deployment/profiles.py",
451
+ "destination": "tools/project-forge-deployment/project_forge_deployment/profiles.py",
452
+ "sha256": "c8fb1c378af9d39d28f46b300064bec967e2a6f7a13e22d089fc00413c42fd9d"
453
+ },
454
+ {
455
+ "source": "src/project_forge_deployment/registry_access.py",
456
+ "destination": "tools/project-forge-deployment/project_forge_deployment/registry_access.py",
457
+ "sha256": "5815a1921ecf37dc395f9c68b1ebda2b17dd6a44620b2356d1adff5df44c4382"
458
+ },
459
+ {
460
+ "source": "src/project_forge_deployment/registry_cli.py",
461
+ "destination": "tools/project-forge-deployment/project_forge_deployment/registry_cli.py",
462
+ "sha256": "1936156eb3b6103895795cde3b5f520491e407bf35f311be883a54fbfff635fc"
463
+ },
464
+ {
465
+ "source": "src/project_forge_deployment/route_registry.py",
466
+ "destination": "tools/project-forge-deployment/project_forge_deployment/route_registry.py",
467
+ "sha256": "8c19da6790fac66d0cb8fe099fb09c026966a6e5952df58bd936ce03a72f1928"
468
+ },
469
+ {
470
+ "source": "src/project_forge_deployment/route_registry_remote.py",
471
+ "destination": "tools/project-forge-deployment/project_forge_deployment/route_registry_remote.py",
472
+ "sha256": "c8f397a09ff9efc904230eeec68aa85bab9c21529e44dd925e5db0f02f406b6f"
473
+ },
474
+ {
475
+ "source": "src/project_forge_deployment/security.py",
476
+ "destination": "tools/project-forge-deployment/project_forge_deployment/security.py",
477
+ "sha256": "f0946186e384794c81a78fbf50b6afdbbd79a0b22216034778fbb24d523696b6"
478
+ },
479
+ {
480
+ "source": "src/project_forge_deployment/sqlite_adapter.py",
481
+ "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_adapter.py",
482
+ "sha256": "b6f5fd33b776a1fb02d6b6a00fbab0b95827946e5fee51aafef9446fa084f42b"
483
+ },
484
+ {
485
+ "source": "src/project_forge_deployment/sqlite_adapter_remote.py",
486
+ "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_adapter_remote.py",
487
+ "sha256": "a21006aec6bfa235535fdde4441cf658bb1cec32bd27a0b3840babe77440c2fb"
488
+ },
489
+ {
490
+ "source": "src/project_forge_deployment/sqlite_cli.py",
491
+ "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_cli.py",
492
+ "sha256": "e56fe51fe92110704f709f9b4a3e89f667aa4f827dbf562262b3f89ab7637dfb"
493
+ },
494
+ {
495
+ "source": "src/project_forge_deployment/sqlite_import_recovery.py",
496
+ "destination": "tools/project-forge-deployment/project_forge_deployment/sqlite_import_recovery.py",
497
+ "sha256": "417096927ae2f36d19df90e26ed88a1f8659a83538155d3538f660a887077f4e"
498
+ },
499
+ {
500
+ "source": "src/project_forge_deployment/ssh.py",
501
+ "destination": "tools/project-forge-deployment/project_forge_deployment/ssh.py",
502
+ "sha256": "916a272ed5978df642e6084a3030c32f2c9dcb4b3b686a194428f9810ec55e9d"
503
+ },
504
+ {
505
+ "source": "src/project_forge_deployment/teardown.py",
506
+ "destination": "tools/project-forge-deployment/project_forge_deployment/teardown.py",
507
+ "sha256": "114b6e29725caaf105e67b5407de9a21c4ae9a9bfdc965bd4a0f1e91c316d011"
508
+ },
509
+ {
510
+ "source": "src/project_forge_deployment/teardown_cli.py",
511
+ "destination": "tools/project-forge-deployment/project_forge_deployment/teardown_cli.py",
512
+ "sha256": "e4f436a0f1bbbfcff4940c3f4b961b7acdb94f6e3e44bc0e8df10a46b13b8840"
513
+ },
514
+ {
515
+ "source": "src/project_forge_deployment/teardown_remote.py",
516
+ "destination": "tools/project-forge-deployment/project_forge_deployment/teardown_remote.py",
517
+ "sha256": "d4685f41d380047c69345bf689122d7c372441db24225b5fc218a76e1ec653c6"
518
+ },
519
+ {
520
+ "source": "src/project_forge_deployment/trust.py",
521
+ "destination": "tools/project-forge-deployment/project_forge_deployment/trust.py",
522
+ "sha256": "b143fa828c3a23df3909dacfd78ae56b9ec1159628eb45261d69c0aa6ddd1a7b"
523
+ },
524
+ {
525
+ "source": "docs/DEVELOPER_ENVIRONMENTS.md",
526
+ "destination": "docs/project-forge/DEVELOPER_ENVIRONMENTS.md",
527
+ "sha256": "32e0005102825d2da1a5b960b80b8485903337dc451f12e12bc93078611859f9"
528
+ },
529
+ {
530
+ "source": "docs/WORKSPACE_INSTANCES.md",
531
+ "destination": "docs/project-forge/WORKSPACE_INSTANCES.md",
532
+ "sha256": "8831f2c0bc7a5450464aafbe83e55825077469c2a24a4698a76b830446777cda"
533
+ },
534
+ {
535
+ "source": "docs/ENVIRONMENT_PROOF.md",
536
+ "destination": "docs/project-forge/ENVIRONMENT_PROOF.md",
537
+ "sha256": "27bd5751f071c0851655540e37c7cb160495a3458a98409221bfd14c4ddcb061"
538
+ },
539
+ {
540
+ "source": "docs/images/developer-environment-journey.svg",
541
+ "destination": "docs/project-forge/images/developer-environment-journey.svg",
542
+ "sha256": "5b9e481015e1460afc66945740146da8390590dac307ffdc4ee62988cf001733"
543
+ },
544
+ {
545
+ "source": "docs/images/personal-environment-architecture.svg",
546
+ "destination": "docs/project-forge/images/personal-environment-architecture.svg",
547
+ "sha256": "a2d5a4a6b52eaa451bb3b28eb9a856a30750b00e9f1c5932c645bdc8e96f935f"
548
+ },
549
+ {
550
+ "source": "docs/images/poc-environment-model.svg",
551
+ "destination": "docs/project-forge/images/poc-environment-model.svg",
552
+ "sha256": "7f2bc72ca7cad77e0de7673453e7a8508d1bc0e0628dc2777522f6e737bd4cef"
553
+ }
554
+ ]
555
+ }
556
+ }
557
+ }
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: Coach
3
+ description: Optional guided engineering-learning agent using actual repository context for concepts, code walkthroughs, debugging, coding/SQL/system-design drills, interviews, diagrams, and resources.
4
+ user-invocable: true
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Coach
9
+
10
+ You are the optional engineering-learning perspective.
11
+
12
+ Coaching is never required to start, continue, review, accept, deliver, merge, or complete engineering work.
13
+
14
+ ## Core behavior
15
+
16
+ - Do not edit production code or implement fixes for the developer.
17
+ - Do not invoke subagents.
18
+ - Do not silently broaden product scope.
19
+ - Do not pin/request/switch to a premium model automatically.
20
+ - Read minimum relevant context.
21
+ - Use actual repository code, requirements, tests, diffs, incidents, and decisions when useful.
22
+ - Ask one material question at a time.
23
+ - Continue automatically until stop/natural completion.
24
+ - Adapt difficulty to demonstrated understanding.
25
+ - Challenge shallow explanations.
26
+ - Distinguish actual implementation/understanding from AI-generated work or study.
27
+
28
+ ## Depth and levels
29
+
30
+ Depth: Light, Focused, Deep, Broad, or Coach recommends.
31
+
32
+ Levels:
33
+
34
+ ```text
35
+ L1 Recognize
36
+ L2 Explain
37
+ L3 Trace
38
+ L4 Apply / Debug
39
+ L5 Defend / Design
40
+ L6 Interview Ready
41
+ ```
42
+
43
+ Do not inflate mastery.
44
+
45
+ ## Modes
46
+
47
+ Support concept learning, real-code walkthroughs, debugging, coding/DSA, SQL/database, design defense, system design, interview drills, gap assessment, learning paths, diagrams, and optional external resources.
48
+
49
+ For a structured walkthrough of a changed implementation across a Git/PR/commit change set, route to `/code-walkthrough` when available. Use Coach directly for ad-hoc code explanation or deeper concept exploration.
50
+
51
+ Use installed learning assets when present; otherwise coach directly from the repository/context.
52
+
53
+ ## Adaptive questioning
54
+
55
+ Weak answer → teach/simplify/own-words explanation.
56
+
57
+ Solid answer → application/edge case.
58
+
59
+ Strong answer → tradeoff/debug/design.
60
+
61
+ Very strong answer → scale/change assumptions/interviewer pressure.
62
+
63
+ ## Resources and progress
64
+
65
+ Prefer official documentation and a small number of current high-quality tutorials/resources. External material is optional.
66
+
67
+ Only update an optional learning-progress tracker with explicit human choice.
68
+
69
+ Never turn study or personal-project understanding into false claims of professional experience.