forge-orkes 0.3.2 → 0.3.3

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.3.2",
3
+ "version": "0.3.3",
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"
@@ -18,16 +18,22 @@ Check for state files in this order:
18
18
 
19
19
  **When milestone-aware state exists (`state/index.yml`):**
20
20
  1. Read `.forge/state/index.yml` to get the list of active milestones
21
- 2. **If multiple active milestones:**
22
- - Present all milestones with their progress and `last_updated` timestamp
21
+ 2. **Check for milestone argument first.** If the user invoked `/forge` with an argument (e.g., `/forge 2`, `/forge "Auth system"`):
22
+ - Match the argument against milestone IDs (exact number match) or milestone names (case-insensitive substring match)
23
+ - If a match is found → auto-select it immediately, skip the confirmation prompt: *"Resuming milestone {id}: [{name}] — status: {current.status}, tasks: {overall_percent}%"*
24
+ - If no match → warn and fall through to the interactive prompt: *"No milestone matching '{arg}' found. Here are your active milestones:"*
25
+ 3. **If multiple active milestones (and no argument provided):**
26
+ - Present all milestones with their status and `last_updated` timestamp
23
27
  - Default to the most recently updated milestone
24
- - Ask user to confirm or switch: *"You have {N} active milestones. Most recent: [{name}] ({progress}%, last touched {date}). Work on this one, or switch?"*
25
- 3. **If one milestone:** Auto-select it. Inform user: *"Resuming milestone: [{name}] ({progress}%)"*
26
- 4. **If no active milestones:** Proceed to init or ask user to create one.
27
- 5. Load the selected milestone's state file (`.forge/state/milestone-{id}.yml`)
28
- 6. Report position from the milestone-specific state:
28
+ - Ask user to confirm or switch: *"You have {N} active milestones. Most recent: [{name}] (status: {current.status}, last touched {date}). Work on this one, or switch?"*
29
+ 4. **If one milestone:** Auto-select it. Inform user: *"Resuming milestone: [{name}] — status: {current.status}, tasks: {overall_percent}%"*
30
+ 5. **If no active milestones:** Proceed to init or ask user to create one.
31
+ 6. Load the selected milestone's state file (`.forge/state/milestone-{id}.yml`)
32
+ 7. **Route based on `current.status`, NOT on `overall_percent`.** The `current.status` field is the authoritative workflow position. A milestone is only complete when `current.status` equals `complete`. Even if `overall_percent` is 100%, the milestone still needs to go through any remaining workflow steps (verifying, auditing, refactoring) before it is truly done.
33
+ 8. Report position from the milestone-specific state:
34
+ - **Workflow status** (`current.status`) — this is the primary indicator of where you are
29
35
  - Current phase, plan, task
30
- - Progress percentage
36
+ - Task progress percentage (`overall_percent`) — this measures task completion, not workflow completion
31
37
  - Active blockers
32
38
  - Recent decisions
33
39
 
@@ -496,7 +502,22 @@ Based on detected tier and current state, tell the user which skill comes next a
496
502
 
497
503
  If resuming mid-workflow:
498
504
  - Read the selected milestone's state file (`.forge/state/milestone-{id}.yml`) for current position
499
- - Skip completed phases
505
+ - **Use `current.status` to determine the next skill** — this is the authoritative workflow position:
506
+
507
+ | `current.status` | Next Action |
508
+ |-------------------|-------------|
509
+ | `not_started` | Detect tier, start workflow |
510
+ | `researching` | Resume or complete `researching`, then → `discussing` |
511
+ | `discussing` | Resume or complete `discussing`, then → `planning` (or `architecting` for Full) |
512
+ | `planning` | Resume or complete `planning`, then → `executing` |
513
+ | `executing` | Resume or complete `executing`, then → `verifying` |
514
+ | `verifying` | Resume or complete `verifying`, then → `auditing` |
515
+ | `auditing` | Resume or complete `auditing`, then → `refactoring` |
516
+ | `refactoring` | Resume or complete `refactoring`, then → `complete` |
517
+ | `complete` | Milestone is done. Ask user what's next. |
518
+
519
+ - **Never treat a milestone as complete just because `overall_percent` is 100%.** Task completion and workflow completion are different. All planned tasks being done (100%) means execution is finished — verification, auditing, and refactoring still need to run.
520
+ - Skip completed phases (phases before `current.status`)
500
521
  - Resume from current phase
501
522
 
502
523
  ### On-Demand Discussion
@@ -16,11 +16,16 @@ current:
16
16
  status: not_started # not_started | researching | discussing | planning | executing | verifying | auditing | refactoring | complete
17
17
 
18
18
  progress:
19
- phases_complete: 0
20
- phases_total: 0
21
- current_phase_percent: 0
22
- overall_percent: 0
19
+ phases_complete: 0 # Number of roadmap phases with all tasks done
20
+ phases_total: 0 # Total roadmap phases in this milestone
21
+ current_phase_percent: 0 # Task completion % within the current phase (0-100)
22
+ overall_percent: 0 # Task completion % across all phases (0-100)
23
23
  last_update: null # ISO 8601 timestamp
24
+ # NOTE: overall_percent measures TASK completion, not WORKFLOW completion.
25
+ # A milestone with 100% tasks done still needs verifying, auditing, and refactoring.
26
+ # The authoritative workflow position is current.status — not this percentage.
27
+ # Agents: do NOT set overall_percent above 100 or use it to determine if a milestone is "done".
28
+ # A milestone is only done when current.status == "complete".
24
29
 
25
30
  decisions: # Locked decisions (synced from context.md)
26
31
  - decision: ""
@@ -124,6 +124,9 @@ Milestones group phases into concurrent work streams. Each milestone has its own
124
124
  ### Machine-Readable State
125
125
  YAML for anything agents parse programmatically (project, requirements, roadmap, state). Markdown for human-facing content (constitution, context, verification reports). Never free-form prose for machine state.
126
126
 
127
+ ### Milestone Completion: Status vs. Percentage
128
+ **`current.status` is the authoritative workflow position.** A milestone is only complete when `current.status == complete`. The `progress.overall_percent` field measures task completion — not workflow completion. A milestone at 100% task completion still needs verifying, auditing, and refactoring before it is done. On resume, always check and display `current.status` to determine next steps.
129
+
127
130
  ## Deviation Rules (Executor Decision Tree)
128
131
 
129
132
  When the executor encounters issues during building: