mustflow 2.115.5 → 2.115.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/package.json +1 -1
- package/templates/default/i18n.toml +51 -21
- package/templates/default/locales/en/.mustflow/docs/agent-workflow.md +13 -1
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +15 -7
- package/templates/default/locales/en/.mustflow/skills/ada-code-change/SKILL.md +293 -0
- package/templates/default/locales/en/.mustflow/skills/astro-code-change/SKILL.md +10 -2
- package/templates/default/locales/en/.mustflow/skills/completion-evidence-gate/SKILL.md +14 -1
- package/templates/default/locales/en/.mustflow/skills/core-web-vitals-field-review/SKILL.md +2 -2
- package/templates/default/locales/en/.mustflow/skills/deno-code-change/SKILL.md +291 -0
- package/templates/default/locales/en/.mustflow/skills/dependency-upgrade-review/SKILL.md +12 -6
- package/templates/default/locales/en/.mustflow/skills/elysia-code-change/SKILL.md +3 -3
- package/templates/default/locales/en/.mustflow/skills/hono-code-change/SKILL.md +2 -2
- package/templates/default/locales/en/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +23 -12
- package/templates/default/locales/en/.mustflow/skills/nestjs-code-change/SKILL.md +5 -7
- package/templates/default/locales/en/.mustflow/skills/node-code-change/SKILL.md +2 -2
- package/templates/default/locales/en/.mustflow/skills/pascal-code-change/SKILL.md +301 -0
- package/templates/default/locales/en/.mustflow/skills/php-code-change/SKILL.md +327 -0
- package/templates/default/locales/en/.mustflow/skills/python-code-change/SKILL.md +11 -7
- package/templates/default/locales/en/.mustflow/skills/routes.toml +30 -0
- package/templates/default/locales/en/.mustflow/skills/skill-authoring/SKILL.md +35 -9
- package/templates/default/locales/en/.mustflow/skills/skill-refresh/SKILL.md +10 -1
- package/templates/default/locales/en/.mustflow/skills/source-freshness-check/SKILL.md +13 -6
- package/templates/default/locales/en/.mustflow/skills/svelte-code-change/SKILL.md +16 -5
- package/templates/default/locales/en/.mustflow/skills/tauri-code-change/SKILL.md +3 -2
- package/templates/default/locales/en/.mustflow/skills/threejs-code-change/SKILL.md +207 -0
- package/templates/default/locales/en/.mustflow/skills/typescript-code-change/SKILL.md +23 -16
- package/templates/default/locales/en/.mustflow/skills/version-freshness-check/SKILL.md +12 -6
- package/templates/default/locales/en/AGENTS.md +8 -1
- package/templates/default/manifest.toml +36 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.deno-code-change
|
|
3
|
+
locale: en
|
|
4
|
+
canonical: true
|
|
5
|
+
revision: 2
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: deno-code-change
|
|
9
|
+
description: Apply this skill when Deno runtime code, deno.json, permissions, deno.lock, JSR or npm imports, tasks, tests, Deno.serve, Workers, WebSockets, compile or desktop output, Node compatibility, Deno Deploy, or Deno-related CI and release behavior are created, changed, reviewed, migrated, or upgraded.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.deno-code-change
|
|
15
|
+
command_intents:
|
|
16
|
+
- changes_status
|
|
17
|
+
- changes_diff_summary
|
|
18
|
+
- lint
|
|
19
|
+
- build
|
|
20
|
+
- test_related
|
|
21
|
+
- test
|
|
22
|
+
- docs_validate_fast
|
|
23
|
+
- test_release
|
|
24
|
+
- mustflow_check
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Deno Code Change
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Preserve Deno runtime, permission, module graph, package, type-check, task, test, server, Worker,
|
|
33
|
+
compiled artifact, deployment, and release contracts while making focused changes. Do not treat
|
|
34
|
+
Web-standard APIs, Node compatibility, a successful local run, or a passing CI job as proof that
|
|
35
|
+
the same code has identical permissions, native dependencies, runtime versions, state, and
|
|
36
|
+
deployment behavior everywhere.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: use-when -->
|
|
39
|
+
## Use When
|
|
40
|
+
|
|
41
|
+
- Deno TypeScript or JavaScript, `deno.json`, `deno.jsonc`, `deno.lock`, import maps,
|
|
42
|
+
workspaces, tasks, permissions, lint, formatting, tests, coverage, compile, bundle, desktop, or
|
|
43
|
+
package metadata changes.
|
|
44
|
+
- `Deno.serve`, HTTP, WebSocket, Worker, subprocess, FFI, filesystem, environment, network,
|
|
45
|
+
cancellation, async concurrency, KV, Cache API, or storage behavior changes.
|
|
46
|
+
- JSR, `npm:` imports, npm lifecycle scripts, Node compatibility, native addons, package-manager
|
|
47
|
+
migration, lockfile import, or Deno-backed Node shims change.
|
|
48
|
+
- Deno Deploy, deployment config, build and runtime contexts, preview or production timelines,
|
|
49
|
+
migrations, environment variables, regions, scaling, or CI/CD changes.
|
|
50
|
+
|
|
51
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
52
|
+
## Do Not Use When
|
|
53
|
+
|
|
54
|
+
- The task is ordinary TypeScript or JavaScript with no Deno runtime, package, permission, task,
|
|
55
|
+
test, compile, or deployment boundary.
|
|
56
|
+
- Node, Bun, Cloudflare Workers, another edge runtime, or a framework-owned adapter is the only
|
|
57
|
+
runtime changed; use its matching skill.
|
|
58
|
+
- The task asks only for the current Deno version; use source-freshness guidance unless code or
|
|
59
|
+
durable documentation changes too.
|
|
60
|
+
|
|
61
|
+
<!-- mustflow-section: required-inputs -->
|
|
62
|
+
## Required Inputs
|
|
63
|
+
|
|
64
|
+
- Deno version sources, supported runtime range, `deno.json`, lockfile, import map, workspace,
|
|
65
|
+
task definitions, package-manager files, environment policy, CI matrix, and deployment target.
|
|
66
|
+
- Module ledger: local, JSR, npm, URL, Node built-in, generated, vendored, and dynamic imports;
|
|
67
|
+
lock and cache policy; lifecycle scripts; native dependencies; and runtime adapter paths.
|
|
68
|
+
- Permission ledger: read, write, net, env, run, ffi, import, system, prompt, permission sets,
|
|
69
|
+
Worker inheritance, broker usage, audit evidence, OS isolation, and untrusted-code boundary.
|
|
70
|
+
- Execution ledger: run versus check, task graph, test selection, Worker ownership, server isolate
|
|
71
|
+
count, cancellation, queue bounds, storage ownership, compile identity, and shutdown behavior.
|
|
72
|
+
- Deploy ledger when relevant: Classic versus current platform, builder and runtime versions,
|
|
73
|
+
source versus dashboard configuration, contexts, timelines, persistent state, migrations,
|
|
74
|
+
regions, secrets, preview/production smoke, and rollback.
|
|
75
|
+
|
|
76
|
+
<!-- mustflow-section: preconditions -->
|
|
77
|
+
## Preconditions
|
|
78
|
+
|
|
79
|
+
- Read repository-pinned Deno and deployment evidence before using recent APIs, flags, task fields,
|
|
80
|
+
permission behavior, Node compatibility, desktop features, or Deploy behavior.
|
|
81
|
+
- Refresh official Deno, JSR, and Deploy sources before preserving exact latest-version, runtime,
|
|
82
|
+
region, support, deprecation, migration, or shutdown claims. Treat the 2026-07-11 source material
|
|
83
|
+
as a snapshot, not a permanent current-state contract.
|
|
84
|
+
- Separate stable runtime status from feature status. Desktop packaging, Worker permission options,
|
|
85
|
+
permission brokers, flags, and deployment behavior can have different stability and availability.
|
|
86
|
+
- Determine whether the target is a local CLI, server, library, compiled binary, desktop app,
|
|
87
|
+
self-hosted service, or Deno Deploy app before changing configuration or permissions.
|
|
88
|
+
|
|
89
|
+
<!-- mustflow-section: allowed-edits -->
|
|
90
|
+
## Allowed Edits
|
|
91
|
+
|
|
92
|
+
- Make focused Deno source, config, lockfile, tests, docs, package, CI, compile, and Deploy changes
|
|
93
|
+
required by the task.
|
|
94
|
+
- Add explicit permission, module, type-check, test, cancellation, storage, migration, and
|
|
95
|
+
deployment verification when the changed behavior needs it.
|
|
96
|
+
- Preserve repository-pinned runtime, frozen install, lockfile, and compatibility paths unless the
|
|
97
|
+
task explicitly accepts a migration.
|
|
98
|
+
- Do not add `-A`, broad `--allow-*`, unrestricted lifecycle scripts, floating runtime tags,
|
|
99
|
+
implicit network imports, native execution, or dashboard-only production changes as shortcuts.
|
|
100
|
+
|
|
101
|
+
<!-- mustflow-section: procedure -->
|
|
102
|
+
## Procedure
|
|
103
|
+
|
|
104
|
+
1. **Classify runtime, feature, and deployment tracks.**
|
|
105
|
+
- Record the repository-pinned Deno version, proposed target, feature stability, CI version,
|
|
106
|
+
compile target, and deployment builder/runtime separately.
|
|
107
|
+
- Recheck every dated status before use. In the 2026-07-11 snapshot, Deno 2.9 behavior and the
|
|
108
|
+
announced 2026-07-20 Deploy Classic shutdown were current source facts; neither is an
|
|
109
|
+
undated future guarantee.
|
|
110
|
+
- Treat a Node compatibility version as a compatibility target, not proof that Deno is running
|
|
111
|
+
a Node binary or implements every Node detail.
|
|
112
|
+
2. **Separate execution from type checking and output.**
|
|
113
|
+
- Deno can execute TypeScript without proving the full type contract. Keep `deno check`, editor
|
|
114
|
+
diagnostics, tests, declaration output, framework checks, and runtime execution as distinct
|
|
115
|
+
evidence surfaces.
|
|
116
|
+
- Check compiler options, JSX, imports, DOM/library types, npm package types, generated types,
|
|
117
|
+
and package exports against the declared Deno track.
|
|
118
|
+
- Do not infer runtime globals from successful Node ambient type checking. Import Node globals
|
|
119
|
+
such as `Buffer` from their explicit `node:` modules when runtime availability matters.
|
|
120
|
+
- For CommonJS interop, inspect extension, nearest package `type`, conditional exports, selected
|
|
121
|
+
entry, and the entire ESM graph. A synchronous `require()` boundary cannot consume an ESM
|
|
122
|
+
graph containing top-level await merely because Deno supports other ESM-from-CJS cases.
|
|
123
|
+
- Do not infer command authority from `deno.json` tasks. Map project commands to configured
|
|
124
|
+
mustflow intents.
|
|
125
|
+
3. **Own the module graph and dependency supply chain.**
|
|
126
|
+
- Distinguish static and analyzable imports from runtime-computed imports and ordinary network
|
|
127
|
+
access. Permission denial alone does not prove the initial module graph cannot load code.
|
|
128
|
+
- Use lockfiles, frozen or cached-only policy, approved import hosts, vendoring, and exact
|
|
129
|
+
package-manager ownership where the repository contract requires reproducibility.
|
|
130
|
+
- Keep JSR, `npm:`, npm aliases, import maps, `.npmrc`, lockfiles, workspace catalogs, and
|
|
131
|
+
runtime adapter subpaths synchronized. Do not mix independently pinned Hono core and Deno
|
|
132
|
+
adapter versions.
|
|
133
|
+
- Treat `nodeModulesDir` and the node-modules linker as installation architecture, not local
|
|
134
|
+
convenience. Choose none, auto, or manual from real disk-layout, framework, lifecycle-script,
|
|
135
|
+
package-manager, and native-addon needs; use hoisting only for a proven compatibility boundary.
|
|
136
|
+
- Review npm lifecycle scripts and native addons explicitly. A package resolving successfully
|
|
137
|
+
does not prove its install script ran. Native addons can require a local `node_modules`,
|
|
138
|
+
narrowly approved install scripts, runtime FFI permission, public Node-API compatibility, and
|
|
139
|
+
an artifact built for the target OS and architecture.
|
|
140
|
+
- Inspect conditional `exports` and actual selected entries when Node and Deno differ. Prefer
|
|
141
|
+
explicit `node:` built-in specifiers over bare names whose resolution can be shadowed by
|
|
142
|
+
imports or package dependencies.
|
|
143
|
+
- Treat ignored published `file:` or `link:` dependencies and undeclared hoisted dependencies
|
|
144
|
+
as package defects. Do not hide them permanently by switching the whole workspace to hoisted layout.
|
|
145
|
+
- Determine the configuration owner from the command working directory and explicit `--config`
|
|
146
|
+
contract, not from the source entrypoint path. Keep local tooling, CI, IDE, and deployment on
|
|
147
|
+
the same intended root.
|
|
148
|
+
- Distinguish inline `imports` from standard external import maps, exact aliases from slash
|
|
149
|
+
prefixes, and narrow migration scopes from global dependency policy. Do not use aliases to
|
|
150
|
+
bypass workspace package `name` and `exports` boundaries.
|
|
151
|
+
- Keep resolver policy such as lock, linker, node-modules mode, minimum dependency age, script
|
|
152
|
+
approval, links, and vendoring at the workspace owner. Treat catalogs as npm version policy,
|
|
153
|
+
not import aliases, and avoid competing catalog owners.
|
|
154
|
+
- Review a Deno lockfile as additive resolution history. Presence does not prove current reachability;
|
|
155
|
+
unexpected additions still require supply-chain review, and routine feature changes should
|
|
156
|
+
not delete and recreate the lockfile merely to remove old entries.
|
|
157
|
+
4. **Review permissions as process-to-OS policy.**
|
|
158
|
+
- Separate module import permission from runtime file, network, environment, subprocess, FFI,
|
|
159
|
+
and system access. Record allow and deny scopes, host/port semantics, paths, and prompt policy.
|
|
160
|
+
- Treat dependencies in one isolate as sharing the application's granted permissions. Deno
|
|
161
|
+
permissions are not per-package isolation.
|
|
162
|
+
- Treat Worker permissions as inherited unless the supported runtime and explicit Worker
|
|
163
|
+
configuration prove they are reduced. A Worker thread alone is not a sandbox.
|
|
164
|
+
- Treat `--allow-run`, FFI, native addons, writable executable paths, dynamic-loader variables,
|
|
165
|
+
and permission brokers as escape or authority boundaries requiring OS-level isolation.
|
|
166
|
+
- Use non-interactive explicit policy in CI and production. Permission prompts and runtime
|
|
167
|
+
revocation are not durable deployment access control.
|
|
168
|
+
5. **Review tasks, tests, and caching.**
|
|
169
|
+
- Keep task inputs, outputs, environment variables, dependencies, platform, and external-state
|
|
170
|
+
assumptions explicit before enabling cached task results.
|
|
171
|
+
- Do not cache work that depends on undeclared time, network, database, secret, or service state.
|
|
172
|
+
- Use changed, related, retry, repeat, shard, snapshot, leak-trace, coverage, and concurrency
|
|
173
|
+
features only when supported by the pinned runtime and repository test contract.
|
|
174
|
+
- Preserve flaky-test reporting. A retry that later passes is evidence, not a clean first-pass run.
|
|
175
|
+
- Decide whether type checking belongs to the complete `deno check` graph or the test run. Use a
|
|
176
|
+
no-check test path only after every production, test, CLI, generated, and conditional entrypoint
|
|
177
|
+
is covered by the separate check.
|
|
178
|
+
- Treat changed, related, filtered, and sharded tests as fast feedback, not completeness proof.
|
|
179
|
+
Dynamic imports, environment, databases, fixtures, shared schemas, and uneven large test files
|
|
180
|
+
can escape static selection or produce unbalanced shards.
|
|
181
|
+
- Isolate parallel tests by port, temporary directory, database or KV namespace, account, cache
|
|
182
|
+
key, and coverage directory. Preserve shuffle seeds and report retries as flakiness evidence.
|
|
183
|
+
- Refresh sanitizer defaults for the pinned Deno version. In the 2026-07-11 source snapshot,
|
|
184
|
+
resource and operation sanitizers were no longer safe to assume enabled by default; enable
|
|
185
|
+
explicit resource, operation, exit, timeout, or leak-trace checks where lifecycle correctness
|
|
186
|
+
depends on them.
|
|
187
|
+
- Per-test permission configuration can only narrow the CLI-granted ceiling; it cannot create
|
|
188
|
+
authority the test process never received. Keep permission-free library tests separate from
|
|
189
|
+
privileged adapters instead of granting the suite all permissions.
|
|
190
|
+
- Keep raw coverage collection separate from report generation and shard outputs separate until
|
|
191
|
+
merge. Review line, branch, and function gaps rather than optimizing one aggregate percentage.
|
|
192
|
+
6. **Review HTTP, WebSocket, Worker, and async behavior.**
|
|
193
|
+
- Measure CPU-bound parsing, serialization, compression, regex, crypto, and transforms separately
|
|
194
|
+
from async I/O. `async` does not move CPU work off the isolate.
|
|
195
|
+
- Use bounded Worker pools and bounded queues for CPU work. Account for structured-clone cost,
|
|
196
|
+
transferable ownership, Worker permission inheritance, graceful shutdown, and idempotent side effects.
|
|
197
|
+
- Treat parallel server isolates as independent memory. Keep exact sessions, locks, rate limits,
|
|
198
|
+
WebSocket rooms, and counters in an appropriate shared external store.
|
|
199
|
+
- Propagate `AbortSignal` through supported operations. Promise timeout only stops waiting; it
|
|
200
|
+
does not cancel the original work.
|
|
201
|
+
- Bound `Promise.all`-style concurrency by connection pools, rate limits, memory, descriptors,
|
|
202
|
+
and queue capacity.
|
|
203
|
+
- Preserve stream backpressure end to end. Avoid unbounded buffering, unnecessary string/byte
|
|
204
|
+
conversion, and per-request custom HTTP clients; reuse owned clients and close them at shutdown.
|
|
205
|
+
- Cancel or consume unused response bodies, and combine client disconnect with internal deadline
|
|
206
|
+
signals when downstream APIs support cancellation.
|
|
207
|
+
- Batch Deno KV reads and atomic writes around real access patterns, and measure FFI dispatch
|
|
208
|
+
overhead before marking short native calls nonblocking.
|
|
209
|
+
- Verify automatic compression, HTTP/2, WebSocket upgrade, request-abort semantics, proxy
|
|
210
|
+
buffering, backpressure, resource closure, and graceful shutdown on the pinned runtime and
|
|
211
|
+
real deployment path.
|
|
212
|
+
7. **Review compile and desktop artifacts.**
|
|
213
|
+
- Treat app name, storage directories, included files, permissions, target OS/architecture,
|
|
214
|
+
WebView versus embedded browser engine, signing, installer format, update behavior, and
|
|
215
|
+
persistent application identity as public contracts.
|
|
216
|
+
- Do not assume cross-built desktop output renders identically across system WebViews. Keep
|
|
217
|
+
renderer choice, asset paths, HMR/dev behavior, binary size, and target smoke tests explicit.
|
|
218
|
+
- Ensure compiled local storage, caches, or KV identity cannot collide across unrelated apps.
|
|
219
|
+
8. **Review Deno Deploy as a separate platform contract.**
|
|
220
|
+
- Identify Classic versus the current Deploy platform before applying any guidance. Do not
|
|
221
|
+
assume projects, KV data, environment variables, domains, tokens, preview URLs, or rollback
|
|
222
|
+
state migrate automatically.
|
|
223
|
+
- Separate builder, development, preview, production, and runtime contexts. Verify exact runtime
|
|
224
|
+
and command availability instead of assuming local or moving CI versions match Deploy.
|
|
225
|
+
- Treat local filesystem and module memory as instance-local and replaceable. Keep durable
|
|
226
|
+
correctness state, distributed locks, sessions, rooms, and migration coordination external.
|
|
227
|
+
- Determine whether source configuration replaces dashboard configuration. Keep the owning
|
|
228
|
+
source explicit and report dashboard-only fields that cannot be reproduced in source.
|
|
229
|
+
- Make pre-deploy migrations idempotent and locked. A preview warmup does not prove production
|
|
230
|
+
context, production data, or the production URL.
|
|
231
|
+
- Verify production after revision activation and retain a tested rollback route.
|
|
232
|
+
9. **Review JSR publication and downstream consumers.**
|
|
233
|
+
- Keep package manager and JSR/npm compatibility representation explicit. Test Deno source
|
|
234
|
+
consumption and generated Node/npm JavaScript and declaration consumption separately.
|
|
235
|
+
- Use explicit public return and property types where JSR slow-type rules or declaration
|
|
236
|
+
generation require them.
|
|
237
|
+
- Treat publication as immutable. Verify version, OIDC/provenance, exact registry visibility,
|
|
238
|
+
bounded propagation retry, consumer installation, and tag order before completion.
|
|
239
|
+
10. **Verify the real contract.**
|
|
240
|
+
- Cover type check, tests, permissions, frozen dependency resolution, server cancellation,
|
|
241
|
+
repeated lifecycle, compiled output, target architecture, and deployment smoke according to
|
|
242
|
+
the changed surface.
|
|
243
|
+
- Report missing configured intents rather than running raw servers, deployment commands,
|
|
244
|
+
installers, network fetches, or publishing commands.
|
|
245
|
+
|
|
246
|
+
<!-- mustflow-section: postconditions -->
|
|
247
|
+
## Postconditions
|
|
248
|
+
|
|
249
|
+
- Runtime, type-check, module graph, permissions, tests, tasks, Workers, storage, compile output,
|
|
250
|
+
deployment, and publication each have an explicit owner and evidence boundary.
|
|
251
|
+
- Local Deno, Node compatibility, CI, builder, and Deploy runtime versions are not collapsed into
|
|
252
|
+
one generic Deno environment.
|
|
253
|
+
- Permission grants do not masquerade as package isolation, hostile-code sandboxing, resource
|
|
254
|
+
limits, or deployment authorization.
|
|
255
|
+
- State and migrations remain correct across isolates, instances, contexts, regions, retries, and rollback.
|
|
256
|
+
|
|
257
|
+
<!-- mustflow-section: verification -->
|
|
258
|
+
## Verification
|
|
259
|
+
|
|
260
|
+
Use configured oneshot intents that cover the changed scope:
|
|
261
|
+
|
|
262
|
+
- `changes_status`
|
|
263
|
+
- `changes_diff_summary`
|
|
264
|
+
- `lint`
|
|
265
|
+
- `build`
|
|
266
|
+
- `test_related`
|
|
267
|
+
- `test`
|
|
268
|
+
- `docs_validate_fast`
|
|
269
|
+
- `test_release`
|
|
270
|
+
- `mustflow_check`
|
|
271
|
+
|
|
272
|
+
<!-- mustflow-section: failure-handling -->
|
|
273
|
+
## Failure Handling
|
|
274
|
+
|
|
275
|
+
- If the Deno or Deploy track is unclear, preserve existing runtime and deployment behavior and
|
|
276
|
+
report the missing version or platform evidence.
|
|
277
|
+
- If a dependency requires an npm lifecycle script, native addon, Node binary, or unsupported
|
|
278
|
+
compatibility behavior, isolate and test that boundary instead of enabling all scripts globally.
|
|
279
|
+
- If permission reduction breaks startup, map the exact access from audit evidence; do not replace
|
|
280
|
+
the policy with `-A`.
|
|
281
|
+
- If a Deploy migration lacks data, domain, secret, smoke, or rollback evidence, keep the old path
|
|
282
|
+
active where still possible and report the migration as incomplete.
|
|
283
|
+
|
|
284
|
+
<!-- mustflow-section: output-format -->
|
|
285
|
+
## Output Format
|
|
286
|
+
|
|
287
|
+
- Deno runtime, feature, CI, compile, and Deploy tracks
|
|
288
|
+
- Module, package, permission, task, test, Worker, and state owners
|
|
289
|
+
- Compatibility, migration, deployment, and rollback decisions
|
|
290
|
+
- Verification evidence and configured intents run
|
|
291
|
+
- Skipped checks and remaining runtime, permission, package, native, or deployment risk
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.dependency-upgrade-review
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 7
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: dependency-upgrade-review
|
|
@@ -40,7 +40,7 @@ Review dependency upgrades as runtime, build, security, package, and generated-o
|
|
|
40
40
|
- A task claims a dependency change is "only patch", "only devDependency", "safe minor", "security-only", "transitive only", "lockfile only", or "no runtime change".
|
|
41
41
|
- A dependency update touches installation, publish output, generated clients, SDKs, native binaries, browser bundles, serverless or edge runtime, ESM/CJS/module format, Python markers, Go module graph, Cargo features, JVM dependency mediation, .NET target frameworks, Ruby/PHP/Swift lockfiles, Docker images, or CI actions.
|
|
42
42
|
- A Python runtime support floor, CI matrix, container image, `requires-python`, standard-library feature expectation, or security-default expectation changes as part of an upgrade.
|
|
43
|
-
- A TypeScript upgrade touches TypeScript 6 transition deprecations, TS6
|
|
43
|
+
- A TypeScript upgrade touches TypeScript 6 transition deprecations, TS6 JavaScript API compatibility, TypeScript 7 stable compiler adoption, `typescript@next` development comparison, native-preview comparison, `@typescript/typescript6`, `tsc6`, `typescript`, `@typescript/native-preview`, `tsgo`, compiler API consumers, declaration emit, framework typecheck wrappers, or editor language-service behavior.
|
|
44
44
|
|
|
45
45
|
<!-- mustflow-section: do-not-use-when -->
|
|
46
46
|
## Do Not Use When
|
|
@@ -101,8 +101,14 @@ Review dependency upgrades as runtime, build, security, package, and generated-o
|
|
|
101
101
|
11. Treat framework, plugin, code generator, formatter, linter, bundler, ORM, protobuf, OpenAPI, GraphQL, database driver, dev-server, browser-test, and test-runner upgrades as behavior changes when their output, config schema, plugin API, CLI flags, file-serving policy, privileged UI gates, or generated code can change.
|
|
102
102
|
12. For Python runtime upgrades, treat `requires-python`, CI matrices, base images, dependency markers, wheels, packaging output, standard-library API availability, and security-default changes as one compatibility contract. Review version-gated standard-library usage and changed defaults before assuming the upgrade is only a dependency resolution change.
|
|
103
103
|
13. For Python upgrades that adopt newer standard-library behavior, call out affected paths such as archive extraction, subprocess handling, async lifecycle, import/resource loading, typing surfaces, data-class shapes, and diagnostic flags. Keep fallbacks or compatibility wording when the repository still supports older interpreters.
|
|
104
|
-
14. For TypeScript upgrades,
|
|
105
|
-
|
|
104
|
+
14. For TypeScript upgrades, refresh official release and registry evidence before classifying the
|
|
105
|
+
compiler track. In the snapshot checked on 2026-07-11, TS7 stable used `typescript` and
|
|
106
|
+
`tsc`, TS6 JavaScript API compatibility used `@typescript/typescript6` and `tsc6`,
|
|
107
|
+
development builds used `typescript@next`, native preview used
|
|
108
|
+
`@typescript/native-preview` and `tsgo`, and `typescript@rc` was historical prerelease
|
|
109
|
+
evidence. Reclassify those tags when current registry metadata changes; never treat development
|
|
110
|
+
or preview packages as stable replacements merely because they are newer.
|
|
111
|
+
15. For TypeScript 6, review deprecations as TypeScript 7 removal risks. For TS7 stable, review compiler parity, declaration emit, watch/incremental, generated-output, and framework wrapper risks. Use `typescript@next` or `tsgo` only as optional comparison paths. Keep compiler API, transformer, ESLint, language-service plugin, and framework wrapper consumers on the TS6 API compatibility track until their owners explicitly support the TS7 API surface.
|
|
106
112
|
16. For new dependencies introduced by the upgrade, invoke the `dependency-reality-check` decision path: license, maintainer risk, provenance, lifecycle scripts, binary downloads, package age, transitive size, supply-chain risk, and replacement path.
|
|
107
113
|
17. For Docker base images and CI actions, review them as dependencies. Check image/action source, version pinning policy, digest use when required, runtime version changes, security patch reason, cache impact, and deployment smoke coverage.
|
|
108
114
|
18. Synchronize dependent surfaces: generated code, snapshots, mocks, fixtures, examples, SDK clients, OpenAPI or GraphQL artifacts, README install guidance, migration docs, changelog, Docker/CI docs, and package publish metadata.
|
|
@@ -117,7 +123,7 @@ Review dependency upgrades as runtime, build, security, package, and generated-o
|
|
|
117
123
|
- Direct and transitive changes are understood, not hidden behind lockfile volume.
|
|
118
124
|
- Runtime engine, peer dependency, optional/platform package, feature, module-format, generated-output, and publish-surface risks are classified.
|
|
119
125
|
- Python runtime upgrades classify standard-library availability, changed defaults, packaging output, and security-behavior impact.
|
|
120
|
-
- TypeScript compiler-track changes distinguish
|
|
126
|
+
- TypeScript compiler-track changes distinguish TS7 stable compiler adoption, TS6 JavaScript API compatibility, `typescript@next` development comparison, native-preview comparison, and historical prerelease evidence.
|
|
121
127
|
- Security fixes are narrow unless the user explicitly accepted a broader modernization.
|
|
122
128
|
- Advisory exploit preconditions are checked against local scripts, config, CI, containers, remote workspaces, and docs before an alert is dismissed as development-only or unreachable.
|
|
123
129
|
- Tests and scanners were not weakened to pass the upgrade.
|
|
@@ -148,7 +154,7 @@ Prefer the narrowest configured intent that proves the actual upgraded dependenc
|
|
|
148
154
|
- If tests fail after an upgrade, do not delete tests, skip tests, loosen assertions, lower coverage, disable scanners, or widen permissions unless the behavior contract intentionally changed and the report says so.
|
|
149
155
|
- If a security upgrade requires broad modernization, split the minimum patch from the modernization when possible.
|
|
150
156
|
- If generated output changes, regenerate from the official generator path and explain the generated diff. Do not hand-edit generated dependency output.
|
|
151
|
-
- If
|
|
157
|
+
- If `typescript@next` or native-preview verification is introduced, keep the repository's adopted stable compiler, TS6 API compatibility, and framework verification unless the repository explicitly adopts the new track and all compiler API, framework wrapper, declaration, and generated-output risks are covered.
|
|
152
158
|
- If configured verification is missing, report the missing command intent instead of inferring a package-manager command.
|
|
153
159
|
|
|
154
160
|
<!-- mustflow-section: output-format -->
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.elysia-code-change
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 4
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: elysia-code-change
|
|
@@ -74,7 +74,7 @@ Preserve Elysia schema-first runtime validation, type inference, plugin, auth, e
|
|
|
74
74
|
|
|
75
75
|
1. Read server entry, routes, plugins, schemas, auth, cookies, CORS, error handling, OpenAPI, Eden exports, runtime deployment config, and tests.
|
|
76
76
|
2. Build a route inventory for the changed surface.
|
|
77
|
-
3. Treat route
|
|
77
|
+
3. Treat route schemas as the primary contract for runtime validation and Eden inference. For OpenAPI, determine whether the project uses runtime schemas, `fromTypes()`, or both; when both are present, runtime schema takes precedence. Avoid duplicating contracts as unrelated interfaces or generated definitions.
|
|
78
78
|
4. Add or update schemas for every external input and meaningful response status, including non-2xx statuses.
|
|
79
79
|
5. For URL and header inputs, remember that params, query, and headers arrive as HTTP strings:
|
|
80
80
|
- use lower-case header schema keys;
|
|
@@ -109,7 +109,7 @@ Preserve Elysia schema-first runtime validation, type inference, plugin, auth, e
|
|
|
109
109
|
- the official Elysia OpenAPI plugin and its docs UI provider are not the same thing as the raw OpenAPI document;
|
|
110
110
|
- confirm the raw OpenAPI JSON path, UI provider, and access policy before telling SDK consumers where to read the spec;
|
|
111
111
|
- if `fromTypes()` or type generation is used, verify production and bundled builds can still read the required `.d.ts`, `projectRoot`, and `tsconfigPath`;
|
|
112
|
-
-
|
|
112
|
+
- for file uploads, review runtime file validation and OpenAPI conversion separately. Configure `mapJsonSchema` when a Standard Schema implementation cannot produce the required OpenAPI schema, and independently verify runtime file size, MIME, extension, and magic-number policy where those checks are required;
|
|
113
113
|
- remember `withHeader()` documents response headers; it does not enforce that the runtime sets them.
|
|
114
114
|
18. Review Eden Treaty separately from OpenAPI codegen:
|
|
115
115
|
- export `type App = typeof app` from the server boundary;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.hono-code-change
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 3
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: hono-code-change
|
|
@@ -83,7 +83,7 @@ Preserve Hono route registration, runtime adapter, middleware ordering, validati
|
|
|
83
83
|
9. For multipart uploads, large JSON, webhooks, raw-body signatures, and file routes, check parser shape, body limits, runtime limits, storage limits, repeated-field behavior, and raw request cloning before changing handlers.
|
|
84
84
|
10. Preserve typed route, RPC, and SDK inference by exporting the route chain actually used by `hc<AppType>()`, keeping handler responses on typed `c.json(payload, status)` paths, and avoiding broad `Context` handler extraction that drops path, validator, or response types.
|
|
85
85
|
11. Keep runtime validation schema, OpenAPI schema, response schema, generated SDKs, and Hono RPC types from becoming separate truths. Choose one canonical contract and verify drift with tests or snapshots when available.
|
|
86
|
-
12. Do not put Node-only, Bun-only, Cloudflare-only, Deno-only, Lambda-only, static-serving, connection-info, WebSocket, or filesystem APIs in shared route modules. Keep runtime entry files thin and pass plain config or adapter functions into shared app code.
|
|
86
|
+
12. Do not put Node-only, Bun-only, Cloudflare-only, Deno-only, Lambda-only, static-serving, connection-info, WebSocket, or filesystem APIs in shared route modules. Keep runtime entry files thin and pass plain config or adapter functions into shared app code. For Deno or JSR imports, keep the Hono core package, middleware, and runtime adapter subpaths on one compatible version; do not mix independently pinned Hono versions in the same app.
|
|
87
87
|
13. For streaming, SSE, WebSocket, cache, ETag, static file, and SSR or JSX routes, check cancellation, abort handling, backpressure, already-started-response errors, header retention, path traversal, cache key and `Vary`, repeated `Set-Cookie`, and adapter header normalization.
|
|
88
88
|
14. Choose configured verification intents that cover type checks, route tests, auth failure, validation failure, CORS/cookie/header behavior, streaming or WebSocket behavior, OpenAPI or SDK generation, and runtime env mocks when available.
|
|
89
89
|
|
package/templates/default/locales/en/.mustflow/skills/instruction-conflict-scope-check/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.instruction-conflict-scope-check
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 2
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: instruction-conflict-scope-check
|
|
@@ -25,7 +25,7 @@ metadata:
|
|
|
25
25
|
<!-- mustflow-section: purpose -->
|
|
26
26
|
## Purpose
|
|
27
27
|
|
|
28
|
-
Resolve conflicting instructions by
|
|
28
|
+
Resolve conflicting instructions by separating goal ownership, safety constraints, repository scope, command authority, evidence authority, and preferences before work proceeds.
|
|
29
29
|
|
|
30
30
|
<!-- mustflow-section: use-when -->
|
|
31
31
|
## Use When
|
|
@@ -47,6 +47,7 @@ Resolve conflicting instructions by narrowing authority, edit scope, command sco
|
|
|
47
47
|
## Required Inputs
|
|
48
48
|
|
|
49
49
|
- The conflicting instruction sources and the exact behavior they appear to require or forbid.
|
|
50
|
+
- The type of each claim: goal, safety constraint, repository scope, command authority, evidence claim, reporting rule, preference, or generated hint.
|
|
50
51
|
- The affected scope: repository root, nested project, file paths, command intents, verification, Git operation, migration, or report.
|
|
51
52
|
- The user's direct request and any newer clarifying message.
|
|
52
53
|
- Relevant command-intent contract entries and nearest `AGENTS.md` files for the affected paths.
|
|
@@ -69,19 +70,28 @@ Resolve conflicting instructions by narrowing authority, edit scope, command sco
|
|
|
69
70
|
<!-- mustflow-section: procedure -->
|
|
70
71
|
## Procedure
|
|
71
72
|
|
|
72
|
-
1.
|
|
73
|
+
1. Classify each instruction by authority dimension before comparing priority.
|
|
74
|
+
- Direct user instructions define the requested goal and newer user clarification supersedes older user intent for the same decision.
|
|
75
|
+
- Host safety and approval rules constrain how the goal may be executed; they are not optional preferences and cannot be displaced by a user request.
|
|
76
|
+
- The nearest repository instructions define repository-local edit and workflow scope.
|
|
77
|
+
- `.mustflow/config/commands.toml` is the sole repository command-authority source.
|
|
78
|
+
- Current source, tests, schemas, remote state, and configured verification provide evidence; generated summaries and caches are secondary evidence.
|
|
79
|
+
- Skills guide procedure and preferences supply defaults; neither grants command authority.
|
|
73
80
|
2. Identify the affected action: edit, read, verify, command run, commit, push, delete, migration, background process, browser launch, or final report.
|
|
74
|
-
3.
|
|
75
|
-
4.
|
|
76
|
-
5.
|
|
77
|
-
6.
|
|
78
|
-
7.
|
|
79
|
-
8.
|
|
81
|
+
3. Build an action-specific constraint set instead of one flat source ranking. Record which source requires, permits, narrows, or forbids the action and on which authority dimension.
|
|
82
|
+
4. Compare priority only within the same dimension. Across dimensions, satisfy all compatible constraints together. A user-owned goal can remain valid while a host safety rule forbids one execution method.
|
|
83
|
+
5. Select the nearest applicable repository root and path scope. If a nested repository is involved, reread that repository's instructions before editing there.
|
|
84
|
+
6. Apply the stricter safe rule when safety, secrets, destructive actions, command permission, or repository boundaries conflict. Do not use this rule to let a lower-authority preference erase the requested goal.
|
|
85
|
+
7. Treat preferences as defaults only. Do not let preferences authorize commands, commits, pushes, migrations, or edits that higher-priority rules block.
|
|
86
|
+
8. If command authority is unclear, use configured command intents only or report the missing command rather than inferring a raw command.
|
|
87
|
+
9. If two same-dimension rules remain contradictory after scope and recency are applied, stop and ask for the decision owner or report the unresolved conflict. Do not manufacture a total order across unrelated authority dimensions.
|
|
88
|
+
10. If the conflict can be resolved by a small documentation or template clarification, update the source that caused confusion and keep the wording subordinate to the canonical contract.
|
|
89
|
+
11. Report the chosen scope, skipped scope, and reason when part of the request cannot be completed safely.
|
|
80
90
|
|
|
81
91
|
<!-- mustflow-section: postconditions -->
|
|
82
92
|
## Postconditions
|
|
83
93
|
|
|
84
|
-
-
|
|
94
|
+
- Goal owner, active constraints, repository root, edit scope, command scope, evidence basis, and skipped scope are clear.
|
|
85
95
|
- Any changed docs or templates do not create a new self-authorizing policy source.
|
|
86
96
|
- The final report distinguishes completed work from blocked, deferred, or intentionally skipped work.
|
|
87
97
|
|
|
@@ -102,6 +112,7 @@ Use a narrower configured test or docs intent when it better proves the clarifie
|
|
|
102
112
|
## Failure Handling
|
|
103
113
|
|
|
104
114
|
- If two high-priority instructions cannot be reconciled, stop and report the conflict instead of guessing.
|
|
115
|
+
- If a proposed priority order compares different authority dimensions as though they were interchangeable, replace it with an action-specific constraint set before deciding.
|
|
105
116
|
- If the nearest repository root is unclear, inspect read-only status and instruction files before editing.
|
|
106
117
|
- If a command, Git operation, migration, or destructive action lacks authority, do not run it. Report the missing approval or command contract.
|
|
107
118
|
- If validation finds command-permission or authority drift, fix that drift before adding unrelated behavior.
|
|
@@ -109,8 +120,8 @@ Use a narrower configured test or docs intent when it better proves the clarifie
|
|
|
109
120
|
<!-- mustflow-section: output-format -->
|
|
110
121
|
## Output Format
|
|
111
122
|
|
|
112
|
-
- Conflicting instruction sources
|
|
113
|
-
-
|
|
123
|
+
- Conflicting instruction sources and authority dimensions
|
|
124
|
+
- Action-specific constraints, chosen same-dimension priority rule, and repository scope
|
|
114
125
|
- Actions allowed, narrowed, skipped, or deferred
|
|
115
126
|
- Documentation or template clarifications made
|
|
116
127
|
- Command intents run
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.nestjs-code-change
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 2
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: nestjs-code-change
|
|
@@ -80,12 +80,10 @@ Preserve NestJS module boundaries, dependency-injection ownership, request pipel
|
|
|
80
80
|
6. Avoid `forwardRef()` as a casual cycle fix. If a cycle appears, inspect the module boundary, extract a port/interface, move shared policy, or report why the explicit cycle is accepted.
|
|
81
81
|
7. Check dynamic modules and async factories. Keep options typed, validate config at the boundary, avoid reading secrets into logs or reports, and make module initialization failure explicit.
|
|
82
82
|
8. Keep request-local data out of singleton provider mutable fields. Current user, tenant, request id, locale, transaction, or per-request cache should travel through request objects, guards, interceptors, CLS-style infrastructure with clear ownership, or explicit method arguments.
|
|
83
|
-
9. Review
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- interceptors wrap handler execution and response mapping;
|
|
88
|
-
- filters map thrown exceptions.
|
|
83
|
+
9. Review the complete request lifecycle: middleware runs first, guards authorize next,
|
|
84
|
+
interceptors enter before pipes and handler execution, pipes transform or validate controller
|
|
85
|
+
arguments, and interceptors process the return path in reverse order. Exception filters run only
|
|
86
|
+
for uncaught exceptions and follow their own route, controller, and global resolution order.
|
|
89
87
|
10. Do not treat CORS, Swagger hiding, or route omission from OpenAPI as authorization. Add real guards or report the exposure.
|
|
90
88
|
11. For DTOs, distinguish TypeScript shape from runtime validation. Class decorators, global `ValidationPipe` options, transform behavior, whitelist, forbid settings, nested validation, arrays, dates, enums, partial update DTOs, and file uploads must be checked against real runtime behavior.
|
|
91
89
|
12. For params, query, headers, and cookies, remember that HTTP input starts as strings. Use explicit parse pipes, DTO transform rules, or schema validation rather than relying on TypeScript annotations.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.node-code-change
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 5
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: node-code-change
|
|
@@ -100,7 +100,7 @@ Preserve the actual Node.js runtime, module, package manager, TypeScript executi
|
|
|
100
100
|
16. Before using Node APIs in deployment code, classify the target as Node server, Docker, serverless Node, edge runtime, static build, or multi-runtime package. Edge runtimes are not full Node.js runtimes.
|
|
101
101
|
17. Inspect native and install-sensitive dependencies when package metadata or runtime imports touch `.node`, `binding.gyp`, `node-gyp`, `preinstall`, `install`, `postinstall`, `prepare`, optional dependencies, peer dependencies, OS, CPU, libc, or Node ABI boundaries.
|
|
102
102
|
18. Treat optional dependencies and optional peers as absent until code handles absence. Do not require optional packages directly without fallback or error handling that matches the existing project pattern.
|
|
103
|
-
19. Treat the Node permission model as a trusted-code seatbelt, not a sandbox for untrusted code.
|
|
103
|
+
19. Treat the Node permission model as a trusted-code seatbelt, not a sandbox for untrusted code. Map filesystem paths, network access, child processes, worker threads, native addons, WASI, FFI, and inspector access explicitly. Treat temporary directories as filesystem grants, and use OS-level isolation when malicious code is in scope.
|
|
104
104
|
20. Separate Node performance bottlenecks before choosing a fix. Use available `perf_hooks` or configured evidence to distinguish JavaScript CPU, event-loop delay, external I/O wait, libuv worker-pool saturation, stream backpressure, and GC or allocation churn. Event-loop utilization is not CPU percent; high ELU with low CPU can still mean sync blocking.
|
|
105
105
|
21. Prefer CPU profiles or flame graphs over timing logs for CPU-heavy Node paths. Use profile or configured evidence for parsing, validation, rendering, hashing, compression, crypto, diffing, report generation, sorting, JSON work, formatter creation, or AST work; log timers alone rarely prove the hot stack.
|
|
106
106
|
22. Treat event-loop delay as a tail metric. Check p95 and p99 delay when evidence exists, not only averages. A rare 800ms block can dominate user-visible latency while average delay looks clean.
|