Developer Guide

developer_en.html

This document describes how developers should understand, extend, and maintain the MyAnythingList system.

1. Development Philosophy

Future developers should not need historical chat logs to understand how the system works.

2. Core System Components

Playlist text
   ↓
URL discovery
   ↓
Command parsing
   ↓
Tile model creation
   ↓
Thumbnail / QR resolution
   ↓
Grid rendering

3. Playlist Parser

The parser extracts valid URLs from any UTF-8 text.

Rules: Example:
My research notes:

https://example.com/article

#_ReplaceThumbnailWithImage("cover.jpg")

4. Command System

Commands extend playlist behavior.

Examples:
#_ReplaceThumbnailWithImage("image.jpg")
#_LoadImage("panel.png")
#_LoadImageHideLinks("poster.png")
Commands apply to the most recent URL unless otherwise defined.

5. UI State Architecture

Runtime state is controlled by configuration variables.

Examples: These values may be set through:

6. Thumbnail System

Thumbnail sources are prioritized:
Command thumbnail
→ Uploaded thumbnail
→ Platform thumbnail
→ Fallback image
Rules:

7. Contribution Guidelines

8. Long-Term Goal

The project aims to remain understandable to future developers and AI systems for decades.

Implementation Notes for v08 Runtime Controls and Tile Export

Runtime-state rule: if a control affects live wall geometry or display composition, it should normally exist in three places at once: the control panel, window.MyAnythingListConfig, and GET/state URL handling. ViewScaleMode and SafeAreaProfile are now part of that rule.

Thumbnail/export rule: URL Art is treated as a thumbnail source. Engineers should not maintain a separate export layout model for URL Art. The live tile composition should be the source of truth, and export should preserve the same layer order and geometry.

QR isolation rule: the QR code must remain on a dedicated overlay layer above all thumbnail imagery. Under no circumstances may export or startup fallback code repurpose the QR as thumbnail content.

Document routing reminder: recent prompts added layout-fit controls, safe-area profiles, deterministic tile layering, and GET-addressable startup properties. Those changes belong primarily in requirements, architecture, developer, system, and thumbnail-system docs rather than being scattered across the whole corpus.