mustflow 2.117.0 → 2.118.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 (42) hide show
  1. package/README.md +1 -0
  2. package/dist/cli/commands/run/args.js +5 -0
  3. package/dist/cli/commands/run/execution.js +7 -6
  4. package/dist/cli/commands/run/preview.js +6 -5
  5. package/dist/cli/commands/run/receipt.js +1 -0
  6. package/dist/cli/commands/run.js +2 -1
  7. package/dist/cli/commands/workspace.js +216 -81
  8. package/dist/cli/i18n/en.js +1 -0
  9. package/dist/cli/i18n/es.js +1 -0
  10. package/dist/cli/i18n/fr.js +1 -0
  11. package/dist/cli/i18n/hi.js +1 -0
  12. package/dist/cli/i18n/ko.js +1 -0
  13. package/dist/cli/i18n/zh.js +1 -0
  14. package/dist/cli/lib/manifest-lock.js +10 -1
  15. package/dist/cli/lib/repo-map.js +5 -0
  16. package/dist/cli/lib/run-context.js +136 -0
  17. package/dist/cli/lib/run-root-trust.js +22 -15
  18. package/dist/cli/lib/validation/index.js +8 -0
  19. package/dist/core/config-loading.js +107 -14
  20. package/dist/core/run-receipt.js +1 -0
  21. package/dist/core/workspace-command-authority.js +98 -0
  22. package/package.json +1 -1
  23. package/schemas/run-receipt.schema.json +10 -0
  24. package/schemas/workspace-command-catalog.schema.json +3 -0
  25. package/schemas/workspace-command-fragments.schema.json +2 -0
  26. package/schemas/workspace-status.schema.json +4 -1
  27. package/schemas/workspace-verification-plan.schema.json +3 -0
  28. package/templates/default/common/.mustflow/config/mustflow.toml +2 -0
  29. package/templates/default/i18n.toml +14 -2
  30. package/templates/default/locales/en/.mustflow/skills/INDEX.md +12 -3
  31. package/templates/default/locales/en/.mustflow/skills/ai-game-asset-production/SKILL.md +209 -0
  32. package/templates/default/locales/en/.mustflow/skills/ai-game-asset-production/references/asset-contract-validation.md +106 -0
  33. package/templates/default/locales/en/.mustflow/skills/ai-game-asset-production/references/raster-alpha-atlas-checklist.md +109 -0
  34. package/templates/default/locales/en/.mustflow/skills/ai-game-asset-production/references/tile-animation-checklist.md +98 -0
  35. package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/SKILL.md +302 -0
  36. package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/references/connection-fault-injection-resource-lifetime-validation.md +277 -0
  37. package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/references/node-stream-transport-lifecycle-checklist.md +381 -0
  38. package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/SKILL.md +94 -2
  39. package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/references/cross-runtime-memory-stream-reproduction-harness.md +289 -0
  40. package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/references/node-memory-resource-backpressure-diagnostics.md +369 -0
  41. package/templates/default/locales/en/.mustflow/skills/routes.toml +23 -0
  42. package/templates/default/manifest.toml +17 -1
