Spike S11 — the Play Store permissions dry run. Never run.
What it settles
requirements.md §4.8 observes that publishing on Play is what turns SAF from a preference into a constraint. distribution.md §6 argues the coupling runs the other way for this project — F-Droid asks nothing that ARCH §6.9 does not already require, and Play is explicitly not a v1 channel.
That argument is currently reasoned rather than confirmed. S11 is what confirms it.
Why it is cheap and worth doing anyway
It is a policy read, not an engineering task, and it either removes a constraint from #25 or hardens it. Doing it before SAF is built is worth more than doing it after.
#30 — NFR-COMPAT-1, which shares the "stated, not confirmed" problem.
NFR-COMPAT-2 is met as written: distribution.md §1 names five channels and their state, and stating them is all that requirement asks. Two of the five exist as decisions rather than recipes (AppImage, F-Droid), which is a gap in the plan, not in the requirement.
See docs/outstanding.md §5.
**Spike S11 — the Play Store permissions dry run.** Never run.
## What it settles
`requirements.md` §4.8 observes that **publishing on Play is what turns SAF from a preference into a constraint**. `distribution.md` §6 argues the coupling runs the other way for this project — F-Droid asks nothing that ARCH §6.9 does not already require, and Play is explicitly **not** a v1 channel.
That argument is currently **reasoned rather than confirmed**. S11 is what confirms it.
## Why it is cheap and worth doing anyway
It is a policy read, not an engineering task, and it either removes a constraint from #25 or hardens it. Doing it before SAF is built is worth more than doing it after.
## Blocked on
Nothing.
## Related
- #25 — SAF.
- #30 — NFR-COMPAT-1, which shares the "stated, not confirmed" problem.
- NFR-COMPAT-2 is **met** as written: `distribution.md` §1 names five channels and their state, and stating them is all that requirement asks. Two of the five exist as decisions rather than recipes (AppImage, F-Droid), which is a gap in the *plan*, not in the requirement.
See `docs/outstanding.md` §5.
Closing as deferred, not done. NFR-COMPAT-2 (decided 2026-09-19, requirements.md) makes every channel self-distribution — the APK is sideloaded, not Play or F-Droid — because of the D13 face-weight licence. The register now treats S11 as "a pre-publication step rather than a Tier-1 spike: there is nothing to submit until D13 is closed." Reopen if a store channel comes back into scope.
Closing as deferred, not done. NFR-COMPAT-2 (decided 2026-09-19, requirements.md) makes every channel self-distribution — the APK is sideloaded, not Play or F-Droid — because of the D13 face-weight licence. The register now treats S11 as "a pre-publication step rather than a Tier-1 spike: there is nothing to submit until D13 is closed." Reopen if a store channel comes back into scope.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Spike S11 — the Play Store permissions dry run. Never run.
What it settles
requirements.md§4.8 observes that publishing on Play is what turns SAF from a preference into a constraint.distribution.md§6 argues the coupling runs the other way for this project — F-Droid asks nothing that ARCH §6.9 does not already require, and Play is explicitly not a v1 channel.That argument is currently reasoned rather than confirmed. S11 is what confirms it.
Why it is cheap and worth doing anyway
It is a policy read, not an engineering task, and it either removes a constraint from #25 or hardens it. Doing it before SAF is built is worth more than doing it after.
Blocked on
Nothing.
Related
distribution.md§1 names five channels and their state, and stating them is all that requirement asks. Two of the five exist as decisions rather than recipes (AppImage, F-Droid), which is a gap in the plan, not in the requirement.See
docs/outstanding.md§5.Informs #25 — whether SAF is a preference or a constraint.
NFR-COMPAT-2 is met as written; see the body.
Closing as deferred, not done. NFR-COMPAT-2 (decided 2026-09-19, requirements.md) makes every channel self-distribution — the APK is sideloaded, not Play or F-Droid — because of the D13 face-weight licence. The register now treats S11 as "a pre-publication step rather than a Tier-1 spike: there is nothing to submit until D13 is closed." Reopen if a store channel comes back into scope.