cadet-agent 0.15.4 โ†’ 0.17.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 (3) hide show
  1. package/README.md +84 -2
  2. package/package.json +35 -35
  3. package/src/upgrades.mjs +7 -10
package/README.md CHANGED
@@ -6,8 +6,12 @@ Cadet-Agent is **not a one-shot code generator**. It won't spit out a finished g
6
6
 
7
7
  ## Repository Layout
8
8
  - `.cadet/agent/core/` contains the shared Cadet-Agent framework documents.
9
+ - `cadet-agent.md` is the thin global directive: identity, non-negotiable rules, workflow routing, hard-gate protocol, and skill dispatch.
10
+ - `skills/` contains scoped workflow-phase skills (Requirements, Architecture, Spike, StoryBreakdown, TDD, Debugging, CodeReview).
11
+ - `templates/` contains runtime templates for planning artifacts.
9
12
  - `.cadet/agent/docs/` contains setup guides for each supported IDE.
10
13
  - `.github/agents/` contains the Copilot custom agent definitions (Cadet Agent + Cadet Agent Reviewer).
14
+ - `.github/prompts/` contains Copilot slash-command skill prompts (`/cadet-review`, `/cadet-tdd`, etc.).
11
15
  - `.cursor/` contains Cursor-specific authored files.
12
16
  - `.continue/` contains Continue-specific authored files.
13
17
  - `.claude/` contains Claude Code-specific authored files.
@@ -53,18 +57,92 @@ Expand-Archive .\cadet-agent.zip -DestinationPath . -Force
53
57
  - For framework navigation after install, see `.cadet/agent/core/README.md`.
