diff --git a/AGENTS.md b/AGENTS.md index a66ee99c..442e92da 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -119,6 +119,11 @@ Background workers (e.g. `internal/thumb/worker.go`) follow the same rule: they' Write for the person trying to use or maintain Fotobank. +Every new Markdown file, except root `README.md` and `AGENTS.md`, must have YAML +frontmatter with `title`, `description`, and `last_edited`, in that order. +Update `last_edited` to the body-edit date whenever you change the body of any +nonexempt Markdown file; preserve it for metadata-only edits. + - Fotobank 0.1.0 is a pre-alpha release. Do not add upgrade or migration guides for unreleased development builds unless the user explicitly requests them. - Lead with the outcome, name who does what, use short sentences, and explain diff --git a/docs/architecture/README.md b/docs/architecture/README.md index 9917f662..0457ef31 100644 --- a/docs/architecture/README.md +++ b/docs/architecture/README.md @@ -1,3 +1,8 @@ +--- +title: "Fotobank Architecture" +description: "A map of Fotobank architecture, component ownership, implementation entry points, and system invariants." +last_edited: 2026-09-13 +--- # Fotobank Architecture Use this map to find who owns each part of Fotobank and which rules a code diff --git a/docs/architecture/content-and-storage.md b/docs/architecture/content-and-storage.md index 618e90a4..10930f80 100644 --- a/docs/architecture/content-and-storage.md +++ b/docs/architecture/content-and-storage.md @@ -1,3 +1,8 @@ +--- +title: "Content and Storage" +description: "How Fotobank stores exact file versions in Docbank, coordinates content writes, builds thumbnails, and tracks writable checkouts." +last_edited: 2026-09-19 +--- # Content and Storage Docbank keeps original files and their versions. Fotobank records how those diff --git a/docs/architecture/data-model.md b/docs/architecture/data-model.md index a947e3bb..542762bc 100644 --- a/docs/architecture/data-model.md +++ b/docs/architecture/data-model.md @@ -1,3 +1,8 @@ +--- +title: "Data Model" +description: "Fotobank catalog tables, ownership rules, file-version references, privacy state, and transactional invariants." +last_edited: 2026-09-13 +--- # Data Model The catalog records your photos, their related files, and your organizational diff --git a/docs/architecture/frontend.md b/docs/architecture/frontend.md index c84c71b3..1f2d91a0 100644 --- a/docs/architecture/frontend.md +++ b/docs/architecture/frontend.md @@ -1,3 +1,8 @@ +--- +title: "Frontend" +description: "The embedded Svelte web app, generated API contract, browser state, shared controls, and frontend tests." +last_edited: 2026-09-21 +--- # Frontend The web app lets people browse and manage the library through the daemon's API. diff --git a/docs/architecture/operations.md b/docs/architecture/operations.md index cbb5bad0..06a0cf9c 100644 --- a/docs/architecture/operations.md +++ b/docs/architecture/operations.md @@ -1,3 +1,8 @@ +--- +title: "Operations" +description: "Fotobank configuration, server lifecycle, coordinated backup and restore, observability, maintenance, and CI." +last_edited: 2026-09-28 +--- # Operations Use this reference to understand configuration, server lifecycle, backup, and diff --git a/docs/architecture/product-features.md b/docs/architecture/product-features.md index d8cfd77e..99b08a88 100644 --- a/docs/architecture/product-features.md +++ b/docs/architecture/product-features.md @@ -1,3 +1,8 @@ +--- +title: "Product Features" +description: "The services behind photo imports, metadata, thumbnails, albums, sharing, hidden media, settings, and events." +last_edited: 2026-09-13 +--- # Product Features Fotobank groups related files into photos, organizes them into albums, and diff --git a/docs/architecture/runtime.md b/docs/architecture/runtime.md index 6ef87aef..af769716 100644 --- a/docs/architecture/runtime.md +++ b/docs/architecture/runtime.md @@ -1,3 +1,8 @@ +--- +title: "Runtime and Boundaries" +description: "Fotobank daemon composition, package boundaries, identity and authorization, HTTP contracts, and operator lifecycle." +last_edited: 2026-09-16 +--- # Runtime and Boundaries The daemon owns the catalog, file storage, and background work. The CLI and web diff --git a/docs/architecture/search-and-ai.md b/docs/architecture/search-and-ai.md index 63ce8a21..8c584b5d 100644 --- a/docs/architecture/search-and-ai.md +++ b/docs/architecture/search-and-ai.md @@ -1,3 +1,8 @@ +--- +title: "Search and AI" +description: "Metadata and semantic search indexes, optional AI jobs, embedding generations, provider boundaries, and privacy rules." +last_edited: 2026-10-02 +--- # Search and AI Fotobank searches photo metadata and can use optional AI to describe and find diff --git a/docs/changelog.md b/docs/changelog.md index c3ba47f0..43a4eccf 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,8 @@ +--- +title: "Changelog" +description: "Released Fotobank features, improvements, and bug fixes, starting with the pre-alpha 0.1.0 release." +last_edited: 2026-09-21 +--- # Changelog See what changed in each Fotobank release. For installation and a first import, diff --git a/docs/guides/agent-setup.md b/docs/guides/agent-setup.md index ca6ad767..a4caba63 100644 --- a/docs/guides/agent-setup.md +++ b/docs/guides/agent-setup.md @@ -1,3 +1,8 @@ +--- +title: "Set up Fotobank for someone else" +description: "Prepare and hand over a first Fotobank library, verify imports and recovery, and confirm storage and provider choices." +last_edited: 2026-09-21 +--- # Set up Fotobank for someone else Hand over a library the person can browse, back up, and recover. Use this diff --git a/docs/guides/ai.md b/docs/guides/ai.md index f8f4e71e..b6a32232 100644 --- a/docs/guides/ai.md +++ b/docs/guides/ai.md @@ -1,3 +1,8 @@ +--- +title: "Choose whether to use AI" +description: "Choose and configure optional AI providers, acknowledge processing policy, inspect results, and stop processing." +last_edited: 2026-09-21 +--- # Choose whether to use AI Import, browsing, albums, backups, and metadata search work without AI. Optional diff --git a/docs/guides/automation.md b/docs/guides/automation.md index 1fc621da..2a637706 100644 --- a/docs/guides/automation.md +++ b/docs/guides/automation.md @@ -1,3 +1,8 @@ +--- +title: "Automate Fotobank" +description: "CLI and HTTP workflows for scripts and agents, including structured results, permissions, partial failures, and retry behavior." +last_edited: 2026-09-21 +--- # Automate Fotobank Find photos, download originals, and manage the library from scripts or agents. diff --git a/docs/guides/backup.md b/docs/guides/backup.md index 538132bc..3a36e66a 100644 --- a/docs/guides/backup.md +++ b/docs/guides/backup.md @@ -1,3 +1,8 @@ +--- +title: "Back up and restore" +description: "Create and verify complete photo-library archives, configure scheduled retention, and test recovery into separate storage." +last_edited: 2026-09-21 +--- # Back up and restore Recover your photo library from one archive containing the catalog and stored diff --git a/docs/guides/browse.md b/docs/guides/browse.md index a95187e8..9e4942b3 100644 --- a/docs/guides/browse.md +++ b/docs/guides/browse.md @@ -1,3 +1,8 @@ +--- +title: "Browse and find photos" +description: "Browse and search photos, manage album selections, download originals, and find privacy and workflow settings." +last_edited: 2026-09-21 +--- # Browse and find photos Use the web app to find photos, organize albums, and download original files. diff --git a/docs/guides/checkouts.md b/docs/guides/checkouts.md index a47c7b24..708b4ea1 100644 --- a/docs/guides/checkouts.md +++ b/docs/guides/checkouts.md @@ -1,3 +1,8 @@ +--- +title: "Edit files in a checkout" +description: "Create tracked working folders, inspect settled edits and conflicts, commit new versions, and retire checkouts." +last_edited: 2026-09-21 +--- # Edit files in a checkout Edit photos in Lightroom or another tool, then save the changes as new versions diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 52c15b3d..28e01f95 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -1,3 +1,8 @@ +--- +title: "Which files can I use?" +description: "Supported photo, video, RAW, and sidecar formats, preview limitations, related-file grouping, and checkout constraints." +last_edited: 2026-09-21 +--- # Which files can I use? Keep the exact original file even when Fotobank cannot show a preview. diff --git a/docs/guides/import.md b/docs/guides/import.md index bde3d932..f5626635 100644 --- a/docs/guides/import.md +++ b/docs/guides/import.md @@ -1,3 +1,8 @@ +--- +title: "Import photos" +description: "Import local photo folders without changing source files, recover interrupted imports, and refresh photo locations." +last_edited: 2026-09-21 +--- # Import photos Copy a folder into your photo library while Fotobank stays running. The import diff --git a/docs/guides/setup.md b/docs/guides/setup.md index 159bf922..f2bf3b1f 100644 --- a/docs/guides/setup.md +++ b/docs/guides/setup.md @@ -1,3 +1,8 @@ +--- +title: "Set up Fotobank" +description: "Build Fotobank 0.1.0, configure local storage, start a first library, import sample photos, and manage the daemon." +last_edited: 2026-09-21 +--- # Set up Fotobank Set up your first library, import a small collection, and open it in the web diff --git a/docs/index.md b/docs/index.md index f32ecfa9..50cd4c51 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,3 +1,8 @@ +--- +title: "Use Fotobank" +description: "Find Fotobank user guides, release information, architecture references, and documentation maintenance instructions." +last_edited: 2026-09-21 +--- # Use Fotobank Keep original photos and their versions, organize your library, and edit files diff --git a/docs/publishing.md b/docs/publishing.md index 78acf4de..b3a431bd 100644 --- a/docs/publishing.md +++ b/docs/publishing.md @@ -1,3 +1,8 @@ +--- +title: "Maintaining the documentation" +description: "Where to edit Fotobank documentation, how to build and check the site, and how operators publish it manually." +last_edited: 2026-09-21 +--- # Maintaining the documentation Edit the source pages, then build the complete site to check their links. diff --git a/internal/geo/data/PROVENANCE.md b/internal/geo/data/PROVENANCE.md index f313fb8a..da73359e 100644 --- a/internal/geo/data/PROVENANCE.md +++ b/internal/geo/data/PROVENANCE.md @@ -1,3 +1,8 @@ +--- +title: "Natural Earth gazetteer — provenance" +description: "Natural Earth gazetteer sources, releases, conversion commands, checksums, and public-domain licensing." +last_edited: 2026-08-29 +--- # Natural Earth gazetteer — provenance These GeoJSON files are vendored from Natural Earth 1:10m cultural vectors diff --git a/website/guide.md b/website/guide.md index 50582fa8..6ebb1805 100644 --- a/website/guide.md +++ b/website/guide.md @@ -1,3 +1,8 @@ +--- +title: "How Fotobank stores and edits photos" +description: "Follow a photograph through import, browsing, tracked edits, backup, and recovery across Fotobank and embedded Docbank." +last_edited: 2026-09-20 +--- # How Fotobank stores and edits photos Follow one photograph from import through browsing, editing, and recovery. diff --git a/website/index.md b/website/index.md index 46bc6518..7a6103d4 100644 --- a/website/index.md +++ b/website/index.md @@ -1,3 +1,8 @@ +--- +title: "A photo system of record you control" +description: "Fotobank product overview covering a self-hosted photo library, related files, editing, automation, and optional AI." +last_edited: 2026-09-20 +--- # A photo system of record you control Fotobank is a self-hosted photo library. It keeps your original files and every