Skip to content

docs: rewrite the README to the Colony layout and sort the docs by reader - #29

Merged
MotherSphere merged 7 commits into
mainfrom
docs/readme-and-docs-layout
Oct 14, 2026
Merged

MotherSphere merged 7 commits into
mainfrom
docs/readme-and-docs-layout

Conversation

@MotherSphere

@MotherSphere MotherSphere commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Rewrites the README on the Project Colony program template and re-sorts docs/ by reader. Every page now describes main as it is after #30 (Colony Preferences page, French, standard Colony folders) and #31 (rustup in CI).

README

  • Header block with the app icon in a <picture> (no brand art exists yet; swap in assets/brand/png when it does), a one-sentence tagline, and License / Colony game / Platforms badges.
  • Intro and an honest > **Status:**: importers are tested against recorded responses only, Steam pages are scraped and the GOG/Epic/PSN endpoints are unofficial, keyring since 0.3.0, ed25519 signing done, Authenticode pending SignPath, and the new UI and folder move still need a desktop check.
  • Sections in template order: Why Spotter, What it does, Installation (Via Colony, Direct binary download with the 4 real asset names, Build from source with Rust 1.90), Documentation, Code signing policy, Privacy, License.
  • ## Code signing policy is the template text: the .sig / .meta / .meta.sig table and the OpenSSL 3 check commands with the org public key. The SignPath paragraph stays inside the template's HTML comment, because signpath-project-slug is still commented out in release.yml.
  • ## Privacy is a table of every file Spotter writes (database, preferences, keyring with the credentials/tokens.json fallback, exports and auto-backup, import log, cover and icon cache) and every host it contacts (Steam API, community and store; the 127.0.0.1 Steam OpenID listener on ports 29876 to 29880; GOG auth, embed and api; the Epic services; xbl.io; ca.account.sony.com; m.np.playstation.com; image CDNs; startup token renewal), with links to each store's privacy policy.
  • Fonts are credited through colony-ui (JetBrains Mono Nerd Font, OpenDyslexic, Font Awesome 6 Free, SIL OFL 1.1).
  • Removed stale claims: ~/.local/share/spotter paths, the "sample library", XDG_DATA_HOME and --test-threads=1, "credentials in Profile" (they are entered on the Import screen), and the old NPSSO source (now ca.account.sony.com/api/v1/ssocookie).

Other files

  • .gitattributes: the comment # Binaries now uses a colon instead of a dash, so no em or en dash is left anywhere in the repository.
  • SECURITY.md: private reporting through GitHub Security Advisories, latest release supported, and a scope covering credentials, the Steam login listener, untrusted store and backup input, and release signing.
  • env.example deleted: the code reads none of those variables.
  • docs/README.md: a new index sorted by reader, with one line per page saying what it answers.
  • Pages moved to kebab-case under guide/ and internals/: guide/configuration.md, guide/platform-setup.md (from the README's Platform Setup), internals/architecture.md, internals/data-model.md, internals/api-integrations.md, internals/development.md. The README's Testing, Project Structure and Data Storage sections moved into internals/. The old upper-case pages are deleted; the corrections feat: add French, the Colony Preferences page and shared themes, and move Spotter's files to the standard Colony folders #30 made to them are carried into the new pages.

Corrections inside the pages (checked against the code)

  • Configuration: every preference with the category and section it sits in on the Preferences page, its current label, key and default (remember_filters defaults to on). Esc closes the page. Language follows LC_ALL, LC_MESSAGES, then LANG. The text scale range is 0.7225x to 1.68x. The 0.3 upgrade table maps Dark/Darker/Midnight, the old accents and ui_scale to the shared theme, accent and text size.
  • Platform setup: the Import screen labels as they are now (Log in, Finish, Import the whole library, Import installed games, the API key and NPSSO token fields, the Add game page, Download covers after an import).
  • Architecture: preferences.rs, paths.rs and i18n/ in the module map; colours from Palette roles and theme::shared_accent with Platform::accent_key / GameStatus::accent_key (not app_tint); text through theme::ui_text and colony_ui::sz; effects_enabled() is off with Animations off or reduced motion; the import merge rule (store details overwritten when present, larger playtime kept, status/rating/notes/last played never touched); dirs in the dependency table.
  • Data model: GameBuilder does not exist; the achievements table has platform_id; user_profile has the Epic and XUID columns; preferences live in preferences.json (version 2); the <data>/.migrated-from-0.3 marker and the fallback to the old files when the copy fails.
  • API integrations: PlayStation uses authz/v3, trophy/v1/trophyTitles and gamelist/v2 (not GraphQL); Xbox also calls account, achievements, x360 and marketplace; GOG lists games with getFilteredProducts from a pasted redirect URL; the Epic account import was missing; the client secret was removed from the page.
  • Development: tests run in parallel, tests/integration_tests.rs and the #[cfg(test)] modules are described, no "expected dead_code warnings" (CI uses -D warnings), CI runs stable on three OSes then builds and tests on exactly Rust 1.90, and the look and text conventions match the code (ui_text, i18n::t / tf / tn, decimal, percent, the en/fr tests). No mention of a third-party toolchain action.

Verification

  • Merged main at 5effd33 (feat: add French, the Colony Preferences page and shared themes, and move Spotter's files to the standard Colony folders #30) into the branch; README conflict resolved to the new README, the four modify/delete conflicts resolved by deleting the old upper-case pages after carrying their feat: add French, the Colony Preferences page and shared themes, and move Spotter's files to the standard Colony folders #30 changes over.

  • Every Preferences label, section, key and default, every Import screen label, every module, function and file path named in the pages was checked against src/ and the colony-ui 0.1.6 labels at 5effd33.

  • The design-system items this PR depended on are confirmed in the merged code: the folder layout in src/paths.rs (<data>/library/spotter.db, <data>/exports/, <data>/logs/, <cache>/covers, <cache>/achievement_icons, <config>/preferences/preferences.json, <config>/credentials/tokens.json written owner-only), the copy-only 0.3 migration, the identity button and the General / Appearance / Accessibility / Library / Imports categories, reduced motion skipping the import cascade, the theme_mode / accent_color / ui_scale migration in src/preferences.rs, and no font files left in assets/.

  • Re-checked on the final branch (main unchanged at 5effd33): a script checked every relative link and their #anchors in README.md, SECURITY.md and docs/: all resolve.

  • git grep -P '[\x{2013}\x{2014}]' finds no em or en dash in the repository.

  • Docs only: no Rust code changed, so no local cargo run; CI runs as usual.

  • Re-checked against main on the final branch: the --version exit in src/main.rs, the Steam listener ports in src/steam/auth.rs, the 5 MB import.log rotation in src/api_client.rs, the six SortOrder values, the folder layout in src/paths.rs, the four asset names in colony.json, Rust 1.90 in Cargo.toml, the Linux package list in ci.yml, and that the linked Project-Colony-Resources files and the design/releases.md#5-signing anchor exist.

@MotherSphere
MotherSphere merged commit 5835c2d into main Oct 14, 2026
4 checks passed
@MotherSphere
MotherSphere deleted the docs/readme-and-docs-layout branch October 14, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant