mustflow 2.115.5 → 2.115.11

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 (30) hide show
  1. package/package.json +1 -1
  2. package/templates/default/i18n.toml +57 -21
  3. package/templates/default/locales/en/.mustflow/docs/agent-workflow.md +13 -1
  4. package/templates/default/locales/en/.mustflow/skills/INDEX.md +16 -7
  5. package/templates/default/locales/en/.mustflow/skills/ada-code-change/SKILL.md +293 -0
  6. package/templates/default/locales/en/.mustflow/skills/astro-code-change/SKILL.md +10 -2
  7. package/templates/default/locales/en/.mustflow/skills/completion-evidence-gate/SKILL.md +14 -1
  8. package/templates/default/locales/en/.mustflow/skills/core-web-vitals-field-review/SKILL.md +2 -2
  9. package/templates/default/locales/en/.mustflow/skills/deno-code-change/SKILL.md +291 -0
  10. package/templates/default/locales/en/.mustflow/skills/dependency-upgrade-review/SKILL.md +12 -6
  11. package/templates/default/locales/en/.mustflow/skills/elysia-code-change/SKILL.md +3 -3
  12. package/templates/default/locales/en/.mustflow/skills/hono-code-change/SKILL.md +2 -2
  13. package/templates/default/locales/en/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +23 -12
  14. package/templates/default/locales/en/.mustflow/skills/nestjs-code-change/SKILL.md +5 -7
  15. package/templates/default/locales/en/.mustflow/skills/node-code-change/SKILL.md +2 -2
  16. package/templates/default/locales/en/.mustflow/skills/pascal-code-change/SKILL.md +301 -0
  17. package/templates/default/locales/en/.mustflow/skills/performance-measurement-integrity-review/SKILL.md +324 -0
  18. package/templates/default/locales/en/.mustflow/skills/php-code-change/SKILL.md +327 -0
  19. package/templates/default/locales/en/.mustflow/skills/python-code-change/SKILL.md +11 -7
  20. package/templates/default/locales/en/.mustflow/skills/routes.toml +36 -0
  21. package/templates/default/locales/en/.mustflow/skills/skill-authoring/SKILL.md +35 -9
  22. package/templates/default/locales/en/.mustflow/skills/skill-refresh/SKILL.md +10 -1
  23. package/templates/default/locales/en/.mustflow/skills/source-freshness-check/SKILL.md +13 -6
  24. package/templates/default/locales/en/.mustflow/skills/svelte-code-change/SKILL.md +16 -5
  25. package/templates/default/locales/en/.mustflow/skills/tauri-code-change/SKILL.md +3 -2
  26. package/templates/default/locales/en/.mustflow/skills/threejs-code-change/SKILL.md +207 -0
  27. package/templates/default/locales/en/.mustflow/skills/typescript-code-change/SKILL.md +23 -16
  28. package/templates/default/locales/en/.mustflow/skills/version-freshness-check/SKILL.md +12 -6
  29. package/templates/default/locales/en/AGENTS.md +8 -1
  30. package/templates/default/manifest.toml +43 -1
