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/credit-ledger-integrity-review/SKILL.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
mustflow_doc: skill.credit-ledger-integrity-review
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 3
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: credit-ledger-integrity-review
|
|
9
|
-
description: Apply this skill when credits, points, wallet balances, reward points, prepaid credits, usage credits, bonus credits, loyalty points, stored-value balances, balance deductions, accruals, refunds, reversals, expirations, reservations, captures, releases, admin adjustments, ledger tables, balance caches, reconciliation jobs, settlement reports, or credit-related tests need review for ledger integrity, idempotency, atomic balance changes, concurrency, ordering, ownership, amount precision, policy snapshots, expiry lots, failure recovery, audit evidence, or reconciliation risk.
|
|
9
|
+
description: Apply this skill when credits, points, wallet balances, reward points, prepaid credits, usage credits, bonus credits, loyalty points, stored-value balances, purchased versus subscription or promotional balance classes, balance deductions, accruals, refunds, reversals, expirations, rollovers, price quotes, reservations, captures, releases, admin adjustments, ledger tables, balance caches, reconciliation jobs, settlement reports, or credit-related tests need review for ledger integrity, idempotency, atomic balance changes, concurrency, ordering, ownership, amount precision, policy snapshots, expiry lots, quote binding, failure recovery, audit evidence, or reconciliation risk.
|
|
10
10
|
metadata:
|
|
11
11
|
mustflow_schema: "1"
|
|
12
12
|
mustflow_kind: procedure
|
|
@@ -60,7 +60,9 @@ Review credit, point, and wallet balance code as an accounting ledger, not a bal
|
|
|
60
60
|
- Amount and unit ledger: integer unit or decimal representation, maximum amount, rounding rules, conversion rates, bonus rules, policy version, product price snapshot, and campaign snapshot.
|
|
61
61
|
- Ownership ledger: user, tenant, wallet, account, team, family, organization, operator, source object, and current actor checks.
|
|
62
62
|
- Expiry and lot ledger: FIFO, LIFO, earliest-expiry-first, bucket allocation, expiry batch, lot-level consumption, partial use, partial refund, and lot restoration behavior.
|
|
63
|
+
- Balance-rights ledger: purchased top-up, subscription-included, promotional, referral, trial, enterprise commitment, refund, or admin-grant source; acquisition and policy version; expiry and rollover right; cancellation or downgrade behavior; legal or platform constraint; and spend priority.
|
|
63
64
|
- Reservation ledger: reserved, captured, released, failed, expired, cancelled, partially refunded, and reversed states, plus the owner of each transition.
|
|
65
|
+
- Quote and fulfillment ledger: `quote_id`, price version, input-parameter hash, exact or bounded estimate, maximum authorized amount, quote expiry, reservation identity, actual captured amount, usable-result predicate, partial-result rule, and release or refund evidence.
|
|
64
66
|
- Queue and cache ledger: producer events, consumer idempotency, partitioning, outbox or inbox records, read-replica routing, cache invalidation, and balance display semantics.
|
|
65
67
|
- Audit and reconciliation ledger: logs, metrics, support IDs, before/after values, daily balance-vs-ledger checks, settlement reports, and manual adjustment evidence.
|
|
66
68
|
|
|
@@ -97,9 +99,11 @@ Review credit, point, and wallet balance code as an accounting ledger, not a bal
|
|
|
97
99
|
14. Model refunds as reversals. Refunds, cancellations, and corrections should reference the original ledger entry or reservation, not call a generic balance increase with no causal link.
|
|
98
100
|
15. Test partial use and partial refund. Exercise cases where only part of a balance, lot, coupon, order, or mixed payment is used or refunded. Full-cancel-only assumptions are not enough.
|
|
99
101
|
16. Consume expiry lots deliberately. When credits expire, inspect FIFO, LIFO, earliest-expiry-first, or policy-specific lot allocation. Record lot-level consumption so later refund and audit can reconstruct the path.
|
|
102
|
+
- Keep purchased top-up, subscription-included, promotional, trial, enterprise, and admin-grant lots distinct when their expiry, rollover, cancellation, refund, accounting, or platform rights differ. Do not collapse them into one balance and reconstruct ownership from current plan state.
|
|
100
103
|
17. Race expiry and usage. Expiry batches must use the same ledger, lock, idempotency, and conditional update rules as user requests. Flag direct batch subtraction that bypasses wallet safeguards.
|
|
101
104
|
18. Separate reservation from capture. Model reserved, captured, released, failed, expired, cancelled, and partially refunded states when credits are held before final purchase, fulfillment, or external payment completion.
|
|
102
105
|
- This ledger owns atomic reserve, capture, and release and the balance invariant. Commands and durable workflows may consume those operations but must not redefine balance availability, ownership, or accounting transitions.
|
|
106
|
+
- Bind a reservation to an unexpired user-visible quote and immutable price snapshot. Reserve no more than the approved maximum, capture only the actual charge allowed by the quoted policy and usable-result predicate, and release the remainder on failure, cancellation, timeout recovery, or lower actual usage.
|
|
103
107
|
19. Draw allowed state transitions. Prevent arbitrary `status = REFUNDED`, `status = CAPTURED`, or `status = EXPIRED` writes. Each transition should have a guard, cause, effect, and idempotency rule.
|
|
104
108
|
20. Preserve queue ordering or tolerate reordering. If deduction, cancellation, refund, or expiry events use a queue, prove user, wallet, or transaction-level ordering, or make each consumer robust to reordered events.
|
|
105
109
|
21. Treat message redelivery as normal. Producers, queues, schedulers, and webhooks can duplicate events. Consumer-side ledger mutation must be idempotent with durable dedupe records.
|
|
@@ -116,7 +120,7 @@ Review credit, point, and wallet balance code as an accounting ledger, not a bal
|
|
|
116
120
|
<!-- mustflow-section: postconditions -->
|
|
117
121
|
## Postconditions
|
|
118
122
|
|
|
119
|
-
- The credit surface has balance, ledger-entry, source identity, atomicity, amount/unit, ownership, expiry/lot, reservation, queue/cache, audit, and reconciliation maps.
|
|
123
|
+
- The credit surface has balance, ledger-entry, source identity, atomicity, amount/unit, ownership, balance-rights, expiry/lot, quote/fulfillment, reservation, queue/cache, audit, and reconciliation maps.
|
|
120
124
|
- Any mutable-balance-only path, missing source key, weak idempotency comparison, non-atomic deduction, wrong lock target, float amount, hidden rounding policy, missing DB invariant, duplicate ledger risk, generic refund, expiry race, cache-trusted deduction, stale replica read, unaudited admin adjustment, or missing reconciliation is fixed or reported with evidence.
|
|
121
125
|
- Tests or explicit verification cover the highest-risk concurrency, failure, duplicate, expiry, reservation, refund, cache, and reconciliation paths available in the current scope.
|
|
122
126
|
- Soft operational budgets remain outside this ledger unless they represent prepaid or money-equivalent value.
|
|
@@ -152,7 +156,7 @@ Prefer focused tests for concurrent deductions, duplicate idempotency keys, affe
|
|
|
152
156
|
## Output Format
|
|
153
157
|
|
|
154
158
|
- Credit or wallet surface reviewed
|
|
155
|
-
- Balance, ledger-entry, source identity, atomicity, amount/unit, ownership, expiry/lot, reservation, queue/cache, audit, and reconciliation ledgers
|
|
159
|
+
- Balance, ledger-entry, source identity, atomicity, amount/unit, ownership, balance-rights, expiry/lot, quote/fulfillment, reservation, queue/cache, audit, and reconciliation ledgers
|
|
156
160
|
- Findings or fixes for duplicate, concurrent, wrong-owner, wrong-amount, rounding, expiry, reservation, refund, cache, replica, failure-recovery, admin, and reconciliation risks
|
|
157
161
|
- Nightmare-path tests or evidence added, run, skipped, or still missing
|
|
158
162
|
- Command intents run
|
package/templates/default/locales/en/.mustflow/skills/credit-monetization-integrity-review/SKILL.md
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.credit-monetization-integrity-review
|
|
3
|
+
locale: en
|
|
4
|
+
canonical: true
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: credit-monetization-integrity-review
|
|
9
|
+
description: Apply this skill when a product changes credit-pack offers, offer timing, price-discount versus bonus-credit framing, pack count or spacing, first-purchase recommendations, purchased-credit expiry, subscription-credit rollover, promotional balances, spend order, credit price disclosure, variable-cost estimates, quote and reservation UX, breakage, repurchase, retention, or credit-monetization experiments and must optimize long-horizon contribution without deceptive equivalence, balance-rights drift, surprise deductions, or survivor-biased metrics.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.credit-monetization-integrity-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
|
+
# Credit Monetization Integrity Review
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Sell and spend product credits without optimizing a checkout click, early breakage, or raw execution
|
|
33
|
+
count at the expense of customer rights, useful output, repurchase, retention, or long-horizon
|
|
34
|
+
contribution. Keep offer design, balance-class policy, user-visible price authorization, technical
|
|
35
|
+
ledger integrity, payment processing, accounting, and legal or platform compliance as connected but
|
|
36
|
+
separately owned contracts.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: use-when -->
|
|
39
|
+
## Use When
|
|
40
|
+
|
|
41
|
+
- A credit or usage-pack offer changes timing, trigger, eligibility, discount, bonus, limit, expiry,
|
|
42
|
+
urgency, recommendation, or first-purchase treatment.
|
|
43
|
+
- A product compares price-discount and bonus-credit framing or changes how credits translate into
|
|
44
|
+
images, minutes, tasks, API calls, documents, generations, or other user-recognizable output.
|
|
45
|
+
- The first-purchase screen changes between three, five, seven, custom, tiered, decoy, anchored, or
|
|
46
|
+
recommended credit packs, or changes price and unit-price spacing.
|
|
47
|
+
- Purchased top-up, subscription-included, promotional, referral, trial, refund, or enterprise
|
|
48
|
+
credits change expiry, rollover, cancellation, downgrade, transfer, refund, or spend-order policy.
|
|
49
|
+
- A feature changes from hidden or post-execution deduction to an exact or bounded pre-execution
|
|
50
|
+
quote, maximum authorization, reservation, success-based capture, partial settlement, or release.
|
|
51
|
+
- Credit conversion, repurchase, breakage, retained use, contribution, variable cost, refund, support,
|
|
52
|
+
or experiment definitions are created, changed, reviewed, or reported.
|
|
53
|
+
|
|
54
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
55
|
+
## Do Not Use When
|
|
56
|
+
|
|
57
|
+
- The main risk is atomic balance mutation, lot allocation, reservation state, idempotency,
|
|
58
|
+
concurrency, expiry races, refunds, reconciliation, or admin adjustment; use
|
|
59
|
+
`credit-ledger-integrity-review` as the technical owner.
|
|
60
|
+
- The main risk is checkout, provider payment, tax, invoice, receipt, refund, dispute, chargeback,
|
|
61
|
+
fraud, or payment webhook correctness; use `payment-integrity-review`.
|
|
62
|
+
- The main risk is cancellation, pause, downgrade, dormant-user win-back, or save-offer profit; use
|
|
63
|
+
`subscription-retention-profit-review`.
|
|
64
|
+
- The main risk is signup, pre-account activation, first-owned value, or onboarding questions without
|
|
65
|
+
a credit purchase or spend policy; use `product-onboarding-activation-review`.
|
|
66
|
+
- The task only estimates internal model or compute cost and does not change a user credit right,
|
|
67
|
+
price, purchase, or deduction; use the matching cost-control skill.
|
|
68
|
+
- The task requests jurisdiction-specific legal, tax, accounting, or unclaimed-property advice. Use
|
|
69
|
+
qualified authority and current primary rules; this skill supplies the product evidence packet but
|
|
70
|
+
does not decide legal classification.
|
|
71
|
+
|
|
72
|
+
<!-- mustflow-section: required-inputs -->
|
|
73
|
+
## Required Inputs
|
|
74
|
+
|
|
75
|
+
- Eligible-cohort ledger: eligibility, assignment unit and time, holdout, exposure, offer trigger,
|
|
76
|
+
identity joins, exclusions, prior-purchase state, product-value state, traffic, and denominator.
|
|
77
|
+
- Offer ledger: offer version, trigger, surface, interruption cost, real start and expiry, pack scope,
|
|
78
|
+
discount or bonus, cap, eligibility, cooldown, price history, and suppression.
|
|
79
|
+
- Value and usage ledger: first owned result, recognizable output units, free and paid usage, expected
|
|
80
|
+
cadence, depletion, active-user usage distribution, useful-result rate, and abandoned or failed use.
|
|
81
|
+
- Pack ledger: price, credits, unit price, output-equivalent range, variable cost, margin, recommended
|
|
82
|
+
segment, lower and upper alternatives, custom amount, refundability, and historical selection.
|
|
83
|
+
- Balance-rights ledger: acquisition class, consideration paid, policy and price version, expiry,
|
|
84
|
+
rollover, cancellation or downgrade behavior, refund, transfer, spend priority, platform rule,
|
|
85
|
+
jurisdiction review, and accounting treatment.
|
|
86
|
+
- Quote and execution ledger: input parameters, exact or estimated charge, estimate range, maximum
|
|
87
|
+
authorization, quote ID and expiry, price version, reservation, actual charge, usable-result
|
|
88
|
+
predicate, partial-result rule, release, reversal, and retry identity.
|
|
89
|
+
- Economics ledger: cash collected, payment and refund cost, variable service cost, support and
|
|
90
|
+
dispute cost, bonus liability, deferred or recognized revenue boundary, breakage, repurchase,
|
|
91
|
+
retention, and contribution per eligible unit over declared horizons.
|
|
92
|
+
- Experiment ledger: control and variants, sequencing, power assumptions, exposure integrity,
|
|
93
|
+
cannibalization, stockpiling, delayed repurchase, guardrails, segment policy, and promotion rule.
|
|
94
|
+
|
|
95
|
+
<!-- mustflow-section: preconditions -->
|
|
96
|
+
## Preconditions
|
|
97
|
+
|
|
98
|
+
- Define the user-owned value event, balance classes, and usable-result predicate before changing an
|
|
99
|
+
offer, expiry, rollover, pack, or deduction policy.
|
|
100
|
+
- Assign experiments before a behavior-dependent offer trigger. Keep assigned users who never reach
|
|
101
|
+
the trigger in the intent-to-treat denominator, while recording trigger reach and exposure
|
|
102
|
+
separately.
|
|
103
|
+
- Refresh current platform, app-store, jurisdiction, contract, accounting, and tax constraints before
|
|
104
|
+
changing purchased-value expiry, cancellation forfeiture, restore, refund, or price representation.
|
|
105
|
+
- Treat vendor policies, academic studies, benchmark rates, sample prices, pack ratios, and another
|
|
106
|
+
product's rollover cap as hypotheses or comparators, not repository defaults.
|
|
107
|
+
- Keep command execution under `.mustflow/config/commands.toml`; this skill does not authorize live
|
|
108
|
+
price changes, promotions, balance mutations, payments, messages, experiments, or legal filings.
|
|
109
|
+
|
|
110
|
+
<!-- mustflow-section: allowed-edits -->
|
|
111
|
+
## Allowed Edits
|
|
112
|
+
|
|
113
|
+
- Add or refine offer eligibility and timing, equivalent-value calculation, pack construction and
|
|
114
|
+
recommendation, output-unit translations, balance-class policy, expiry and rollover rules,
|
|
115
|
+
user-visible quote and authorization, contribution metrics, experiment assignment, guardrails,
|
|
116
|
+
fixtures, tests, docs, route metadata, and synchronized templates.
|
|
117
|
+
- Add explicit handoffs to credit-ledger, payment, accounting, tax, privacy, consumer-protection, or
|
|
118
|
+
platform review when those owners must implement or approve the policy.
|
|
119
|
+
- Remove fake urgency, economically unequal framing tests presented as copy tests, dominated decoy
|
|
120
|
+
packs, hidden deductions, unsupported exact estimates, or breakage targets that reward unused value.
|
|
121
|
+
- Do not retroactively rewrite purchased rights, expire balances contrary to an applicable platform
|
|
122
|
+
or legal rule, hide a required total price, or capture credits for an unusable result merely because
|
|
123
|
+
an internal provider incurred cost.
|
|
124
|
+
|
|
125
|
+
<!-- mustflow-section: procedure -->
|
|
126
|
+
## Procedure
|
|
127
|
+
|
|
128
|
+
1. Separate six decisions: offer timing, economic framing, pack architecture, balance rights,
|
|
129
|
+
user-visible spend authorization, and ledger settlement. Do not let one winning purchase metric
|
|
130
|
+
silently choose the other five.
|
|
131
|
+
2. Define the headline outcome per eligible assigned user. Prefer incremental contribution over a
|
|
132
|
+
declared short and long horizon, supported by paid conversion, useful paid output, depletion-
|
|
133
|
+
adjusted repurchase, retained use, refunds, disputes, support, and variable cost. Treat offer open,
|
|
134
|
+
checkout start, raw purchase rate, raw executions, and breakage as diagnostic events.
|
|
135
|
+
3. Randomize before the offer can become eligible. Compare a no-offer or business-as-usual holdout
|
|
136
|
+
with bounded timing policies such as account completion, first owned value, a declared depletion
|
|
137
|
+
state, or a time-based reminder. Do not analyze only users who reached first success or depleted a
|
|
138
|
+
free balance.
|
|
139
|
+
4. Price interruption cost. Before value, a full-screen offer can block activation; after value, an
|
|
140
|
+
offer may extend a proven job; near depletion, exposed users are fewer but intent may be stronger.
|
|
141
|
+
Preserve a nonblocking path and do not copy a universal best trigger.
|
|
142
|
+
5. Anchor any real deadline to the event that creates eligibility and disclose the exact expiry.
|
|
143
|
+
Preserve the offer after refresh and across devices when promised. Do not restart countdowns,
|
|
144
|
+
invent scarcity, or begin a value-dependent offer before the user could receive value.
|
|
145
|
+
6. Normalize economic value before testing copy. For price discount `d`, the paid unit-price factor
|
|
146
|
+
is `1 - d`. For bonus fraction `b`, it is `1 / (1 + b)` and the effective unit discount is
|
|
147
|
+
`b / (1 + b)`. An equivalent bonus for discount `d` is `d / (1 - d)`. Hold unit economics equal
|
|
148
|
+
when the question is framing, or label the test as an offer-value test.
|
|
149
|
+
7. Translate credits into user-recognizable output. Show total credits, unit price or savings, and a
|
|
150
|
+
bounded result-equivalent derived from current product prices. Use ranges when input length,
|
|
151
|
+
duration, model, quality, or external calls vary; do not promise one exact output count from an
|
|
152
|
+
unstable mix.
|
|
153
|
+
8. Measure bonus inventory correctly. Extra credits can delay the next purchase without reducing
|
|
154
|
+
satisfaction. Track consumption velocity, balance depletion, repurchase after comparable
|
|
155
|
+
depletion, cumulative cash, contribution, and retained useful output rather than declaring an
|
|
156
|
+
early repurchase decline a retention failure.
|
|
157
|
+
9. Price promotional cannibalization and stockpiling. Include buyers who would have paid full price,
|
|
158
|
+
bonus credits actually consumed, future purchases displaced, refund and support cost, and heavy
|
|
159
|
+
users who pull demand forward. Cap scope from observed economics, not a universal percentage.
|
|
160
|
+
10. Build pack candidates from usage and willingness evidence. Use the lower pack for safe entry, the
|
|
161
|
+
recommended pack for a declared typical segment or task horizon, and the upper pack for genuine
|
|
162
|
+
high usage. Price gaps, credit gaps, and unit discounts must be legible and economically viable.
|
|
163
|
+
11. Start with the smallest pack set that represents materially different jobs. Three packs are a
|
|
164
|
+
useful first-purchase hypothesis, not a law. Compare three with five when added tiers map to real
|
|
165
|
+
segments; expose more tiers or custom amounts to repeat or high-variance buyers when evidence
|
|
166
|
+
supports them. Do not add seven merely to create an anchor.
|
|
167
|
+
12. Reject fake decoys. A deliberately dominated pack can make the entire credit system look
|
|
168
|
+
manipulated. Each displayed pack needs a plausible buyer, a clear output-equivalent, and a reason
|
|
169
|
+
to exist other than making another pack look cheap.
|
|
170
|
+
13. Keep recommendation honest. Name the usage basis, avoid preselecting a pack that exceeds the
|
|
171
|
+
represented need, make every alternative and unit price visible, and measure regret, refunds,
|
|
172
|
+
support, depletion, and repeat purchase by selected pack.
|
|
173
|
+
14. Classify every balance lot by acquired right. Separate purchased top-up, subscription-included,
|
|
174
|
+
promotional or referral, trial, refund, enterprise commitment, and admin grant when consideration,
|
|
175
|
+
expiry, rollover, restore, cancellation, accounting, platform, or legal rights differ.
|
|
176
|
+
15. Do not treat purchased-credit expiry as free margin. Cash arrives at purchase; unused rights can
|
|
177
|
+
change future service cost and revenue recognition but can also reduce conversion, trust,
|
|
178
|
+
repurchase, and retained value. Compare lawful policy variants by long-horizon contribution and
|
|
179
|
+
never use breakage alone as the objective.
|
|
180
|
+
16. Gate expiry through current authority. Record platform and jurisdiction, product classification,
|
|
181
|
+
customer type, contract version, notice, restore, refund, inactivity, unclaimed-property, and
|
|
182
|
+
accounting treatment. If authority is unresolved, preserve the more durable purchased right and
|
|
183
|
+
keep promotional or subscription policy separate rather than guessing.
|
|
184
|
+
17. Derive subscription rollover from cost and retention evidence. Compare full reset, bounded
|
|
185
|
+
rollover, and other lawful policies using maximum liability, usage bursts, concurrency, capacity,
|
|
186
|
+
cancellation or downgrade behavior, and long-horizon cohort contribution. A one-cycle or
|
|
187
|
+
multiple-of-quota cap is a candidate, not a universal default.
|
|
188
|
+
18. Spend lots by explicit rights. Prefer the balance that would lawfully expire sooner when doing so
|
|
189
|
+
preserves user value, but keep refunds, tax, enterprise commitments, negative balances, plan
|
|
190
|
+
changes, and policy snapshots reconstructable. Never consume durable purchased value first merely
|
|
191
|
+
to manufacture subscription breakage.
|
|
192
|
+
19. Preserve price-version meaning. Snapshot the feature price, pack price, bonus, output-equivalent,
|
|
193
|
+
policy, and conversion rule used at purchase and execution. Review whether later feature-price
|
|
194
|
+
changes lawfully alter old credit purchasing power; do not hide retroactive devaluation behind a
|
|
195
|
+
nominally unchanged balance.
|
|
196
|
+
20. Show spend before execution. Display an exact charge when inputs fix the cost. Otherwise show a
|
|
197
|
+
defensible range and maximum authorization, the factors that can change it, remaining balance,
|
|
198
|
+
and what happens on failure or cancellation. Price visibility need not require a blocking modal
|
|
199
|
+
for every low-cost repeat action.
|
|
200
|
+
21. Use a quote-reserve-settle flow. Create an expiring `quote_id` bound to actor, product, input hash,
|
|
201
|
+
price version, policy, exact or maximum amount, and idempotency identity; reserve atomically;
|
|
202
|
+
execute once; capture the allowed actual amount for a usable result; and release the remainder on
|
|
203
|
+
lower usage, failure, cancellation, or recovered timeout. Route ledger correctness through
|
|
204
|
+
`credit-ledger-integrity-review`.
|
|
205
|
+
22. Define usable and partial results before charging. Distinguish full success, declared partial
|
|
206
|
+
value, user cancellation, safety refusal, provider failure, product defect, timeout with unknown
|
|
207
|
+
outcome, and duplicate retry. Internal compute cost does not by itself prove customer value or
|
|
208
|
+
authorize a deduction.
|
|
209
|
+
23. Add confirmation only when consequence warrants it. Consider spend share, cash top-up, unusual
|
|
210
|
+
model or quality, irreversible output, variable maximum, or first use. Let users remember a safe
|
|
211
|
+
choice with an accessible way to inspect and change it; do not copy a universal balance percentage.
|
|
212
|
+
24. Separate product, ledger, payment, and accounting evidence. A product experiment can recommend a
|
|
213
|
+
policy but cannot prove atomic balances, provider settlement, tax treatment, or revenue
|
|
214
|
+
recognition. Require the matching specialist evidence before reporting the full system ready.
|
|
215
|
+
25. Predeclare guardrails and analysis. Include activation interruption, useful-output rate, latency,
|
|
216
|
+
stockpiling, depletion, unit cost, p95 cost, refunds, support, disputes, accessibility, platform
|
|
217
|
+
rejection, legal review, accounting uncertainty, and segment heterogeneity. Correct repeated
|
|
218
|
+
peeking and do not ship a post-hoc segment as established.
|
|
219
|
+
26. Promote only a reversible policy whose eligible-cohort contribution improves without violating
|
|
220
|
+
purchased rights, transparent pricing, useful-result charging, ledger integrity, or platform and
|
|
221
|
+
legal constraints. Preserve old policy snapshots and a rollback path for future transactions.
|
|
222
|
+
|
|
223
|
+
<!-- mustflow-section: postconditions -->
|
|
224
|
+
## Postconditions
|
|
225
|
+
|
|
226
|
+
- Offer timing uses pre-trigger assignment, a holdout, an eligible-cohort denominator, and both
|
|
227
|
+
activation and long-horizon contribution guardrails.
|
|
228
|
+
- Discount and bonus framing is compared at equal unit economics or explicitly labeled unequal.
|
|
229
|
+
- Pack count and spacing follow real usage segments, legible unit economics, and non-dominated jobs
|
|
230
|
+
rather than a universal tier count or copied price ratio.
|
|
231
|
+
- Purchased, subscription, promotional, trial, enterprise, refund, and admin balances retain distinct
|
|
232
|
+
policy snapshots, expiry or rollover rights, and spend order where their contracts differ.
|
|
233
|
+
- Expiry and rollover decisions name current platform, jurisdiction, accounting, cost, capacity,
|
|
234
|
+
cancellation, and long-horizon retention evidence or remain unresolved.
|
|
235
|
+
- Every execution shows an exact or bounded price before authorization and settles a quote through
|
|
236
|
+
reserve, usable-result capture, and release or reversal.
|
|
237
|
+
- Breakage, raw execution, checkout start, and trigger-reached conversion remain diagnostics rather
|
|
238
|
+
than standalone proof of monetization success.
|
|
239
|
+
|
|
240
|
+
<!-- mustflow-section: verification -->
|
|
241
|
+
## Verification
|
|
242
|
+
|
|
243
|
+
Use configured oneshot command intents when available: `changes_status`, `changes_diff_summary`,
|
|
244
|
+
`lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, and `mustflow_check`.
|
|
245
|
+
Do not infer raw analytics, warehouse, payment-provider, balance-mutation, accounting, experiment,
|
|
246
|
+
deployment, or production commands.
|
|
247
|
+
|
|
248
|
+
<!-- mustflow-section: failure-handling -->
|
|
249
|
+
## Failure Handling
|
|
250
|
+
|
|
251
|
+
- If discount and bonus variants have different unit economics, stop calling the result a framing
|
|
252
|
+
effect and report the actual effective discount and margin difference.
|
|
253
|
+
- If assignment begins after first value or depletion, report trigger-conditioned evidence and do
|
|
254
|
+
not generalize it to the eligible signup or visitor cohort.
|
|
255
|
+
- If traffic cannot support timing, framing, and pack tests together, sequence them and keep the
|
|
256
|
+
remaining decisions as hypotheses rather than bundling mechanisms into one opaque variant.
|
|
257
|
+
- If purchased-right expiry or cancellation forfeiture lacks current platform, jurisdiction,
|
|
258
|
+
contract, and accounting evidence, preserve the existing durable right and route the decision to
|
|
259
|
+
qualified authority.
|
|
260
|
+
- If balance classes cannot be reconstructed, do not introduce a new expiry, rollover, or spend-order
|
|
261
|
+
policy until the ledger can preserve acquisition source and policy version.
|
|
262
|
+
- If a variable-cost action cannot produce a defensible estimate, set a conservative authorized
|
|
263
|
+
maximum or block the paid path; do not advertise fake precision or surprise-charge afterward.
|
|
264
|
+
- If execution outcome is unknown, keep the reservation pending or reconcile it under a bounded
|
|
265
|
+
policy; do not capture or release based only on a client timeout.
|
|
266
|
+
- If short-horizon purchase or breakage rises while useful output, contribution, repurchase,
|
|
267
|
+
retention, refunds, disputes, support, or trust guardrails worsen, reject or narrow the treatment.
|
|
268
|
+
|
|
269
|
+
<!-- mustflow-section: output-format -->
|
|
270
|
+
## Output Format
|
|
271
|
+
|
|
272
|
+
- Eligible cohort, assignment, trigger, exposure, holdout, and denominator
|
|
273
|
+
- Offer timing, interruption, urgency, eligibility, and suppression decision
|
|
274
|
+
- Discount and bonus economic-equivalence calculation and framing result
|
|
275
|
+
- Pack count, segment, output-equivalent, price spacing, recommendation, and margin decision
|
|
276
|
+
- Balance classes, purchased rights, expiry, rollover, cancellation, restore, and spend-order policy
|
|
277
|
+
- Exact or bounded quote, maximum authorization, reserve, usable-result capture, and release contract
|
|
278
|
+
- Short- and long-horizon contribution, depletion-adjusted repurchase, cost, refund, support, dispute,
|
|
279
|
+
activation, retention, platform, legal, accounting, and trust evidence
|
|
280
|
+
- Files changed
|
|
281
|
+
- Command intents run and skipped checks
|
|
282
|
+
- Remaining credit-monetization risk
|
|
283
|
+
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.desktop-commercial-distribution-review
|
|
3
|
+
locale: en
|
|
4
|
+
canonical: true
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: desktop-commercial-distribution-review
|
|
9
|
+
description: Apply this skill when a commercial desktop app changes direct download versus Microsoft Store or Mac App Store distribution, hybrid store and website availability, store versus external commerce, channel fees and net receipts, installation trust, signing or notarization cost, sandbox and capability fit, discovery, checkout conversion, trials and licenses, purchase restoration, entitlement portability, update-channel ownership, review delay, enterprise or offline distribution, channel-specific support, or retained contribution and must choose distribution without forking the product or relying on stale store policy.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.desktop-commercial-distribution-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
|
+
# Desktop Commercial Distribution Review
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Choose direct, store, or hybrid desktop distribution from platform fit, customer trust, commerce,
|
|
33
|
+
licensing, update ownership, support cost, and incremental contribution. Keep one product contract
|
|
34
|
+
while channel adapters satisfy different packaging and policy boundaries.
|
|
35
|
+
|
|
36
|
+
<!-- mustflow-section: use-when -->
|
|
37
|
+
## Use When
|
|
38
|
+
|
|
39
|
+
- A Windows or macOS desktop app compares website download, Microsoft Store, Mac App Store, another
|
|
40
|
+
approved storefront, managed enterprise distribution, or a hybrid channel strategy.
|
|
41
|
+
- The app compares store commerce with external checkout, subscription, perpetual license, paid
|
|
42
|
+
upgrade, coupon, bundle, team license, or customer account entitlements.
|
|
43
|
+
- Store fees, payment processing, tax handling, refunds, chargebacks, discovery, trust, code signing,
|
|
44
|
+
notarization, malware reputation, sandboxing, review delay, updates, analytics, or support change.
|
|
45
|
+
- Direct and store builds differ in capabilities, installers, licensing, account login, trial,
|
|
46
|
+
restore, update mechanism, plugins, automation, background services, or enterprise deployment.
|
|
47
|
+
- A report claims one channel produces better conversion, lower fees, easier updates, more trust, or
|
|
48
|
+
higher retained contribution.
|
|
49
|
+
|
|
50
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
51
|
+
## Do Not Use When
|
|
52
|
+
|
|
53
|
+
- The task only changes updater feeds, signatures, immutable artifacts, staged rollout, old-version
|
|
54
|
+
upgrades, relaunch, or update telemetry; use `desktop-auto-update-safety-review`.
|
|
55
|
+
- The task only changes packaging, signing, notarization, release assets, publication, or installed
|
|
56
|
+
smoke tests with a distribution channel already chosen; use the matching release, packaging, and
|
|
57
|
+
platform skills.
|
|
58
|
+
- The task only changes checkout, payment webhooks, tax, refund, dispute, or entitlement correctness
|
|
59
|
+
independent of desktop channel choice; use `payment-integrity-review`.
|
|
60
|
+
- The task only changes generic subscription, trial, price, regional pricing, or bundle economics;
|
|
61
|
+
use `pricing-model-integrity-review` or `product-portfolio-integrity-review`.
|
|
62
|
+
- The task requests current platform-law interpretation or contract advice. Use official current
|
|
63
|
+
platform terms and qualified authority; this skill supplies the comparison packet.
|
|
64
|
+
|
|
65
|
+
<!-- mustflow-section: required-inputs -->
|
|
66
|
+
## Required Inputs
|
|
67
|
+
|
|
68
|
+
- Product ledger: audience, buyer, price and cadence, core job, platform targets, capability and
|
|
69
|
+
privilege needs, plugins or extensions, background services, local files, enterprise needs,
|
|
70
|
+
offline use, support model, and expected update cadence.
|
|
71
|
+
- Channel ledger: platform, storefront or website, app type, packaging, sandbox, capability,
|
|
72
|
+
signing, notarization, review, listing, regions, discovery, install trust, trial, commerce,
|
|
73
|
+
entitlement, restore, update, rollback, analytics, ratings, support, and policy version.
|
|
74
|
+
- Economics ledger: gross price, store share, payment processing, fixed transaction fee, tax and
|
|
75
|
+
merchant-of-record cost, refund, chargeback, fraud, signing, hosting, bandwidth, review delay,
|
|
76
|
+
update operation, support, acquisition, retained revenue, and contribution.
|
|
77
|
+
- Identity and license ledger: product account, store account, transaction identity, receipt,
|
|
78
|
+
license, device or seat, organization, entitlement source, restore, refund, revocation, migration,
|
|
79
|
+
offline lease, and customer support lookup.
|
|
80
|
+
- Build ledger: common core, channel adapter, feature flags, packaging, commerce adapter, license
|
|
81
|
+
adapter, update adapter, policy differences, artifact identity, version, tests, and drift owner.
|
|
82
|
+
- Experiment ledger: eligible buyer, acquisition source, channel availability, exposure, self-
|
|
83
|
+
selection, price and package parity, platform and region, install, purchase, activation, refund,
|
|
84
|
+
retained use, support, and promotion rule.
|
|
85
|
+
|
|
86
|
+
<!-- mustflow-section: preconditions -->
|
|
87
|
+
## Preconditions
|
|
88
|
+
|
|
89
|
+
- Separate listing and discovery, binary distribution, checkout, entitlement, update, and support.
|
|
90
|
+
One channel need not own every layer.
|
|
91
|
+
- Identify app type and current platform policy before assuming fees, external commerce, sandbox,
|
|
92
|
+
signing, entitlement, or update rules.
|
|
93
|
+
- Define one product identity and accepted entitlement before adding channel-specific adapters.
|
|
94
|
+
- Treat copied fee percentages, registration costs, conversion lifts, review times, platform defaults,
|
|
95
|
+
and break-even thresholds as dated inputs, not built-in policy.
|
|
96
|
+
- This skill does not authorize developer enrollment, contract acceptance, store submission,
|
|
97
|
+
signing-key access, notarization, publication, price changes, live checkout, migration, or release.
|
|
98
|
+
|
|
99
|
+
<!-- mustflow-section: allowed-edits -->
|
|
100
|
+
## Allowed Edits
|
|
101
|
+
|
|
102
|
+
- Add or refine channel policy, capability and sandbox matrix, direct and store packaging boundaries,
|
|
103
|
+
commerce and license adapters, purchase restoration, entitlement portability, update ownership,
|
|
104
|
+
channel economics, experiments, fixtures, tests, docs, route metadata, and synchronized templates.
|
|
105
|
+
- Add explicit handoffs to platform, packaging, signing, notarization, updater, payment, tax,
|
|
106
|
+
accounting, licensing, security, privacy, enterprise distribution, or legal owners.
|
|
107
|
+
- Replace a forked product, gross-fee comparison, store-discovery assumption, download-as-conversion,
|
|
108
|
+
or channel-specific customer orphaning with shared contracts and full-funnel evidence.
|
|
109
|
+
- Do not bypass store rules, weaken signing or sandbox security, hide channel limitations, duplicate
|
|
110
|
+
purchases silently, or promise license portability that current receipts and contracts cannot
|
|
111
|
+
provide.
|
|
112
|
+
|
|
113
|
+
<!-- mustflow-section: procedure -->
|
|
114
|
+
## Procedure
|
|
115
|
+
|
|
116
|
+
1. Split six decisions: discovery, binary delivery, checkout, entitlement, updates, and support.
|
|
117
|
+
Compare direct, store, and hybrid combinations rather than forcing one channel to own all six.
|
|
118
|
+
2. Classify the app before comparing channels. Include consumer versus professional buyer, price,
|
|
119
|
+
subscription or perpetual rights, system access, automation, plugins, background services,
|
|
120
|
+
enterprise deployment, offline use, and support burden.
|
|
121
|
+
3. Refresh official platform policy by date, app type, commerce type, region, and program. A current
|
|
122
|
+
non-game exception, external-link entitlement, fee, enrollment rule, or sandbox requirement does
|
|
123
|
+
not automatically apply to games, another region, or a future release.
|
|
124
|
+
4. Build a capability matrix. Mark which features work unchanged, need an entitlement or review,
|
|
125
|
+
require a channel adapter, degrade under sandboxing, or make the channel infeasible. Do not ship a
|
|
126
|
+
trusted but materially crippled store build without clear disclosure.
|
|
127
|
+
5. Compare installation trust honestly. Include code signing, notarization, reputation warnings,
|
|
128
|
+
malware scanning, hosted delivery, review, publisher identity, account trust, and enterprise
|
|
129
|
+
policy; a store badge and a signed direct binary provide different evidence.
|
|
130
|
+
6. Compare discovery as incremental acquisition, not storefront presence. Track listing views,
|
|
131
|
+
qualified installs, first owned value, purchase, retained use, and customers who would have found
|
|
132
|
+
the website anyway.
|
|
133
|
+
7. Calculate net channel contribution. Include store share, processor and fixed fees, tax or merchant
|
|
134
|
+
services, refunds, chargebacks, fraud, signing, hosting, bandwidth, review delay, update operation,
|
|
135
|
+
support, acquisition, and variable product cost.
|
|
136
|
+
8. Derive the break-even lift for each actual price and package. A low fixed-price app, high-price
|
|
137
|
+
professional app, subscription, and team license can produce different winners; do not embed one
|
|
138
|
+
fee comparison as a platform law.
|
|
139
|
+
9. Evaluate Windows store, direct, and hybrid paths under current Microsoft policy and actual app
|
|
140
|
+
type. Store distribution with external commerce can be a candidate where allowed; direct delivery
|
|
141
|
+
may remain necessary for enterprise, offline, portable, privileged, plugin, or unsupported cases.
|
|
142
|
+
10. Evaluate Mac App Store, notarized direct, and hybrid paths under current Apple policy and actual
|
|
143
|
+
capability needs. Price store trust against sandbox, commerce, review, licensing, update, and
|
|
144
|
+
feature constraints rather than assuming either platform has one universal answer.
|
|
145
|
+
11. Keep one application core. Isolate store APIs, direct checkout, licensing, updater, packaging,
|
|
146
|
+
and policy differences behind narrow channel adapters and shared feature contracts.
|
|
147
|
+
12. Prevent capability drift. Version the channel matrix and compare user-visible features,
|
|
148
|
+
accessibility, privacy, data formats, account behavior, performance, and support across builds.
|
|
149
|
+
Differences must be intentional and disclosed.
|
|
150
|
+
13. Define one entitlement model with channel provenance. Preserve store receipt, direct transaction,
|
|
151
|
+
refund, revocation, subscription status, device or seat, organization, offline lease, and policy
|
|
152
|
+
version without treating a store login as the product's only customer identity.
|
|
153
|
+
14. Make restoration and duplicate ownership explicit. Cover reinstall, new device, account merge,
|
|
154
|
+
direct-to-store and store-to-direct migration, double purchase, family or organization access,
|
|
155
|
+
refund, chargeback, cancellation, and support lookup.
|
|
156
|
+
15. Do not promise cross-channel portability automatically. Decide whether rights can be recognized,
|
|
157
|
+
exchanged, discounted, grandfathered, or remain channel-bound according to contracts, fraud risk,
|
|
158
|
+
tax, and platform policy.
|
|
159
|
+
16. Assign update ownership per channel. Store updates, direct updater, enterprise deployment, and
|
|
160
|
+
manual offline updates need compatible versioning, migration, rollback-forward, support, and
|
|
161
|
+
release notes; route implementation through `desktop-auto-update-safety-review`.
|
|
162
|
+
17. Account for review and release latency. Cover urgent security fixes, phased rollout, rejection,
|
|
163
|
+
metadata changes, rollback, customer communication, and channel version skew.
|
|
164
|
+
18. Keep trials and checkout promises channel-aware. State whether trial duration, renewal, refund,
|
|
165
|
+
coupon, perpetual license, paid upgrade, bundle, and team purchase are available and equivalent;
|
|
166
|
+
do not hide a weaker channel after acquisition.
|
|
167
|
+
19. Measure self-selection. Direct and store customers can differ in trust, technical ability,
|
|
168
|
+
geography, price sensitivity, enterprise policy, and acquisition source. Use matched cohorts,
|
|
169
|
+
staged availability, channel-specific links, or other causal evidence before attributing all
|
|
170
|
+
outcome differences to the channel.
|
|
171
|
+
20. Judge the full funnel: eligible exposure, listing or landing visit, download, successful install,
|
|
172
|
+
first owned value, purchase, refund, retained use, update health, support, and contribution.
|
|
173
|
+
Downloads and gross store revenue are not the headline result.
|
|
174
|
+
21. Promote only a reversible channel policy that improves retained contribution while preserving
|
|
175
|
+
necessary capability, accurate store and website claims, signing and update safety, entitlement
|
|
176
|
+
recovery, customer support, and current platform compliance.
|
|
177
|
+
|
|
178
|
+
<!-- mustflow-section: postconditions -->
|
|
179
|
+
## Postconditions
|
|
180
|
+
|
|
181
|
+
- Discovery, distribution, commerce, entitlement, update, and support ownership are explicit per
|
|
182
|
+
channel.
|
|
183
|
+
- Store and direct builds share one product core with bounded, observable channel adapters.
|
|
184
|
+
- Platform capability, sandbox, signing, notarization, policy, commerce, and review constraints are
|
|
185
|
+
current or explicitly unverified.
|
|
186
|
+
- Purchases can be reconstructed, restored, refunded, revoked, supported, and migrated according to
|
|
187
|
+
a declared channel policy.
|
|
188
|
+
- Headline channel performance uses retained contribution rather than nominal fees, downloads,
|
|
189
|
+
listing presence, gross revenue, or update convenience.
|
|
190
|
+
|
|
191
|
+
<!-- mustflow-section: verification -->
|
|
192
|
+
## Verification
|
|
193
|
+
|
|
194
|
+
Use configured oneshot command intents when available: `changes_status`, `changes_diff_summary`,
|
|
195
|
+
`lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, and
|
|
196
|
+
`mustflow_check`. Do not infer live store, enrollment, signing, notarization, payment, licensing,
|
|
197
|
+
submission, publication, analytics, installer, updater, deployment, or production commands.
|
|
198
|
+
|
|
199
|
+
<!-- mustflow-section: failure-handling -->
|
|
200
|
+
## Failure Handling
|
|
201
|
+
|
|
202
|
+
- If current store policy or regional applicability cannot be verified, mark the channel rule
|
|
203
|
+
unverified and do not encode it as product behavior.
|
|
204
|
+
- If a store channel removes a core capability, compare a disclosed limited edition or reject the
|
|
205
|
+
channel; do not hide the loss behind install trust.
|
|
206
|
+
- If entitlement provenance or restore behavior is missing, do not launch a second paid channel that
|
|
207
|
+
can orphan or double-charge customers.
|
|
208
|
+
- If channel economics omit review delay, support, refunds, signing, update, or acquisition, report a
|
|
209
|
+
nominal fee comparison rather than a profitability decision.
|
|
210
|
+
- If store and direct builds require diverging product cores, stop and define the missing adapter or
|
|
211
|
+
intentionally separate product contract before expanding both.
|
|
212
|
+
|
|
213
|
+
<!-- mustflow-section: output-format -->
|
|
214
|
+
## Output Format
|
|
215
|
+
|
|
216
|
+
- Product, buyer, platform, price, capability, privilege, enterprise, offline, and update needs
|
|
217
|
+
- Direct, store, and hybrid discovery, delivery, checkout, entitlement, update, and support matrix
|
|
218
|
+
- Current policy source and date, sandbox, signing, notarization, review, and channel limitation
|
|
219
|
+
- Gross price, fees, tax, refund, fraud, signing, hosting, update, support, acquisition, retained
|
|
220
|
+
contribution, and break-even lift
|
|
221
|
+
- Product core, channel adapters, feature parity, receipt, license, restore, portability, migration,
|
|
222
|
+
duplicate purchase, and version-skew policy
|
|
223
|
+
- Experiment evidence, files changed, command intents run and skipped checks
|
|
224
|
+
- Remaining desktop-commercial-distribution risk
|
|
225
|
+
|