- Joe's 39 "- Completed" workbooks applied to all 39 sub-solution pages
(#467-#515); both workbook inboxes are now gitignored and the tracked
test workbooks untracked - filled deliveries live in the Nextcloud
- new Import\ProductFamilyAliases: the workbooks reference product
FAMILIES in the product slots; 11 labels map to a representative
product, consulted by BOTH importers after the exact title match and
reported as "-> family alias"
- flip-card icons: dummy SVGs fileadmin/icons/flow/<name>.svg for Joe's
10-name vocabulary, attached by the new attachIconFile() through the
shared idempotent attachFalFile() (extracted from attachUrlFile);
real icons later REPLACE those files in the Filelist (same sys_file
uid), every card follows without a re-import
- image slots: numbered grey placeholders per page and slot
(fileadmin/placeholders/pages/<pid>-NN.png, the id rendered into the
image; generic grey as fallback). An existing reference is never
overwritten; a real URL on re-import swaps the placeholder away
- page properties per sub-solution: og/twitter title + description
mirror the SEO fields, canonical_link points at the page itself,
abstract derived from the intro copy (~300 chars, word boundary),
keywords from the curated PAGE_KEYWORDS set
- spec head-matter fix rides along (version table was stuck at 1.21,
real state 1.23)
Open afterwards: 3 missing Datapath stories + re-apply, quotes on 16
story records (list to Joe), slug slash on page 467.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>