Folio Standards: the rules a change follows, and what outside AI agents may do - #73
Conversation
…ts may do Eleven standards under docs/standards (design, dynamic UI, interaction, adaptive layout, Compose, state and data, performance, accessibility, privacy and permissions, testing, AI contributions), each with numbered MUST/SHOULD rules, where Folio is today and a ranked gap list. ADR 0006 adopts them. CONTRIBUTING, the PR template, the SDK rules and the code map point to them, and CONTRIBUTING's command now matches CI.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9277d2bd35
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **AI-6 MUST** label anything an AI helped make that ships to users (a theme in `themes/`, a tweak, a Market package, | ||
| an icon pack, a wallpaper, a layout preset) as **AI-assisted**, naming the tool: | ||
| - in the package or theme description, in the first line, until the manifest has a field for it (see Gaps); | ||
| - in the credits or README that travels with it. |
There was a problem hiding this comment.
Provide a valid disclosure field for AI-assisted themes
When an outside contributor submits an AI-created file in themes/, this requirement cannot be satisfied: FolioTheme has no description or credits field, toJson() drops unknown fields, and CommunityThemesTest.assertSame rejects any field that does not survive the round trip. Adding the required first-line label therefore fails CI, while omitting it violates this policy despite the document saying AI-assisted themes are welcome. Add supported metadata before making this requirement operative, or specify a label location accepted by the current theme format.
Useful? React with 👍 / 👎.
| - **DES-16 MUST** keep text readable over any wallpaper: use `HomeInk` on Home, and a scrim or glass behind text that | ||
| can't rely on it ([A11Y-6](accessibility.md)). |
There was a problem hiding this comment.
Link wallpaper readability to the contrast rule
When an implementer follows this citation for wallpaper readability, A11Y-6 describes accessible alternatives for drag gestures and provides no contrast guidance. The applicable rule is A11Y-9, which defines text contrast and explicitly discusses bright wallpapers, so the current cross-reference sends standards-driven reviews and fixes to an unrelated requirement.
Useful? React with 👍 / 👎.
| - No screenshot tests; no accessibility checks in UI tests. | ||
| - Instrumented tests don't run in CI. | ||
| - No lint baseline or config; 148 warnings, most `UseKtx`. | ||
| - CONTRIBUTING.md's command omits the `:market` tasks that CI runs. |
There was a problem hiding this comment.
Remove the already-completed market-test gap
This current-state claim is already false in the commit that introduces it: the updated CONTRIBUTING.md command includes both :market:testDebugUnitTest and :market:lintDebug. Leaving this line and Gap 4 in the newly published backlog makes completed work appear pending and contradicts the standards README's promise that the current-state and gap sections stay current.
Useful? React with 👍 / 👎.
What this changes
Nothing in the app. This adds
docs/standards/: the rules a change to Folio follows, so reviews can cite a rule instead of a preference.docs/standards/README.md): the governing principle, MUST / SHOULD / MAY, how to record an exception, what "Folio quality" means.AI contributions: AI agents working for outside contributors may only test for and fix bugs, one bug per PR with a regression test, and the PR says which tool was used. Themes, tweaks and Market packages made with AI are welcome, labelled "AI-assisted (tool)." at the start of their description.
Also:
:markettasks were missing).Companion PR for package makers: McCal-Codes/folio-source-template (
STANDARDS.md).Open decisions
aiAssistedmanifest field is listed as a gap, not added: the manifest is the signed format.How I checked it
Docs only. All relative links resolve, except
docs/sdk/README.md→examples/cabinet/, which was already broken on main. No test reads these files.