developer_en.html
This document describes how developers should understand, extend, and maintain the MyAnythingList system.
Future developers should not need historical chat logs to understand how the system works.
Playlist text ↓ URL discovery ↓ Command parsing ↓ Tile model creation ↓ Thumbnail / QR resolution ↓ Grid rendering
The parser extracts valid URLs from any UTF-8 text.
Rules:# are comments.#_Command().
My research notes:
https://example.com/article
#_ReplaceThumbnailWithImage("cover.jpg")
Commands extend playlist behavior.
Examples:
#_ReplaceThumbnailWithImage("image.jpg")
#_LoadImage("panel.png")
#_LoadImageHideLinks("poster.png")
Commands apply to the most recent URL unless otherwise defined.
Runtime state is controlled by configuration variables.
Examples:Command thumbnail → Uploaded thumbnail → Platform thumbnail → Fallback imageRules:
The project aims to remain understandable to future developers and AI systems for decades.
Future sessions should not reread the full corpus every turn. Keep a high-level routing map of which document owns each type of rule and update only the affected docs. For the build, ViewScaleMode and SafeAreaProfile are first-class runtime settings that belong in window.MyAnythingListConfig and should also be GET-addressable. Exported thumbnails must capture the final composited tile canvas and use informative filenames such as MyAnythingThumbnail_2026-03-12_041552PM_3840x2160.png.
Updated: 2026-03-12 v09
Always build from the latest version. A new iteration may not start from an older build when a newer build already contains fixes or clarified runtime behavior. This rule prevents regressions such as the return of previously corrected QR startup behavior.
Canonical docs folders are meant to copy directly into 8k.art/_docs/en without stowaway files. Progress logs belong at the root of the iteration package beside the app build and handoff file, not inside the canonical docs folder.
All documentation pages must share the standard navigation header/footer and the same high-visibility freshness timestamp treatment at the top and bottom so anyone opening any page immediately knows how current it is.
Principle: Never compute layout until the required inputs are known, and never recompute it unless new wall-level information exists.
Grid geometry must be solved exactly once when the following inputs are known:
Once these inputs are known, the wall grid (rows, columns, tile size, and margins) must be computed deterministically and remain stable.
Thumbnail image loads, QR generation, and URL-art rendering must update only the contents of an existing tile box. These events must not trigger a recomputation of wall geometry.
Grid geometry may be recomputed only when one of the following changes:
This rule prevents unnecessary redraw loops and ensures consistent rendering between the startup pass and later rendering phases.