@@ -0,0 +1,293 @@
1
+ ---
2
+ mustflow_doc: skill.ada-code-change
3
+ locale: en
4
+ canonical: true
5
+ revision: 2
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: ada-code-change
9
+ description: Apply this skill when Ada or SPARK source, GNAT project metadata, Alire packages, strong domain types, subtypes, predicates, contracts, representation clauses, unchecked or foreign boundaries, tasking, protected objects, rendezvous, Ravenscar or Jorvik profiles, GNATprove evidence, tests, or Ada deployment 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.ada-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
+ # Ada Code Change
28
+
29
+ <!-- mustflow-section: purpose -->
30
+ ## Purpose
31
+
32
+ Preserve Ada language-version, type, range, contract, representation, ownership, concurrency,
33
+ real-time, proof, foreign-interface, build, and deployment contracts. Keep Ada compile-time checks,
34
+ runtime checks, GNAT implementation features, and SPARK flow analysis or proof as distinct claims.
35
+
36
+ <!-- mustflow-section: use-when -->
37
+ ## Use When
38
+
39
+ - Ada or SPARK source, package specifications or bodies, generics, tasking, protected objects,
40
+ contracts, representation clauses, FFI, tests, or generated bindings change.
41
+ - GNAT project files, compiler modes, runtime profiles, Alire metadata, binder or linker behavior,
42
+ assertion policy, check suppression, GNATprove configuration, or target deployment changes.
43
+ - Ada 2022 migration, Ravenscar or Jorvik adoption, parallel constructs, real-time scheduling,
44
+ storage pools, interrupt handling, or certification evidence is reviewed or changed.
45
+
46
+ <!-- mustflow-section: do-not-use-when -->
47
+ ## Do Not Use When
48
+
49
+ - The changed surface is only C or C++ and no Ada-owned contract or binding changes.
50
+ - The task asks only for the latest Ada, GNAT, SPARK, or Alire version; use source-freshness
51
+ guidance unless durable source or documentation changes too.
52
+ - A formal certification, WCET, schedulability, or hardware-layout claim is requested without the
53
+ project evidence and qualified toolchain needed to establish that claim.
54
+
55
+ <!-- mustflow-section: required-inputs -->
56
+ ## Required Inputs
57
+
58
+ - Language mode, compiler and runtime identity, target, GNAT project files, Alire metadata,
59
+ assertion and runtime-check policies, build profiles, binder or linker inputs, and CI image.
60
+ - Public package specifications, private representations, domain types and subtypes, array bounds,
61
+ predicates, contracts, generics, elaboration order, exceptions, and compatibility surface.
62
+ - SPARK boundary, GNATprove mode and level, proof assumptions, justified checks, unproved checks,
63
+ flow dependencies, loop invariants, ownership model, and retained runtime checks.
64
+ - Representation and unsafe ledger: `Size`, alignment, component size, bit order, endianness,
65
+ overlays, address clauses, unchecked conversion, imported C types, raw bytes, and validity checks.
66
+ - Concurrency ledger: tasks, masters, activation, entries, barriers, queues, rendezvous, requeue,
67
+ protected objects, priorities, ceilings, interrupts, shutdown, deadlines, and blocking operations.
68
+ - Resource ledger: stack, heap, storage pools, allocation bounds, big-number use, finalization,
69
+ primary and secondary stacks, implicit allocation, elaboration, timing, WCET, blocking, worker
70
+ mapping, memory layout, MMIO, interrupt behavior, and observability.
71
+
72
+ <!-- mustflow-section: preconditions -->
73
+ ## Preconditions
74
+
75
+ - Read current source, project files, compiler diagnostics, proof configuration, tests, target
76
+ runtime, and deployment evidence before changing a language, proof, or runtime contract.
77
+ - Refresh official Ada Reference Manual, Ada Issue, GNAT, SPARK, Alire, and target-runtime sources
78
+ before preserving exact feature, default, restriction, support, or tool-option claims.
79
+ - Treat version research as dated evidence. The official-source snapshot reviewed on 2026-07-11
80
+ identified Ada 2022, published as ISO/IEC 8652:2023, as the latest issued standard and Amendment 1
81
+ as draft work; recheck before reuse. A GNAT Ada 2022 mode and GNAT extension mode are not equivalent.
82
+ - Do not infer absence of runtime errors from Ada compilation alone. Dynamic overflow, range,
83
+ index, length, division, discriminant, null, predicate, and contract failures remain runtime
84
+ checks unless the selected SPARK proof or other evidence discharges them.
85
+
86
+ <!-- mustflow-section: allowed-edits -->
87
+ ## Allowed Edits
88
+
89
+ - Make focused Ada, SPARK, project, package, binding, representation, runtime, test, proof, and docs
90
+ changes required by the task.
91
+ - Add domain types, subtypes, private constructors, contracts, flow dependencies, loop invariants,
92
+ bounded storage, protected operations, adapters, or tests where they protect changed behavior.
93
+ - Preserve target, language mode, runtime profile, public package contracts, proof boundary, and
94
+ certification constraints unless migration is explicit.
95
+ - Do not silence diagnostics, add assumptions, suppress checks, weaken proof levels, or enable GNAT
96
+ extensions merely to make a build or proof report pass.
97
+
98
+ <!-- mustflow-section: procedure -->
99
+ ## Procedure
100
+
101
+ 1. **Establish the compilation and evidence identity.**
102
+ - Record the Ada language mode, compiler and version, target, runtime library, build profile,
103
+ project closure, Alire solution, assertion policy, check policy, SPARK boundary, and proof mode.
104
+ - Separate standard Ada, implementation-defined behavior, GNAT extensions, SPARK annotations,
105
+ and target-specific runtime behavior. Do not treat an extension switch as Ada 2022 conformance.
106
+ - Classify each safety statement as compile-time rejection, enabled runtime check, flow-analysis
107
+ result, proved verification condition, test evidence, or external assumption.
108
+ 2. **Make illegal domain combinations hard to express.**
109
+ - Use a new `type` when values have different meaning or must not mix implicitly. Use a `subtype`
110
+ for a constrained view of the same meaning; subtypes cannot distinguish overloads.
111
+ - Give indexes, counts, capacities, offsets, identifiers, units, and protocol fields distinct
112
+ types when accidental interchange is invalid. Keep the domain base type wide enough for valid
113
+ intermediate calculations and narrow values deliberately at boundaries.
114
+ - Seal stateful records behind private discriminated types, constructors, and state transitions.
115
+ Use complete case analysis and prove discriminant checks where dynamic access remains.
116
+ - Use static or dynamic predicates for their actual check points. A predicate is not a continuous
117
+ watcher, and a dynamic predicate on a mutable public record is not a lifetime invariant.
118
+ 3. **Handle arithmetic, arrays, and representation explicitly.**
119
+ - Distinguish subtype range from base range and intermediate-expression range. Widen operands
120
+ before arithmetic when needed, then narrow once; a range does not provide saturating arithmetic.
121
+ - Use modular types only where wraparound is the domain rule. Keep money, counts, lengths, and
122
+ physical values on checked integer or fixed-point types unless wraparound is explicit.
123
+ - Iterate arrays with their actual ranges and account for arbitrary lower bounds and null ranges.
124
+ A constrained target may preserve length while rebasing bounds, so validate source bounds when
125
+ the index origin is part of a protocol.
126
+ - Do not infer object storage, wire layout, register layout, alignment, bit order, or endianness
127
+ from a scalar range. Specify and verify representation at boundaries.
128
+ 4. **Turn contracts into checked or proved obligations.**
129
+ - Use preconditions, postconditions, type invariants, contract cases, default initialization,
130
+ `Global`, `Depends`, `Initializes`, and `Initial_Condition` according to the owned boundary.
131
+ - Keep contract expressions free of their own overflow or invalid access. Use wider mathematical
132
+ models or short-circuit formulations when the expression being checked could fail first.
133
+ - Add loop invariants that preserve index, capacity, ordering, and initialized-region facts, plus
134
+ loop variants when termination is part of the claim. Split loops whose proof state becomes
135
+ wider than the algorithm responsibility.
136
+ - Make unresolved verification conditions fail the configured proof gate unless a bounded,
137
+ reviewed external assumption or proof justification explicitly owns the gap.
138
+ 5. **Keep ownership, allocation, and unsafe boundaries visible.**
139
+ - An access type carries reachability and accessibility rules, not ownership. Treat `not null` as
140
+ only a nullability contract; design owner, move, borrow, observe, lifetime, deallocation,
141
+ aliasing, and storage-pool policy separately. Do not store a borrowed access parameter.
142
+ - Pair allocation and destruction by origin. `Unchecked_Deallocation` is valid only for an object
143
+ created through the matching Ada allocator and pool; nulling one access value does not revoke
144
+ aliases, callbacks, containers, or foreign handles.
145
+ - Prefer `Limited_Controlled` for unique resources. A copyable `Controlled` owner must define
146
+ adjustment semantics, and finalization must not depend on arbitrary collection or component
147
+ order. Use explicit dependency-ordered shutdown before finalization fallback.
148
+ - Fully initialize allocated domain objects. `new T` does not imply zero-filled scalar fields,
149
+ and validity checks at an external boundary do not excuse ordinary uninitialized state.
150
+ - Bound allocation structurally when memory exhaustion is in scope; absence-of-runtime-error
151
+ proof does not by itself exclude `Storage_Error`.
152
+ - A custom storage pool controls only allocators attached to it. Verify size, alignment,
153
+ synchronization, failure policy, allocation provenance, task creation, runtime allocation,
154
+ secondary-stack use, and the selected target runtime. `Storage_Size` is not automatically an
155
+ exact process-wide quota.
156
+ - Isolate unchecked conversion, overlays, address clauses, imported objects, raw streams, and FFI
157
+ in narrow packages. Parse bytes and endianness explicitly, validate scalar representations with
158
+ validity checks, then construct private domain values.
159
+ - Never treat suppressed failed checks as safe execution. Remove checks only for a bounded region
160
+ whose relevant obligations have been proved and whose deployment policy permits removal.
161
+ 6. **Design tasking around atomic business operations.**
162
+ - Put read-decide-write rules inside one protected operation or entry. Atomic variables and
163
+ separate protected calls do not make a multi-step invariant atomic.
164
+ - Keep protected operations short, bounded, and nonblocking, including indirect calls. Keep entry
165
+ barriers dependent on protected state rather than external globals or side effects.
166
+ - Define queue ordering explicitly. FIFO within one entry queue does not establish total order
167
+ across entries, and a queuing policy is not an implicit business-priority specification.
168
+ - Keep rendezvous accept bodies small because caller and server remain coupled until completion.
169
+ Treat timed entry calls as admission deadlines, not end-to-end completion deadlines.
170
+ - Model task activation before executable statements, task exceptions, termination observation,
171
+ master dependencies, explicit shutdown, queue draining, cancellation, and requeue semantics.
172
+ - Derive ceiling priorities and lock order from the actual task and interrupt graph. Do not choose
173
+ one arbitrarily high ceiling or assume race freedom proves deadlock freedom or schedulability.
174
+ 7. **Engineer real-time predictability as a bounded-resource contract.**
175
+ - Select and declare the runtime profile early. Ravenscar or Jorvik restricts available behavior;
176
+ neither profile proves WCET, schedulability, bounded queues, memory use, or deadline success.
177
+ - Drive periodic work from absolute releases and define what happens after a missed release:
178
+ drop, coalesce, skip to a future period, catch up within a bound, or enter a safe state.
179
+ - Base priorities and ceilings on period, deadline, WCET, and blocking analysis. Bound entry queue
180
+ lengths, keep interrupt handlers to acknowledgement and bounded transfer, and move parsing,
181
+ allocation, recovery, and long computation into budgeted tasks.
182
+ - Enforce applicable allocation, recursion, elaboration, tasking, finalization, and secondary-stack
183
+ restrictions. Analyze each task stack on deployment-optimized objects; dynamic calls, recursion,
184
+ unknown external frames, and measured watermarks are not static upper bounds.
185
+ - Include package elaboration in startup timing and make device initialization order and failure
186
+ explicit. Partition multicore work to reduce interference, then account for shared cache, memory
187
+ bus, DMA, and interrupt-controller contention on the real target.
188
+ - For MMIO, separate address, import, volatility, atomicity, access width, read-modify-write,
189
+ endianness, and initialization effects. Inspect generated access sequences when the device
190
+ contract requires a specific bus transaction.
191
+ - Compare optimization profiles by maximum execution time, deadline lateness, blocking, stack,
192
+ code size, and target behavior. Higher optimization and disabled checks are not automatic wins.
193
+ 8. **Keep the C and C++ boundary intentionally boring.**
194
+ - Bind exact `Interfaces.C` ABI types, signedness, calling conventions, layout, and pass-by-copy
195
+ rules. Treat generated bindings as a draft and compare size, alignment, offsets, bits, and enum
196
+ values with a C-side probe built under the production ABI.
197
+ - Pass arrays and strings as pointer plus explicit element or byte length. Define lower-bound
198
+ rebasing, empty buffers, NUL termination, encoding, embedded NUL policy, and retention lifetime.
199
+ - Receive foreign output into raw ABI types, validate representation and range, then construct Ada
200
+ domain values. Do not let C write directly into constrained, discriminated, or narrow objects.
201
+ - Keep allocation and deallocation in the same owning module. Represent owned and borrowed handles
202
+ separately; unregister callbacks and drain in-flight calls before destroying their context.
203
+ - Catch Ada and C++ exceptions inside their language wrappers and cross a stable C ABI with status,
204
+ opaque handles, fixed scalars, and explicit error storage. Wrap C++ classes behind `extern "C"`.
205
+ - If foreign code owns `main`, initialize the Ada runtime before any Ada entry and finalize it only
206
+ after callbacks, handles, tasks, and foreign calls are stopped. Treat this as a one-way process
207
+ lifecycle unless the selected GNAT runtime explicitly proves a different supported contract.
208
+ - Avoid pointer type-punning through unchecked conversion. A successful unoptimized run does not
209
+ establish alias validity under optimization; prefer field conversion or a C shim.
210
+ 9. **Adopt Ada 2022 features by semantics, not novelty.**
211
+ - For parallel loops and blocks, prove independent global effects and nonblocking execution;
212
+ worker mapping, speedup, SIMD, and physical threads remain implementation and measurement issues.
213
+ - Require associative reducers for parallel reduction. Floating-point addition is not associative;
214
+ choose a deterministic tree, compensated method, fixed point, or exact model when reproducibility matters.
215
+ - Treat delta aggregates as new-value construction and account for copying, adjustment, and
216
+ finalization. Treat composite `'Image` as diagnostics, not a stable protocol or storage format.
217
+ - Keep literal conversion functions deterministic, procedural iterators bounded, stable views
218
+ distinct from thread safety, and big-number operations outside constant-time or bounded-time
219
+ claims unless separately established.
220
+ - Choose Ravenscar as a narrow analyzable tasking base when it meets requirements and widen to
221
+ Jorvik or full tasking only for named semantics. A profile restriction is not a schedulability,
222
+ WCET, race-freedom, or certification proof.
223
+ 10. **Manage SPARK assurance and trust boundaries explicitly.**
224
+ - Choose an assurance level per partition: language subset and flow analysis broadly, absence of
225
+ runtime errors where justified, and stronger integrity or functional proofs for the critical core.
226
+ Do not call a partially analyzed project fully proved.
227
+ - Use public contracts as proof boundaries and keep implementation representation in private
228
+ refinements. Validate raw external input explicitly before converting it into a subtype consumed
229
+ by a core whose preconditions assume validated callers.
230
+ - Model global state through abstract and refined state plus dependency contracts. Include loop
231
+ frame conditions and progress, and use ghost models simpler than the production representation.
232
+ - Treat every assumption and `SPARK_Mode => Off` path as trust debt with owner, target, rationale,
233
+ validation, and change detection. Prefer proved cut assertions over unchecked assumptions.
234
+ - Classify an unproved check as code defect, contract defect, missing invariant, model mismatch,
235
+ prover limitation, or actual timeout before increasing resource limits.
236
+ - Preserve proof completeness evidence: every intended unit analyzed, no unexplained checks,
237
+ assumption delta reviewed, toolchain and prover identity fixed, and non-SPARK, compiler backend,
238
+ runtime, stack, unchecked, and foreign-library boundaries reported separately.
239
+ 11. **Verify the real target and failure paths.**
240
+ - Cover compile failures for illegal type combinations, enabled runtime checks, boundary parsing,
241
+ null and non-unit array bounds, arithmetic edges, representation fixtures, exception paths,
242
+ allocation provenance, finalization and shutdown order, storage-pool exhaustion, secondary-stack
243
+ use, task activation and shutdown, barrier and queue behavior, deadline-miss policy, and FFI rejection.
244
+ - Run configured build, test, analysis, proof, target, and release intents that match the changed
245
+ surface. Report a missing GNATprove, target runtime, schedulability, WCET, or hardware-layout
246
+ gate instead of replacing it with host-only compilation or a broader claim.
247
+
248
+ <!-- mustflow-section: postconditions -->
249
+ ## Postconditions
250
+
251
+ - Language mode, compiler, runtime, target, assertion policy, check policy, and proof boundary are explicit.
252
+ - Domain type, range, array, representation, ownership, unsafe, tasking, and shutdown contracts are observable.
253
+ - Compile-time, runtime-check, flow-analysis, proof, test, and external-assumption evidence are not conflated.
254
+ - Any claim of runtime-error absence, race freedom, bounded memory, WCET, schedulability, layout, or
255
+ certification is limited to the exact evidence and target that established it.
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 language, compiler, runtime, target, assertion, check, or proof identity is unclear, preserve
276
+ existing behavior and report the missing evidence.
277
+ - If proof fails, retain runtime checks and report the unresolved verification conditions; do not
278
+ add assumptions, suppress checks, or downgrade the proof gate without explicit ownership.
279
+ - If representation or FFI validity cannot be established, keep raw data outside domain code and
280
+ stop before claiming a safe conversion.
281
+ - If task ordering, blocking, ceiling, shutdown, or deadline semantics are unclear, keep the
282
+ concurrency change out and report the missing state-machine or scheduling evidence.
283
+ - If only host compilation is available for a target-specific change, report that limitation and
284
+ do not claim target layout, timing, runtime, or certification success.
285
+
286
+ <!-- mustflow-section: output-format -->
287
+ ## Output Format
288
+
289
+ - Ada language, compiler, runtime, target, package, and build identity
290
+ - Type, range, array, contract, proof, ownership, representation, FFI, and tasking decisions
291
+ - Evidence classification: compile-time, runtime check, flow analysis, proof, test, or assumption
292
+ - Configured intents run and target or proof evidence obtained
293
+ - Skipped checks and remaining Ada, SPARK, target, timing, layout, concurrency, or certification risk
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skill.astro-code-change
3
3
  locale: en