@@ -59,6 +59,8 @@
59
59
  "properties": {
60
60
  "enabled": { "type": "boolean" },
61
61
  "roots": { "$ref": "#/$defs/stringArray" },
62
+ "authority_mode": { "enum": ["repository_local", "delegated_scoped"] },
63
+ "delegated_contract_count": { "type": "integer", "minimum": 0 },
62
64
  "max_depth": { "type": "integer", "minimum": 1 },
63
65
  "max_repositories": { "type": "integer", "minimum": 1 },
64
66
  "follow_symlinks": { "type": "boolean" },
@@ -32,6 +32,8 @@
32
32
  "properties": {
33
33
  "enabled": { "type": "boolean" },
34
34
  "roots": { "$ref": "#/$defs/stringArray" },
35
+ "authority_mode": { "enum": ["repository_local", "delegated_scoped"] },
36
+ "delegated_contract_count": { "type": "integer", "minimum": 0 },
35
37
  "max_depth": { "type": "integer", "minimum": 1 },
36
38
  "max_repositories": { "type": "integer", "minimum": 1 },
37
39
  "follow_symlinks": { "type": "boolean" },
@@ -122,9 +124,10 @@
122
124
  ],
123
125
  "properties": {
124
126
  "relative_path": { "type": "string" },
125
- "status": { "enum": ["mustflow_ready", "contract_missing", "contract_invalid"] },
127
+ "status": { "enum": ["mustflow_ready", "delegated_ready", "contract_missing", "contract_invalid"] },
126
128
  "git_repository": { "const": true },
127
129
  "mustflow": { "type": "boolean" },
130
+ "command_authority": { "enum": ["repository_local", "delegated_scoped", null] },
128
131
  "agent_rules": { "$ref": "#/$defs/nullableString" },
129
132
  "repo_map": { "$ref": "#/$defs/nullableString" },
130
133
  "mustflow_config": { "$ref": "#/$defs/nullableString" },
@@ -57,6 +57,8 @@
57
57
  "properties": {
58
58
  "enabled": { "type": "boolean" },
59
59
  "roots": { "$ref": "#/$defs/stringArray" },
60
+ "authority_mode": { "enum": ["repository_local", "delegated_scoped"] },
61
+ "delegated_contract_count": { "type": "integer", "minimum": 0 },
60
62
  "max_depth": { "type": "integer", "minimum": 1 },
61
63
  "max_repositories": { "type": "integer", "minimum": 1 },
62
64
  "follow_symlinks": { "type": "boolean" },
@@ -140,6 +142,7 @@
140
142
  "plan_unavailable"
141
143
  ]
142
144
  },
145
+ "command_authority": { "enum": ["repository_local", "delegated_scoped", null] },
143
146
  "command_contract": { "$ref": "#/$defs/commandSurface" },
144
147
  "changed_file_count": { "type": ["integer", "null"], "minimum": 0 },
145
148
  "changed_files": { "$ref": "#/$defs/stringArray" },
@@ -96,6 +96,8 @@ anchor_files = [
96
96
  [workspace]
97
97
  enabled = true
98
98
  roots = ["projects"]
99
+ authority_mode = "repository_local"
100
+ contracts = []
99
101
  max_depth = 4
100
102
  max_repositories = 50
101
103
  follow_symlinks = false
@@ -62,7 +62,7 @@ translations = {}
62
62
  [documents."skills.index"]
63
63
  source = "locales/en/.mustflow/skills/INDEX.md"
64
64
  source_locale = "en"
65
- revision = 289
65
+ revision = 294
66
66
  translations = {}
67
67
 
68
68
  [documents."skill.ada-code-change"]
@@ -113,6 +113,12 @@ source_locale = "en"
113
113
  revision = 1
114
114
  translations = {}
115
115
 
116
+ [documents."skill.connection-lifecycle-integrity-review"]
117
+ source = "locales/en/.mustflow/skills/connection-lifecycle-integrity-review/SKILL.md"
118
+ source_locale = "en"
119
+ revision = 2
120
+ translations = {}
121
+
116
122
  [documents."skill.behavior-preserving-refactor"]
117
123
  source = "locales/en/.mustflow/skills/behavior-preserving-refactor/SKILL.md"
118
124
  source_locale = "en"
@@ -278,7 +284,7 @@ translations = {}
278
284
  [documents."skill.memory-lifetime-review"]
279
285
  source = "locales/en/.mustflow/skills/memory-lifetime-review/SKILL.md"
280
286
  source_locale = "en"
281
- revision = 3
287
+ revision = 5
282
288
  translations = {}
283
289
 
284
290
  [documents."skill.desktop-memory-footprint-review"]
@@ -1616,3 +1622,9 @@ source = "locales/en/.mustflow/skills/web-asset-optimization/SKILL.md"
1616
1622
  source_locale = "en"
1617
1623
  revision = 3
1618
1624
  translations = {}
1625
+
1626
+ [documents."skill.ai-game-asset-production"]
1627
+ source = "locales/en/.mustflow/skills/ai-game-asset-production/SKILL.md"
1628
+ source_locale = "en"
1629
+ revision = 1
1630
+ translations = {}
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skills.index
3
3
  locale: en
4
4
  canonical: true
5
- revision: 289
5
+ revision: 294
6
6
  authority: router
7
7
  lifecycle: mustflow-owned
8
8
  ---
@@ -272,7 +272,14 @@ refer to `AGENTS.md` and `.mustflow/config/commands.toml` to implement the most
272
272
  review rather than prose polishing.
273
273
  - Use `memory-lifetime-review` as an adjunct when code creates, registers, caches, spawns, opens,
274
274
  subscribes, schedules, streams, or otherwise retains values or resources whose cleanup,
275
- cancellation, eviction, shutdown, or ownership transfer must be reviewed.
275
+ cancellation, eviction, shutdown, ownership transfer, RSS/heap/external classification,
276
+ allocator residency, queue-byte growth, end-to-end backpressure, or same-source cross-runtime
277
+ memory and stream reproduction must be reviewed.
278
+ - Use `connection-lifecycle-integrity-review` as an adjunct when TCP sockets, HTTP keep-alive or
279
+ pooling, HTTP/2 streams or sessions, Node or Web Streams, FIN/RST, half-close, destroy or abort
280
+ races, response-body abandonment, reader or writer locks, backpressure, buffer budgets, natural
281
+ process exit, connection shutdown, fault injection, soak testing, resource-growth gates, or
282
+ connection-lifetime resolution claims need transport-lifecycle review.
276
283
  - Use `desktop-memory-footprint-review` as an adjunct when Windows, macOS, Linux, Electron,
277
284
  WebView, WPF, WinUI, Win32, Qt, Java Swing or JavaFX, .NET, JVM, Rust, C++, Python, or other
278
285
  desktop app code needs scenario-level memory review across working set versus private memory,
@@ -686,7 +693,8 @@ routes. Event routes stay inactive until their event occurs.
686
693
  | Notification generation, email, push, SMS, in-app inbox, digest, reminder, campaign, announcement, marketing message, transactional message, security alert, receipt, legal notice, notification preference, unsubscribe, suppression, quiet hours, timezone schedule, provider webhook, delivery attempt, notification template, or notification audit work needs notification-delivery triage for duplicate, late, suppressed, unsubscribed, wrong-channel, quiet-hours, timezone, retry, provider-webhook, hard-bounce, complaint, invalid-token, fallback, or audit risk | `.mustflow/skills/notification-delivery-integrity-review/SKILL.md` | User goal, current diff or target files, notification event ledger, notification intent ledger, recipient/channel/category ledger, preference and legal policy ledger, suppression ledger, schedule/timezone/quiet-hours/digest ledger, delivery job and attempt ledger, provider event ledger, in-app inbox ledger, audit/security/privacy/operations ledger, existing tests, and configured command intents | Source event and outbox records, notification intent records, preference snapshots, final pre-send rechecks, suppression records, schedule records, timezone-safe recurring intent, quiet-hours behavior, digest records, delivery jobs, delivery attempts, provider event receipts, provider webhook signature and dedupe handling, in-app inbox state, semantic dedupe keys, queue priority, retry classification, template snapshots, redacted audit logs, campaign dry run/sample/canary/ramp-up/kill-switch controls, focused hostile-path tests, and directly synchronized docs or templates | sendNotification shortcut, global opt-out, marketing consent bypass, provider acceptance treated as delivery, missing outbox, stale recipient scope, hard bounce ignored, complaint ignored, one-click unsubscribe missing, link-scanner mutation, stale push token, logout token leak, collapse key misuse, lockscreen data leak, in-app inbox count drift, mark_all_read_before race, semantic dedupe key missing, aggregation hidden as dedupe, digest window drift, quiet-hours delayed blast, timezone DST bug, provider limit starvation, unknown provider outcome blind retry, poison notification loop, provider webhook signature or dedupe gap, template render-time leak, account deletion pending-send leak, fallback spam, dry-run/sample/canary gap, no why-sent or why-suppressed audit, or happy-path-only notification tests | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Notification delivery reviewed, source-event/intent/recipient/preference/suppression/schedule/digest/delivery/provider/inbox/audit map, findings, fixes or recommendation, hostile-path evidence, verification, and remaining notification-delivery risk |
687
694
  | Code review or implementation needs api-misuse-resistance triage for APIs, SDKs, function boundaries, service methods, endpoints, command methods, DTOs, request shapes, response shapes, operation names, call ordering, lifecycle setup, boolean parameters, option bags, null or empty semantics, internal table leakage, string-only errors, success-only failure models, idempotency, pagination, sorting, filtering, authorization shape, status mutation, PATCH command buses, time formats, money amounts, open enums, async jobs, bulk partial failures, cacheability, response size, overfragmented calls, internal/external API mixing, version policy, deprecation telemetry, rate limits, retry hints, observability, SDK ergonomics, or caller contract tests | `.mustflow/skills/api-misuse-resistance-review/SKILL.md` | User goal, current diff or target files, caller ledger, operation ledger, shape ledger, compatibility evidence, existing style, and configured command intents | Operation-centered names, explicit lifecycle or builder boundaries, named options or split operations, narrowed option bags, explicit absence and PATCH semantics, public DTO mapping, stable errors, idempotency metadata, cursor stability, auth-specific operations, command-shaped state changes, time and money units, unknown enum handling, job resources, item-level bulk results, cache and rate-limit hints, observability fields, SDK examples, focused tests, and directly synchronized docs or templates | implementation-leaking name, hidden state machine, boolean riddle, trash-can options, null folklore, DB schema frozen as API, string-only error, success-only design, duplicate side effect, moving-list pagination, random default order, hidden permission mode, illegal status transition, PATCH-as-command bus, timezone ambiguity, floating money, closed external enum, fake synchronous completion, erased partial failure, uncacheable expensive read, all-in-one payload bloat, frontend-as-backend call graph, internal/external contract blur, decorative version number, unmeasured deprecation, retry-hostile rate limit, untraceable operation, awkward SDK, happy-path-only contract test, or first-time caller trap | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `test_audit`, `docs_validate_fast`, `test_release`, `mustflow_check` | API misuse resistance reviewed, caller and operation ledgers, shape and contract findings, fixes or recommendation, compatibility notes, verification, and remaining caller-misuse risk |
688
695
  | Code review or implementation needs error-message-integrity triage for error text, error codes, validation messages, parse failures, API or CLI error envelopes, public user messages, internal logs, structured diagnostics, exception wrapping, provider errors, retryable flags, idempotency errors, queue or batch failures, partial failures, permission errors, conflict errors, impossible-state errors, support IDs, redaction, stable machine fields, monitoring fields, or troubleshooting text | `.mustflow/skills/error-message-integrity-review/SKILL.md` | User goal, current diff or target files, error audience ledger, error contract ledger, disclosure ledger, recovery ledger, and configured command intents | Stable error codes, expected/actual fields, failed-operation context, reasons, safe identifiers, public/internal message split, redaction, retryability, idempotency metadata, provider metadata, parse positions, range bounds, conflict facts, partial-failure summaries, structured log fields, focused tests, and directly synchronized docs or templates | empty failed label, invalid-value fog, missing action, result repeated as cause, no work context, public/internal message mixing, sensitive value leak, missing safe identifier, retry ambiguity, try-again-later dodge, unstable string-only code, overbroad error bucket, validation info leak, parse location missing, range without bounds, timezone ambiguity, provider evidence loss, cause destruction, brittle message concatenation, prose-only logs, internal jargon in user text, permission existence leak, should-never-happen message, vague conflict, idempotency uncertainty, missing attempt count, partial failure erased, untested error contract, no 30-second next action, or call-site-specific taxonomy drift | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `test_audit`, `docs_validate_fast`, `test_release`, `mustflow_check` | Error message integrity reviewed, surfaces and audiences, code/message contract, evidence and redaction findings, fixes or recommendation, verification, and remaining error-message risk |
689
- | Object lifetime, retained references, cleanup symmetry, event listeners, timers, subscriptions, goroutines, threads, workers, streams, native handles, caches, queues, registries, closures, or memory/resource leak risk is created, changed, reviewed, or reported | `.mustflow/skills/memory-lifetime-review/SKILL.md` | Lifetime surface, setup sites, cleanup sites, retainer graph, repetition path, success and error paths, and configured command intents | Teardown, cancellation, ownership, weak-reference, eviction, queue-bound, stream-close, worker-shutdown, lifecycle-symmetry code, focused tests, and directly synchronized docs or templates | long-lived owner retaining short-lived object, setup without cleanup, unstable listener identity, timeout without cancellation, unbounded cache or queue, debug/log retention, leaked goroutine/thread/worker, native handle leak, finalizer-only cleanup, weak-reference cover-up, or missing repeated-lifecycle proof | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Lifetime boundary, setup and cleanup owners, retainer paths, long-lived owners and short-lived objects, repeated-lifecycle proof, verification, and remaining lifetime risk |
696
+ | Object lifetime, retained references, cleanup symmetry, event listeners, timers, subscriptions, goroutines, threads, workers, streams, native handles, caches, queues, registries, closures, RSS, heap, external memory, ArrayBuffer or Buffer retention, allocator fragmentation, unbounded buffering, backpressure, or memory/resource leak risk is created, changed, reviewed, diagnosed, validated, or reported | `.mustflow/skills/memory-lifetime-review/SKILL.md` | Lifetime surface, setup and cleanup sites, retainer graph, repetition path, success and error paths, storage-location/retention-owner/terminal-status classification, controlled workload phases, post-GC and post-quiescent slopes, request-attempt-branch-stream ownership DAG, byte-flow and queue ledgers, cache/pool/handle evidence, protocol backpressure evidence, statistical tolerance, and configured command intents | Teardown, cancellation, ownership, weak-reference, eviction, queue-bound, stream-close, worker-shutdown, lifecycle-symmetry code, bounded memory and resource instrumentation, queue-byte accounting, terminal invariants, stop/plateau/resume fixtures, focused tests, and directly synchronized docs or templates | long-lived owner retaining short-lived object, setup without cleanup, unstable listener identity, timeout without cancellation, RSS-only diagnosis, overlapping totals subtracted as native memory, heapTotal called live memory, TIME_WAIT called a process leak, unbounded queue called safe because it drains, cache called bounded by TTL alone, fragmentation claimed before live native allocations are ruled out, accepted bytes confused with committed bytes, count HWM used as a byte cap, clone/tee branch abandoned, whole HTTP/2 transport paused for one stream, finalizer-only cleanup, weak-reference cover-up, or missing repeated-lifecycle proof | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Lifetime boundary, storage/owner/terminal classification, setup and cleanup owners, ownership DAG, retainer paths, memory floors and slopes, queue/backpressure envelope, stop and resume evidence, repeated-lifecycle proof, verification, and remaining lifetime risk |
697
+ | TCP sockets, HTTP keep-alive or pooling, HTTP/2 streams or sessions, Node.js streams, Web Streams readers or writers, FIN/RST, half-close, destroy or abort races, unconsumed response bodies, backpressure, connection shutdown, transport resource leaks, fault injection, soak tests, or connection-lifetime resolution claims are created, changed, reviewed, debugged, validated, or reported | `.mustflow/skills/connection-lifecycle-integrity-review/SKILL.md` | Protocol and role, physical connection, request, body, lock and pool ownership, event and action ledger, orthogonal lifecycle dimensions, terminal-cause policy, reuse gate, buffer and resource ledgers, shutdown paths, harness isolation, closed-cohort request ledger, fault schedule, clean comparator, seed and duration policy, resource-growth gates, and configured command intents | Transport, read, write, pool, request, body, reader or writer, termination admission, quarantine, body lease, buffer budget, resource scope, shutdown state, diagnostics, fault and soak fixtures, measurement gates, regression contracts, docs, route metadata, and synchronized templates | single closing enum, destroy-everywhere cleanup, duplicate finalize, total-order event assumption, request/socket lifetime collapse, body cancel killing an HTTP/2 session, unsafe keep-alive reuse, unbounded discard, backpressure ignored, pending write double settlement, TIME_WAIT called a leak, flat RSS called a fix, contaminated harness counts, retry-until-green, restart called resolution, unref as cleanup, upgraded transport leak, or natural-exit theater | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Protocol and ownership layers, orthogonal states, event/action and primary-cause decisions, finalize/destroy admission, reuse/quarantine and body disposition, resource and buffer invariants, fault and soak evidence, application/library/runtime/environment attribution, resolution classification, verification, and remaining connection-lifecycle risk |
690
698
  | Desktop app memory footprint needs scenario-level review for Windows, macOS, Linux, Electron, WebView, WPF, WinUI, Win32, Qt, Java Swing or JavaFX, .NET, JVM, Rust, C++, Python, working set versus private memory, RSS, dirty pages, live set, peak and after-close memory, UI virtualization, data virtualization, renderer and window count, module loading, image decode size, OS-discardable caches, memory-mapped files, `madvise`, `EmptyWorkingSet`, .NET LOH, `ArrayPool<T>`, WPF visual trees, GDI or USER handles, detached DOM nodes, hidden windows or tabs, string deduplication, large buffer capacity, struct padding, object graph shape, undo history, inactive views, low-memory signals, or scenario memory budgets | `.mustflow/skills/desktop-memory-footprint-review/SKILL.md` | Scenario ledger, measurement ledger, UI residency ledger, data residency ledger, cache ledger, runtime ledger, existing tests, package surfaces, synchronized docs or templates, and configured command intents | UI virtualization, data virtualization, container recycling, lazy model fetch, renderer or window disposal, feature-entry module loading, image downsampling, cache cost limits, discardable cache behavior, streaming or memory-mapped file access, mapped-range release hints, low-memory handlers, after-close cleanup, undo compaction, object-shape flattening, string or symbol tables, pooled-buffer scope, native handle release, and focused tests | working-set theater, full UI object creation, UI-only virtualization, hidden renderer retention, eager feature module, original-size thumbnail, item-count-only cache, full file read, mapped range held forever, unsafe pooled buffer return, GDI or USER handle leak, detached DOM retention, console measurement artifact, duplicate string bloat, live-set staircase, cleared-but-huge buffer, padded bulk struct, pointer-heavy row model, whole-document undo snapshot, inactive tab kept fully rendered, no-op low-memory handler, or missing after-close evidence | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Desktop memory footprint boundary reviewed, scenario budget, measurement metric, UI/data virtualization, renderer/window, module, media, cache, file, runtime, native handle, UI retention, string, data model, history, inactive view, memory-pressure, after-close evidence, verification, and remaining desktop-memory risk |
691
699
  | Code review or implementation needs hot-path triage for repeated ordinary work, external round trips, multi-pass collection chains, hidden quadratic lookup, per-item allocation or serialization, transaction or lock hold time, sequential async waits, unbounded fan-out, cache stampede, queue throughput, retry multiplication, timeout waits, or missing observability before a broader optimization pass | `.mustflow/skills/hot-path-performance-review/SKILL.md` | Hot path, multipliers, per-iteration cost, boundary ledger, data-size and tail-latency evidence, correctness boundaries, and configured command intents | Batching, projection, lookup tables, bounded concurrency, timeout and cancellation wiring, bulk writes, cache-key boundaries, queue backpressure, transaction or lock narrowing, focused tests, and lightweight observability tied to the hot path | repeated I/O in loops, N+1 query, multi-pass array traversal, hidden `O(n^2)` lookup, unbounded `SELECT *`, large offset pagination, index defeat, wide transaction, lock-held slow work, sequential `await`, unbounded `Promise.all`, per-item client creation, cache key explosion, cache stampede, hot-path logging, deep clone, repeated JSON conversion, CPU-heavy request work, queue bottleneck relocation, retry storm, or p95/p99 blind spot | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Hot path reviewed, cost ledger, repeated-boundary and hidden-complexity findings, semantics preserved, evidence level, verification, and remaining hot-path performance risk |
692
700
  | API endpoints, handlers, controllers, resolvers, serializers, mappers, service methods, middleware, webhook receivers, backend-for-frontend paths, admin APIs, or route-level request paths need latency review for repeated work inside one request | `.mustflow/skills/api-request-performance-review/SKILL.md` | API request boundary, Request cost ledger, route span, DB query count, Redis count, external API calls, pool acquire wait, transaction scope, cache hit or miss, payload and response bytes, serialization time, ORM behavior, correctness boundaries, and configured command intents | Projection narrowing, query-count or lazy-loading guards, bounded batching, request-scope memoization, Redis `MGET` or pipeline use, app-side filtering or sorting cleanup, transaction narrowing, route-level observability, focused tests, and directly synchronized docs or templates | per-request I/O fan-out, ORM serializer lazy loading, eager-load row explosion, `SELECT *`, app-side filtering after overfetch, deep `OFFSET`, expensive `COUNT(*)`, index mismatch for `WHERE` plus `ORDER BY` plus `LIMIT`, external API inside transaction, pool acquire wait hidden behind fast queries, Redis loop, cache miss amplification, repeated JSON serialization, huge response bytes, CPU-heavy request work, Node flame graph gap, Go pprof gap, MongoDB `explain()` gap, or missing OpenTelemetry span evidence | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | API request path reviewed, Request cost ledger, route-level DB/Redis/external/cache/serialization/CPU findings, evidence level, verification, and remaining API request performance risk |
@@ -839,6 +847,7 @@ routes. Event routes stay inactive until their event occurs.
839
847
  | Core Web Vitals, real-user web performance, CrUX, Search Console, Lighthouse-versus-field discrepancy, RUM instrumentation, LCP, INP, CLS, FID replacement, LCP subparts, interaction latency, Long Animation Frames, long tasks, bfcache, speculation rules, third-party scripts, tag managers, ads, web fonts, responsive hero media, layout shifts, or deployment performance regression needs field-data triage rather than a one-off lab score | `.mustflow/skills/core-web-vitals-field-review/SKILL.md` | User goal, current diff or target files, metric contract, field evidence ledger, LCP ledger, INP ledger, CLS ledger, lab and diagnostics ledger, current official threshold evidence when needed, and configured command intents | RUM instrumentation, metric payloads, route grouping, p75 reporting, field-versus-lab wording, LCP candidate attribution, Server-Timing, Resource Timing, LoAF or long-task capture, bfcache diagnostics, safe speculation rules, focused tests, and narrower render/image/frame/bundle fixes when selected | Lighthouse trophy claim, stale FID dashboard, averaged Web Vitals, hidden mobile failure, missing p75 split, uninstrumented RUM, lazy LCP media, undiscovered hero, render-blocked LCP, INP blocked by hydration or third-party scripts, GTM tag drift, long task without attribution, CLS from ads or skeleton mismatch, bfcache blocker, unsafe prerender side effect, single bundle-size budget, or unmonitored deploy regression | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Core Web Vitals field review, evidence level, threshold and percentile contract, mobile/desktop split, LCP/INP/CLS ledgers, fixes or recommendations, verification, and remaining CWV field risk |
840
848
  | Web page, frontend route, landing page, ecommerce page, dashboard, SSR/RSC/SPA route, hero image, LCP candidate, above-the-fold CSS, font, image, iframe, third-party script, chat widget, client bundle, hydration boundary, route prefetch, first-view data fetch, HTML streaming, CDN cache, resource hint, compression, content-visibility, long task, or Core Web Vitals test needs web-render-performance triage for first-render performance, LCP, CLS, FCP, TTFB, render-blocking CSS, asset priority, JavaScript execution cost, or cache and delivery risk | `.mustflow/skills/web-render-performance-review/SKILL.md` | User goal, current diff or target files, first viewport and LCP candidate ledger, critical resource discovery ledger, CSS/render-blocking ledger, font loading ledger, image/video/iframe ledger, third-party script ledger, JavaScript bundle and hydration ledger, data and HTML delivery ledger, cache/compression/resource-hint ledger, main-thread/long-task ledger, measurement or test evidence, and configured command intents | LCP image loading priority, preload and preconnect hints, critical CSS, route CSS splitting, font-display and font preload policy, font subsetting, responsive images, image CDN usage, lazy image and iframe dimensions, third-party script gating, chat widget loading, client/server component boundaries, dynamic imports, code splitting, modulepreload, first-view data fetching, streaming HTML, static shell and dynamic hole split, TTFB instrumentation, CDN and cache headers, compression, content-visibility, long task scheduling, route prefetch behavior, focused tests, and directly synchronized docs or templates | lazy LCP image, undiscovered background hero, fetchpriority everywhere, render-blocking global CSS, common/vendor CSS bloat, font FOIT or CLS, over-preloaded fonts, unsubset Korean or CJK font, oversized image, missing srcset or sizes, lazy image CLS, eager offscreen iframe, global third-party script, first-paint chat SDK, broad use-client boundary, eager modal/chart/editor/map import, tiny-chunk waterfall, modulepreload spam, client-effect first data, all-or-nothing HTML wait, personalized whole-page dynamic render, TTFB handwave, uncacheable static HTML, wrong immutable/no-store cache header, missing text compression, Early Hints or preconnect spam, below-fold DOM layout cost, long main-thread task, overbroad Link prefetch, or lab-only perf claim | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Web render performance reviewed, viewport/resource/CSS/font/media/third-party/JS/data/cache/main-thread map, findings, fixes or recommendation, measurement or test evidence, verification, and remaining web-render performance risk |
841
849
  | Web image, hero image, LCP image, product image, feed image, gallery, avatar, thumbnail, carousel image, CSS background hero, `img`, `picture`, `source`, `srcset`, `sizes`, framework image component, responsive preload, `imagesrcset`, `imagesizes`, `fetchpriority`, `loading`, `decoding`, intrinsic dimensions, DPR bucket, width bucket, AVIF/WebP/JPEG/PNG/SVG fallback, quality budget, blur placeholder, base64 inline image, image CDN transformation, derivative cache key, content-hash URL, `Accept` negotiation, image proxy allowlist, EXIF orientation, ICC profile, uploaded SVG handling, `elementtiming`, Resource Timing, DevTools image waterfall, or RUM image evidence needs image-delivery-performance triage for discovery, priority, candidate size, layout stability, cacheability, quality, or abuse risk | `.mustflow/skills/image-delivery-performance-review/SKILL.md` | User goal, current diff or target files, image role ledger, discovery and priority ledger, responsive candidate ledger, layout stability ledger, format and quality ledger, pipeline and metadata ledger, CDN and cache ledger, safety and abuse ledger, image measurement evidence or gap, and configured command intents | Image markup, `picture` source order, `srcset`, `sizes`, `loading`, `decoding`, `fetchpriority`, responsive preload, `imagesrcset`, `imagesizes`, intrinsic dimensions, `aspect-ratio`, placeholders, CSS background preload hints, framework image props, width and DPR buckets, format fallback policy, quality settings, metadata handling, cache headers, derivative cache key rules, `Accept` forwarding, remote image allowlists, transform limits, focused tests, and directly synchronized docs or templates | lazy LCP image, priority inflation, hidden background image discovery, responsive preload missing `imagesrcset` or `imagesizes`, multi-format preload, wrong `sizes`, framework fill without sizes, lazy image missing dimensions, unbounded 3x variants, arbitrary width bucket, CDN cache-key confetti, wrong format by content type, weak JPEG fallback, global quality constant, missing byte budget, EXIF rotation bug, color-profile loss, unsafe SVG serving, meaningful image hidden as CSS background, first-view lazy loading, giant lazy gallery, wrong `decoding` hint, oversized blur placeholder, base64 HTML bloat, missing content-hash URL, lost original, dropped `Accept` header, public image proxy, unbounded remote transform, Lighthouse-only claim, or duplicate image download | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Image delivery performance reviewed, image role/discovery/priority/candidate/layout/format/quality/cache/pipeline/safety map, findings, fixes or recommendation, measurement or static image-delivery evidence, verification, and remaining image-delivery performance risk |
850
+ | AI-generated 2D game assets, transparent PNGs, icons, sprites, sprite sheets, animation frames, tiles, terrain transitions, parallax backgrounds, props, VFX, texture atlases, pivots, trim metadata, alpha fringes, texture bleeding, foot sliding, loop discontinuity, or engine-ready image pipelines are planned, generated, integrated, reviewed, or validated | `.mustflow/skills/ai-game-asset-production/SKILL.md` | Asset roles, target engine and renderer version, camera and projection, final sizes and pixels per unit, alpha and color-space convention, master references, anchors, provenance ledger, source/work/output ownership, acceptance metrics, and configured command intents | Asset contracts, source manifests, masks, metadata, image-processing code, atlas and engine import settings, acceptance scenes, fixtures, tests, and directly synchronized docs within the selected asset scope | prompt-only production, baked background, matte fringe, unstable identity or scale, trim jitter, foot sliding, broken seams or loops, atlas bleed, collision derived from decorative pixels, stale legal claim, unknown provenance, or source-only verification | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `mustflow_check` | Asset and engine contract, provenance and stage boundaries, geometry/alpha/pivot/tile/animation/atlas findings, threshold sources, candidate disposition, verification, and remaining visual, gameplay, provenance, or runtime risk |
842
851
  | Frontend app, client package, route, design system, component library, import graph, package entrypoint, bundler config, shared vendor chunk, first-route JS, tree shaking, ESM/CJS dependency, barrel file, package exports, sideEffects metadata, PURE annotation, Next use-client boundary, Server Component split, dynamic import, React lazy, Angular defer, Vue route lazy loading, import modularization, icon import, date locale, syntax highlighter, markdown renderer, code editor, Node polyfill, browser target, Babel polyfill, dev-only branch, console stripping, Rollup manualChunks, Vite modulepreload, Tailwind extraction, safelist, or inline asset rule needs client-bundle-pruning triage for dead-code elimination, dependency bloat, initial JS, shared vendor, or route chunk risk | `.mustflow/skills/client-bundle-pruning-review/SKILL.md` | User goal, current diff or target files, bundle target ledger, entry and import graph ledger, dependency format ledger, framework boundary ledger, heavy-feature ledger, polyfill and target ledger, bundle budget or analyzer evidence, and configured command intents | Import paths, package entrypoints, subpath exports, barrel usage, ESM package choices, package `sideEffects`, Rollup `moduleSideEffects`, PURE annotations, client/server boundaries, dynamic imports, framework deferral boundaries, package import modularization, icon/date/highlighter/editor imports, Node polyfill fallbacks, browser and Babel targets, dev-only constants, logging wrapper behavior, manual chunk rules, modulepreload policy, Tailwind extraction shapes, asset inline thresholds, focused tests, and directly synchronized docs or templates | total-dist theater, no initial-JS budget, CJS package on client path, broad utility import, hot-path barrel, package-root import dragging design system, missing subpath export, unsafe `sideEffects: false`, CSS or polyfill shaken away, global `moduleSideEffects: false`, missing PURE hint, false PURE annotation, page-level `use client`, server-safe parser in client bundle, dynamic import with variable path, lazy component declared in render, eager modal/chart/editor/map/search/PDF import, library import before user intent, Angular defer leak, Vue eager route, unverified import modularization, icon catalog import, all date locales, all highlighter languages, Node polyfill bundle, old browser-target helper bloat, whole `core-js` import, dev branch not folded, unsafe console drop, one giant vendor chunk, modulepreload spam, dynamic Tailwind class miss, broad safelist, large inline SVG/font/image, or unmeasured bundle claim | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Client bundle pruning reviewed, first-route/shared-vendor/import/dependency/client-boundary/polyfill/chunk/CSS/asset map, findings, fixes or recommendation, measurement or test evidence, verification, and remaining client-bundle pruning risk |
843
852
  | Frontend route, component, animation, scroll path, input path, list, table, chart, map, canvas, media slot, modal, drawer, hydration boundary, DOM read/write path, CSS selector, class toggle, CSS custom property, containment, content-visibility, virtualization, observer, event listener, requestAnimationFrame loop, long task, worker boundary, ResizeObserver path, runtime CSS injection, React memo boundary, context provider, deferred update, transition, or DevTools rendering trace needs frame-render-performance triage for INP, animation smoothness, scroll responsiveness, style recalculation, layout, paint, compositing, main-thread, or hydration risk | `.mustflow/skills/frame-render-performance-review/SKILL.md` | User goal, current diff or target files, interaction and frame ledger, DOM and layout ledger, style and CSS ledger, paint and compositing ledger, event and scheduling ledger, framework render ledger, rendering evidence or measurement gap, and configured command intents | DOM read/write batching, layout-affecting writes, transform/opacity animations, will-change scope, containment, content-visibility and contain-intrinsic-size, virtualization, selector simplification, state-class scope, CSS variable scope, media geometry reservation, native lazy loading, IntersectionObserver, passive listeners, overscroll-behavior, requestAnimationFrame scheduling, long-task chunking, worker and OffscreenCanvas boundaries, ResizeObserver, runtime CSS rule reduction, React prop and context stability, deferred and transition updates, hydration narrowing, focused tests, and directly synchronized docs or templates | forced synchronous layout, layout thrashing, width/height/top/left animation, stale will-change, missing containment, unsafe contain side effect, content-visibility scroll jump, offscreen chart or canvas work, oversized DOM, deep wrapper tree, expensive selector, body/html state blast, root CSS variable churn, unreserved media slot, LCP concern misrouted as frame fix, JS lazy loader overhead, scroll polling, non-passive wheel/touch handler, JS scroll lock, setTimeout frame clock, long task, main-thread heavy compute, canvas blocking input, resize measurement loop, runtime style injection, ineffective memo, broad context rerender, urgent heavy result render, full hydration INP cost, Lighthouse-score-only claim, or unmeasured rendering win | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Frame render performance reviewed, interaction/DOM/style/layout/paint/compositing/event/framework map, findings, fixes or recommendation, measurement or static frame-risk evidence, verification, and remaining frame-render performance risk |
844
853
  | UI motion, animation, transition, microinteraction, motion recipe, motion design system, CSS animation or transition, WAAPI, Framer Motion, GSAP, View Transition, hover, press, focus, drag, viewport entry, loading, async success, async failure, reduced motion, interruption, cancellation, settlement, timeline track, transform, opacity, filter, layout animation, or additive composition is planned, edited, reviewed, or reported | `.mustflow/skills/motion-system-contract-review/SKILL.md` | User goal, current diff or target files, motion slot, source and target roles, semantic event class, logical from-state and to-state, timeline tracks, interruption policy, settlement policy, reduced-motion policy, binding approach, async signal owner, evidence level, and configured command intents | Motion recipes, component motion props, CSS keyframes and transitions, animation lifecycle handlers, reduced-motion rules, state and signal policies, role/ref/slot/data binding, story fixtures, focused tests, and directly synchronized docs or templates | motion owns product state, false success or failure feedback, timer pretending to be a signal, missing from-state or to-state, same target and channel collision, unsupported additive composition, layout-channel animation, `animation-fill-mode` state lie, missing reduced motion, hover-only access, brittle selector binding, production animation failure blocking core action, or unverified visual proof | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Motion contract reviewed, state/event/track/interruption/settlement/reduced-motion/binding ledgers, async and collision findings, evidence level, verification, and remaining motion contract risk |
@@ -0,0 +1,209 @@
1
+ ---
2
+ mustflow_doc: skill.ai-game-asset-production
3
+ locale: en
4
+ canonical: true
5
+ revision: 1
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: ai-game-asset-production
9
+ description: Apply this skill when AI-generated 2D game assets such as transparent PNGs, icons, sprites, animation frames, tiles, backgrounds, atlases, or engine-ready textures are planned, generated, normalized, integrated, reviewed, or validated as a repeatable production pipeline.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.ai-game-asset-production
15
+ command_intents:
16
+ - changes_status
17
+ - changes_diff_summary
18
+ - lint
19
+ - build
20
+ - test_related
21
+ - test
22
+ - docs_validate_fast
23
+ - mustflow_check
24
+ ---
25
+
26
+ # AI Game Asset Production
27
+
28
+ <!-- mustflow-section: purpose -->
29
+ ## Purpose
30
+
31
+ Turn generated pictures into reproducible 2D game assets by making the project contract, source
32
+ provenance, geometry, alpha handling, pivots, animation semantics, engine import behavior, and
33
+ acceptance evidence authoritative instead of treating prompt wording or a visually pleasing master
34
+ image as the production contract.
35
+
36
+ <!-- mustflow-section: use-when -->
37
+ ## Use When
38
+
39
+ - AI-generated transparent PNGs, icons, sprites, sprite sheets, animation frames, tiles, terrain
40
+ transitions, parallax backgrounds, props, VFX, or texture atlases are created or revised for a game.
41
+ - Assets look acceptable alone but drift in projection, scale, lighting, palette, edge continuity,
42
+ pivot, ground contact, collision alignment, frame identity, or runtime filtering.
43
+ - A repository needs a repeatable raw-to-engine asset pipeline, asset contract, atlas metadata,
44
+ automatic image checks, contact sheets, or engine-scene acceptance fixtures.
45
+ - A bug reports baked checkerboards, matte fringes, texture bleeding, trim jitter, foot sliding,
46
+ broken animation loops, inconsistent directional sprites, or seams between tiles and backgrounds.
47
+
48
+ <!-- mustflow-section: do-not-use-when -->
49
+ ## Do Not Use When
50
+
51
+ - The task only optimizes website image delivery, responsive sources, LCP behavior, or browser cache
52
+ policy; use `web-asset-optimization` or `image-delivery-performance-review`.
53
+ - The task only creates a concept illustration with no game-engine integration, repeatability, or
54
+ asset acceptance requirement.
55
+ - The main deliverable is a 3D mesh, rig, topology, UV layout, shader, or physically based material;
56
+ this skill may use a 3D proxy as an input but does not own a full 3D production pipeline.
57
+ - The task asks for a legal conclusion about copyright, trademark, platform policy, or commercial
58
+ rights. Use current authoritative sources and `provenance-license-gate`; do not convert this
59
+ procedure into legal advice.
60
+ - The task only reviews UI motion state, interruption, or reduced-motion behavior rather than game
61
+ sprite frame production; use `motion-system-contract-review`.
62
+
63
+ <!-- mustflow-section: required-inputs -->
64
+ ## Required Inputs
65
+
66
+ - Asset inventory and role for each output: isolated cutout, opaque background, translucent effect,
67
+ repeating tile, transition mask, icon, pixel art, painted sprite, normal map, or data mask.
68
+ - Target engine and renderer version, camera or projection, final display sizes, pixels per world
69
+ unit, color-space and straight or premultiplied alpha convention, filtering, mipmap, wrap,
70
+ compression, and atlas policy.
71
+ - Existing asset contract, style references, turnaround or calibration set, palette, meaningful
72
+ anchors, collision ownership, and animation state definitions; missing decisions must be named.
73
+ - Source and provenance ledger for generators, model or checkpoint components, reference images,
74
+ licenses or permissions, human edits, and retained source files.
75
+ - Repository paths and ownership for immutable source material, editable work files, generated
76
+ engine outputs, metadata, tests, and review artifacts.
77
+ - Acceptance metrics with a source of truth, measurement scale, threshold, exception, and failure
78
+ action, plus configured command intents in the selected repository.
79
+
80
+ <!-- mustflow-section: preconditions -->
81
+ ## Preconditions
82
+
83
+ - The task matches the use conditions and does not match an exclusion.
84
+ - Higher-priority instructions, the selected repository's command contract, current engine setup,
85
+ and existing asset pipeline have been inspected.
86
+ - The final runtime scale and renderer behavior are known, or the work stops at a calibration plan
87
+ instead of inventing production thresholds.
88
+ - Reference inputs have usable provenance, or unknown-rights inputs are excluded from shipped
89
+ assets and reported.
90
+
91
+ <!-- mustflow-section: allowed-edits -->
92
+ ## Allowed Edits
93
+
94
+ - Add or update project-owned asset contracts, source manifests, masks, metadata, image-processing
95
+ code, atlas configuration, engine import settings, acceptance scenes, fixtures, tests, and directly
96
+ synchronized documentation within the user-selected asset scope.
97
+ - Preserve immutable generated originals and manually authored masters when the repository declares
98
+ them as sources. Treat derived engine output as regenerable unless the repository says otherwise.
99
+ - When durable automation is needed, use the repository's existing cross-platform toolchain; under
100
+ the host policy, new repository automation defaults to Bun-backed TypeScript unless a nearer rule
101
+ selects another runtime.
102
+ - Do not install dependencies, call online generators, upload reference material, change legal or
103
+ platform policy, regenerate broad asset catalogs, or run unconfigured engine tools.
104
+ - Do not derive gameplay collision directly from decorative alpha unless the project contract
105
+ explicitly defines that bounded case.
106
+
107
+ <!-- mustflow-section: procedure -->
108
+ ## Procedure
109
+
110
+ 1. Classify every requested asset by rendering role and reject a one-setting-for-every-PNG pipeline.
111
+ Color textures, normal or mask data, hard cutouts, soft VFX, repeatable tiles, icons, and animation
112
+ frames have different alpha, color-space, resize, compression, and verification contracts.
113
+ 2. Locate or define the smallest project-owned asset contract. Record canvas and target sizes,
114
+ projection and camera, pixels per unit, ground line, safe region, palette and value structure,
115
+ light direction, alpha convention, layers, anchors, sockets, collision profile, atlas rules, and
116
+ engine import expectations. Prompt text may derive from this contract but never replaces it.
117
+ 3. Build a provenance and replacement ledger before generation. Separate provider permission,
118
+ copyrightability, third-party infringement risk, and exclusivity. Record the exact generator and
119
+ component chain, reference rights, source hashes, human contributions, review status, output
120
+ hashes, and every shipped use so one disputed asset can be quarantined and replaced.
121
+ 4. Establish a calibration set before bulk generation: geometric primitives, a humanoid or object
122
+ scale reference, representative materials, smallest target-size previews, tile neighbors, and the
123
+ engine acceptance scene. Reject model, style, or post-processing combinations that cannot hold
124
+ geometry, scale, light, or identity across this set.
125
+ 5. Freeze invariants separately from variables. Projection, camera, scale, light, palette, outline,
126
+ body ratios, anchors, and master references stay fixed; pose, expression, equipment, damage, and
127
+ material variants change deliberately. Derive variants from the approved master and original
128
+ reference set, not from a chain of progressively drifted outputs.
129
+ 6. Preserve stages as source, work, and generated engine output. Keep generator settings and source
130
+ hashes with the immutable source; perform masks, paintover, segmentation, alignment, and palette
131
+ work in the editable stage; rebuild atlas and engine output from declared inputs.
132
+ 7. Apply the alpha, icon, separation, trim, resize, atlas, and runtime checks in
133
+ `references/raster-alpha-atlas-checklist.md`. Test isolated cutouts on light, dark, and saturated
134
+ backgrounds. Preserve soft foreground alpha for glass, smoke, fire, and light instead of forcing
135
+ a binary mask.
136
+ 8. Apply the tile, background, object-contact, and animation branches in
137
+ `references/tile-animation-checklist.md`. Generate tile topology and masks before surface detail,
138
+ align frames by semantic anchors, keep gameplay shapes separate from art, and preserve full
139
+ untrimmed-frame metadata after packing.
140
+ 9. Define the automatic acceptance contract from
141
+ `references/asset-contract-validation.md`. Every metric needs a named coordinate space, target
142
+ scale, threshold source, exception policy, and deterministic failure action. A candidate starting
143
+ value is calibration evidence, not a universal default.
144
+ 10. Validate the derived output after the same resize, premultiplication, packing, compression,
145
+ filtering, mipmap, and color-space conversions used by the shipped build. Inspect native and
146
+ reduced scales in the actual renderer; source-PNG inspection alone cannot prove engine behavior.
147
+ 11. Classify each candidate as accepted, rework, quarantined, or rejected. Do not move a failing
148
+ threshold to fit a favored image. If the contract is wrong, revise it with new gameplay or
149
+ rendering evidence and re-evaluate the full calibration set.
150
+ 12. Run only configured oneshot intents in the selected repository. Keep asset generation,
151
+ conversion, tests, builds, and engine verification local to that repository's command authority.
152
+
153
+ <!-- mustflow-section: postconditions -->
154
+ ## Postconditions
155
+
156
+ - Every shipped output is traceable to project-owned contract fields, source inputs, transformation
157
+ settings, metadata, and an acceptance result.
158
+ - Transparent edges, pivots, trim offsets, atlas padding, tile seams, frame identity, contact points,
159
+ and runtime import settings are verified at the target scale or explicitly reported as unverified.
160
+ - Gameplay collision and event timing remain project-owned semantic data rather than accidental
161
+ consequences of generated pixels.
162
+ - Missing provenance, engine evidence, thresholds, or configured verification causes a bounded stop,
163
+ quarantine, or calibration report rather than an unsupported completion claim.
164
+
165
+ <!-- mustflow-section: verification -->
166
+ ## Verification
167
+
168
+ Use configured oneshot command intents when available in the selected repository:
169
+
170
+ - `changes_status`
171
+ - `changes_diff_summary`
172
+ - `lint`
173
+ - `build`
174
+ - `test_related`
175
+ - `test`
176
+ - `docs_validate_fast`
177
+ - `mustflow_check`
178
+
179
+ Prefer the narrowest asset compiler, image validator, atlas, engine import, or acceptance-scene intent
180
+ declared by the project. A passing static PNG check does not replace renderer or engine evidence.
181
+
182
+ <!-- mustflow-section: failure-handling -->
183
+ ## Failure Handling
184
+
185
+ - If projection, target scale, alpha convention, pivot, or runtime import behavior is unknown, stop
186
+ production output and return the missing contract fields plus a calibration plan.
187
+ - If reference provenance or commercial-use evidence is missing, exclude that input and its
188
+ derivatives from shipped output; do not make a legal assumption from generator marketing copy.
189
+ - If an isolated cutout fails RGBA, border-alpha, fringe, clipping, or safe-margin checks, quarantine
190
+ it before atlas packing. If a translucent effect fails a cutout-only rule, fix the role contract
191
+ rather than destroying its soft alpha.
192
+ - If frames fail identity, anchor, foot-contact, skeleton, arc, timing, or loop gates, rework the
193
+ source frames or metadata before assembling the sheet.
194
+ - If source files pass but engine output fails, inspect premultiplication, color space, padding,
195
+ extrude, UVs, filtering, mipmaps, wrap, compression, and import version before regenerating art.
196
+ - If a needed validator or engine check lacks a configured intent, report the missing intent and the
197
+ exact unverified risk instead of running a guessed command.
198
+
199
+ <!-- mustflow-section: output-format -->
200
+ ## Output Format
201
+
202
+ - Asset roles and target engine contract
203
+ - Source, work, generated-output, and provenance boundaries
204
+ - Geometry, alpha, pivot, tile, animation, atlas, and engine findings
205
+ - Acceptance metrics, threshold sources, exceptions, and candidate disposition
206
+ - Files and metadata created or changed
207
+ - Command intents run
208
+ - Skipped checks and reasons
209
+ - Remaining visual, gameplay, provenance, or runtime risk
@@ -0,0 +1,106 @@
1
+ # Asset Contract and Validation Ledger
2
+
3
+ Use this reference to turn a visual request into project-owned inputs and observable acceptance
4
+ evidence. Values below are fields to decide, not Mustflow defaults.
5
+
6
+ ## Contract fields
7
+
8
+ Record the fields that apply to the selected asset role:
9
+
10
+ | Area | Contract fields |
11
+ | --- | --- |
12
+ | identity | asset ID, role, variant family, master source, replacement tier |
13
+ | geometry | canvas, intended occupied bounds, target display sizes, pixels per unit, world dimensions, projection, camera, horizon or ground line |
14
+ | presentation | palette, value bands, outline range, material simplification, light vector, shadow policy, allowed baked lighting |
15
+ | transparency | straight or premultiplied delivery, cutout or soft alpha, background model, matte policy, color dilation policy |
16
+ | alignment | root pivot, ground contact, center of mass, sockets, trim policy, untrimmed source size |
17
+ | gameplay | movement collider, hurtbox, hitbox, interaction region, occluder, z-sort anchor, event frames |
18
+ | texture | color space, bit depth, filter, mipmap, wrap, compression, atlas rotation, extrude, shape padding, border padding |
19
+ | lifecycle | raw source owner, editable master, derived output, generator version, transform version, reviewer, replacement map |
20
+
21
+ For perspective or isometric work, also record screen directions for world axes and the expected
22
+ projection of a calibration cube. A style name such as "isometric" or "three-quarter" is not a
23
+ projection contract.
24
+
25
+ ## Provenance and replacement ledger
26
+
27
+ Keep provenance evidence separate from visual approval:
28
+
29
+ - exact provider, model, checkpoint, adapter, VAE, pose or control input, and post-processor versions;
30
+ - account or license context needed by the project, captured at the generation date when required;
31
+ - source URL or file identity, hash, author or owner, license or permission, attribution, and use scope
32
+ for every reference input;
33
+ - prompt or prompt hash, seed when meaningful, settings hash, generation date, and immutable raw hash;
34
+ - human-authored blockout, silhouette, composition, paintover, palette, rig, frame alignment, and
35
+ gameplay metadata contributions;
36
+ - similarity, watermark, logo, trademark, platform disclosure, and human-review disposition;
37
+ - final file hash and every game, atlas, UI, store, marketing, and localization reference that must be
38
+ changed during quarantine or replacement.
39
+
40
+ Do not collapse provider permission, copyright ownership, non-infringement, and exclusivity into one
41
+ "commercial use" boolean. Time-sensitive legal, vendor, and platform claims require current
42
+ authoritative sources; this ledger records evidence and decisions but does not supply legal advice.
43
+
44
+ ## Metric contract
45
+
46
+ Every automated metric should declare:
47
+
48
+ | Field | Question |
49
+ | --- | --- |
50
+ | metric ID | What stable name identifies the rule? |
51
+ | asset roles | Which cutout, effect, tile, icon, frame, or atlas roles does it apply to? |
52
+ | coordinate space | Source pixels, target pixels, normalized canvas, world units, UVs, or color space? |
53
+ | sampling stage | Raw, work, resized, packed, compressed, imported, or rendered? |
54
+ | threshold | What exact bound causes pass, warning, review, quarantine, or rejection? |
55
+ | source | Project contract, engine rule, representative approved set, or measured runtime budget? |
56
+ | exception | Which intentional edge-touch, full-canvas effect, soft-alpha, or asymmetric pose is exempt? |
57
+ | evidence | Which report, image, contact sheet, metadata record, or engine scene proves the result? |
58
+ | action | Rework, quarantine, reject, or revise the contract with new evidence? |
59
+
60
+ ## Required metric families
61
+
62
+ Select only the families relevant to the asset role:
63
+
64
+ - file contract: exact canvas, color mode, RGBA presence, bit depth, color profile, byte budget, empty
65
+ output, duplicate hash, naming, and metadata completeness;
66
+ - alpha contract: corner and border alpha, border-connected background residue, low-alpha noise area,
67
+ alpha histogram, matte fringe on contrasting backgrounds, and hidden RGB policy;
68
+ - framing contract: occupied bounds, border contact, safe margin, ground contact, pivot, sockets,
69
+ source size, trim rectangle, and sprite-source position;
70
+ - icon contract: silhouette occupancy, minimum negative space, minimum stroke, connected-component
71
+ count, contrast, pixel-grid alignment, and size-specific detail budget;
72
+ - seam contract: opposite-edge color and gradient distance, corner closure, repeated-pattern peak,
73
+ topology validity, object-contact height, and worst-neighbor matrix;
74
+ - animation contract: root and pivot drift, support-foot world drift, silhouette-area change, landmark
75
+ and bone-length change, palette drift, motion-arc deviation, loop pose and velocity discontinuity,
76
+ optical-flow outliers, and event-frame completeness;
77
+ - runtime contract: atlas bleed, UV region, alpha blend agreement, filter and mipmap behavior, wrap,
78
+ compression artifacts, draw scale, pixel snap, import metadata, and engine-scene result.
79
+
80
+ ## Threshold calibration
81
+
82
+ Exact values belong to the project because a 16-pixel icon, a 256-pixel painted sprite, and a
83
+ full-canvas smoke effect cannot share one tolerance. Calibrate from target-size approved examples and
84
+ known-bad fixtures.
85
+
86
+ Useful starting hypotheses from the supplied production material include exact alpha zero at isolated
87
+ cutout corners, no unintended occupied border pixel, pivot or grounded-foot drift no greater than one
88
+ target pixel, silhouette-height drift around two percent, and light-direction drift around five
89
+ degrees. These are calibration candidates only. Record the tested scale and replace them with the
90
+ project's measured bounds before using them as release gates.
91
+
92
+ If no approved baseline or engine evidence exists, emit measurements and contact sheets as a
93
+ calibration report. Do not silently turn an arbitrary number into a pass or fail contract.
94
+
95
+ ## Acceptance matrix
96
+
97
+ Render or inspect at least:
98
+
99
+ - transparent cutouts on black, white, mid-gray, and saturated backgrounds;
100
+ - icons at every shipped optical size, not only a large master preview;
101
+ - tiles as same-tile repeats and worst valid neighbors, including all four corners;
102
+ - sprites at native, reduced, and enlarged scales with the shipped filter and mipmap policy;
103
+ - atlases before and after compression with adjacent high-contrast sprites;
104
+ - animation at intended frame durations, slow inspection speed, and the loop boundary;
105
+ - debug overlays for pivot, ground line, sockets, trim rectangle, collider, hurtbox, hitbox, occluder,
106
+ motion paths, light vector, and tile topology.