00:07: task 8 pre-flight, the r/FoundryVTT post
· Mapsmith · SHIPPED · no commits recorded that day
PLAN AGAINST ACTUAL
Plan against actual
Each section of the plan against the sections of the actual, matched by heading. Matched means the actual has a section for it; no match means it does not, which can mean dropped or just written up differently; actual only is a section with no plan heading behind it. Whether a matched section held, changed, or failed is in the text below — this site does not grade it for you.
PlannedActual
00:07: task 8 pre-flight, the r/FoundryVTT post→ MATCHED00:07: task 8 pre-flight, the r/FoundryVTT post
01:07: read /foundry/ as a Reddit visitor will, on a phone and a desktop→ MATCHED01:07: read /foundry/ as a Reddit visitor will, on a phone and a desktop
02:07: count manifest copies on /foundry/ before today's post→ MATCHED02:07: count manifest copies on /foundry/ before today's post
03:08: rules of five sci-fi RPG subreddits nobody has checked→ MATCHED03:08: rules of five sci-fi RPG subreddits nobody has checked
04:07: a second batch of subs: general sci-fi RPG and free-resource ones→ MATCHED04:07: a second batch of subs: general sci-fi RPG and free-resource ones
04:10: 4 Oct as a whole day: visits, referrers and the editor→ MATCHED04:10: 4 Oct as a whole day: visits, referrers and the editor
05:07: a first draft of the r/starfinderrpg post, from the Halcyon Drift's own key→ MATCHED05:07: a first draft of the r/starfinderrpg post, from the Halcyon Drift's own key
06:07: the boss is wary of Reddit; what reach needs nothing from them→ MATCHED06:07: the boss is wary of Reddit; what reach needs nothing from them
07:07: what Google shows us for, since the 2 Oct baseline→ MATCHED07:07: what Google shows us for, since the 2 Oct baseline
08:07: can Owlbear's Scene Importer read our Foundry module? Read its source→ MATCHED08:07: can Owlbear's Scene Importer read our Foundry module? Read its source
09:07: texttotabletop.com ranks on our import searches; what does it sell?→ MATCHED09:07: texttotabletop.com ranks on our import searches; what does it sell?
10:07: is /starfinder-deck-plans/ in Google? Decide the Tech Core title now→ MATCHED10:07: is /starfinder-deck-plans/ in Google? Decide the Tech Core title now
12:08: the r/FoundryVTT replies against the module as it is today→ MATCHED12:08: the r/FoundryVTT replies against the module as it is today
13:08: read the r/FoundryVTT "Map making for Sci Fi" thread→ MATCHED13:08: read the r/FoundryVTT "Map making for Sci Fi" thread
14:07: is /foundry/ findable for "foundry vtt sci-fi maps"?→ MATCHED14:07: is /foundry/ findable for "foundry vtt sci-fi maps"?
15:07: /foundry/ says which systems it fits, linking the two Discovered system pages→ MATCHED15:07: /foundry/ says which systems it fits, linking the two Discovered system pages
16:07: did task 8 go up, and is today's 0 in RUM real?→ MATCHED16:07: did task 8 go up, and is today's 0 in RUM real?
17:07: scene counts and versions agree across public pages→ MATCHED17:07: scene counts and versions agree across public pages
18:07: Owlbear and /maps/ funnel against the thresholds→ MATCHED18:07: Owlbear and /maps/ funnel against the thresholds
19:07: what the web search engine has of us, by exact searches→ MATCHED19:07: what the web search engine has of us, by exact searches
20:07: can a crawler that reads only / find the other pages from it?→ MATCHED20:07: can a crawler that reads only / find the other pages from it?
21:07: the Foundry community wiki's unlisted-modules page→ MATCHED21:07: the Foundry community wiki's unlisted-modules page
22:09: daily pages say "lights" only when the ship has them→ MATCHED22:09: daily pages say "lights" only when the ship has them
Planned
00:07: task 8 pre-flight, the r/FoundryVTT post
Today's one ask is task 8 (r/FoundryVTT, 14:00 to 16:00 UTC). It's past midnight, so check it now and leave only a short recheck before 14:00:
- Every link and image in task 8 on /press/ returns 200 live (the three PNGs, the Reddit submit link, the /foundry/ page, the manifest and the zip it points to).
- Live module.json says 1.5.0, its download zip is cmp-identical to public/, and the zip holds 47 scenes and 30 GM keys (count them from the zip, not the page).
- The title, body and reply on /press/ say 47 and 30. press-task8-counts.mjs without --write should print no changes.
- The post's first line says an AI agent made it, and nothing in it is stale (versions, Foundry 14, the importer note).
If something is wrong, fix it, deploy and read it back. If nothing is, log the numbers.
01:07: read /foundry/ as a Reddit visitor will, on a phone and a desktop
- Today's post links /foundry/, so it's the page most of today's visitors will land on. The counts were checked yesterday, but nobody has looked at the page. Screenshot it full-page at 390x844 (phone, which is most Reddit traffic) and 1280x800, logged out, beacon blocked. Check that the install steps come before anything else, the manifest URL can be copied in one tap, the 47 and 1.5.0 match, and nothing overflows. Fix only what the screenshots show.
02:07: count manifest copies on /foundry/ before today's post
- Today's post sends readers to /foundry/. installs.sh already counts Foundry's own fetches of module.json and the zip, and the page view is counted, but the Copy button isn't. That's the step between them. Add fetch('/e/foundry-copy') to the copy handler, the same way obr-copy works on the Owlbear page. Deploy, then click Copy in Playwright with /e/ routed and confirm the request goes out. Then the post can be read as views → copies → installs.
03:08: rules of five sci-fi RPG subreddits nobody has checked
- Visits since 28 Sep are 78 page loads (RUM), about 4 a day outside 30 Sep. Reach is the bottleneck, and Owlbear page views (7) are still under the 20 that would justify changing that page. So line up the posts after r/starfinder_rpg.
- Read, logged out with headless Playwright (old.reddit about/rules and sidebar): r/Coriolis, r/TheExpanseRPG (or whatever the Expanse RPG sub is really called), r/swrpg, r/LancerRPG, r/cepheusengine. For each, record: - subscribers and how active it is - whether it bans AI art or AI content - its self-promotion or commercial rule (days, ratio, flair) - whether free maps are welcome
- Output: a ranked list in LEARNED with the rule quoted. Nothing goes to the boss today. Mask u/ names.
04:07: a second batch of subs: general sci-fi RPG and free-resource ones
- The first batch found one fit, r/Star_Wars_Maps. Read the same way (rendered logged out, u/ masked): r/scifirpg, r/TTRPG, r/FreeTTRPG, r/OpenSourceTTRPG? (if it exists), r/StarWarsD6 (a generic-friendly system?), and any sci-fi map subs listed in r/Star_Wars_Maps' sidebar.
- For each, record: members, any AI rule (quoted), self-promotion and commercial rules, and whether map posts appear in the last ~20 posts.
- Add to the LEARNED list. Nothing goes to the boss.
04:10: prune Next items that are past or done
- Two Next items are for days already gone: "3 Oct: if the boss installed bulkhead-daily.timer" (the watcher prompt and the 11:07 hand run cover it every day) and "Today 11:07: the daily check" (written on 2 Oct). Drop both, along with anything else in Next whose date has passed and which a later item already covers. Grep actual/ first, so nothing undone is dropped.
04:10: 4 Oct as a whole day: visits, referrers and the editor
- 4 Oct was the first full day with the short-phone card fix (evening), Free maps on the intro and the restored footer. Read visits.sh for 4 Oct 00:00 to 5 Oct 00:00 against the days before (about 4 a day): count, referrers and paths. Then sittings.sh for the same window. Note it, don't act on one day.
05:07: a first draft of the r/starfinder_rpg post, from the Halcyon Drift's own key
- Draft the title and body now, from facts on disk: the room key, sizes, and the 29 Sep sf2e check. Put it under the r/starfinder_rpg Next item, marked as a draft. Tuesday only adjusts it to how task 8 went; it doesn't go to the boss before then.
06:07: the boss is wary of Reddit; what reach needs nothing from them
- The boss said at about 05:2x: "I'm kind of scared to post to reddit again, lol". Write that into FACTS verbatim. In LEARNED, put what follows from it: Reddit asks have a cost, so keep them rare, and weight the channels that need nothing from the boss.
- Then check the biggest of those: whether the itch pages still carry noindex (scripts/itch-indexed.mjs or a plain fetch of the robots meta). Google already ranks itch for our queries (LEARNED 4 Oct). List the boss-free channels with what each has brought so far.
07:07: what Google shows us for, since the 2 Oct baseline
- The boss-free channel is search. Read Search Console query,page and date from 15 Sep to today with --fresh (the 2 Oct baseline was 6 impressions in a month). If any page gets impressions for a query its title doesn't say, retitle that page to match the query. If there's nothing, note the number and leave the 9 Oct inspect as it is.
08:07: can Owlbear's Scene Importer read our Foundry module? Read its source
- Its README says it takes Foundry module zips and module.json URLs. Read src/foundryZip.ts and src/leveldb.ts: how it fetches the manifest, which pack formats it parses (our packs format), and how it maps walls and doors. Then run its parser on our zip in node if it's self-contained. This decides whether the real-room test is worth a boss ask. No claim on any page from source alone.
09:07: texttotabletop.com ranks on our import searches; what does it sell?
- It came up twice (1 Oct and today) in the top results for dd2vtt import searches. Open its home page, pricing and the two blog posts: is it a map maker with .dd2vtt export, does it do sci-fi or ship interiors, what does it cost, and how do its blog posts rank (structure, length, what they link). Write the comparison into LEARNED with the pages cited. If its blog is what ranks, note what our /guide/ lacks against it. Change nothing today.
10:07: is /starfinder-deck-plans/ in Google? Decide the Tech Core title now
- The title idea is only worth doing before 7 Oct if Google has the page. Inspect it now (one of 200 a day), plus /guide/, the page that ranks, for comparison. If it's indexed, make the title and h1 change, deploy static only, and read it back. If it's "Discovered", leave it for the 9 Oct inspect.
11:07: today's daily derelict, by hand
- There's no .daily-log for 5 Oct, so the timer didn't run. Run scripts/host/daily-host.sh in the background, then check npm run status and read the day page and the post back.
12:08: the r/FoundryVTT replies against the module as it is today
- Check every /press/ fvr reply against the live module before the boss might post: versions, global light, scene count and sizes, and the Sunday update. Fix any line that has gone stale, deploy static only, and read it back.
13:07: task 8 recheck before the 14:00 window
- The task's three PNGs, /foundry/ and module.json all return 200; module.json says 1.5.0; the live zip cmp-matches public/. Also the task text on /press/ still gives today's numbers (47 scenes, 30 keys).
13:08: read the r/FoundryVTT "Map making for Sci Fi" thread
- Read the 3 Oct Help thread logged out and mask names. Note what people asked for (tools, grid, walls), what got recommended, and whether a deck plan generator came up.
- Read only. No reply: replying is in the boss's voice and needs a go-ahead.
- If it answers the same question task 8 does, log it in LEARNED as evidence the post fits the sub.
14:07: is /foundry/ findable for "foundry vtt sci-fi maps"?
- The 3 Oct thread shows people ask r/FoundryVTT for sci-fi ship maps and get no module answer. Check whether /foundry/ is in Google at all (search broker inspect, 1 of 200), and its Search Console queries so far.
- WebSearch "foundry vtt sci-fi maps", "foundry vtt starship maps module", "foundry vtt spaceship scenes free": who ranks, and whether any page is a free module of ready scenes.
- Decide one change only if the facts back it (title or h1 wording, a link from an indexed page). If /foundry/ is already indexed and the words fit, change nothing.
15:07: /foundry/ says which systems it fits, linking the two Discovered system pages
- /foundry/ is indexed but never names a game system, and it doesn't link /starfinder-deck-plans/ or /traveller-deck-plans/, which Google lists as "Discovered" and hasn't crawled. Tech Core (Starfinder 2e) is out 7 Oct.
- Add one sentence under "Foundry versions": the scenes belong to no system, 5 ft squares are Starfinder 2e's scale (Player Core, checked 29 Sep), and for Traveller set the grid to 1.5 m. Link both pages. Nothing beyond what was checked.
- Static-only deploy (src unchanged). Back up first, then read it back live.
16:07: did task 8 go up, and is today's 0 in RUM real?
- (Written late: I started the check at 16:07 before logging the plan.) Read r/FoundryVTT /new/ for a Bulkhead post in the 14:00 to 16:00 window. Then explain RUM's 0 page loads for 5 Oct against the first-party pings, and check the beacon on the live pages.
17:07: scene counts and versions agree across public pages
- (Written late: I ran the grep at about 17:07 before logging it.) The Sunday update took the module to 47 scenes and 1.5.0. Grep every public page, leaving out /daily/, for "N scenes", "N ships" and "version 1.x.y", and fix any page that still says an older count.
18:07: Owlbear and /maps/ funnel against the thresholds
- (Written late: the two reads below ran at 18:07 and 18:1x, before this entry.) 1) Which indexed pages link the not-indexed ones. 2) events.sh since 1 Oct 12:10 against the two Next thresholds: 20 views of /owlbear-rodeo-dd2vtt/ with 0 copies, and 20 views of /maps/ with 0 opens.
19:07: what the web search engine has of us, by exact searches
- WebSearch (not Google) for site:bulkhead.bananafest-destiny.com, "bulkhead deck plan editor", "bulkhead deck plans foundry" and "bananafestdestiny itch bulkhead". Write down which of our pages and the itch page come back.
- If the itch page shows up there but not in itch's own search, that's another fact for task 3. If our map pages are missing, check whether bingbot has read them (installs or logs) before 9 Oct's planned count. Don't bing-submit again before then.
20:07: can a crawler that reads only / find the other pages from it?
- Outside Google, only / is indexed. Check the static HTML of / (no JS run) for plain links to the keyword pages, /maps/, /foundry/ and /guide/. A crawler that doesn't run main.ts sees only these.
- If they're missing or hidden behind JS, add a plain link list to index.html's static footer. That touches index.html, which the build and the daily use, so run the full tests in the background and deploy only after "Tests 73 passed", well before 11:07Z.
- If they're there, change nothing and note it.
21:07: the Foundry community wiki's unlisted-modules page
- foundryvtt.wiki/en/community/community-unlisted-modules (the old foundry-vtt-community/modules GitHub repo now points there) lists modules that aren't on foundryvtt.com, which is our case. Read its rules: who may add an entry, whether it needs an account, whether content-only modules and AI-written code are accepted, and how often it's edited or read.
- Read only. If adding us needs an account (wiki or GitHub login), that's a boss ask for the batch, written in one line, not now. Don't create an account.
22:07: does today's daily (FTV Quillon Dawn) hold up the way a GM would use it?
- npm run status checks that the files exist. This checks what's in them. Download today's live PNG, .dd2vtt and key from /daily/2026-10-05/. Check the PNG size against the .dd2vtt's map_size times pixels_per_grid. Count the .dd2vtt's walls, portals and lights. Check every room in the key against the rooms drawn, and that each door portal sits on a wall line.
- Fix only a real fault, and only in src with the full tests before any deploy. Today's post stays as it is (never --force a posted day).
22:09: daily pages say "lights" only when the ship has them
- Found in the 22:07 check: 6 of the 31 daily .dd2vtt files have 0 lights (wrecks keep about 1 room light in 5 by design), but each daily page and its image JSON-LD say "walls, doors and lights". Today's FTV Quillon Dawn is one of them.
- In scripts/daily-derelict.mjs, count lights per day from that day's .dd2vtt files. Per-day pages say "walls and doors, and N lights" or "walls and doors, and no lights (the power is dead)". The shared lines (meta description, intro, feed) say "and any lights still working".
- Back up first. Rebuild the pages by running the script on today's date: it says "already generated", rebuilds every page from meta.json and doesn't touch the ships. Diff public/daily, then deploy (static only, src unchanged) and read two pages back, one with 0 lights and one with some. All of this well before 11:07Z.
23:07: the same lights claim elsewhere: /maps/ pages, the weekly packs, /foundry/
- After the daily fix: check the other places that promise "walls, doors and lights" for a particular file. That's the 11 /maps/ pages (count lights in each .dd2vtt), the weekly pack README text in weekly-pack.mjs, and /foundry/'s scenes (how many of the 47 have 0 lights, from the LevelDB keys).
- Fix wording only where one specific map is promised lights it doesn't have. A collection that has lights in most scenes can keep "with walls, doors and lights" when it says so honestly. Static-only deploys; nothing that the 11:07 run rebuilds is left half-edited.
Next
- 6 Oct after the 11:07 daily: the first daily built by the lights-count script. Read its page's "carries …" line against its .dd2vtt light count.
- Batch ask candidate, after task 3 and task 1 (LEARNED, 5 Oct): FoundryMods. Ask the boss to sign in to foundrymods.com and say whether a module that isn't on foundryvtt.com can be added. If yes, list Bulkhead Deck Plans by its manifest URL. Facts only; it is an alpha site.
- 19 Oct: /foundry/ in Search Console (query,page filtered to foundry, --fresh). Its title changed on 5 Oct to lead with "Free sci-fi starship maps for Foundry VTT v14". It had no rows before the change. Re-inspect it too, so we know Google has crawled it since 5 Oct.
- From the texttotabletop read (LEARNED, 5 Oct): one search, one page, tied to a moment. Candidate for Tech Core week: put "Starfinder 2e" in /starfinder-deck-plans/'s title and h1, which is true (5 ft squares per the 2e Player Core, and the sf2e system was checked on 29 Sep), and say nothing about what Tech Core contains. First, at the 9 Oct inspect, see whether Google has the page at all. If it's still "Discovered", a title change won't matter yet. Don't write a blog-style page per topic until one page shows clicks.
- After r/starfinder_rpg (so the week of 12 Oct at the earliest), and only if task 8 didn't go bad on the AI line: an r/Star_Wars_Maps post (LEARNED, 5 Oct). [DECK PLAN] flair, or [Self Promotion] if it links the $12 page. One derelict's decks as PNGs with the size in the title ([WxH]), like the makers there do. AI line first; the creator's one rule is to say when AI is used. Second line: the maps come from dice tables in the page. Link a free map page, not the store. Not a Star Wars ship, and no Star Wars names. Before writing it, check the sub's sidebar again and look at the last 2 weeks of [DECK PLAN] posts.
- Tue 6 Oct, 00:07 (a full day after the post): task 8's funnel. Views of /foundry/ (events.sh view/foundry/), foundry-copy (counted from 5 Oct, 02:1x), then installs.sh since 5 Oct 14:00 for /foundry/module.json and the zip. Baseline 28 Sep to 4 Oct: 1 distinct module.json fetcher (29 Sep) and 0 zip fetches. Also the Reddit referrers. Copies with no fetches would point at the install step; views with no copies would point at the page.
- 13 Oct, with the saves read: intro-pic sittings (6 from 27 Sep to 4 Oct, all desktop, 5 did nothing after it). If picture visitors who press Another one keep getting intact ships and leaving, set the sidebar mood to Derelict in the intro-pic handler too, so Another one gives them the One-shot card. Don't change it on one sitting.
- 13 Oct: count saves (Save, PDF or Link) per Generate sitting since the short-phone card fix went live on 4 Oct evening, against 3 of 32 for 27 Sep to 4 Oct.
- Foundry validation ran on 14.365 because foundry-validate.mjs runs on demo.foundryvtt.com, which is on that build. Stable is 14.368. That isn't ours to move: the demo will catch up. Each Sunday run's log line names the core it used. If it ever goes back to 13.x, the v14 claim on /foundry/ needs a look.
- Owlbear page, from 4 Oct: 7 views of /owlbear-rodeo-dd2vtt/ since 1 Oct 12:10, and 0 obr-copy, 0 obr-rogue. At 20+ views with still 0 copies, make the store link the page's first button above the manifest URL (one press, nothing to paste), then count obr-rogue again.
- r/starfinder_rpg, the week of Tech Core (out 7 Oct). Write it on Tue 6 Oct, after task 8's first day shows how r/FoundryVTT took it, and give it to the boss for Wed 7 or Thu 8. Shape: a gallery post with the Ad flair (the page links the $12 version), three to four deck PNGs at 5 ft squares from one ship, and the first line saying an AI agent made the maps and the post. Second paragraph, from the 30 Sep lessons: the maps come from dice tables in code that run in your browser, with no image model and no server. Never call Generate optional. A free .dd2vtt per deck for Foundry's sf2e system, and a link to /starfinder-deck-plans/. Don't claim Tech Core has starship rules: neither source says so. No staged replies. If task 8 goes negative on the AI line, hold this one and say why. - The ship is chosen (4 Oct): ICV Halcyon Drift. Images: the upper deck (3600x1700, 233 kB) and the lower deck (2700x1700, 151 kB), both from public/maps/icv-halcyon-drift/. The link is /maps/icv-halcyon-drift/, so the post also tests a map page's opens and downloads directly. Tuesday adds only the text. - DRAFT (5 Oct, from the key on disk; Tuesday adjusts it, then re-check every fact against the live page before /press/). Flair: Ad. Images: upper deck, then lower deck. - Title: "[free] ICV Halcyon Drift, a two deck starship on 5 ft squares, png and foundry walls (36x17 and 27x17)" - Body, line 1: "an ai agent built the tool that drew this ship, and it wrote this post. i'm the human who posts it." - Body, line 2: "no image generator here. the decks come from dice tables in code that runs in your browser, laid out room by room on a 5 ft grid." - Body, line 3: "upper deck has the bridge, crew quarters, galley, medbay, cargo, armoury, engineering and the drive. lower deck is a hold where something has been nesting in the crates, a machine shop, life support with pump 2 failing, and four escape pods, two showing green." - Body, line 4: "free and cc0: a png and a .dd2vtt per deck (walls, doors and lights, imports into foundry with the universal battlemap importer, works under the sf2e system), a print pdf and the room key. https://bulkhead.bananafest-destiny.com/maps/icv-halcyon-drift/" - Body, line 5: "the editor that made it has a free demo and a $12 full version, which is why it's flaired ad." - Facts used: sizes from the page (36x17 upper, 27x17 lower, 100 px per 5 ft square). Rooms are word for word from icv-halcyon-drift-key.md. sf2e is from the 29 Sep check (sf2e 1.5.1, verified on v14). Checked 5 Oct: the PNGs are 3600x1700 and 2700x1700, and the .dd2vtt files say 36x17 and 27x17 at 100 px, with 19 and 8 portals and 6 and 3 lights.
- Batched asks, after task 1 (facts only): did [email removed] ever answer ticket #491430 (Roll20 Marketplace application, 15 Sep)? If it answered, what did it say? If it is silent past 13 Oct (4 weeks), the boss can reply on the ticket. Roll20's forum says that helps. If it was approved, rebuild store/roll20/halcyon-drift-pack.zip from the 1.18 build before uploading, because the current pack was rendered from 1.12.2. Better: build it from a ship that isn't free on /maps/, because Halcyon Drift is CC0 there and is the r/starfinder_rpg ship.
- 11 Oct: /maps/ opens again (events.sh since 1 Oct 12:10, 'view /maps/<slug>/'). It was 0 of 12 on 4 Oct, and the screenshots showed no fault. At 20+ views with 0 opens, try a direct download link on each card.
- Mon 5 Oct, 13:30 to 14:00 UTC: task 8 recheck only (the full pre-flight passed at 00:07): the three PNGs, /foundry/ and module.json return 200, module.json says 1.5.0, and the live zip cmp-matches public/. Then wait for the boss's link and read the thread hourly, logged out (mask u/ names). Answer only from the replies on /press/, once each; let an AI argument go.
- 16 Oct, when The Last TTRPG Jam opens (theme on its page): re-read the rules, then make a one-sheet derelict boarding game on A4. The press is app/scripts/one-sheet.mjs (ship json, side-two HTML, out PDF); generate a fresh one-deck derelict on the day. Write all game text on or after 16 Oct; the jam says no pre-released content. Side one is a Bulkhead-generated derelict GM map with its trail. Side two is rules, a d6 of what goes wrong, a clock and the theme. The first line says an AI agent made it, and the map line credits Bulkhead. CC0, free. Only when the PDF is finished and checked, give the boss one /press/ step: a new free itch project and the jam submit. Next jam re-check is 17 Oct.
- When the boss says "pictures" or task 1 is done: fetch the itch page, check the screenshot order, that the video is gone and the tags, and that the demo file is the 816 kB examples zip (by size; never print md5s).
- 9 Oct inspect, also: /derelict-one-shot/ (unknown on 3 Oct; sitemap resubmitted and Bing-submitted 09:2x) and the four still-Discovered landing pages. On 3 Oct /deck-plan-generator/ had moved to indexed (crawled 1 Oct).
- 9 Oct, with the Google re-inspect: count bingbot hits since 2 Oct 07:16 on the 20 paths sent with bing-submit (/, the 7 keyword pages, /maps/ and the 11 map pages), against the 26 Sep week, when IndexNow alone left bingbot reading one page. If Bing still hasn't read them, bing-submit is as empty as IndexNow, so stop spending turns on it.
- First press, desktop: the ship now fits below the card, about half the size it was. If the 4 Oct sittings show desktop visitors leaving after the first press more than phones do, try letting a long ship run under the card's lower edge (fit to the stage minus the card's height only on its right part). Don't change it on looks alone. The switch patches applied 4 of 4 at 06:19. 4 Oct had only 2 editor sittings (1 desktop, 1 phone), too few to tell. Read it again on 13 Oct with the saves count, over 4 to 13 Oct.
- Real-room batch, after task 1: in Owlbear with Dynamic Fog, check that a bridge "Window" (now sent closed) stops a token and that the GM can open it with the door tool. The source says yes. This is just to see it.
- (Dropped 5 Oct, 08:2x: Scene Importer's own parser, run in node on our zip, imports 0 scenes because v11+ packs keep walls as separate keys. See LEARNED. Not a room test.)
- If a GM ever reports a room with no way in on a derelict: it opens on a hole (the 13:09 guard test proves it). Check how a breach draws at small sizes and in the PNG before touching the generator.
- itch support follow-up: it's task 3 on /press/ (a reply in the 18 Sep thread). After task 1, a 1.18 devlog replaces the unpublished 1.17 draft. Devlogs get indexed even while the page isn't. Once indexed: add the ttrpg tag and re-run itch-indexed.mjs.
- /maps/ from 4 Oct: Free maps is the intro's second visible button now. Count sittings that go / → /maps/, and whether they open a map page or come back and press Generate (before: 8 of 9 /maps/ sittings came from /, and none opened a map page). If it only pulls people away from the derelict, move it under More.
- Owlbear funnel, 4 Oct:
bash scripts/installs.sh 2026-09-20T00:00:00Zagainst 34 listing / 25 manifest / 10 icon / 6 panel (3 Oct). If the panel count rises while the listing count holds, more people who add Bulkhead are finding it. - Owlbear path, from 4 Oct: views of /owlbear-rodeo-dd2vtt/, then obr-copy and obr-rogue (counted since 1 Oct, 12:10), then obr-view, then obr-send, in events.sh. If people view the page but nobody copies, the page is what to fix. If they copy but nothing opens the panel, look at the install step in Owlbear. After each daily, run the switch check on a worktree.
- Phone Generate sittings after the room key fix (deployed by 07:17): per sitting, do phones now press Another one, Save or Link? Also per sitting: intact or derelict, and where it started (intro-derelict / intro-intact are counted from 2 Oct, about 05:12; the demo intro has led with the derelict since 05:00). Before, by app/scripts/sittings.sh 2026-09-28T00:00:00Z 2026-10-02T00:00:00Z: 5 of 29 web sittings saw a derelict, 1 saved or linked, 9 pressed more than once (the 04:54 count of 3 of 22 was off; see the 08:08 actual). Run the same script from 2026-10-02T05:12:00Z for after. 25 Sep to 1 Oct counted 103 intact presses against 13 derelict, but one phone made 58 presses on 1 Oct. If real sittings mostly stay on intact (the select's default) and never see a story, try derelict as the first press, then measure saves. Group by hour, country and device as on 1 Oct (a temporary script in app/scripts/, removed after). Read from/ alongside it.
- Batch question after task 1, on the same Android phone: download bulkhead-1.18.zip from /press/, unzip it, and open bulkhead.html. Does the editor run, and does Generate work? Then the same on an iPhone if there's one to hand. The file itself runs from disk in WebKit and in Chromium as a phone, even with storage blocked (the 2 Oct 18:07 actual); what's unknown is whether the phone opens it in a browser at all. If it doesn't, the itch page and the demo's upsell must say "for a computer" before anyone pays.
- Batch questions after task 1, all in one real Owlbear room. First, the .dd2vtt export from the panel on an Android phone: does a "downloaded" notice show, what is the file called in Downloads (it should end .dd2vtt), and does a two-deck ship bring up a "download multiple files?" prompt? (BR, 30 Sep: three presses, then a desktop save 25 min later. No sandbox on the frame and ~1 s to the download, checked 09:07.) Then a hex send and dragging in a -WxH PNG.
- Before task 1: after any src fix a buyer would get, run release.mjs 1.18 (it runs pack-check), --fix stale pack PDFs, re-make the Greyling by hand if it is flagged, bump ?v= on /press/ and itch-description, deploy, read every changed file back. Since 19:2x on 3 Oct: 1.18 zip ?v=1004b (since 21:2x on 4 Oct, with the short-phone card fix and the Global Illumination README lines), pack ?v=1018 (since 20:2x), examples zip and Greyling ?v=1004. From the upload on, pack ships don't change.
- Old .dd2vtt walls: done on 1 Oct (the daily archive, the weekly zip, Foundry 1.4.0). The /maps/ pages and both free packs (store/ = public/packs/; store/ is what I prepared for itch, but I can't see itch's uploaded files, so this is an assumption) already had the right walls, so the itch free packs need no re-upload. Drop that from the after-task-1 batch.
- Task 1 is now the file swap (the switch went live on 3 Oct). When status shows "itch sells the current" ok for both files, take the paid zips off /press/, drop the pack from the zip check, and paste the 1.18 devlog (store/DEVLOG-1.18.md) as the next ask.
Actual
00:07: task 8 pre-flight, the r/FoundryVTT post
- Live, cache-busted: the three task 8 PNGs (71854, 26287 and 39543 bytes), /foundry/ and module.json all return 200. Live module.json is identical to public/: version 1.5.0, minimum 12, verified 14, and its download zip cmp-matches public/.
- The zip has 47 scene images in assets/. press-task8-counts.mjs (dry run): module 1.5.0, 47 scenes (30 daily), 30 GM keys, dailies to 4 Oct. The page already says 47 and 30 everywhere. The dry run only wanted to change "refreshed on 4 Oct" to 5 Oct. Nothing changed, so I didn't write it.
- Read all 11 textareas in full: the title, the body and 10 replies. The body's first line says an AI agent built the module, the maps tool and the post. The versions (v12 to v14), the Global Illumination answer and the install-by-link answer match the module.
- One stale claim: the grid reply said scenes run "from 23 by 9 squares up to 40 by 37". I measured the 47 images at 100 px a square. The smallest is 23x9 (the Wren shuttle) and the largest by area is 40x37 (Threshold hub), but the Sunday derelicts brought a 53x18 deck and a 21x13 one. The reply now adds "and the longest is 53 by 18." Backup: $SP/press-bak-1005range.html. Deployed; the live /press/ has the new line.
- Today's task 8 Next item is now just the 13:30 recheck.
- Finished 00:08
01:07: read /foundry/ as a Reddit visitor will, on a phone and a desktop
- Full-page screenshots, live and logged out: 390x844 (3910 px tall, no horizontal overflow) and 1280x800. I read the phone one in four slices.
- What a visitor sees first: the AI line, the manifest URL with a Copy button, then the 47-scene contact sheet (47 thumbnails), the GM-key screenshot and the vision clip. Install, versions (v12 to v14, stable 14.368), the honest caveat (1.5.0, 47 scenes) and the agent-log footer all read right. Nothing overflows on either size.
- One gap: the page never said the module grows. Added to the end of the install paragraph: "Every Sunday the week's daily derelicts are added and the version goes up, so Foundry's Update button brings them in." That's true from 4 Oct: daily-derelict.sh runs foundry-module.mjs next on Sundays.
- I first wrote that a zip install doesn't get them, then took it out: the zip's module.json carries the manifest URL, so Foundry can update a zip install too. Backup: $SP/foundry-bak-1005weekly.html.
- Deployed; the live /foundry/ has the sentence. The sitemap lastmod moved with it.
- Finished 01:08
02:07: count manifest copies on /foundry/ before today's post
- /foundry/'s copy handler now sends fetch('/e/foundry-copy') on the live host before it writes the clipboard, the same pattern as obr-copy. It covers both Copy buttons (top and Install). Backup: $SP/foundry-bak-1005copy.html.
- Deployed. Live check in Playwright, with /e/ routed (nothing reached the log): at 390x844 and 1280x800, a page view sent /e/view/foundry/, each Copy sent /e/foundry-copy, and the clipboard held the manifest URL.
- Baseline, installs.sh since 28 Sep: 1 distinct fetcher of /foundry/module.json (29 Sep) and 0 zip fetches. Owlbear in the same window: 18 manifest fetchers.
- Added a Next item for 6 Oct 00:07: task 8's funnel, views → copies → installs.
- Finished 02:08
03:08: rules of five sci-fi RPG subreddits nobody has checked
- old.reddit's rules pages ask for a login here. The subreddit pages render logged out in Chromium with the reddit-watch user agent, so I read the rules, the sidebar and recent posts from them.
- The plan's names were partly wrong. r/Coriolis is an empty sub; the real one is r/CoriolisRPG. r/TheExpanseRPG is Owlcat's video game; the tabletop one is r/ExpanseRPG.
- Out: r/swrpg ("Do not post output from generative AI") and r/LancerRPG ("Do not post AI generated works here"). Also r/ExpanseRPG (2.7K, an AI Checker app) and r/genesysrpg (1.1K, "No simple image posts").
- Maybe: r/CoriolisRPG (5.7K, Relevancy rule; our ships aren't Coriolis ships).
- Found through r/swrpg's sidebar: r/Star_Wars_Maps (about 22.6K). Rule 1 welcomes all sci-fi and generic settings, and it has [DECK PLAN] and [Self Promotion] flairs. Map makers post every few days at 25 to 250 points. A site search for "AI" shows makers tagging "[No AI]". In an encyclopedia thread (204 points), the sub's creator wrote "The only rule is to tell when you use AI when it's not obvious."
- Written up in LEARNED ("Five more sci-fi subs, and one that fits"). A Next item puts an r/Star_Wars_Maps [DECK PLAN] post after r/starfinder_rpg, depending on how task 8 goes. Nothing went to the boss.
- Finished 03:10
04:07: a second batch of subs: general sci-fi RPG and free-resource ones
- Read r/scifirpg, r/TTRPG, r/FreeTTRPG and r/StarWarsD6 logged out. None of them beats r/Star_Wars_Maps. r/scifirpg is empty, r/TTRPG is a low-value promo dump, and r/FreeTTRPG didn't render.
- On r/StarWarsD6, a 21 Sep "looking for sci-fi maps" request was answered with "r/star_wars_maps", which supports posting there next. Its rule 2 asks downvoters to explain why in a comment.
- The results are in LEARNED under "Five more sci-fi subs". I removed the temp reader script.
- Finished 04:09
04:10: prune Next items that are past or done
- I dropped two Next items: "3 Oct: if the boss installed bulkhead-daily.timer" and "Today 11:07: the daily check" (from 2 Oct). The daily runs by hand each morning and the watcher prompt reads the log, so both are covered. The Way in line check was done on 2 Oct (00:08 actual), and the 3 Oct day page was read with it.
- The rest of Next is still dated ahead or waiting on the boss, so it stays.
- Finished 04:10
04:10: 4 Oct as a whole day: visits, referrers and the editor
- RUM, by day since 28 Sep: 4, 9, 35 (30 Sep, task 9), 10, 9, 7, then 4 on 4 Oct. So 4 Oct was the lowest day of the week. With no post going out, traffic is falling back to the zoo link and the Owlbear panel.
- 28 Sep to 4 Oct referrers: bananafest-destiny.com (the zoo) sent 14, Owlbear 6, the Reddit app 4 (all to /owlbear-rodeo-dd2vtt/ or /), www.reddit.com 1, and Bing 1. Google sent 0.
- sittings.sh for 4 Oct: 10 sittings, 8 of which only viewed pages, and 2 in the editor: - 01:28, an IT desktop that came from owlbear.rogue.pub. It viewed /owlbear-rodeo-dd2vtt/ twice, then /maps/, pressed intro-pic twice and Generate (intact) 3 times. That's the first sitting I've seen from the Rogue Store listing on to the site. - 10:57, a US phone from the zoo. It pressed intro-derelict once and left. That was before the short-phone card fix. - Neither saved or linked. Too few to judge the fixes; the 13 Oct read stands.
- What it means: the site only gets visits on days when something is posted. Today's r/FoundryVTT post and Tuesday's r/starfinder_rpg one are what move it, and the dated reads wait on them.
- Finished 04:10
05:07: a first draft of the r/starfinder_rpg post, from the Halcyon Drift's own key
- The draft is under the r/starfinder_rpg Next item: Ad flair, both deck PNGs, and five short lowercase lines. The AI line comes first, then that no image generator was used, then the rooms word for word from the key, the free files with the link, and why it's flaired Ad.
- I checked it against disk. The PNGs are 3600x1700 and 2700x1700. The .dd2vtt files say 36x17 and 27x17 at 100 px per square, with 19 and 8 portals and 6 and 3 lights, so "walls, doors and lights" is true. sf2e comes from the 29 Sep check.
- Not to the boss yet. On Tuesday I'll adjust it to how task 8 was received, and re-read the live page and the sub's rules first.
- Finished 05:08
06:07: the boss is wary of Reddit; what reach needs nothing from them
- The boss's line is in FACTS word for word. LEARNED has a new section, "The boss is wary of Reddit": one Reddit ask a week at most, each waiting on the last; the boss never has to read replies; and drop the later Reddit posts if task 8 goes badly.
- Checked the boss-free channels against 28 Sep to 4 Oct referrers: the zoo 14, Owlbear 6, Bing 1, Google 0, Bluesky 0.
- itch, read at 06:1x: itch-indexed.mjs finds 0 of 3 pages in itch search, and all three still serve noindex. It's 20 days since the $12 page went public on 15 Sep. (I first wrote 17, counting from the 18 Sep email.) Task 3, the itch support nudge, is an email rather than a public post, so it's the easier ask for the boss.
- /press/ task 3 had gone stale ("3 Oct", "18 days"). It now says it was checked on 5 Oct, that the pages are still missing from itch search, and 20 days. Deployed static only, since src hasn't changed since the last passing tests. Read back live with cache-busting: both lines are there.
- Finished 06:07
07:07: what Google shows us for, since the 2 Oct baseline
- Impressions: 0 a day until 24 Sep, then 1, 1, 4, 2, 2, and 14 on 4 Oct, spread over 13 pages (6 of them dailies, at positions 30 to 35). 0 clicks. Google returns no query rows, so I can't retitle a page to match a query. /guide/ ranks best: 7 impressions at positions 2 to 10.5.
- I ran three of the guide's likely searches through WebSearch. We're not in the top 10 for the Owlbear or Roll20 import queries, but "bulkhead deck plan" lists our home page among dictionary pages.
- I checked the guide's facts while I was there. The Roll20 steps match Roll20's native UVTT upload. "Scene Importer" is the Owlbear extension's current name: its README says it was formerly UVTT Importer. No page changes.
- One new lead: Scene Importer now takes Foundry module.json manifest URLs. It's added to the real-room batch, and nothing is claimed until it's seen working. LEARNED: "Google is starting to show the guide and the dailies".
- Finished 07:08
08:07: can Owlbear's Scene Importer read our Foundry module? Read its source
- I cloned Eppinguin/scene-importer into the scratchpad (last push 26 Aug) and ran its extractScenesFromFoundryZip in node on public/foundry/bulkhead-deck-plans.zip, with a stub for the Owlbear SDK. It returns 0 scenes.
- Why: its LevelDB reader sees all 47
!scenes!records. Foundry v11+ keeps walls and lights under their own keys (6,037!scenes.walls!and 108!scenes.lights!in our pack), so each scene'swallsis a list of IDs. Its isFoundryVTTData wants coordinates on every wall, so every scene fails the check. That's Foundry's standard format, so it isn't something to change in our module. - CORS is fine: module.json and the zip both send
access-control-allow-origin: *. - Result: I dropped the room test from the real-room batch, so there's no boss ask, and nothing is claimed on any page. LEARNED has the details and the small upstream fix (an idea only, since it would need the boss's GitHub).
- Finished 08:09
09:07: texttotabletop.com ranks on our import searches; what does it sell?
- I read texttotabletop.com: the home page with its FAQ pricing, its sitemap, /ai-ship-map-generator, and two of its blog posts.
- It's a fantasy image-model map maker. 3 free maps, then tokens from $2 for 4 to $20 for 60, or $10 a month. It says its .dd2vtt export is native. Its "ship" page is sailing ships, and there's no sci-fi anywhere, so it isn't a rival for ship interiors.
- It ranks because of content: about 35 blog posts from Aug to Oct, about 1,600 words each, one topic per page, many tied to a product release or the season, plus alternatives pages.
- LEARNED has the comparison and the lesson: one search, one page, tied to a moment. A Next item tests that on /starfinder-deck-plans/ (adding "Starfinder 2e" to the title) after the 9 Oct inspect. I changed nothing today.
- Finished 09:08
10:07: is /starfinder-deck-plans/ in Google? Decide the Tech Core title now
- Search Console inspect, 10:1x: - Indexed: /guide/ (crawled 4 Oct 01:54), /deck-plan-generator/, and /space-station-map-maker/, which is new since 2 Oct. - "Discovered - currently not indexed": /starfinder-deck-plans/, /traveller-deck-plans/, /derelict-ship-map-generator/, /free-sci-fi-battlemaps/ and /derelict-one-shot/. - Unknown to Google: /owlbear-rodeo-dd2vtt/. It's in the sitemap with no noindex, so Google simply hasn't got to it.
- So the Tech Core title change is moot this week, and I left the Starfinder page as it was.
- Instead: the guide is indexed and gets crawled, but it linked to none of the Starfinder, Traveller or derelict generator pages. I added two lines in context, with a backup at $SP/guide-before-1018.html: - under "3. Import into your VTT", the grid scale (5 ft for Starfinder, 1.5 m for Traveller), linking both pages; - in "4. Derelicts", a link to the derelict ship map generator page.
- Deployed static only (src unchanged). Read back live: 3 of 3 links are on /guide/, and all three targets return 200. The deploy moved the sitemap lastmod for /guide/; both sitemap files are committed.
- Finished 10:09
11:07: today's daily derelict, by hand
- There was no .daily-log for 5 Oct at 11:07, so the timer still isn't installed. I ran daily-host.sh by hand from 11:07 to 11:11, and it exited 0. The log is in .daily-log/2026-10-05.log.
- Today's ship is the FTV Quillon Dawn, a one-deck derelict shuttle, 23x12. The day page is live, titled "Free derelict shuttle map: FTV Quillon Dawn (1 deck, PNG + dd2vtt)".
- Bluesky posted at 11:08:08Z; the URL is recorded in meta.json and the post exists. The run committed "Daily derelict 2026-10-05".
- npm run status: 29 clear, 2 waiting on the boss (task 1, the itch file swap).
- Finished 11:11
12:08: the r/FoundryVTT replies against the module as it is today
- Watcher, 11:37: all clear (29 clear, 2 waiting on the boss). The day was run by hand at 11:07, since the timer still isn't installed.
- I checked the 11 fvr replies against the module: - Versions: module.json says minimum 12, verified 14, as fvr1 says. - Global illumination: fvr8 says every scene has it on. I read all 47 scenes from the pack with Scene Importer's LevelDB reader, and every one has environment.globalLight.enabled true (the old v11 globalLight field is false, which v12+ ignores). True. - Sizes and count: 47 scenes, with the sizes in fvr10. True. - Stale: fvr7 still said "from 4 october ... foundry will offer an update then", but the 4 Oct log shows the first Sunday update went out (1.5.0, 5 new scenes). It now says "every sunday the module picks up that week's derelicts, so foundry offers an update. the first one went out on 4 october with 5 new scenes".
- Deployed static only, with a backup at $SP/press-before-1145.html. The first three cache-busted reads showed the old text (edge lag). The fourth, with no-cache, showed the new one, and dist/ had it all along.
- Finished 12:08
13:07: task 8 recheck before the 14:00 window
- The three /press/ PNGs return 200 and match the local sizes (foundry-v14-halcyon.png 71854, -vision 26287, nimbus 39543).
- /foundry/ is 200 (9877 bytes), /foundry/module.json is 200 (1915 bytes) at version 1.5.0, and both the live manifest and the live zip cmp-match public/.
- The task text on /press/ says 47 scenes, which matches the pack.
- r/FoundryVTT /new/ read logged out: no sci-fi map post this week. A "[System Agnostic] Galaxy map v2" (Non-commercial Resource) has 96 points, the hexmap generator (Commercial) 61, and a 3 Oct Help thread "Map making for Sci Fi" has 11 comments. Read that thread next; it is the exact question task 8 answers.
- Finished 13:08
13:08: read the r/FoundryVTT "Map making for Sci Fi" thread
- Read it logged out, names masked. The asker wants "starfinder, alien, mothership, basically deep space with ships". 11 answers: Inkarnate, 0-hr, Patreon asset packs, Dungeondraft, Dungeon Alchemist, Traveller geomorphs, and r/starfinder_rpg for free ship maps.
- No one named a generator or a ready Foundry module of ships. A mapmaker's link to their own premade Foundry maps stayed up.
- Logged in LEARNED. No reply (boss voice).
- Finished 13:09
14:07: is /foundry/ findable for "foundry vtt sci-fi maps"?
- /foundry/ is "Submitted and indexed", last crawled 1 Oct, with links from /guide/ and one map page. Search Console has no query rows for it.
- Searches return foundryvtt.com package pages (closed to us). The free sci-fi ones are stale: SolutionMaps is verified on v11 and 2+ years old, and the Hyperdrive sample is 3.5 years old and verified through v13. Logged in LEARNED.
- The title changed to "Free sci-fi starship maps for Foundry VTT v14: 47 scenes with walls, doors and lights (CC0) | Bulkhead". The h1 and og:title are unchanged. This was a static-only deploy (src unchanged, so no tests). 2 of 3 no-cache reads showed the new title; the third was edge lag. The backup is in the scratchpad.
- Next: check it in Search Console on 19 Oct.
- Finished 14:08
15:07: /foundry/ says which systems it fits, linking the two Discovered system pages
- Added one paragraph after "Foundry versions": the scenes depend on no game system; 5 ft squares are the scale Starfinder deck plans use, Starfinder 2e included; for Traveller, set the grid distance to 1.5 m. It links /starfinder-deck-plans/ and /traveller-deck-plans/ (both 200).
- Static-only deploy (src unchanged). 3 of 3 no-cache reads show the new paragraph. The backup is in the scratchpad.
- The 9 Oct re-inspect will show whether the two Discovered pages get crawled now that an indexed page links them (before this, only /guide/ did, from 5 Oct 10:1x).
- Finished 15:07
16:07: did task 8 go up, and is today's 0 in RUM real?
- No Bulkhead post on r/FoundryVTT /new/ as of 16:07 (newest 15:28, someone else's battlemap pack). The boss hasn't posted, and the window has passed. Task 8 stays their call. Tomorrow 00:07's funnel read becomes a baseline unless a post goes up.
- RUM shows 0 page loads for 5 Oct up to 16:07. The first-party pings show 2 views (/daily/2026-09-28/ and /free-sci-fi-battlemaps/), and both pages carry the beacon tag on the live site. / adds the beacon from main.ts (line 1328), which is unchanged, and it counted 4 on 4 Oct. So nothing is broken: it's two visitors whose ad blockers stopped the beacon, on a quiet day. No fix.
- Finished 16:07
17:07: scene counts and versions agree across public pages
- Every scene count says 47: /foundry/, /free-sci-fi-battlemaps/, /maps/, /starfinder-deck-plans/ and /press/. /foundry/ says version 1.5.0.
- "20 ships" is the batch size (5, 10 or 20 at once) and "11 ships" is the number of /maps/ pages. Both are correct.
- The only "17 scenes" is Post 8's text and its alt text on /press/. The boss posted that on 18 Sep, so it's history, and it was already noted on 4 Oct. Left as is.
- No change, no deploy.
- Finished 17:07
18:07: Owlbear and /maps/ funnel against the thresholds
- Links: /owlbear-rodeo-dd2vtt/ and /derelict-ship-map-generator/ are linked only from /guide/ among the indexed pages. /derelict-one-shot/, /starfinder-deck-plans/ and /traveller-deck-plans/ have 3 to 4 links each. No more link work until the 9 Oct inspect shows whether this morning's links helped.
- Owlbear page since 1 Oct 12:10: 9 views, 1 obr-copy (it was 0 on 4 Oct), 1 obr-send, 4 editor visits from the page, and 4 panel opens from owlbear.rodeo, 1 of them via the Rogue Store. Below 20 views, and the copy count isn't 0 any more, so the store-link-first change stays parked.
- /maps/: 14 views. Below 20; read it again on 11 Oct as planned.
- No change.
- Finished 18:07
19:07: what the web search engine has of us, by exact searches
- site: returns only /, and its snippet is stale ("17 ready-made decks"). / ranks on page one for the two brand searches. The itch page is absent: the boss's dev.to posts and others' itch games named Bulkhead come back instead. Logged in LEARNED.
- No bing-submit (9 Oct's bingbot count decides whether it does anything). No change.
- Finished 19:07
20:07: can a crawler that reads only / find the other pages from it?
- Yes. The live / HTML, before any JS runs, has plain links to /maps/, /foundry/, /guide/, /daily/, /about/ and 6 of the 7 keyword pages: deck-plan-generator, derelict-ship-map-generator, owlbear-rodeo-dd2vtt, space-station-map-maker, starfinder-deck-plans and traveller-deck-plans. It also links /maps/icv-halcyon-drift/. Only /free-sci-fi-battlemaps/ and /derelict-one-shot/ are missing, and /guide/ and the other pages link those.
- So the gap outside Google is that the crawler doesn't come back, not that it can't find the pages. Pinging IndexNow wouldn't help either (LEARNED, 26 Sep: "accepted" isn't crawled). No change, no deploy, no tests needed.
- Finished 20:07
21:07: the Foundry community wiki's unlisted-modules page
- The wiki page is a 404, so that list is gone. Found FoundryMods instead (alpha, Baileywiki): 9,100 modules, map packs included, a v14 filter, an sf2e tag and a release API that takes self-hosted manifests. Whether an unlisted module can be added is behind Sign In.
- No account opened. Logged in LEARNED, and a batch-ask candidate added to Next, ranked below task 3 and task 1.
- Finished 21:08
22:09: daily pages say "lights" only when the ship has them
- First, today's daily checked as a GM would use it: the PNG is 2300x1200, which is 23x12 at 100 px per square. The .dd2vtt has 24 wall lines, 8 portals (5 closed) and 0 lights. Every door spans a gap in the walls; the wide openings are 2 or 3 one-square portals side by side. The key's 5 rooms are listed.
- The fault: every day page and its image JSON-LD said "walls, doors and lights", but 2 of the 20 days have none (6 of the 31 deck files). By design, wrecks keep a room light 40% of the time and then lose half of those (generate.ts 193 and 334).
- scripts/daily-derelict.mjs: lightsOf(m) adds up the lights in the day's .dd2vtt files. Day pages now say "walls, doors and N lights" or "walls and doors, and no lights (the power is dead)". The shared lines (meta description, intro, feed) say "any lights still working". Backup: scratchpad daily-derelict-before-lights.mjs.
- I rebuilt by running the script on 2026-10-05 ("already generated"; no ship touched). 25 day pages plus the index, feed and sitemap changed. Tally: 2 days with no lights, 18 with 1 to 5.
- Static-only deploy (src unchanged). The first live reads looked old. A byte compare then showed live = dist, so it was edge lag. Verified live: 10-05 and 09-19 say no lights, 09-16 says 4 lights, and the index and feed have the new line.
- Tomorrow's 11:07 run uses the changed script. Check that day's page wording after it runs.
- Finished 22:10
23:07: the same lights claim elsewhere: /maps/ pages, the weekly packs, /foundry/
- /maps/: every .dd2vtt has at least 1 light (the fewest is 1, on three derelicts), so the map pages' "walls, doors and lights" is true. No change.
- /foundry/: from the LevelDB (copied, read with classic-level), 42 of the 47 scenes have lights and 5 derelict decks have none (Heron Station hub, RSV Halcyon Verge lower, ICV Vantage main, Candlemas Station hub, Vantage Station ring). Global light is on in all of them, so they show on drag-in. But the page's tip to untick global light for a dark derelict now adds that those 5 go pitch black. Deployed, live = dist.
- weekly-pack.mjs README line: "walls, doors and any lights still working (some wrecks have none)". This takes effect from the next Sunday pack. Past zips are left as they are.
- Backups in the scratchpad: foundry-before-2320.html, weekly-pack-before-2320.mjs.
- Finished 23:08