4
4
  canonical: true
5
- revision: 5
5
+ revision: 6
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: astro-code-change
@@ -184,7 +184,15 @@ The default is no-hydration. Add browser JavaScript only after proving that nati
184
184
  ## Astro Major Migration Deltas
185
185
 
186
186
  - For v5 to v6 migrations, check removed or changed surfaces before editing call sites: `Astro.glob()` replacement with `import.meta.glob()` or content collections, `.cjs` and `.cts` config removal, `astro:ssr-manifest`, `RouteData.generate()`, old adapter hooks, old `NodeApp` paths, Zod 4 schema effects, and numeric dynamic route params.
187
- - For v6 to v7 migrations, check `src/fetch.*` or `fetchFile`, direct request handler composition, `cache`, `routeRules`, `advancedRouting`, `logger`, `queuedRendering`, `rustCompiler`, `markdown.processor`, `compressHTML`, removed or changed `@astrojs/db` usage, transition internals, and `getContainerRenderer()` imports from integration roots.
187
+ - For v6 to v7 migrations, classify each crossed surface by its official migration status before
188
+ editing. The following status map is an official-source snapshot checked on 2026-07-11 and must
189
+ be refreshed before later durable use:
190
+ - remove obsolete `advancedRouting`, `queuedRendering`, and `rustCompiler` experimental flags because their behavior became the default;
191
+ - move stable `cache` and `routeRules` configuration out of the experimental block instead of deleting it;
192
+ - treat `src/fetch.*` as a reserved advanced-routing entrypoint and use `fetchFile` only to relocate or disable that entrypoint intentionally;
193
+ - migrate deprecated `getContainerRenderer()` imports from integration package roots to the documented container-renderer entrypoint;
194
+ - remove unsupported `@astrojs/db` integration usage and exposed transition internals;
195
+ - separately verify direct request handler composition, `logger`, `markdown.processor`, and `compressHTML` behavior against the official v7 guide for the installed target.
188
196
  - For v6 to v7 migrations with custom Vite config, Rollup hooks, or Astro integrations that call Vite APIs, also use `dependency-upgrade-review` when available.
