forge-orkes 0.9.0 → 0.9.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge-orkes",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Set up the Forge meta-prompting framework for Claude Code in your project",
5
5
  "bin": {
6
6
  "create-forge": "./bin/create-forge.js"
@@ -23,16 +23,33 @@ Structured conversation: approach, trade-offs, decisions. Clarity, not artifacts
23
23
 
24
24
  ## Progressive Persistence
25
25
 
26
- **Decisions persist immediately.** After each user response that confirms a decision, write it to `.forge/context.md` right away. Don't accumulate in working memory.
26
+ **Decisions persist immediately. This is a hard gate not a guideline.**
27
27
 
28
- ### Rules
28
+ After each user response that confirms a decision:
29
29
 
30
- 1. **Create `context.md` on first decision** if it doesn't exist (from template `.forge/templates/context.md`)
31
- 2. **Scope by milestone.** Add decisions under `### M{id} — {name} (drafting)` inside `## Locked Decisions`
32
- 3. **Append, don't rewrite.** Each confirmed decision → append one `- **[Topic]**: [Decision]. Reason: [Why]` line
33
- 4. **Deferred ideas too.** User says "not now" / "later" / "skip" → append to `## Deferred Ideas` immediately
34
- 5. **Discretion areas too.** Left to agent judgment append to `## Discretion Areas` immediately
35
- 6. **Phase Handoff promotes.** Rename `(drafting)` → `(locked {date})` at convergence. No content change needed — decisions are already written
30
+ 1. **STOP** do not continue the discussion
31
+ 2. **Write to disk** append to `.forge/context.md` (create from template if missing)
32
+ 3. **THEN** continue to the next question
33
+
34
+ Never accumulate decisions in working memory. Never batch writes to convergence.
35
+
36
+ ### Write Protocol
37
+
38
+ **On first decision of the session:**
39
+ - Check if `.forge/context.md` exists. If not → create it from `.forge/templates/context.md`
40
+ - Add a milestone heading inside `## Locked Decisions`: `### M{id} — {name} (drafting)` (use "M?" if no milestone yet)
41
+
42
+ **On each confirmed decision:**
43
+ - Append under the milestone heading: `- **[Topic]**: [Decision]. Reason: [Why]`
44
+
45
+ **On deferred ideas** (user says "not now" / "later" / "skip"):
46
+ - Append to `## Deferred Ideas` immediately: `- [Idea] — Deferred because: [reason]`
47
+
48
+ **On discretion areas** (left to agent judgment):
49
+ - Append to `## Discretion Areas` immediately
50
+
51
+ **At Phase Handoff:**
52
+ - Rename `(drafting)` → `(locked {date})` — decisions are already written, just finalize the heading
36
53
 
37
54
  ### Why
38
55
 
@@ -145,7 +162,13 @@ Apply Functionality Distillation (above), grounded in research findings.
145
162
 
146
163
  **After each user response:** write confirmed behavioral decisions to `context.md` immediately.
147
164
 
148
- ### Step 5: Converge
165
+ ### Step 5: Pre-Convergence Audit
166
+
167
+ **Before summarizing, read `.forge/context.md` and verify all confirmed decisions are present.**
168
+
169
+ If any decision from the conversation is missing from the file → write it now. Do not proceed to the summary until the file matches the conversation. This is a hard gate.
170
+
171
+ ### Step 6: Converge
149
172
 
150
173
  Summarize decided items, then confirm:
151
174
 
@@ -99,9 +99,8 @@ No match → fall through to Step 2B (tier detection).
99
99
 
100
100
  ### Parent Session Model Advisory
101
101
 
102
- Check `models.parent_session` from `project.yml`. **Always display:** *"Session model: {current}. Project recommends: {parent_session}."*
103
- Mismatch append: *"Use `/model` to switch."*
104
- - Advisory only -- no block. Reviewer enforces at review gate.
102
+ Check `models.parent_session` from `project.yml`. Show only on mismatch: *"Session model: {current}. Project recommends: {parent_session} — use `/model {parent_session}` to switch."*
103
+ - Advisory only no block. Reviewer enforces at review gate.
105
104
 
106
105
  ## Step 2A: Project Init
107
106
 
@@ -157,11 +156,11 @@ Read `models` from `project.yml`:
157
156
  2. `models.default` → fallback
158
157
  3. Inherit parent session
159
158
 
160
- Resolve `{model}` for `{next}` skill using precedence above. **Always display** the resolved model in the routing briefing and its source:
159
+ Resolve `{model}` for `{next}` skill using precedence above. Show only on mismatch:
161
160
 
162
- *"Skill {next} expects {model} (from {source}). Running {current_model}."*
161
+ *"Session: {current_model}. {next} expects {model} (from {source}) use `/model {model}` to switch."*
163
162
 
164
- Where `{source}` = `skills.{name}` | `models.default` | `parent session`. Show on every transition, not just mismatch. If mismatch, append: *"Use `/model` to switch."*
163
+ Where `{source}` = `skills.{name}` | `models.default` | `parent session`. Suppress when session model matches expected.
165
164
 
166
165
  **Model routing is advisory.** All phases use `Skill()`. Display expected model at each transition. Mismatch → suggest `/model {expected}`. Review gate logs model used.
167
166