54
58
  - IDE setup guides and full documentation are at the [canonical repository](https://github.com/naishtech/cadet-agent) (GitHub Pages).
55
59
 
60
+ ## Workflow
61
+
62
+ Cadet-Agent follows a structured SDLC with hard gates between phases. The workflow path adapts to change size: **large** changes go through the full pipeline, **small** changes skip planning artifacts, and **no_test_required** changes (docs, config) skip TDD.
63
+
64
+ ```mermaid
65
+ flowchart TD
66
+ START(["๐Ÿš€ User starts session"])
67
+ RESUME{"state.json<br/>exists?"}
68
+ INIT["Initialize state.json<br/>phase: context-resolution"]
69
+ REPORT["Report current phase,<br/>epics, stories & gates"]
70
+ CR["๐Ÿ” Context Resolution<br/>classify change size,<br/>calibrate learner,<br/>detect policy"]
71
+ REQ["๐Ÿ“‹ Requirements<br/>Given/When/Then criteria<br/>assumption audit"]
72
+ ARCH["๐Ÿ—๏ธ Architecture<br/>technical design,<br/>ADR decisions"]
73
+ SPIKE["๐Ÿงช Spikes<br/>resolve unverified<br/>assumptions"]
74
+ BREAKDOWN["๐Ÿ“ Story Breakdown<br/>epics โ†’ testable stories"]
75
+ IMPL["๐Ÿ”จ Implementation<br/>TDD per story,<br/>red โ†’ green โ†’ refactor"]
76
+ REVIEW["โœ… Review<br/>hard gate: 17-step<br/>code review, security"]
77
+ VALIDATE["โœ”๏ธ Validation<br/>acceptance criteria,<br/>design artifact sync"]
78
+ CLOSED(["๐ŸŽ‰ Closed"])
79
+ NEXT_STORY{"More stories<br/>in epic?"}
80
+
81
+ START --> RESUME
82
+ RESUME -->|"no"| INIT --> CR
83
+ RESUME -->|"yes"| REPORT --> CR
84
+
85
+ CR -->|"large change"| REQ
86
+ CR -->|"small / no_test_required"| IMPL
87
+
88
+ REQ --> ARCH
89
+ ARCH -->|"unverified assumptions"| SPIKE
90
+ ARCH -->|"all assumptions resolved"| BREAKDOWN
91
+ SPIKE -->|"spike complete"| ARCH
92
+
93
+ BREAKDOWN --> IMPL
94
+
95
+ IMPL -->|"story complete"| REVIEW
96
+ REVIEW -->|"gate: codeReviewCompleted โœ…<br/>gate: securityReviewPassed โœ…"| VALIDATE
97
+ VALIDATE -->|"gate: designArtifactSyncConfirmed โœ…"| NEXT_STORY
98
+ NEXT_STORY -->|"yes"| IMPL
99
+ NEXT_STORY -->|"no"| CLOSED
100
+
101
+ style START fill:#4a9,stroke:#333,color:#fff
102
+ style CLOSED fill:#4a9,stroke:#333,color:#fff
103
+ style RESUME fill:#e8a840,stroke:#333,color:#000
104
+ style REVIEW fill:#e87440,stroke:#333,color:#fff
105
+ style VALIDATE fill:#e87440,stroke:#333,color:#fff
106
+ ```
107
+
108
+ ### Resuming a Session
109
+
110
+ Use the `/cadet-resume` slash command to pick up where you left off. It reads `.cadet/state.json` and reports the current phase, epic/story progress, and outstanding gates โ€” then dispatches the right skill for the next step. If no state file exists, it initializes a fresh session from `context-resolution`.
111
+
112
+ ### Phase Gating
113
+
114
+ Hard gates are enforced at every phase transition. The agent reads `.cadet/state.json โ†’ gates` before advancing and **blocks** the transition if any required gate is `false`. Gates cannot be skipped without an explicit user-directed exception recorded in `changeHistory`.
115
+
116
+ | Transition | Required Gates |
117
+ |---|---|
118
+ | implementation โ†’ review | `testsPassed`, `compileCheckConfirmed`, `unityAnalyzerClean`, `storyTrackingUpdated` |
119
+ | review โ†’ validation | `codeReviewCompleted`, `securityReviewPassed`, `acceptanceCriteriaValidated` |
120
+ | validation โ†’ closed | `designArtifactSyncConfirmed` |
121
+
56
122
  ## Examples
57
123
 
58
124
  ### GitHub Copilot
59
125
  Run `npx cadet-agent@latest init` in your Unity project root, then open the repo in VS Code.
60
126
 
61
- **Agent mode:** Select the **Cadet Agent** agent from the agent picker in Copilot Chat. The agent definition at `.github/agents/cadet.agent.md` provides focused instructions and tool configuration.
127
+ **Agent mode:** Select the **Cadet Agent** agent from the agent picker in Copilot Chat. The agent definition at `.github/agents/cadet.agent.md` loads the thin directive in `.cadet/agent/core/cadet-agent.md` and dispatches scoped skills.
62
128
 
63
129
  ```text
64
130
  [Describe your game dev task...]
65
131
  ```
66
132
 
67
- Cadet Agent will use the shared framework in `.cadet/agent/core` to route the conversation through learner calibration, bootstrap checks, and planning.
133
+ Cadet Agent will classify the change, check `.cadet/state.json` for blocking gates, and invoke the appropriate skill.
134
+
135
+ **Skill mode:** For a specific workflow phase, use the matching slash command so the skill becomes the primary instruction context:
136
+
137
+ ```text
138
+ /cadet-requirements
139
+ create a requirements doc for a kart handling prototype
140
+ ```
141
+
142
+ ```text
143
+ /cadet-review
144
+ review the PR at https://github.com/... or review story-1 in epic-1-player-movement
145
+ ```
68
146
 
69
147
  **Review mode:** After the Cadet Agent completes a task, select the **Cadet Agent Reviewer** from the agent picker. Provide the task, story, or PR to review:
70
148
 
@@ -101,8 +179,12 @@ If a specific game repository needs local conventions, add a policy file under `
101
179
  ## Package Output
102
180
  Running `./package-agent.ps1` produces `cadet-agent.zip` with this layout:
103
181
  - `.cadet/agent/core/`
182
+ - `.cadet/agent/core/skills/`
183
+ - `.cadet/agent/core/templates/`
104
184
  - `.github/agents/cadet.agent.md`
105
185
  - `.github/agents/cadet-agent-reviewer.agent.md`
186
+ - `.github/prompts/cadet-*.prompt.md`
187
+ - `.github/hooks/`
106
188
  - `.cursor/rules/cadet-agent.md`
107
189
  - `.continue/rules/cadet-agent.md`
108
190
  - `.claude/skills/cadet-agent.md`
package/package.json CHANGED
@@ -1,35 +1,35 @@
1
- {
2
- "name": "cadet-agent",
3
- "version": "0.15.4",
4
- "description": "Cross-IDE agent framework for Unity/C# game-development โ€” one-command install",
5
- "type": "module",
6
- "bin": {
7
- "cadet-agent": "bin/cli.mjs"
8
- },
9
- "scripts": {
10
- "test": "node --test test/*.test.mjs"
11
- },
12
- "files": [
13
- "bin/",
14
- "src/"
15
- ],
16
- "keywords": [
17
- "cadet",
18
- "cadet-agent",
19
- "unity",
20
- "game-development",
21
- "ai-agent",
22
- "copilot",
23
- "cursor",
24
- "claude-code"
25
- ],
26
- "license": "CC-BY-4.0",
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/naishtech/cadet-agent.git"
30
- },
31
- "homepage": "https://github.com/naishtech/cadet-agent#readme",
32
- "engines": {
33
- "node": ">=18.0.0"
34
- }
35
- }
1
+ {
2
+ "name": "cadet-agent",
3
+ "version": "0.17.0",
4
+ "description": "Cross-IDE agent framework for Unity/C# game-development โ€” one-command install",
5
+ "type": "module",
6
+ "bin": {
7
+ "cadet-agent": "bin/cli.mjs"
8
+ },
9
+ "scripts": {
10
+ "test": "node --test test/*.test.mjs"
11
+ },
12
+ "files": [
13
+ "bin/",
14
+ "src/"
15
+ ],
16
+ "keywords": [
17
+ "cadet",
18
+ "cadet-agent",
19
+ "unity",
20
+ "game-development",
21
+ "ai-agent",
22
+ "copilot",
23
+ "cursor",
24
+ "claude-code"
25
+ ],
26
+ "license": "CC-BY-4.0",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/naishtech/cadet-agent.git"
30
+ },
31
+ "homepage": "https://github.com/naishtech/cadet-agent#readme",
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ }
35
+ }
package/src/upgrades.mjs CHANGED
@@ -35,17 +35,14 @@ function deletePath(targetDir, relativePath) {
35
35
 
36
36
  // โ”€โ”€ Upgrade registry โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
37
37
 
38
- // Key = FROM version. Each upgrade runs when upgrading FROM a version
39
- // older than or equal to the key, TO a version newer than the key.
40
- // Upgrade functions receive (targetDir) and return string[] of deleted paths.
38
+ // Add upgrade entries when removing/renaming managed paths.
39
+ // Key = FROM version. Example:
40
+ // '0.17.0': (targetDir) => [
41
+ // ...deletePath(targetDir, '.cadet/some-old-dir'),
42
+ // ...deletePath(targetDir, '.github/old-agent.agent.md'),
43
+ // ],
41
44
 
42
- const upgrades = {
43
- '0.15.3': (targetDir) => [
44
- ...deletePath(targetDir, '.cadet/orchestrator'),
45
- ...deletePath(targetDir, '.github/prompts'),
46
- ...deletePath(targetDir, 'AGENTS.md'),
47
- ],
48
- };
45
+ const upgrades = {};
49
46
 
50
47
  // โ”€โ”€ Runner โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
51
48