189
197
  - Keep each migration delta scoped to the crossed major version. Do not copy old delta checks into ordinary Astro UI, content, or route edits.
190
198
 
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skill.completion-evidence-gate
3
3
  locale: en
4
4
  canonical: true
5
- revision: 7
5
+ revision: 8
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: completion-evidence-gate
@@ -65,6 +65,8 @@ missing, blocked, failed, stale, or only partially relevant.
65
65
 
66
66
  - The original user request, acceptance criteria, and any later scope changes.
67
67
  - Current changed-file list and diff summary.
68
+ - Selected repository root, its command contract, and any explicit dependency on a parent-owned
69
+ artifact, orchestration path, or contract.
68
70
  - The skills used, main route chosen, and any supporting or event skills activated.
69
71
  - Requirement, bug, issue, or external-advice sources that influenced the work.
70
72
  - Command intents run, exit status, and whether the evidence came from `mf run` receipts or lower-confidence direct shell output.
@@ -111,6 +113,12 @@ missing, blocked, failed, stale, or only partially relevant.
111
113
  4. Check verification quality.
112
114
  - Prefer configured `mf run` receipts over direct shell output.
113
115
  - Confirm that each command intent was relevant to the changed surface and current diff.
116
+ - Resolve skill-named verification intents only against the selected repository's command
117
+ contract. A shared parent skill does not make a parent-root intent required or runnable for a
118
+ child task.
119
+ - Treat parent-root verification as relevant only when parent-owned files or orchestration
120
+ changed, or when the child result explicitly depends on a named parent artifact or contract.
121
+ Do not list unrelated parent checks as skipped child verification.
114
122
  - For commit, push, tag, release, or deploy claims, classify remote checks separately from
