mustflow 2.116.4 → 2.117.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/default/i18n.toml +152 -8
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +131 -13
- package/templates/default/locales/en/.mustflow/skills/agent-eval-integrity-review/SKILL.md +62 -34
- package/templates/default/locales/en/.mustflow/skills/agent-execution-control-review/SKILL.md +102 -31
- package/templates/default/locales/en/.mustflow/skills/agent-memory-context-governance-review/SKILL.md +163 -0
- package/templates/default/locales/en/.mustflow/skills/agent-planning-recovery-review/SKILL.md +180 -0
- package/templates/default/locales/en/.mustflow/skills/agent-release-bundle-rollout-review/SKILL.md +181 -0
- package/templates/default/locales/en/.mustflow/skills/agent-runtime-isolation-review/SKILL.md +196 -0
- package/templates/default/locales/en/.mustflow/skills/agent-runtime-multi-worker-review/SKILL.md +180 -0
- package/templates/default/locales/en/.mustflow/skills/automation-investment-case-review/SKILL.md +173 -0
- package/templates/default/locales/en/.mustflow/skills/client-platform-strategy-review/SKILL.md +236 -0
- package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/SKILL.md +302 -0
- package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/references/connection-fault-injection-resource-lifetime-validation.md +277 -0
- package/templates/default/locales/en/.mustflow/skills/connection-lifecycle-integrity-review/references/node-stream-transport-lifecycle-checklist.md +381 -0
- package/templates/default/locales/en/.mustflow/skills/credit-ledger-integrity-review/SKILL.md +8 -4
- package/templates/default/locales/en/.mustflow/skills/credit-monetization-integrity-review/SKILL.md +283 -0
- package/templates/default/locales/en/.mustflow/skills/desktop-commercial-distribution-review/SKILL.md +225 -0
- package/templates/default/locales/en/.mustflow/skills/external-prompt-injection-defense/SKILL.md +49 -3
- package/templates/default/locales/en/.mustflow/skills/freemium-ad-monetization-review/SKILL.md +196 -0
- package/templates/default/locales/en/.mustflow/skills/game-economy-monetization-review/SKILL.md +208 -0
- package/templates/default/locales/en/.mustflow/skills/game-liveops-commerce-integrity-review/SKILL.md +237 -0
- package/templates/default/locales/en/.mustflow/skills/growth-distribution-integrity-review/SKILL.md +247 -0
- package/templates/default/locales/en/.mustflow/skills/idempotency-integrity-review/SKILL.md +20 -2
- package/templates/default/locales/en/.mustflow/skills/llm-model-routing-integrity-review/SKILL.md +183 -0
- package/templates/default/locales/en/.mustflow/skills/llm-product-monetization-review/SKILL.md +311 -0
- package/templates/default/locales/en/.mustflow/skills/llm-token-cost-control-review/SKILL.md +15 -1
- package/templates/default/locales/en/.mustflow/skills/localization-market-expansion-review/SKILL.md +224 -0
- package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/SKILL.md +94 -2
- package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/references/cross-runtime-memory-stream-reproduction-harness.md +289 -0
- package/templates/default/locales/en/.mustflow/skills/memory-lifetime-review/references/node-memory-resource-backpressure-diagnostics.md +369 -0
- package/templates/default/locales/en/.mustflow/skills/multi-agent-work-coordination/SKILL.md +7 -2
- package/templates/default/locales/en/.mustflow/skills/pricing-model-integrity-review/SKILL.md +288 -0
- package/templates/default/locales/en/.mustflow/skills/product-engagement-retention-review/SKILL.md +234 -0
- package/templates/default/locales/en/.mustflow/skills/product-onboarding-activation-review/SKILL.md +269 -0
- package/templates/default/locales/en/.mustflow/skills/product-portfolio-integrity-review/SKILL.md +233 -0
- package/templates/default/locales/en/.mustflow/skills/prompt-contract-quality-review/SKILL.md +1 -0
- package/templates/default/locales/en/.mustflow/skills/referral-incentive-integrity-review/SKILL.md +206 -0
- package/templates/default/locales/en/.mustflow/skills/retry-policy-integrity-review/SKILL.md +45 -2
- package/templates/default/locales/en/.mustflow/skills/routes.toml +346 -7
- package/templates/default/locales/en/.mustflow/skills/service-portfolio-capital-allocation-review/SKILL.md +245 -0
- package/templates/default/locales/en/.mustflow/skills/subscription-retention-profit-review/SKILL.md +217 -0
- package/templates/default/manifest.toml +97 -1
package/templates/default/locales/en/.mustflow/skills/localization-market-expansion-review/SKILL.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.localization-market-expansion-review
|
|
3
|
+
locale: en
|
|
4
|
+
canonical: true
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: localization-market-expansion-review
|
|
9
|
+
description: Apply this skill when a product changes single-language versus simultaneous multilingual launch, first-market language selection, staged locale rollout, AI or machine translation followed by human review, exploration versus revenue versus fully supported locales, localized SEO demand, language-specific checkout and trust copy, translation maintenance cost, locale promotion gates, per-locale conversion refunds support or contribution, or claims that multilingual traffic creates profitable market expansion.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.localization-market-expansion-review
|
|
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
|
+
# Localization Market Expansion Review
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Choose which languages to operate, how deeply to support them, and when to promote them from demand
|
|
33
|
+
and retained contribution. Keep the product internationalization-ready without opening more
|
|
34
|
+
translation, support, legal, billing, SEO, and release obligations than the team can maintain.
|
|
35
|
+
|
|
36
|
+
<!-- mustflow-section: use-when -->
|
|
37
|
+
## Use When
|
|
38
|
+
|
|
39
|
+
- A product compares launching in one language with launching in many languages simultaneously.
|
|
40
|
+
- A team chooses the first market language, locale rollout order, language count, or promotion gate.
|
|
41
|
+
- AI or machine translation is used for landing pages, SEO pages, product UI, onboarding, checkout,
|
|
42
|
+
help, email, support, policy, or store listings with selective human review.
|
|
43
|
+
- Languages are classified as exploratory, marketing-only, revenue-ready, fully supported,
|
|
44
|
+
deprecated, frozen, or removed.
|
|
45
|
+
- International SEO, localized queries, language URLs, `hreflang`, translated metadata, search
|
|
46
|
+
traffic, signup, payment, refund, support, retention, or per-locale contribution changes.
|
|
47
|
+
- A report claims translation volume, localized traffic, country reach, or supported-language count
|
|
48
|
+
creates revenue or efficient global expansion.
|
|
49
|
+
|
|
50
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
51
|
+
## Do Not Use When
|
|
52
|
+
|
|
53
|
+
- The task is implementation correctness for message catalogs, pluralization, formatting, RTL,
|
|
54
|
+
locale routing, SSR hydration, `hreflang`, exports, or translation keys without a market rollout
|
|
55
|
+
decision; use `frontend-localization-review`.
|
|
56
|
+
- The task only edits copy in one known language or translates user-provided prose with no product
|
|
57
|
+
support, SEO, checkout, or market-expansion decision.
|
|
58
|
+
- The task only changes regional prices, currencies, tax presentation, or purchasing-power policy;
|
|
59
|
+
use `pricing-model-integrity-review`.
|
|
60
|
+
- The task requests jurisdiction-specific legal, privacy, tax, medical, financial, consumer, or
|
|
61
|
+
advertising translation approval. Use qualified native-language reviewers and current authority.
|
|
62
|
+
|
|
63
|
+
<!-- mustflow-section: required-inputs -->
|
|
64
|
+
## Required Inputs
|
|
65
|
+
|
|
66
|
+
- Market ledger: target job, buyer, purchase owner, current customer language, country and script,
|
|
67
|
+
local alternatives, search demand, paid demand, willingness evidence, product fit, support demand,
|
|
68
|
+
regulatory or trust risk, and acquisition channel.
|
|
69
|
+
- Locale-state ledger: locale, script, region, stage, supported surfaces, excluded surfaces, launch
|
|
70
|
+
date, owner, glossary, review level, fallback, deprecation, and user-facing disclosure.
|
|
71
|
+
- Surface ledger: landing, SEO, product UI, signup, onboarding, pricing, checkout, receipt, refund,
|
|
72
|
+
security, privacy, legal, error, email, notification, help, support, store listing, screenshots,
|
|
73
|
+
exports, and in-product content.
|
|
74
|
+
- Translation ledger: source version, locale version, model or vendor, prompt or glossary, machine
|
|
75
|
+
output, reviewer, review sample, risk class, placeholder parity, stale state, and correction path.
|
|
76
|
+
- SEO ledger: local query language, intent and terminology research, stable locale URL, translated
|
|
77
|
+
main content, canonical, reciprocal alternate mapping, `x-default`, sitemap or HTML method,
|
|
78
|
+
crawl and index state, and scaled-content risk.
|
|
79
|
+
- Economics ledger: incremental nonbrand traffic, qualified visit, download or signup, checkout,
|
|
80
|
+
payment, refund, chargeback, support time, translation and review cost, engineering maintenance,
|
|
81
|
+
content update cost, retained revenue, and contribution by eligible locale cohort.
|
|
82
|
+
- Experiment ledger: locale eligibility, assignment or rollout, source-language baseline, country
|
|
83
|
+
and language distinction, exposure, product-language disclosure, horizon, guardrails, and
|
|
84
|
+
promotion or retirement rule.
|
|
85
|
+
|
|
86
|
+
<!-- mustflow-section: preconditions -->
|
|
87
|
+
## Preconditions
|
|
88
|
+
|
|
89
|
+
- Separate internationalization readiness from languages actively marketed, sold, supported, and
|
|
90
|
+
serviced. Code readiness does not create an operating-language commitment.
|
|
91
|
+
- Choose the first language from the fastest credible paying-customer path, not from an assumption
|
|
92
|
+
that English or the founder's language is universally correct.
|
|
93
|
+
- Define support depth and human-review requirements before publishing or accepting payment in a
|
|
94
|
+
locale.
|
|
95
|
+
- Treat copied language counts, rollout batches, review percentages, contribution multiples,
|
|
96
|
+
traffic lifts, and maintenance budgets as hypotheses, not defaults.
|
|
97
|
+
- Refresh current search-engine, store, payment, tax, privacy, accessibility, and jurisdiction
|
|
98
|
+
requirements before launching localized public or transactional surfaces.
|
|
99
|
+
- This skill does not authorize bulk translation, index submission, pricing, live campaigns,
|
|
100
|
+
checkout activation, messages, store publication, or production rollout.
|
|
101
|
+
|
|
102
|
+
<!-- mustflow-section: allowed-edits -->
|
|
103
|
+
## Allowed Edits
|
|
104
|
+
|
|
105
|
+
- Add or refine locale stages, market qualification, surface support matrices, translation risk and
|
|
106
|
+
review policy, SEO demand tests, source and locale versioning, promotion and retirement gates,
|
|
107
|
+
economics, events, fixtures, tests, docs, route metadata, and synchronized templates.
|
|
108
|
+
- Add explicit handoffs to frontend localization, SEO, product copy, payment, pricing, support,
|
|
109
|
+
privacy, security, accessibility, legal, or native-language review owners.
|
|
110
|
+
- Replace language-count goals, traffic-only success, unreviewed transactional copy, silent English
|
|
111
|
+
fallback, or mass translated SEO pages with staged and observable support commitments.
|
|
112
|
+
- Do not label a locale fully supported when core UI, support, checkout, policies, or failure
|
|
113
|
+
recovery remain undisclosed in another language.
|
|
114
|
+
|
|
115
|
+
<!-- mustflow-section: procedure -->
|
|
116
|
+
## Procedure
|
|
117
|
+
|
|
118
|
+
1. Split three decisions: internationalization readiness, marketed or indexed locale, and operational
|
|
119
|
+
support depth. Do not launch every technically possible locale.
|
|
120
|
+
2. Choose the first market language from buyer concentration, product fit, payment ability, search or
|
|
121
|
+
direct demand, support feasibility, trust, and speed to paid learning. English is a candidate, not
|
|
122
|
+
a universal first language.
|
|
123
|
+
3. Make architecture ready for future locales early where proportionate. Externalize strings and
|
|
124
|
+
account for plural, format, time, currency, expansion, script, font, RTL, route, metadata, and
|
|
125
|
+
export boundaries without translating every surface immediately.
|
|
126
|
+
4. Define explicit locale stages. A useful model can distinguish candidate, exploratory,
|
|
127
|
+
revenue-ready, fully supported, frozen, and retired locales, but names and counts are product
|
|
128
|
+
policy rather than universal law.
|
|
129
|
+
5. For an exploratory locale, state what is translated and what remains in the source language.
|
|
130
|
+
Use it to measure real demand only when the page gives local users useful, accurate content and a
|
|
131
|
+
truthful path to the actual product.
|
|
132
|
+
6. Before accepting payment, require native-capable review for price, CTA, checkout, renewal,
|
|
133
|
+
cancellation, refund, security, privacy, legal claims, onboarding, critical errors, and other
|
|
134
|
+
trust-bearing text according to product risk. Machine output alone is not proof of correct rights.
|
|
135
|
+
7. Promote to full support only when product UI, high-frequency help, support ownership, incident
|
|
136
|
+
communication, billing recovery, policy updates, and release maintenance have declared owners.
|
|
137
|
+
8. Classify translation by consequence, not only language. High-trust and rights-bearing surfaces
|
|
138
|
+
need stricter review in every public locale; lower-risk long-tail help or marketing drafts may use
|
|
139
|
+
sampled review when current evidence and policy permit it.
|
|
140
|
+
9. Treat AI translation as a versioned draft producer. Preserve source version, model or vendor,
|
|
141
|
+
glossary, placeholder rules, reviewer evidence, correction feedback, stale detection, and
|
|
142
|
+
rollback or unpublish behavior.
|
|
143
|
+
10. Do not translate keywords literally and call it localization. Research local category names,
|
|
144
|
+
jobs, search intent, alternatives, trust signals, and purchase language before choosing titles,
|
|
145
|
+
metadata, examples, and calls to action.
|
|
146
|
+
11. Create stable crawler-visible locale URLs only when the localized main content and user path are
|
|
147
|
+
real. Keep canonical and alternate relationships accurate and route implementation through
|
|
148
|
+
`frontend-localization-review`.
|
|
149
|
+
12. Maintain reciprocal locale relationships and one coherent alternate-marking method where the
|
|
150
|
+
current search owner requires it. A tag existing in source does not prove crawl, index, or
|
|
151
|
+
conversion success.
|
|
152
|
+
13. Do not mass-publish translated or generated pages whose main purpose is ranking coverage.
|
|
153
|
+
Evaluate unique local usefulness, accuracy, relevance, product availability, and maintenance;
|
|
154
|
+
generation method alone neither guarantees safety nor proves spam.
|
|
155
|
+
14. Disclose product-language gaps. Localized acquisition pages must show when the app, support,
|
|
156
|
+
checkout, documentation, or store binary remains available only in another language.
|
|
157
|
+
15. Measure the full language funnel. Start with eligible nonbrand demand, then useful visit,
|
|
158
|
+
product start, first owned value, checkout, payment, retained use, refund, support, and
|
|
159
|
+
contribution. Traffic and indexed-page counts are diagnostic, not the headline result.
|
|
160
|
+
16. Include recurring maintenance cost. Price source-copy changes, catalog and screenshot updates,
|
|
161
|
+
UI regressions, reviewer availability, customer support, policy changes, store assets, incident
|
|
162
|
+
messages, and stale translation cleanup across the planned horizon.
|
|
163
|
+
17. Promote a locale only when expected retained contribution and learning value justify initial and
|
|
164
|
+
recurring obligations under declared uncertainty. Do not embed a universal payback multiple or
|
|
165
|
+
day horizon.
|
|
166
|
+
18. Retire or freeze honestly. Preserve customer rights, access, receipts, support and incident
|
|
167
|
+
communication, and state what will stop changing; do not silently fall back after selling a
|
|
168
|
+
supported-language promise.
|
|
169
|
+
19. Sequence locale launches so causes remain identifiable. When several locales launch together,
|
|
170
|
+
report aggregate evidence and do not claim which language, channel, or review depth caused the
|
|
171
|
+
result.
|
|
172
|
+
20. Promote only a reversible rollout that improves per-eligible-locale contribution while
|
|
173
|
+
preserving accurate high-trust text, product-language disclosure, search value, support,
|
|
174
|
+
accessibility, current authority, and maintainable translation workflow.
|
|
175
|
+
|
|
176
|
+
<!-- mustflow-section: postconditions -->
|
|
177
|
+
## Postconditions
|
|
178
|
+
|
|
179
|
+
- Internationalization readiness, public locale, revenue readiness, and full support are separate
|
|
180
|
+
observable states.
|
|
181
|
+
- The first language and later locale order follow customer and economics evidence rather than a
|
|
182
|
+
fixed English-first or many-language rule.
|
|
183
|
+
- AI translation has source, glossary, risk, review, correction, and stale-state controls.
|
|
184
|
+
- Localized SEO represents useful maintained content and an honest product path.
|
|
185
|
+
- High-trust surfaces receive the required native-capable review before payment or rights change.
|
|
186
|
+
- Headline expansion uses retained contribution rather than language count, page count, traffic, or
|
|
187
|
+
translation volume.
|
|
188
|
+
|
|
189
|
+
<!-- mustflow-section: verification -->
|
|
190
|
+
## Verification
|
|
191
|
+
|
|
192
|
+
Use configured oneshot command intents when available: `changes_status`, `changes_diff_summary`,
|
|
193
|
+
`lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, and
|
|
194
|
+
`mustflow_check`. Do not infer live translation, TMS, browser, crawler, index, payment, support,
|
|
195
|
+
campaign, store, analytics, deployment, or production commands.
|
|
196
|
+
|
|
197
|
+
<!-- mustflow-section: failure-handling -->
|
|
198
|
+
## Failure Handling
|
|
199
|
+
|
|
200
|
+
- If local demand and purchase intent are unknown, keep the locale exploratory and do not claim
|
|
201
|
+
revenue readiness from translated traffic.
|
|
202
|
+
- If high-trust review is unavailable, do not accept payment or publish rights-bearing claims in that
|
|
203
|
+
locale; keep the surface clearly limited or unpublished.
|
|
204
|
+
- If the localized page promises a product experience that remains undisclosed in another language,
|
|
205
|
+
correct the promise before acquiring more traffic.
|
|
206
|
+
- If crawl or traffic evidence exists without checkout, refund, support, and retention evidence,
|
|
207
|
+
report acquisition reach rather than profitable market expansion.
|
|
208
|
+
- If translation maintenance ownership is missing, limit the supported surface instead of opening
|
|
209
|
+
another full locale.
|
|
210
|
+
|
|
211
|
+
<!-- mustflow-section: output-format -->
|
|
212
|
+
## Output Format
|
|
213
|
+
|
|
214
|
+
- First-market language, buyer, job, demand, fit, support, trust, and current authority
|
|
215
|
+
- Locale stage, supported and excluded surfaces, product-language disclosure, owner, fallback, and
|
|
216
|
+
retirement
|
|
217
|
+
- Translation source, AI or vendor, glossary, consequence class, human review, stale handling, and
|
|
218
|
+
correction
|
|
219
|
+
- Local query intent, URL, canonical and alternate mapping, crawl, index, usefulness, and
|
|
220
|
+
scaled-content risk
|
|
221
|
+
- Eligible demand, activation, payment, refund, support, maintenance cost, retained contribution,
|
|
222
|
+
rollout decision, files changed, commands run and skipped checks
|
|
223
|
+
- Remaining localization-market-expansion risk
|
|
224
|
+
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
mustflow_doc: skill.memory-lifetime-review
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 5
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: memory-lifetime-review
|
|
9
|
-
description: Apply this skill when code is created, changed, reviewed, or reported and object lifetime, retained references, cleanup symmetry, event listeners, timers, subscriptions, goroutines, threads, workers, streams, native handles, caches, queues, or memory/resource leak risk may matter.
|
|
9
|
+
description: Apply this skill when code is created, changed, reviewed, diagnosed, validated, or reported and object lifetime, retained references, cleanup symmetry, event listeners, timers, subscriptions, goroutines, threads, workers, streams, native handles, caches, queues, RSS, heap, external memory, ArrayBuffer or Buffer retention, allocator fragmentation, unbounded buffering, cross-runtime reproduction, backpressure, or memory/resource leak risk may matter.
|
|
10
10
|
metadata:
|
|
11
11
|
mustflow_schema: "1"
|
|
12
12
|
mustflow_kind: procedure
|
|
@@ -41,6 +41,11 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
41
41
|
- Code adds lifecycle setup such as `new`, `open`, `connect`, `subscribe`, `observe`, `addEventListener`, `setInterval`, `setTimeout`, `context.WithCancel`, `ThreadLocal.set`, `malloc`, `retain`, `shared_ptr`, `Rc`, task spawning, stream creation, or cache insertion.
|
|
42
42
|
- Code uses closures, callbacks, lambdas, async work, promises, channels, effects, refs, logging queues, metrics queues, debug arrays, maps, or registries that may capture or store large or short-lived objects.
|
|
43
43
|
- A review or final report claims that a path is leak-free, bounded, cleaned up, disposable, safe for repeated mount/unmount, safe for long-running processes, safe under retries, or safe for repeated requests.
|
|
44
|
+
- A Node.js service or streaming pipeline needs to distinguish JavaScript heap retention, external
|
|
45
|
+
buffers, native allocations, cache growth, handle leakage, allocator residency, and live
|
|
46
|
+
backpressure backlog instead of naming all RSS growth a memory leak.
|
|
47
|
+
- A Node-compatible memory or stream symptom needs a same-source Node.js, Bun, adapter, runtime
|
|
48
|
+
version, or operating-system reproduction matrix without mixing application and runtime changes.
|
|
44
49
|
|
|
45
50
|
<!-- mustflow-section: do-not-use-when -->
|
|
46
51
|
## Do Not Use When
|
|
@@ -60,7 +65,18 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
60
65
|
- Repetition path: repeated requests, screen open/close, route changes, tab switches, reconnects, retries, scheduled runs, test cases, or long-running sessions that can accumulate retained state.
|
|
61
66
|
- Error and success paths: normal completion, early return, partial read, cancellation, timeout, retry, exception, unmount, shutdown, and dependency failure behavior.
|
|
62
67
|
- Diagnostic evidence for native or low-level memory faults: first sanitizer or memory-checker report, invalid write/read address, watchpoint condition, allocator or quarantine behavior, fuzzing input, core dump, symbols, build id, shared library list, and configured or manual diagnostic boundary.
|
|
68
|
+
- Measurement classification for memory diagnosis: storage location, retention owner, terminal
|
|
69
|
+
status, post-GC or post-quiescent slope, queue-byte ledgers, process and protocol resource counts,
|
|
70
|
+
workload phases, and the statistical tolerance used for a leak or fragmentation claim.
|
|
63
71
|
- Relevant command-intent contract entries for tests, builds, docs, release checks, and mustflow validation.
|
|
72
|
+
- For Node.js RSS, heap, external-memory, Buffer, native-handle, cache, streaming, HTTP/2, HTTP/3,
|
|
73
|
+
or cross-layer backpressure diagnosis, read
|
|
74
|
+
`references/node-memory-resource-backpressure-diagnostics.md` before classifying cause or claiming
|
|
75
|
+
that a queue, leak, or allocator problem is resolved.
|
|
76
|
+
- For a Node.js or Bun cross-runtime memory, stream, socket, descriptor, handle, allocator, or
|
|
77
|
+
runtime-version reproducer, read
|
|
78
|
+
`references/cross-runtime-memory-stream-reproduction-harness.md` before designing the process
|
|
79
|
+
harness, comparator matrix, result manifest, or permanent-resolution gate.
|
|
64
80
|
|
|
65
81
|
<!-- mustflow-section: preconditions -->
|
|
66
82
|
## Preconditions
|
|
@@ -71,6 +87,12 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
71
87
|
- If authorization, secrets, personal data, telemetry, or audit records are retained, also use `security-privacy-review`.
|
|
72
88
|
- If queue, cache, retry, worker, health, or operational behavior changes, also use `backend-reliability-change`.
|
|
73
89
|
- If user-perceived latency, throughput, allocation churn, GC pressure, or memory budget is claimed, also use `performance-budget-check`.
|
|
90
|
+
- If counter, slope, denominator, benchmark, or regression-gate semantics dominate, also use
|
|
91
|
+
`performance-measurement-integrity-review`.
|
|
92
|
+
- If socket, session, request-body, FIN/RST, pool reuse, or transport shutdown semantics dominate,
|
|
93
|
+
also use `connection-lifecycle-integrity-review`.
|
|
94
|
+
- If the reported symptom does not yet have a deterministic reproduction, also use
|
|
95
|
+
`repro-first-debug` and keep exploratory runs separate from causal proof.
|
|
74
96
|
- If UI lifecycle, rendering, or browser behavior changes, also use the matching UI or framework skill.
|
|
75
97
|
|
|
76
98
|
<!-- mustflow-section: allowed-edits -->
|
|
@@ -79,6 +101,9 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
79
101
|
- Add or tighten teardown, cancellation, ownership, weak-reference, eviction, queue-bound, stream-close, worker-shutdown, and lifecycle-symmetry code tied to the task.
|
|
80
102
|
- Refactor setup and cleanup into a shared lifecycle boundary when it prevents duplicate registration or forgotten teardown.
|
|
81
103
|
- Add focused tests, fixtures, probes, or docs that prove cleanup symmetry, bounded retention, repeated lifecycle behavior, or native-resource disposal when repository evidence supports them.
|
|
104
|
+
- Add bounded owner, byte-flow, queue, post-GC, post-quiescent, handle, cache, or backpressure
|
|
105
|
+
instrumentation when it proves the changed lifetime boundary without retaining payloads or
|
|
106
|
+
sensitive context.
|
|
82
107
|
- Do not hide leak warnings by raising listener limits, disabling strict lifecycle checks, adding finalizers as primary cleanup, or weakening tests.
|
|
83
108
|
- Do not add object pools as a default leak or GC fix. Pool only heavy buffers, large arrays, native handles, or repeatedly allocated expensive objects after allocation evidence shows churn; ordinary short-lived records are often cheaper to let the generational collector reclaim.
|
|
84
109
|
- Do not use weak references as a design cover-up when the real owner and cleanup point should be explicit.
|
|
@@ -136,6 +161,53 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
136
161
|
15. Reject finalizers as the main plan. Finalizers, destructors, drop hooks, or weak callbacks can be last-resort diagnostics or safety nets, but the review should still identify deterministic cleanup for resources and reference removal.
|
|
137
162
|
16. Separate allocation churn from retained memory. High allocation rate, GC pauses, retained heap, external memory, and RSS growth point to different fixes. Prefer allocation timeline, heap snapshot, retaining-path, `--trace-gc`, sanitizer, or runtime memory evidence when configured; report unconfigured tools as manual evidence instead of guessing from RSS alone.
|
|
138
163
|
17. Add a repeated-lifecycle proof when feasible. Prefer a focused test or probe that repeats the risky lifecycle, then asserts listener count, registry size, cache size, goroutine/task completion, handle closure, queue depth, or retained object count. If heap snapshots, leak profilers, sanitizer runs, memory-checker runs, fuzzers, core dump inspection, or platform-specific diagnostics are not configured intents, report them as manual evidence gaps instead of running raw commands.
|
|
164
|
+
18. Classify memory growth on independent axes before choosing a fix.
|
|
165
|
+
- Name the storage location: managed heap, external or backing-store memory, other native
|
|
166
|
+
allocation, mapping, allocator residency, cache, application queue, or kernel buffer.
|
|
167
|
+
- Name the retaining owner: request, attempt, branch, stream, task, cache, pool, connection,
|
|
168
|
+
native operation, retry, or process service.
|
|
169
|
+
- Name the terminal state: legitimate in-flight work, bounded backlog, unbounded backlog,
|
|
170
|
+
terminal retained resource, or released allocation whose pages remain resident.
|
|
171
|
+
- Do not derive native memory by subtracting overlapping process and runtime totals.
|
|
172
|
+
19. Compare floors and slopes under controlled lifecycle phases.
|
|
173
|
+
- Fix concurrency, payload and chunk size, compression, protocol, retries, cache, branch count,
|
|
174
|
+
consumer rate, runtime, and allocator before comparison.
|
|
175
|
+
- Separate idle baseline, warmup, normal consumer, slow consumer, stopped consumer, admission
|
|
176
|
+
stop and drain, pool idle expiry, and optional isolated-GC phases.
|
|
177
|
+
- Prefer post-major-GC and post-quiescent growth per completed lifecycle with a predeclared
|
|
178
|
+
statistical tolerance over one RSS peak or literal zero-noise assertions.
|
|
179
|
+
20. Model shared and branched work as an ownership DAG.
|
|
180
|
+
- Separate process, pool, connection or session, logical request, retry or hedge attempt,
|
|
181
|
+
protocol stream, clone or tee branch, file, transform, and telemetry ownership.
|
|
182
|
+
- Require every request-owned lease and byte reservation to return once while allowing a healthy
|
|
183
|
+
shared connection, session, or bounded cache to outlive the request.
|
|
184
|
+
21. Trace backpressure from final commitment toward transport.
|
|
185
|
+
- Distinguish admitted, accepted, committed, released, cancelled, and discarded bytes at every
|
|
186
|
+
edge, keeping compressed, decoded, transformed, and durable byte domains separate.
|
|
187
|
+
- Stop the sink and identify the first edge whose queue continues to grow instead of plateauing
|
|
188
|
+
within its byte envelope; then resume and require drain and upstream progress to recover.
|
|
189
|
+
- Treat high-water marks as thresholds, not total caps, and include maximum chunk, in-flight
|
|
190
|
+
operations, side queues, branches, retries, codec expansion, protocol windows, and transport
|
|
191
|
+
buffers in the envelope.
|
|
192
|
+
22. Calibrate the diagnosis to available evidence.
|
|
193
|
+
- Call growth a terminal leak only when the owner should have ended and retained counts or bytes
|
|
194
|
+
grow with completed lifecycle repetitions.
|
|
195
|
+
- Call fragmentation only after live heap, external memory, cache, queues, handles, mappings,
|
|
196
|
+
and native allocation evidence no longer explains resident growth.
|
|
197
|
+
- Report heap snapshots, native profilers, platform handle inspection, packet capture, qlog, and
|
|
198
|
+
long-running load as manual-only or missing unless configured by the selected repository.
|
|
199
|
+
23. Design cross-runtime reproduction without changing the application and runtime together.
|
|
200
|
+
- Keep one shared compatibility-source case, a fixed observer, isolated server and client target
|
|
201
|
+
processes, explicit baseline/load/admission-stop/drain/quiescence phases, and fresh target
|
|
202
|
+
processes per measured run.
|
|
203
|
+
- Compare one factor at a time across producer rate, consumer delay, backpressure obedience,
|
|
204
|
+
finite versus continuing work, cancellation, reconnect, peer loss, concurrency, adapter,
|
|
205
|
+
runtime build, and operating-system cell. Treat ramps and multi-factor runs as exploratory.
|
|
206
|
+
- Record a versioned allowlisted manifest with configuration hash, observer identity, target
|
|
207
|
+
binary digest and build identity, environment cell, raw samples, completed work, queue and
|
|
208
|
+
resource conservation, repetitions, dispersion, and unsupported diagnostic phases.
|
|
209
|
+
- Call a newer green runtime version-localized or a fix candidate until last-bad, first-good,
|
|
210
|
+
comparable work, narrowed change, and forward or reverse change evidence establish cause.
|
|
139
211
|
|
|
140
212
|
<!-- mustflow-section: postconditions -->
|
|
141
213
|
## Postconditions
|
|
@@ -147,6 +219,13 @@ The question is not only "where was it allocated?" The stronger review question
|
|
|
147
219
|
- Async, stream, worker, goroutine, thread, and native-resource paths have deterministic cancellation, close, shutdown, or release behavior where the platform supports it.
|
|
148
220
|
- Native or low-level memory fault analysis names the first invalid access evidence or reports the missing diagnostic boundary instead of blaming the final crash line.
|
|
149
221
|
- Tests or configured verification cover the highest-risk repeated lifecycle when feasible.
|
|
222
|
+
- Memory-growth conclusions identify storage location, retention owner, terminal status, controlled
|
|
223
|
+
workload phase, and evidence level; RSS alone does not establish leak or fragmentation.
|
|
224
|
+
- Streaming and queue claims include accepted-versus-committed byte ownership, bounded plateau,
|
|
225
|
+
resume behavior, and a calculated envelope, or name the missing evidence.
|
|
226
|
+
- Cross-runtime claims preserve shared source, fixed observer, single-factor comparators, target
|
|
227
|
+
binary and environment identity, completed-work normalization, repeated samples, and causal-fix
|
|
228
|
+
boundaries, or remain exploratory or version-localized.
|
|
150
229
|
|
|
151
230
|
<!-- mustflow-section: verification -->
|
|
152
231
|
## Verification
|
|
@@ -173,6 +252,14 @@ Use the narrowest configured test, build, docs, release, or mustflow intent that
|
|
|
173
252
|
- If setup and cleanup live in separate owners, make the ownership transfer explicit or report the split as a residual leak risk.
|
|
174
253
|
- If repeated-lifecycle proof requires unconfigured heap, profiler, sanitizer, browser, device, or load-test access, report the missing manual evidence and complete the configured checks that are available.
|
|
175
254
|
- If leak reduction conflicts with product semantics, authorization, durability, observability, or retry behavior, use the relevant stronger skill and report the tradeoff.
|
|
255
|
+
- If queues drain but their maximum is unbounded, report an OOM or admission-control defect rather
|
|
256
|
+
than clearing the path merely because it is not a terminal leak.
|
|
257
|
+
- If RSS remains high after live owners fall, do not jump directly to fragmentation; report the
|
|
258
|
+
missing allocator, mapping, native-allocation, or platform evidence.
|
|
259
|
+
- If a runtime comparison changes source behavior, adapter, workload, environment, and runtime
|
|
260
|
+
together, reject causal attribution and split it into single-factor cells.
|
|
261
|
+
- If an external or attachment-linked harness file was not supplied as repository source, do not
|
|
262
|
+
claim it was implemented or executed; adapt only the observable procedure contract.
|
|
176
263
|
|
|
177
264
|
<!-- mustflow-section: output-format -->
|
|
178
265
|
## Output Format
|
|
@@ -183,6 +270,11 @@ Use the narrowest configured test, build, docs, release, or mustflow intent that
|
|
|
183
270
|
- Long-lived owners and short-lived objects checked
|
|
184
271
|
- Timers, listeners, subscriptions, streams, workers, goroutines, threads, native handles, caches, queues, registries, closures, and logs checked where relevant
|
|
185
272
|
- Weak metadata, object pooling, allocation churn, and GC diagnostics checked where relevant
|
|
273
|
+
- Storage location, retention owner, terminal status, post-GC and post-quiescent slope classification
|
|
274
|
+
- Request, attempt, branch, stream, shared-pool, cache, file, and native-operation ownership DAG
|
|
275
|
+
- Backpressure edge ledger, stopped-consumer plateau, resume behavior, and memory envelope
|
|
276
|
+
- Cross-runtime observer and target isolation, lifecycle phases, comparator matrix, result identity,
|
|
277
|
+
environment cells, completed-work normalization, and causal-fix classification
|
|
186
278
|
- First invalid access, diagnostic build axis, dangling ownership, fuzzing or core-dump evidence where relevant
|
|
187
279
|
- Cleanup symmetry changes made or recommended
|
|
188
280
|
- Repeated-lifecycle proof: configured, manual-only, missing, or not applicable
|