cadet-agent 0.33.0 → 0.33.1

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 CHANGED
@@ -168,6 +168,10 @@ Hard gates are enforced at every phase transition. The agent reads `.cadet/state
168
168
  | review → validation | `codeReviewCompleted`, `securityReviewPassed`, `acceptanceCriteriaValidated` |
169
169
  | validation → closed | `designArtifactSyncConfirmed` |
170
170
 
171
+ **`closed` is end-of-epic, not per-story.** `validation → closed` is taken only when no stories remain (`NEXT_STORY → no → CLOSED` above). When an epic still has stories, the next story re-enters from `validation → implementation` (`NEXT_STORY → yes → IMPL`). Do not close a story individually: `closed` is terminal, and there is no transition out of it.
172
+
173
+ The full set of legal transitions is the three gated rows above **plus** the ungated forward edges (classification, planning progression, `story-breakdown → implementation`, and the `validation → implementation` next-story loop). Any transition outside that set is rejected with a named reason.
174
+
171
175
  ### Harness
172
176
 
173
177
  Gates are backed by **evidence**, not assertion. Each claimed gate must have a fresh, non-superseded evidence record bound to the current work item, input tree hash, and acceptance criteria. The harness also bounds context, tokens, tool calls, retries, wall-clock time, cost, and archive sizes — and those bounds are enforced, not advisory.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cadet-agent",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "description": "Cross-IDE agent framework for Unity/C# game-development — one-command install",
5
5
  "type": "module",
6
6
  "bin": {
@@ -718,8 +718,15 @@ const UNGATED_FORWARD_EDGES = Object.freeze([
718
718
  ['architectureComplete', 'story-breakdown'],
719
719
  ['spikes', 'story-breakdown'],
720
720
  ['story-breakdown', 'implementation'],
721
- // Re-entering work for a new story/epic from a review/vallidation outcome.
722
- ['story-breakdown', 'story-breakdown'],
721
+ // Next-story loop. The workflow is
722
+ // VALIDATE -->|"gate: designArtifactSyncConfirmed"| NEXT_STORY
723
+ // NEXT_STORY -->|"yes"| IMPL
724
+ // NEXT_STORY -->|"no"| CLOSED
725
+ // so the next story in an epic re-enters implementation from `validation`.
726
+ // `closed` stays terminal — it means the epic/plan is finished
727
+ // (Resume: "All work is complete for the current epic(s)") — and is
728
+ // deliberately NOT an escape hatch for starting the next story.
729
+ ['validation', 'implementation'],
723
730
  ]);
724
731
 
725
732
  /** Is `from → to` one of the declared ungated forward edges? */