115
123
  artifact publication. A successful package registry lookup, GitHub Release, uploaded asset,
116
124
  or deployment artifact does not prove branch CI or same-commit checks passed.
@@ -129,6 +137,8 @@ missing, blocked, failed, stale, or only partially relevant.
129
137
  - Use `implemented but unverified` when the files changed but no relevant configured verification was run.
130
138
  - Use `blocked` when required evidence cannot be produced without a missing decision, unavailable environment, manual-only command, failed prerequisite, or user approval.
131
139
  - Use `not complete` when a required acceptance criterion is not implemented or verification contradicts the claim.
140
+ - Do not downgrade a verified child-only result because an unrelated parent worktree has local
141
+ changes, an active lock, stale receipts, or manifest drift.
132
142
  7. Decide whether a next-action menu is required.
133
143
  - For a non-trivial final report, read and apply `next-action-menu` before final reporting when
134
144
  at least one concrete, evidence-backed follow-up task remains.
@@ -192,6 +202,8 @@ instead of replacing it with an inferred command.
192
202
  - If a remote check is failing or still pending for the pushed ref, do not report the work as fully
193
203
  green even when publication, artifact upload, or installation verification succeeded.
194
204
  - If a required surface is missing, either synchronize it under the matching skill or report the remaining drift.
