@mriekki/project-forge 3.0.0 → 4.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,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@mriekki/project-forge",
4
- "version": "3.0.0",
4
+ "version": "4.0.0",
5
5
  "defaultProfile": "greenfield-project",
6
6
  "profiles": {
7
7
  "greenfield-project": {
@@ -14,8 +14,8 @@
14
14
  "components": {
15
15
  "core": {
16
16
  "repository": "mriekki/project-forge-core",
17
- "commit": "17a09fc913a12902c4a9172e53bc70d421f5b0d5",
18
- "version": "3.3.0",
17
+ "commit": "e20e9b0e7102477a30bc15a771d62ba537efe60c",
18
+ "version": "4.0.0",
19
19
  "distribution": "greenfield-workspace",
20
20
  "descriptor": "assets/core/distribution.json",
21
21
  "sourceRoot": "assets/generated/core",
@@ -4,12 +4,10 @@
4
4
  "profileDestination": ".github/project-forge-workspace.json",
5
5
  "mappings": [
6
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
7
  {"source":"core/instructions/project-forge-workflow.instructions.md","destination":".github/instructions/project-forge-workflow.instructions.md"},
9
8
  {"source":"core/instructions/project-forge-docs.instructions.md","destination":".github/instructions/project-forge-docs.instructions.md"},
10
9
  {"source":"core/skills/define-feature/SKILL.md","destination":".github/skills/define-feature/SKILL.md"},
11
10
  {"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
11
  {"source":"core/skills/refine-requirements/SKILL.md","destination":".github/skills/refine-requirements/SKILL.md"},
14
12
  {"source":"core/skills/start-work/SKILL.md","destination":".github/skills/start-work/SKILL.md"},
15
13
  {"source":"core/skills/setup/SKILL.md","destination":".github/skills/setup/SKILL.md"},
@@ -23,10 +21,8 @@
23
21
  {"source":"core/skills/cleanup-branches/SKILL.md","destination":".github/skills/cleanup-branches/SKILL.md"},
24
22
  {"source":"core/skills/pull-latest/SKILL.md","destination":".github/skills/pull-latest/SKILL.md"},
25
23
  {"source":"core/skills/project-forge-update/SKILL.md","destination":".github/skills/project-forge-update/SKILL.md"},
26
- {"source":"core/skills/core-sync/SKILL.md","destination":".github/skills/core-sync/SKILL.md"},
27
24
  {"source":"core/skills/upstream-fix/SKILL.md","destination":".github/skills/upstream-fix/SKILL.md"},
28
25
  {"source":"core/skills/wait-what/SKILL.md","destination":".github/skills/wait-what/SKILL.md"},
29
- {"source":"core/skills/developer-env-mode/SKILL.md","destination":".github/skills/developer-env-mode/SKILL.md"},
30
26
  {"source":"core/skills/deployment-readiness/SKILL.md","destination":".github/skills/deployment-readiness/SKILL.md"},
31
27
  {"source":"core/skills/deploy/SKILL.md","destination":".github/skills/deploy/SKILL.md"},
32
28
  {"source":"core/skills/tear-down/SKILL.md","destination":".github/skills/tear-down/SKILL.md"},
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@mriekki/project-forge",
4
- "version": "3.0.0",
4
+ "version": "4.0.0",
5
5
  "components": {
6
6
  "core": {
7
7
  "repository": "mriekki/project-forge-core",
8
- "commit": "17a09fc913a12902c4a9172e53bc70d421f5b0d5",
9
- "version": "3.3.0",
8
+ "commit": "e20e9b0e7102477a30bc15a771d62ba537efe60c",
9
+ "version": "4.0.0",
10
10
  "distribution": "greenfield-workspace",
11
11
  "files": [
12
12
  {
@@ -19,15 +19,10 @@
19
19
  "destination": ".github/agents/reviewer.agent.md",
20
20
  "sha256": "94255c72a6c875722ebaf8b0cb328fe019856c01443b550ca6e2f6c422da983e"
21
21
  },
22
- {
23
- "source": "core/agents/coach.agent.md",
24
- "destination": ".github/agents/coach.agent.md",
25
- "sha256": "f2da3ed8ba1890f0886615c0d7a66411265524dcaf04648ef10dfd195dde522e"
26
- },
27
22
  {
28
23
  "source": "core/instructions/project-forge-workflow.instructions.md",
29
24
  "destination": ".github/instructions/project-forge-workflow.instructions.md",
30
- "sha256": "aa03af8ef23d32d90a85adaeb549873e4de32798c58bfdaf7fe4183a549b1a17"
25
+ "sha256": "a6b28d916b67c9eec3831e414b56be3636512f7f7740523d22aaaf6efa00d335"
31
26
  },
32
27
  {
33
28
  "source": "core/instructions/project-forge-docs.instructions.md",
@@ -42,12 +37,7 @@
42
37
  {
43
38
  "source": "core/skills/grill-me/SKILL.md",
44
39
  "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": "facdfecee977ab01bbe908f6f122e483ea27c98a8f1562973f59f9266b63323e"
40
+ "sha256": "a71c2dcf63d7d88beb9112fcfe0cf19dbc233934f30bbe95727f58b29e845ffb"
51
41
  },
52
42
  {
53
43
  "source": "core/skills/refine-requirements/SKILL.md",
@@ -57,12 +47,12 @@
57
47
  {
58
48
  "source": "core/skills/start-work/SKILL.md",
59
49
  "destination": ".github/skills/start-work/SKILL.md",
60
- "sha256": "5f4d46323d19bb7a1d4e64f233ae64aae8e1874da072d38cb344d3d834bdea8e"
50
+ "sha256": "f054edd5a745489623579d25e334f5fcd6cebd6e73b86970074e7c2444f9af40"
61
51
  },
62
52
  {
63
53
  "source": "core/skills/setup/SKILL.md",
64
54
  "destination": ".github/skills/setup/SKILL.md",
65
- "sha256": "60dcb93e98f6f00177e9e2d406c55f15bd59ebf8607c3f79ae464fe7c00616b6"
55
+ "sha256": "2f1b88b31b2c7233a00ab9293cd98a5fade00e114e1a442a793affbc7fe4ad83"
66
56
  },
67
57
  {
68
58
  "source": "core/skills/build/SKILL.md",
@@ -114,11 +104,6 @@
114
104
  "destination": ".github/skills/project-forge-update/SKILL.md",
115
105
  "sha256": "3463a68171fa30ef10f1ca514424236317ec364f015c5446f49911a1a3c9bb12"
116
106
  },
117
- {
118
- "source": "core/skills/core-sync/SKILL.md",
119
- "destination": ".github/skills/core-sync/SKILL.md",
120
- "sha256": "cbc498597cea7a48004fc507f9a6efc130544e57f347c0efdbb073f71f14965e"
121
- },
122
107
  {
123
108
  "source": "core/skills/upstream-fix/SKILL.md",
124
109
  "destination": ".github/skills/upstream-fix/SKILL.md",
@@ -129,11 +114,6 @@
129
114
  "destination": ".github/skills/wait-what/SKILL.md",
130
115
  "sha256": "dba3aa4f042b813de960b60c47ae4c8a3dccb72fdc89c597fe04b720b27f5316"
131
116
  },
132
- {
133
- "source": "core/skills/developer-env-mode/SKILL.md",
134
- "destination": ".github/skills/developer-env-mode/SKILL.md",
135
- "sha256": "2e45e00e30f17edda5b259bd24852233d2bcace46f7e095d3b28faf9ce35cedb"
136
- },
137
117
  {
138
118
  "source": "core/skills/deployment-readiness/SKILL.md",
139
119
  "destination": ".github/skills/deployment-readiness/SKILL.md",
@@ -207,7 +187,7 @@
207
187
  {
208
188
  "source": "core/process/INTERACTIVE_SESSION_GUIDE.md",
209
189
  "destination": "docs/process/INTERACTIVE_SESSION_GUIDE.md",
210
- "sha256": "c35f2f4bc1b52746b205eab65982b32d9a2fe58f1c750f9744ddfdd320c3f52c"
190
+ "sha256": "8cd74fbd7433969923299849eb89bdd774fd4af1b9694639f0b9871a1047cacf"
211
191
  },
212
192
  {
213
193
  "source": "core/process/COACHING_GUIDE.md",
@@ -242,7 +222,7 @@
242
222
  {
243
223
  "source": "core/process/OPERATION_JOURNAL.md",
244
224
  "destination": "docs/process/OPERATION_JOURNAL.md",
245
- "sha256": "16e2d502d7b0f923b4ea2e34bdcaaed73cdc0933fd6ef54a1278dd25f25b5140"
225
+ "sha256": "7051e4554ee6f3cca1b7ee8105ad1ab9f2cde4f1afc7d0f39e310144df45f390"
246
226
  },
247
227
  {
248
228
  "source": "core/process/PROJECT_REQUIREMENTS_EXPORT.md",
@@ -18,7 +18,7 @@ Once a bounded action is authorized, routine mechanics inside that scope should
18
18
 
19
19
  For implementation, establish the repository-appropriate short-lived work branch as routine setup once implementation itself is authorized; do not add a separate branch-creation gate when branch policy/naming and scope are clear.
20
20
 
21
- Continuous modes such as `/grill-me`, `/grill-with-docs`, `/refine-requirements`, `/coach`, `/learning-review`, and `/deployment-readiness` continue until stopped or naturally complete.
21
+ Continuous modes such as `/grill-me`, `/refine-requirements`, `/coach`, `/learning-review`, and `/deployment-readiness` continue until stopped or naturally complete.
22
22
 
23
23
  During interactive questioning, prefer concise choice-first options for genuinely bounded human decisions, including `Other / specify` and `Not sure — recommend one` when appropriate. When the host exposes native structured question controls, use them instead of a plain numbered chat list. In VS Code, use the host's structured question surface such as `vscode_askQuestions` when available: single-select for mutually exclusive decisions/actions and multi-select only when several simultaneous selections are valid. A textual numbered menu is only the fallback when structured choice UI is unavailable.
24
24
 
@@ -26,11 +26,17 @@ Make a recommendation only when current evidence, repository policy, or a clear
26
26
 
27
27
  Keep factual/environment-specific values and questions intended to elicit the human's own framing, reasoning, debugging approach, design rationale, or understanding open-ended unless options are later useful as scaffolding.
28
28
 
29
+ `/grill-me` is the single adversarial-questioning entry point. It begins read-only and may, after one explicit session-level choice, reconcile resolved decisions into permitted local authorities or proposed external updates. Do not create a second documentation-aware grilling command.
30
+
31
+ `/setup` is the single workstation/environment preparation entry point. It owns status, repair, verified local runtime convergence, remote-enabled capability preparation, and named-environment setup/proof. Do not create a second developer-environment-mode command. `/deployment-readiness <environment>` remains the later exact-environment pre-deploy verification step.
32
+
29
33
  For deployment readiness, inspect existing non-secret configuration before asking setup questions. Show already-known simple machine facts such as hostname/address, deployment user, port, and target OS for confirmation. Ask only for missing or conflicting facts. Keep deployment-tool implementation identifiers such as logical target names, `targetName`, SSH aliases, profile paths, and trust-file paths internal unless troubleshooting or genuine ambiguity requires them.
30
34
 
31
35
  Shared managed code keeps its canonical owner. When a consumer contains `CORE_BASELINE.json` or `DEPLOYMENT_BASELINE.json`, treat those baselines as ownership evidence. A temporary edit to a shared-managed consumer file may be used to diagnose or prove a reusable defect, but it is not the canonical deliverable.
32
36
 
33
- Before consumer delivery, run available managed-baseline integrity checks. If Core- or Deployment-Kit-managed files have unexplained local drift, stop before staging/commit/push and route the reusable change through `/upstream-fix`. Fix the owning canonical repository, deliver/merge it there under normal gates, then adopt the exact accepted shared commit back into the consumer through the appropriate sync mechanism and retest in consumer context.
37
+ Before consumer delivery, run available managed-baseline integrity checks. If Core- or Deployment-Kit-managed files have unexplained local drift, stop before staging/commit/push and route the reusable change through `/upstream-fix`. Fix the owning canonical repository, deliver/merge it there under normal gates, then adopt the exact accepted shared commit back into the consumer through the appropriate update boundary and retest in consumer context.
38
+
39
+ Package-managed generated Projects use `/project-forge-update`. Direct `/core-sync` remains only for component-only Core consumers without `PROJECT_FORGE_BASELINE.json` and is not part of the normal greenfield Project command surface.
34
40
 
35
41
  Do not manually preserve a private consumer fork of shared managed code merely because the consumer exposed the bug. Consumer-owned product/application files remain normal consumer implementation scope.
36
42
 
@@ -4,7 +4,6 @@ The following modes are continuous after the human explicitly enters them:
4
4
 
5
5
  ```text
6
6
  /grill-me
7
- /grill-with-docs
8
7
  /refine-requirements
9
8
  /coach
10
9
  /learning-review
@@ -85,7 +84,7 @@ Stop when:
85
84
 
86
85
  Continuous conversation never implies permission for unrelated file, Git, external-system, remote, or production writes.
87
86
 
88
- For modifying sessions such as requirement refinement or deployment-readiness documentation, one explicit session-level authorization may cover focused updates within the defined scope; do not re-ask after every answer.
87
+ For modifying sessions such as `/grill-me` decision reconciliation, requirement refinement, or deployment-readiness documentation, one explicit session-level authorization may cover focused updates within the defined scope; do not re-ask after every answer.
89
88
 
90
89
  Compound action skills may also define their own bounded authorization. In particular, manually invoking `/deliver` after its prerequisites are satisfied authorizes routine branch/stage/commit/push/PR/CI mechanics within the accepted delivery scope. Do not interrupt that compound action with repeated ceremonial permission prompts. `/deliver` still stops for changed evidence, ambiguity/risk, and the explicit merge/finalize decision.
91
90
 
@@ -47,11 +47,10 @@ Operation journals are workstation-local and must remain ignored by Git. They ar
47
47
 
48
48
  Journal deterministic operations when durable local diagnostics materially help:
49
49
 
50
- - `/setup` and repository-local setup/doctor execution;
50
+ - `/setup` and repository-local setup/doctor execution, including local runtime convergence and remote-enabled environment preparation;
51
51
  - `/build` when build diagnostics/artifact evidence are useful;
52
52
  - `/run` as a concise startup/health receipt when useful, not as an unbounded application log sink;
53
53
  - `/project-forge-update` apply/verification work;
54
- - `/developer-env-mode` when it mutates or converges local runtime state;
55
54
  - `/deployment-readiness` when it performs preparation or repair;
56
55
  - environment proof operations;
57
56
  - `/deploy` and `/tear-down`;
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: grill-me
3
- description: Continuously challenge requirements, architecture, plans, implementation assumptions, or work-item coverage without editing files.
3
+ description: Continuously challenge requirements, architecture, plans, implementation assumptions, or work-item coverage, with optional session-level reconciliation of resolved decisions into permitted authorities.
4
4
  argument-hint: "<work-item ID, external key, document, plan, or topic>"
5
5
  user-invocable: true
6
6
  disable-model-invocation: true
@@ -8,70 +8,108 @@ disable-model-invocation: true
8
8
 
9
9
  # Grill Me
10
10
 
11
- Purpose: improve reasoning by challenging the highest-value uncertainty without adding process overhead.
11
+ Purpose: improve reasoning by challenging the highest-value uncertainty without adding process overhead or forcing the developer to choose a separate documentation-aware grilling command.
12
12
 
13
- ## Rules
13
+ Invocation begins read-only.
14
14
 
15
- - Read `.github/project-forge-workspace.json` when present and only the minimum relevant context.
16
- - Ask one material question at a time.
17
- - Explain briefly why the question matters.
18
- - Challenge vague answers, hidden scope, contradictions, and weak assumptions.
19
- - Recommend an answer or 2–3 options with tradeoffs when useful.
20
- - Do not edit files.
21
- - Do not invoke subagents.
22
- - Do not create artifacts merely because grilling occurred.
23
- - Do not claim external Jira/Issue content was read unless it was actually available.
15
+ ## 1. Resolve authority and minimum context
24
16
 
25
- Challenge areas may include:
26
- - missing acceptance behavior,
27
- - cross-work-item/Epic gaps,
28
- - domain/business rules,
29
- - lifecycle/state transitions,
30
- - validation/failure behavior,
31
- - data integrity,
32
- - concurrency/transactions,
33
- - destructive/reversible actions,
34
- - architecture assumptions,
35
- - security/operational risk,
36
- - testability.
17
+ Read `.github/project-forge-workspace.json` when present and only the minimum relevant context.
37
18
 
38
- ## Cadence
19
+ Determine when applicable:
20
+ - the authoritative work-item source;
21
+ - which local documents are authoritative, supplemental, read-only, or not used;
22
+ - relevant accepted ADR/design rules;
23
+ - whether an external write integration is actually available and permitted.
39
24
 
40
- ```text
41
- QUESTION
42
- <one focused question>
25
+ Never assume Product/Feature Briefs exist. Never assume `Jira Epic == Feature Brief`. Do not claim external Jira/Issue content was read unless it was actually available.
43
26
 
44
- WHY IT MATTERS
45
- <short explanation>
27
+ ## 2. Continuous grilling
46
28
 
47
- RECOMMENDATION
48
- <recommended answer/options when useful>
49
- ```
29
+ Ask one material question at a time. Explain briefly why the question matters. Challenge vague answers, hidden scope, contradictions, and weak assumptions.
30
+
31
+ Challenge areas may include:
32
+ - missing acceptance behavior;
33
+ - cross-work-item/Epic gaps;
34
+ - domain/business rules;
35
+ - lifecycle/state transitions;
36
+ - validation/failure behavior;
37
+ - data integrity;
38
+ - concurrency/transactions;
39
+ - destructive/reversible actions;
40
+ - architecture assumptions;
41
+ - security/operational risk;
42
+ - accessibility/UX implications when relevant;
43
+ - testability.
44
+
45
+ When the purpose is to expose or strengthen the human's reasoning, ask open-ended first. For a bounded decision with a small credible option set, follow `INTERACTIVE_SESSION_GUIDE.md`: use host-native single-select structured choice UI for mutually exclusive alternatives when available, multi-select only when several selections are valid together, and preserve free-text/`Other / specify` when choices may be incomplete.
50
46
 
51
- After the human answers:
47
+ Recommend at most one answer/option only when current evidence or a clear engineering tradeoff supports it. A recommendation is advice, not an accepted decision.
48
+
49
+ Cadence:
52
50
 
53
51
  ```text
54
- analyze/challenge the answer
52
+ question
53
+ → human answer
54
+ → challenge/analyze the answer
55
55
  → explain implications when useful
56
- → ask the next material question
56
+ → reconcile the resolved decision when the session is authorized to do so
57
+ → next material question
57
58
  ```
58
59
 
59
60
  Do not ask `Do you want to continue?` after each answer. The human already entered a continuous grilling mode.
60
61
 
61
- Stop only when:
62
- - the human says stop/done/pause,
63
- - no material issues remain,
64
- - a true scope/decision/action gate appears,
62
+ ## 3. Optional decision reconciliation
63
+
64
+ Grilling does not require document writes. When resolved decisions would benefit from durable reconciliation, present one session-level **single-select structured choice** through the host UI when available. In VS Code use the native question surface such as `vscode_askQuestions`.
65
+
66
+ Offer:
67
+ - `Continue grilling only` `[READ ONLY]` — default when no durable update is needed;
68
+ - `Reconcile resolved decisions during this session` `[MODIFIES DOCS]`;
69
+ - `Stop` `[NO ACTION]`.
70
+
71
+ Use a numbered text list only when structured choice UI is unavailable.
72
+
73
+ Selecting `Reconcile resolved decisions during this session` authorizes only focused updates to the permitted current work-item documents for this active session. Do not ask again after every answer.
74
+
75
+ When a decision is resolved:
76
+ - update an existing permitted local authority/supplement only when this session has document-write authorization;
77
+ - if Jira/GitHub/another external system is authoritative and no permitted write integration is available, accumulate a concise `PROPOSED EXTERNAL WORK-ITEM UPDATE`;
78
+ - if a permitted external write integration exists, require an explicit `[EXTERNAL WRITE]` choice before writing externally;
79
+ - never create a competing local source merely to store an answer.
80
+
81
+ For local-document models, common homes are:
82
+ - brief: high-level scope/outcome/major rule;
83
+ - combined requirements: detailed user/engineering behavior and testable scenarios;
84
+ - decisions: resolved work-item decision/basis;
85
+ - ADR: only a meaningful cross-cutting architecture decision.
86
+
87
+ Pause reconciliation when an answer would materially change higher-level approved scope, contradict another authority/ADR, or require a new cross-cutting decision. Continue read-only grilling when appropriate.
88
+
89
+ ## 4. Boundaries
90
+
91
+ Do not:
92
+ - implement production code;
93
+ - invoke subagents;
94
+ - create artifacts merely because grilling occurred;
95
+ - infer approval from an answer;
96
+ - silently write local or external authorities without the applicable session/write authorization.
97
+
98
+ Stop when:
99
+ - the human says stop/done/pause;
100
+ - no material issues remain;
101
+ - a true scope/decision/action gate appears;
65
102
  - the human switches workflow.
66
103
 
67
- ## Natural completion
104
+ ## 5. Natural completion
68
105
 
69
106
  Summarize once:
70
- - decisions strengthened,
71
- - unresolved issues,
107
+ - decisions strengthened;
108
+ - documents or proposed external updates changed, if any;
109
+ - unresolved issues/conflicts;
72
110
  - recommended next workflow.
73
111
 
74
112
  Typical next workflows:
75
- - `/grill-with-docs` to reconcile resolved decisions,
76
- - `/refine-requirements` for systematic detailed coverage,
77
- - `/start-work` when the item is ready.
113
+ - `/refine-requirements` for systematic detailed coverage;
114
+ - `/start-work` when the item is ready;
115
+ - normal review/approval when a material requirement gate remains.