spawnpack 0.1.8 → 0.1.9

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
@@ -20,7 +20,7 @@ It generates BP/RP structure, optional Script API setup, optional rgl integratio
20
20
  - Optional AI setup:
21
21
  - `CLAUDE.md` for Claude
22
22
  - `AGENTS.md` for Other
23
- - `.mcp.json`
23
+ - `.mcp.json` with keyless MCP servers
24
24
 
25
25
  ## Runtime Requirement
26
26
 
@@ -97,6 +97,18 @@ Depending on your choices, Spawnpack can generate:
97
97
  - `CLAUDE.md`
98
98
  - `AGENTS.md`
99
99
  - `.mcp.json`
100
+
101
+ ## AI MCP setup
102
+
103
+ When AI setup is enabled, Spawnpack generates an `.mcp.json` that works out of the box without API keys.
104
+
105
+ Generated MCP servers currently include:
106
+
107
+ - Exa hosted MCP (`https://mcp.exa.ai/mcp`) for free, rate-limited web/documentation search
108
+ - `grep_app` for code search
109
+ - `context7` for library documentation context
110
+
111
+ You can add your own Exa API key later if you need higher Exa limits, but it is not required for the generated scaffold.
100
112
 
101
113
  ## Marketplace structure mode
102
114
 
@@ -139,6 +151,7 @@ bun run build
139
151
  The npm package is configured to publish only:
140
152
 
141
153
  - `dist/spawnpack.js`
154
+ - `bin/spawnpack.js`
142
155
  - `templates/CLAUDE.md`
143
156
  - `templates/AGENTS.md`
144
157
  - `README.md`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spawnpack",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Minecraft Bedrock addon project generator — scaffold your BP+RP in seconds",
5
5
  "author": "veedy-dev",
6
6
  "license": "MIT",
@@ -160,6 +160,37 @@ For non-trivial changes: pause and ask "is there a more elegant way?" If a fix f
160
160
  Write code that reads like a human wrote it. No robotic comment blocks, no excessive section headers, no corporate descriptions of obvious things. If three experienced devs would all write it the same way, that's the way.
161
161
  </behavior>
162
162
 
163
+ <code_style name="boring_durable_addon_code" priority="high">
164
+ Prefer code that is easy for an add-on developer to read top-to-bottom. Use boring, linear code as the default; add durability machinery only at persistence, async timing, entity lifecycle, duplication, or data-loss boundaries.
165
+
166
+ Style rules:
167
+ - Write linear, imperative code by default: do A, then B, then C.
168
+ - Prefer guard clauses and early returns over nested branching.
169
+ - Keep behavior close to where it happens.
170
+ - Avoid framework-like abstractions unless they clearly reduce repeated complexity.
171
+ - Prefer explicit state names over clever generic names.
172
+ - Make the happy path obvious.
173
+ - Split code by real gameplay/lifecycle responsibility, not by abstract pattern.
174
+ - Do not hide important game-state transitions behind vague helpers.
175
+ - If durability/data-loss protection requires complexity, isolate it behind a small, boring API.
176
+ - Keep normal gameplay code simple even when the persistence/lifecycle layer underneath is more defensive.
177
+ - Do not copy another contributor's style blindly; use their readability as a reference while preserving correctness.
178
+ - Prefer one obvious source of truth for each piece of state.
179
+ - Before adding a new helper/class/system, ask: "Will this make the next maintainer understand the code faster?"
180
+ </code_style>
181
+
182
+ <implementation_preference name="minimal_safe_patch" priority="high">
183
+ When fixing bugs:
184
+ 1. First find the smallest clear fix near the bug.
185
+ 2. Add stronger safety only where data loss, duplication, or invalid world state can happen.
186
+ 3. Avoid broad lifecycle rewrites unless the current lifecycle is the root cause.
187
+ 4. If a durable solution needs more machinery, keep the public flow simple and document the responsibility through naming, not comments.
188
+ </implementation_preference>
189
+
190
+ <behavior name="use_simplify_skill_for_maintainability" priority="high">
191
+ Use the `simplify` skill for maintainability, not only cleanup. When the user asks to simplify, clean up, refactor for readability, reduce complexity, or make code easier to maintain, load `simplify` before planning or editing. For non-trivial implementation work, use `simplify` as a post-implementation review pass before final verification: check whether the new code can be made more obvious, boring, local, and behavior-preserving. In orchestrated workflows, explicitly include this maintainability review after implementation and before reporting completion. For broad codebase cleanup, audit first, propose small phases, and wait for approval before editing.
192
+ </behavior>
193
+
163
194
  <behavior name="dead_code_hygiene" priority="medium">
164
195
  After refactoring or implementing changes:
165
196
  - Identify code that is now unreachable
@@ -160,6 +160,37 @@ For non-trivial changes: pause and ask "is there a more elegant way?" If a fix f
160
160
  Write code that reads like a human wrote it. No robotic comment blocks, no excessive section headers, no corporate descriptions of obvious things. If three experienced devs would all write it the same way, that's the way.
161
161
  </behavior>
162
162
 
163
+ <code_style name="boring_durable_addon_code" priority="high">
164
+ Prefer code that is easy for an add-on developer to read top-to-bottom. Use boring, linear code as the default; add durability machinery only at persistence, async timing, entity lifecycle, duplication, or data-loss boundaries.
165
+
166
+ Style rules:
167
+ - Write linear, imperative code by default: do A, then B, then C.
168
+ - Prefer guard clauses and early returns over nested branching.
169
+ - Keep behavior close to where it happens.
170
+ - Avoid framework-like abstractions unless they clearly reduce repeated complexity.
171
+ - Prefer explicit state names over clever generic names.
172
+ - Make the happy path obvious.
173
+ - Split code by real gameplay/lifecycle responsibility, not by abstract pattern.
174
+ - Do not hide important game-state transitions behind vague helpers.
175
+ - If durability/data-loss protection requires complexity, isolate it behind a small, boring API.
176
+ - Keep normal gameplay code simple even when the persistence/lifecycle layer underneath is more defensive.
177
+ - Do not copy another contributor's style blindly; use their readability as a reference while preserving correctness.
178
+ - Prefer one obvious source of truth for each piece of state.
179
+ - Before adding a new helper/class/system, ask: "Will this make the next maintainer understand the code faster?"
180
+ </code_style>
181
+
182
+ <implementation_preference name="minimal_safe_patch" priority="high">
183
+ When fixing bugs:
184
+ 1. First find the smallest clear fix near the bug.
185
+ 2. Add stronger safety only where data loss, duplication, or invalid world state can happen.
186
+ 3. Avoid broad lifecycle rewrites unless the current lifecycle is the root cause.
187
+ 4. If a durable solution needs more machinery, keep the public flow simple and document the responsibility through naming, not comments.
188
+ </implementation_preference>
189
+
190
+ <behavior name="use_simplify_skill_for_maintainability" priority="high">
191
+ Use the `simplify` skill for maintainability, not only cleanup. When the user asks to simplify, clean up, refactor for readability, reduce complexity, or make code easier to maintain, load `simplify` before planning or editing. For non-trivial implementation work, use `simplify` as a post-implementation review pass before final verification: check whether the new code can be made more obvious, boring, local, and behavior-preserving. In orchestrated workflows, explicitly include this maintainability review after implementation and before reporting completion. For broad codebase cleanup, audit first, propose small phases, and wait for approval before editing.
192
+ </behavior>
193
+
163
194
  <behavior name="dead_code_hygiene" priority="medium">
164
195
  After refactoring or implementing changes:
165
196
  - Identify code that is now unreachable