205
+ - If parent-root state appears in a child-only completion report, prove the direct dependency or
206
+ remove it from blockers and skipped checks.
195
207
  - If evidence is stale or comes from a different diff, treat the task as unverified until current evidence exists.
196
208
  - If evidence stalls behind repeated reads, searches, or duplicate-call warnings, use
197
209
  `evidence-stall-breaker` and lower the completion claim until a different current source proves it.
@@ -205,6 +217,7 @@ instead of replacing it with an inferred command.
205
217
  - User requirements mapped to evidence
206
218
  - Changed surfaces
207
219
  - Synchronized surfaces and deferred surfaces
220
+ - Selected repository verification boundary and any explicit parent dependency
208
221
  - Command intents run
209
222
  - Remote check-suite state for pushed refs, tags, releases, or deploys
210
223
  - Skipped, missing, failed, stale, or manual-only checks
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skill.core-web-vitals-field-review
3
3
  locale: en
4
4
  canonical: true
5
- revision: 1
5
+ revision: 2
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: core-web-vitals-field-review
@@ -91,7 +91,7 @@ The review question is: "Will real users at the 75th percentile on mobile and de
91
91
  - Manual-only or missing: evidence that cannot be collected through configured intents or user-provided artifacts.
92
92
  5. Prefer RUM first for operating decisions. Capture metric `rating`, route, URL template, navigation type, metric element or target when safe, load state, viewport class, device memory, effective connection type, and release version when local privacy policy allows it.
93
93
  6. Report percentiles, not averages. Track p75 for pass/fail and p90 or p95 for tail diagnosis; averages hide the slow devices and bad networks that usually decide field status.
94
- 7. Explain Lighthouse-versus-field gaps. A clean lab score can still fail field data because CrUX and RUM include real devices, real networks, cache states, third-party drift, bfcache behavior, route mix, and 28-day rolling windows.
94
+ 7. Explain Lighthouse-versus-field gaps. A clean lab score can still fail field data because CrUX and RUM include real devices, real networks, cache states, third-party drift, bfcache behavior, and route mix. CrUX reports rolling 28-day aggregates; RUM uses the explicitly configured reporting window, which may be much shorter.
95
95
  8. Break LCP into subparts: TTFB, resource load delay, resource load duration, and element render delay. Do not call an image "optimized" until discovery, download, and render delay are each accounted for.
96
96
  9. Keep LCP resource discovery early. Lazy LCP images, CSS background heroes without preload, late client-rendered heroes, wrong `sizes`, font-blocked text candidates, and render-blocking CSS belong in `web-render-performance-review` or `image-delivery-performance-review`.
97
97
  10. Treat `fetchpriority` and preload as different levers. Preload helps discovery; `fetchpriority` changes priority after discovery. Too many high-priority resources create priority inflation.