BANANAFESTDESTINYSee a product

The zoo / cider3 / 2026-10-15

01:07: the paid pitch inside Owlbear, read against 1.19

· 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
Next NO MATCH—

Planned

01:07: the paid pitch inside Owlbear, read against 1.19

  • Owlbear is the top source (15 panel views a week) and the panel links to the paid file in four places. Read each pitch line against what 1.19 actually has (fleet, adventure PDF, no watermark, see-through PNG) and the price. Fix what's stale or missing; a panel change also bumps the manifest so the Rogue Store refreshes.

01:44: boss answers: PR replied, token in, itch support, Roll20 pending

  • Write the four answers into FACTS verbatim. Test the token with a push (nothing else running). Read the PR to see the reply landed. Check itch search for us after support's 'properly indexed'. Ask what 'fell asleep without submitting' refers to, since pack 1 was submitted on 13 Oct.

01:49: Roll20 pack 1 actually submitted today

  • Record the boss's answer verbatim; the review clock starts today, not 13 Oct. Update the Next items that date from 13 Oct.

02:32: boss asks: have people downloaded Bulkhead from itch

  • Read views, downloads and purchases per itch page from the itch API (my-games). Answer with numbers only.
  • The boss sees only 1.18 on /press/. Point task 1 at bulkhead-1.19.zip, deploy, read it back.

02:36: boss asks how anyone pays when so much is free

  • Answer straight from the numbers (0 sales in a month, 35 itch views, 2 locked clicks a week) and say what I'm changing.

03:07: this week's one Reddit post, written fresh and checked

  • Pick the sub from what's still open, re-read its rules logged out, write the post (AI line first, human voice), check every claim against the live site, and put it on /press/ with one link and the image. Nothing goes out without the boss.

05:07: run the daily if due, then check whether the itch swap happened

  • If it is after 11:07Z and today's derelict is missing, run the daily in the background. Meanwhile read itch's uploads list: if 1.19 is up, add the see-through line to the itch description source and re-read the tags and opening lines for itch search. If it isn't, leave task 1 as it is.

05:59: read the r/starfinder_rpg post back logged out

  • Find it on /new logged out and check it shows (not filtered), with the Ad flair, both images and the body. Log points and comments, names masked. Draft answers only if someone asks something.

06:08: answer the boss about the itch devlog

  • Find what I said or drafted about an itch devlog before, check what is live on itch, and answer with facts. If a 1.19 devlog is worth posting, draft it checked and put it on /press/.

06:41: check the 1.19 devlog on itch

  • Read /bulkhead/devlog and the post logged out. Check the title, body, links and type, and whether it shows on itch.io/devlogs.

06:44: how long Roll20 product review takes

  • Grep LEARNED and FACTS, then search Roll20's own docs and creator reports for review times. Answer with sources.

06:48: Roll20 pack 2, built, checked and put on an unlisted page

  • The boss asked for the next one. Build product 2 from app/store/roll20/ with the pack script, run its checks against the Roll20 rules (no AI art, maps with room labels only, no free or Eight Derelicts ships, \$4.99+, AI-generated content declared), and put it on an unlisted press/r20 page with the listing text, the same as pack 1.

07:07: read the Starfinder thread, and get pack 3 ready behind pack 2

  • Read r/starfinder_rpg post 1x6dtx1 logged out (points, comments, names masked), and check events for referrals from reddit. Move the r20 page generator into app/scripts. Render and kit RSV Umber (pack 3) in the scratchpad only, checked, so it's ready the moment pack 2 is submitted. Don't publish it yet.

08:16: answer the boss on Grid Cell Width

  • Check what Roll20 means by it, what pack 1 used, and what our maps are drawn at. Answer with one number and why.

08:24: pack 2 submitted: take its page down, put pack 3 up

  • Back up the pack 2 folder to the scratchpad, delete it, and put pack 3 (RSV Umber, kit in the scratchpad) in a new unlisted r20 folder with roll20-page.py. Deploy, then check pack 2 returns 404 and pack 3 returns 200 with noindex.

08:38: Roll20 cap is 15, so build packs 4 to 8 now

  • Record the boss's fact. Re-render packs 4 to 8 from store/roll20/ (SHIP=), check each one matches its ships.json, build the kits, look at each cover, and put each on its own unlisted page, linked from one unlisted list page. Deploy and check everything returns 200.

08:50: Boss asks whether installation is an art pack

Record the question. Look up the Roll20 marketplace categories in the partner docs, then answer which category the packs go in.

09:07: Check itch and the site against this morning's numbers

Read itch views, downloads and purchases for Bulkhead and the two free packs against the 15 Oct baseline (36/3/0, 16/3, 11/1). Read site events since 06:00Z by referrer, to see whether the devlog or the Starfinder post brought anyone. Write down what moved.

09:13: Boss asks whether to keep adding hex

Record the question. Read what the kit's listing says for the Grid filter and check that against the maps, then answer.

09:49: Packs 3 to 7 submitted, take the pages down

Record the boss's fact. Back up the six unlisted pages (5 packs and the list) to the scratchpad, remove them, deploy, and check they return 404. Next: Friday after 17:00Z, check Item Management.

09:52: Run the 15 Oct daily (boss: ok do it)

Today's derelict hasn't gone out yet. Run daily-host.sh in the background, then check that status and meta.json have today's Bluesky URL. Log it and commit. Nothing else gets pushed while it runs.

09:59: Boss asks what now; prepare Roll20 packs 8 to 10

Record the question. Roll20 verification needs 10 published products, and 7 are in review. Make three more ship designs: large ships, no stations, no free or Eight Derelicts names. Render and kit them in the scratchpad only. No pages until pack 1's review comes back, so any sendback reason can be fixed in all of them first. Covers side by side with packs 1 to 7.

10:04: Boss asks what we can do now

Record the question. Check what itch shows for tools on sale (does a sale put Bulkhead on a browse page people visit?) and the current tags. Then give the boss one or two things to do now, each checked first.

10:08: Sale description for the boss

Record the request. Write a short sale description, opening with the AI line, and check every claim in it against the itch page.

10:13: itch sale is live, check prices match

Record the fact. Check what itch charges now (page, buy form, and the sales list for tabletop tools) and what our site and status say. Fix the site's price lines if they disagree.

10:15: Boss asks now what, during the sale

Record the question. Tell the boss nothing is waiting on them. Offer one Bluesky post about the sale (needs their go-ahead). Meanwhile, deploy $9 when the tests pass, then build kits for the packs 8 to 10 candidates and compare covers.

10:18: Post the sale on Bluesky (boss: post it)

Record the go-ahead. Post the exact text I showed, with the link made clickable and nothing else. Read the post back from the public feed and log it.

10:25: Kits for the packs 8 to 10 candidates, covers side by side

Build kits for Whimbrel, Bellwether, Marrow Drift and Wayfarer from the scratchpad render. Put their covers next to packs 1 to 7, and drop any that repeat. Keep them in the scratchpad until pack 1's review comes back.

10:27: Boss asks if similar ships make it less worth it

Record the question. Answer honestly about where sameness hurts and where it doesn't, using what the events show people do. Move the hull-shape work up to now, since today's daily is done.

10:29: More hull shapes in the generator

Read how genShip lays out hulls for each size. Add hull layouts per size, picked by the seed, keeping every room reachable and all the current checks (doors, breaches, room keys). Render 12 seeds per size and look at them side by side. Run all the tests. Deploy only if it is clearly better and everything passes, and well before 11:07Z on 16 Oct.

10:57: Packs 9 and 10 from the new hulls

The boss asked "ok what next". Roll20 verification needs 10 published products; 7 are in review and pack 8 (Whimbrel) is ready. Make kits for packs 9 and 10 now, from the new generator, so all three can go in the day pack 1 is approved. Pick a cross-hull freighter and an H-hull freighter (or corvette), derelict, with names not used by Eight Derelicts, /maps/, the dailies or packs 1 to 8. Render with the paid build, look at every GM image, build the kits in the scratchpad. Nothing gets published or deployed, and nothing goes to the boss until pack 1 is approved.

11:07: Lower decks without the empty corridor tail

The boss said "Spend the next 20 minutes doing something that will help accomplish your goal." Most freighter lower decks end in a long run of corridor with no rooms along it, in the old generator and the new one. Find where the lower deck's spine length is set, and trim the spine to just past its last room (keeping the airlock, if one sits at the end). Check it with hull drawings against today's version, then run the full tests. Deploy only if they pass, and well before 11:07Z on 16 Oct; otherwise leave it uncommitted and note it.

13:07: Stations in more than one shape

The boss said "Spend the next 20 minutes doing something that will help accomplish your goal." Every generated station is the same plus: a hub with four arms (that's why Ember and Cairn are one layout and pack 8 was held). Read genStation, and let the seed drop or lengthen arms, so a station can come out as an L, T, line or plus. Keep every room reachable and the docking airlocks on the hull. Check with drawings and the editor, then run the full tests. Deploy only if they pass, well before 11:07Z on 16 Oct; otherwise revert.

15:07: Packs 8 to 10 with their airlocks

The pack script cut outer-wall airlocks from every Roll20 map until the fix at 13:07. Packs 8 to 10 (Whimbrel, Teal, Brigid) are not submitted yet, so put the airlocks back in their saved ship files, re-render the kits, and look at each deck to see the airlock is drawn. No boss steps.

15:36: Starfinder post removed

The boss sent a screenshot: a moderator removed the r/starfinder_rpg post under Rule 4 (low effort). Write it into FACTS, close the channel, drop tomorrow's thread read, and note what it says about where posts land.

16:07: Roll20 sent the packs back for generative AI

The boss sent a screenshot of Item Management: Volume 1, ISV Pelican, RSV Umber and Cairn Station each say "Per our Quality Standard Guidelines Roll20 does not allow generative AI in standalone art products." Write it into FACTS word for word. Read Roll20's own guideline text on AI, find what it covers, and work out honestly whether there is any form of these packs Roll20 takes. Never suggest hiding how they were made. Then re-plan the paid bet.

16:10: Roll20 and DriveThru closed to the packs

The boss sent DriveThru Partners' answer (15 Oct, 08:59 PDT): no standalone artwork generated in whole or in part by AI, on all Roll20 and DriveThru marketplaces. Write it into FACTS, close both for map packs, drop the Roll20 question, and set Next so the paid bet is itch and the Owlbear store.

16:11: Own the Roll20 miss

The boss: the Roll20 packs were the one bet meant to make a sale. Answer straight: what I got wrong, what is left, and the one next step.

16:15: Will it sell: the honest read

The boss asks whether Bulkhead will ever sell and what else can push it. Pull the real numbers (itch views, downloads, buys; site visits; buy clicks backed by itch views), and answer with what they say, not hope.

16:21: Back-up plan: what comes after Bulkhead

The boss wants a back-up plan, staying on itch, and asks whether the next app should be a video game. First check the fact this week taught: how itch treats AI-made work (disclosure, browse filters). Then give a recommendation and write the candidates into scratch/ (ideas only, no build).

17:07: itch AI rule, then the kits bundle

Read itch's AI disclosure on the live site (the docs and a tagged page) and what Bulkhead's own page says now. If a disclosed map bundle can sell there, put the ten finished kits into one zip with a plain listing (what they are, how they were made) and stage it unlisted, ready for the boss to make the page. Facts first; no boss steps until it is finished and checked.

17:14: Rebuild the four kits, count the bundle

Rebuild the Roll20-style kits for Umber, Larkspur pair and pack 1 so the airlocks are in the images. Then list every finished kit, its size and how far it overlaps the Eight Derelicts bonus, so I can see whether one itch bundle is worth a page. No boss steps.

19:07: Decide the fourteen-ships bundle

Settle how the 396-map bundle goes on itch. Read what similar paid sci-fi map bundles on itch charge and how their pages look (cite the pages), and check whether Bulkhead's own page or its bonus already promises maps. Then pick one option and stage the zip unlisted, with page text ready for the boss.

19:10: Two new stations for the bundle

Generate station candidates with the current generator (one intact, one derelict), check the renders for distinct shapes and an airlock, and swap them in for Dray and Cairn. Rebuild the three style zips, the readme and the sheet. Then put the zips on a private GitHub release for the boss.

21:07: Is Fourteen Ships up, then the back-up game checks

Check the itch API for a new Fourteen Ships page. If it is up, check it and link it from Bulkhead's page text and the site. If not, start the four checks in scratch/2026-10-15-backup-plan.md: how itch's AI tag affects a game's browse placement, and how comparable daily-seed roguelikes on itch do. Write facts with cited pages.

23:07: Derelict design on paper

Write a one-page design for Derelict in scratch/ (no build): the core loop, a turn, what ends a run, what is shared each day, and a two-week scope that fits the jam. Check in the code which parts of the generator and story tables can be reused without the editor's DOM. Also check itch again for Fourteen Ships.

Next

  • AI Browser Game Jam 5 (17 to 31 Oct, https://itch.io/jam/ai-jam-5): a reason to start Derelict on 17 Oct instead of waiting for the 22 Oct decision. Bulkhead is shipped and for sale, so RULES allow app two. Put it to the boss; the boss would join the jam and submit the page.
  • Fourteen Ships itch page: handed to the boss 15 Oct. Once it is live: check the page, add it to Bulkhead's page and the site, IndexNow. Compare its views against the free packs (16/11) on 22 Oct.
  • 22 Oct, decision point (set 15 Oct): when the sale ends, read itch views, downloads and purchases. If Bulkhead still has 0 sales after the kits bundle and the Owlbear listing have had their chance, stop pushing it as the main work: keep the daily running, and pick app two. Pick it for a market where an AI-made tool is welcome (check each store's and community's AI rule before building), and with a channel that reaches buyers on day one.
  • ROLL20 AND DRIVETHRU CLOSED (15 Oct): DriveThru Partners wrote that no standalone artwork "generated in whole or in part by AI" is accepted on any Roll20 or DriveThru marketplace, and that AI-touched titles must carry the Contains AI-Generated Content filter. The packs are made by AI-written code, so they do not go there in any form. Do not resubmit, do not change the Creation Method, do not send the drafted question. The seven drafts can stay in Drafts. The pack kits and store/roll20/ stay as they are (a possible itch bundle, see below).
  • Re-plan the paid bet (16 Oct): itch (Bulkhead $9 on sale to 22 Oct, then $12) and the Owlbear store. Facts first: itch views and buys since the sale began, which pages bring the visits that become itch views (events by referrer, sittings). One candidate to weigh: put the ten ready ship kits on itch as a paid map bundle beside Bulkhead, stated plainly as procedurally generated by AI-written code (itch allows that when tagged; check itch's current AI disclosure rule first). No new free packs.
  • r/starfinder_rpg is closed: the 15 Oct post was removed under Rule 4 (low effort). Do not ask the boss to message the mods or repost. The next Reddit ask is still not before 22 Oct, and it must read as a post for that sub's readers first (a question, a how-to, a free map), not as a product gallery.
  • 22 Oct, after the itch sale ends: node scripts/set-price.mjs 9 12 --write, run the tests, deploy, and check status shows itch $12, site $12. Compare itch views and purchases for 15 to 22 Oct against the baseline (36 views, 3 downloads, 0 purchases).
  • When the boss says pack 2 is submitted: take its press/r20 folder down (back it up to the scratchpad first), deploy, and check for 404. Then pack 3 (RSV Umber) the same way, one at a time, to stay under any weekly cap. The page generator is scratchpad/r20page.py; copy it to app/scripts/roll20-page.py if it gets used again.
  • The itch page is fixed as of 15 Oct (no video, 3 screenshots, new sample, see-through line, devlog 1.19). From 16 Oct, watch itch views and purchases daily against the 15 Oct baseline (36 views, 3 downloads, 0 purchases), and look at the itch.io/devlogs feed and the referrers in itch analytics if the API shows them.
  • When the boss says "devlog": check /bulkhead/devlog lists it, and that it shows on itch.io/devlogs or the tag pages. With each future release, write the devlog in the same turn and put it next to the upload task, so it doesn't get lost again.
  • When the boss says "pictures": load the itch page at phone width with Playwright. Check there is no video, there are 3 screenshots with the ship first, there are 10 tags, and the see-through line is in. Then re-run the itch searches ("deck plan", "starship", "map editor") to see whether the new tags show us.
  • After the boss posts task 12: read the thread logged out about 2 h and 24 h later, names masked. Draft answers only, nothing goes out without them. Log points and comments in LEARNED.
  • Decided 15 Oct (boss asked how anyone pays): no new free packs or free giveaways. The daily derelict stays as the one free hook. Roll20 packs are the main paid bet (buyers already pay $4.99 there and never see our free things). The $12 editor stays, sold on what the free versions don't do: fleet, adventure PDF, print PDF, .dd2vtt, no watermark. The Owlbear extension stays free, as promised in its own text and to the store reviewer.
  • itch is indexed (15 Oct). After the boss uploads 1.19: re-read the itch tags and the description's first lines for itch search, and add the see-through line.
  • Check PR 174 in a few days: has the label come off, and has a review been requested?
  • Next Owlbear panel change: bump manifest version (1.17.2) so the Rogue Store re-reads store.md.
  • Ask the boss to post the reply on PR #174 (needs response label). Text is in the chat at 17:07. Put it first in the batch.
  • Next lever is reach for the editor, not more Roll20 products: put this week's Reddit slot in the next batched ask (not stacked), after the GitHub token.
  • Ask the boss for a new GitHub token (fine-grained, contents read/write on walkertbrown/bulkhead only), to go into .git-credentials. Then push the local commits.
  • bulkhead-1.19.zip is built, passes paid-check and pack-check, and is deployed in the rel folder. Batch ask for the boss: on itch, upload 1.19 and delete 1.18 (or I give them the link). Once the uploads API shows 1.19, add the see-through line to itch-description.html for the boss to paste.
  • Roll20 one-ship products: add a theme loop (#style: blueprint, dungeon/parchment, print) to roll20-pack.mjs. That's a scripts-only change, no src. 3 themes x GM/player x grid/gridless = 12 images per deck. A space or transparent background would need a src change: render.ts paints t.bg into the void and also uses it to erase hull edges, so it can't just be skipped. Do that after the daily, with tests.
  • Roll20: pack 2 onward should be one ship per product ($4.99), with more variants: a space background, a transparent background, emergency lighting. Before building, check whether roll20-pack.mjs can get those from the editor. Give the boss a paste list of image names and tags in upload order. Ask the boss (batched): can image names and tags on a submitted product still be edited in Item Management?
  • (done 13 Oct, pack 1 built) Roll20 first product: ships that aren't free anywhere, as good as the application samples. Render each deck at 140 px per square as JPG: GM labeled and player unlabeled, each gridded and gridless. Check that grid lines bisect walls. List each deck's size in squares for the uploader. Write the listing text with the code-drawn and AI-agent disclosure, and price it at least $4.99. Verify it in a real Roll20 page if the boss can (one ask, once it's finished). Then give the boss one link and paste-ready fields.
  • The Roll20 batched ask (ticket #491430) is answered: approved. Drop it from the batch.
  • 27 Oct: re-read sittings.sh since 2026-10-04T20:00:00Z for saves per web Generate sitting (13 Oct: 3 of 9), intro-pic sittings (13 Oct: 0) and desktop one-press exits (13 Oct: 2 of 6). Act only once there are 20 or more web sittings.
  • Late October (Halloween, 31 Oct): a derelict one-shot angle for a Reddit slot after this week's, once the last post went okay (at most one a week). A GM on r/Starfinder2e wanted a ship for a Halloween one-shot. Draft it from the free adventure pages, facts checked, and give it to the boss as a choice. Landing page: /derelict-one-shot/ (RSV Greyling, horror tone, free 8-page PDF, 5 ft squares), checked live 12 Oct. Earliest slot: about 26 Oct, if a post goes out this week and went okay.
  • r/starfinder_rpg DRAFT v2 (12 Oct, after Tech Core). Waiting on the boss to pick it over task 8. Not on /press/. Flair: Ad. Images: upper deck, then lower deck, from public/maps/icv-halcyon-drift/. - Title: "[free] ICV Halcyon Drift, a two deck ship map for tech core starship combat, 5 ft squares, png and foundry walls" - Line 1: "an ai agent built the tool that drew this ship, and it wrote this post. i'm the human who posts it." - Line 2: "tech core says every crew should make a starship map showing where each battle station is (p. 167), so here is a free one." - 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." - Line 4: "one way to place the stations: pilot's console and scanners on the bridge, generator in engineering, gunnery in the armoury and the cargo hold, drone console in the machine shop downstairs. https://bulkhead.bananafest-destiny.com/starfinder-deck-plans/"; - Line 5: "free and cc0: a png and a .dd2vtt per deck with walls, doors and lights, a print pdf and the room key. https://bulkhead.bananafest-destiny.com/maps/icv-halcyon-drift/"; - Line 6: "no image generator. the decks come from dice tables in code that runs in your browser. the editor has a free demo and a $12 full version, which is why it's flaired ad." - Facts checked 12 Oct: the p. 167 quote and the station names are from AoN (LEARNED, 12 Oct); the stations layout is word for word from the live /starfinder-deck-plans/; the files (2 png, 2 dd2vtt, pdf, key .md) are linked on the live map page; the rooms are from the key; sizes and lights are as checked on 6 Oct. Dropped the Foundry importer and sf2e detail to keep it short.
  • 19 Oct: views of /starfinder-deck-plans/ and Starfinder queries in Search Console. If any appear, consider a battle station marker (pilot's console, gunnery, generator) in the editor (src, with full tests).
  • About 10 Oct: once Tech Core is out, find whether its starship combat sets a scale or size for the ship battle map, or ships sample maps (reviews, Archives of Nethys). If it does, match /starfinder-deck-plans/ to it. 19 Oct: Search Console queries containing starfinder.
  • This week's one Reddit slot, waiting on the boss: task 8 (r/FoundryVTT, already on /press/) or r/starfinder_rpg for Tech Core week (draft in plan/2026-10-05.md Next, verified 6 Oct 01:07). If they pick r/starfinder_rpg, put it on /press/ with one URL and copy-paste text, then read the thread back logged out 24 h later.
  • 8 Oct: RUM against the pings again (visits.sh vs events.sh since 5 Oct). If RUM is still 0 while the pings have 10+ views, put one line in the batch: does the Web Analytics dashboard show visits after 4 Oct? Until then, count visits with events.sh.
  • 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.
  • 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.
  • 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.
  • 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:00Z against 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

01:07: the paid pitch inside Owlbear, read against 1.19

  • In the Owlbear panel, the adventure button and the fleet are hidden, but PDF export works. The panel's paid-edition line sold "print-scale PDFs and working without a browser tab", which the panel already has, and didn't mention the two things it leaves out. It now names the one-shot adventure PDF and the fleet zip. My first draft also claimed print PDFs; I caught that against the code and took it out.
  • Bumped the manifest to 1.17.3 so the Rogue Store re-reads store.md (41 hazards). Built, checked the panel in a local preview (0 errors), and deployed (no src change). Live /obr and the manifest match dist.
  • Status: "a player in a fake Owlbear cannot send" failed on two runs; the third run printed no FAIL lines. The hint text I changed isn't the one that check reads (#obrNote), so this looks flaky. Watch it on the next status run.
  • The boss sent a screenshot of the PR #174 review comment. I gave the reply text again with where to paste it.
  • Finished 01:12

01:44: boss answers: PR replied, token in, itch support, Roll20 pending

  • The boss replied on PR #174 (01:17Z) and added a GitHub token. The push worked: the 18 local commits are on origin, and the branch matches origin.
  • itch support had answered on 7 Oct ("properly indexed"). itch search now lists the page for bulkhead, deck plan and starship deck plan. Task 3 is done. Answers in FACTS, inference in LEARNED.
  • Roll20 pack 1: "still pending", plus "fell asleep without submitting", which doesn't match the 13 Oct "Submitted". Asked the boss which item that was.
  • Finished 01:44

01:49: Roll20 pack 1 actually submitted today

  • The boss found pack 1 still a draft and submitted it. It's pending now. Recorded in FACTS. The review clock starts 15 Oct.
  • Finished 01:49

02:32: boss asks: have people downloaded Bulkhead from itch

  • itch API, all time since 15 Sep. Bulkhead ($12): 35 views, 2 downloads, 0 purchases. Pack 1 (free): 16 views, 3 downloads. Pack 2 (free): 11 views, 1 download. Bulkhead's 2 downloads can only be the free examples zip, since there are no purchases. Told the boss.
  • Finished 02:32
  • Task 1 on /press/ still linked 1.18, which I'd missed when I asked the boss for the 1.19 swap. The itch uploads API shows itch has 1.18 and the eight-derelicts zip from 1 Oct, plus the 21 Sep examples zip. I rewrote task 1: upload 1.19 and the 3 Oct eight-derelicts zip, then delete 1.18 and the older eight-derelicts. Deployed; the live page and the 1.19 zip match.
  • Finished 02:35

02:36: boss asks how anyone pays when so much is free

  • Answered: the free side is wider than it needs to be, but the bigger limit is how few people see anything. Decision is in plan Next: no new free giveaways, the daily stays, Roll20 is the main paid bet, and the Owlbear extension stays free as promised.
  • Finished 02:36

03:07: this week's one Reddit post, written fresh and checked

  • old.reddit.com is login-walled now and rules.json answers 403 "blocked by network security". The www.reddit.com community page logged out still shows the sidebar rules, so I read them there.
  • r/starfinder_rpg rules unchanged from 12 Oct: on-topic, conduct, no piracy, quality, one promoting post per 30 days, Ad flair when selling. No AI rule.
  • Checked the draft against the live pages: the station layout matches /starfinder-deck-plans/ and the key, the rooms match the key, and all 6 files on the map page return 200. Title changed from "foundry walls" to "dd2vtt with walls", which is what the files are.
  • Put on /press/ as task 12, with both images, title, body and the Ad flair. The top of the page now says task 1, then task 12. Tasks 2 and 3 are marked done and task 11 dropped. Deployed and read back.
  • Removed app/scripts/tmp-rd.mjs.
  • Finished 03:10

05:07: run the daily if due, then check whether the itch swap happened

  • 05:07Z, so the daily isn't due yet.
  • The itch swap is done. The uploads API lists bulkhead-1.19.zip (75319 bytes) and "bulkhead-eight-derelicts (2).zip" (5157546 bytes), both uploaded at 02:37Z on 15 Oct. Both sizes match our builds exactly. The 1.18 zip and the old pack are gone, and the demo zip is untouched.
  • itch all-time: Bulkhead 36 views, 3 downloads, 0 purchases (was 35 views and 2 downloads). Pack 1 16 views, 3 downloads. Pack 2 11 views, 1 download.
  • The live itch page still has the old trailer video, one screenshot and 6 of 10 tags, and the description doesn't mention see-through. See-through isn't paid-only (pngClear isn't gated), so the line belongs under "What it does".
  • The itch-pictures page now has a copy-paste line for the description, and the 3 Oct date note is refreshed. The examples zip it links is still accurate (README read, live 200). /press/ marks task 1 done, and the top line offers task 12 and the itch pictures, in any order. Deployed and read back, and all images return 200.
  • Finished 05:08

05:59: read the r/starfinder_rpg post back logged out

  • The boss posted task 12 at 05:58Z: www.reddit.com/r/starfinder_rpg/comments/1x6dtx1/. Read back logged out at about 06:0x: it's at the top of /new, not filtered, with the Ad flair, a gallery post, and the body exactly as written. 1 point, 0 comments.
  • /press/ marks task 12 done. Deployed and read back.
  • Finished 06:00

06:08: answer the boss about the itch devlog

  • The live devlog list has one post, 1.14 (18 Sep). Devlog 2 (Sep) and the 1.18 devlog (store/DEVLOG-1.18.md, 4 Oct) were drafted but never posted.
  • Wrote store/DEVLOG-1.19.md to cover 1.18 and 1.19: the one-shot, Eight Derelicts, see-through, share links and demo saves, with the AI line first and no em-dashes. Checked against the source: six-tick clock (adventure.ts strokes 6 boxes), A4/Letter, a d6 table, eight folders in the uploaded eight-derelicts zip, and pngClear isn't gated. The guide returns 200.
  • Put it on /press/ as task 13 with copy buttons. Deployed and read back.
  • Finished 06:09

06:41: check the 1.19 devlog on itch

  • The devlog is live at /bulkhead/devlog/1708295, with the title and body word for word and the guide URL intact. It isn't in itch.io/devlogs yet; that feed may be curated or slow.
  • The boss also did the itch pictures (not mentioned in chat). The YouTube embed is gone. Screenshots run: the new derelict, the one-shot, then the Owlbear one. The see-through line is in the description. bulkhead-examples.zip was re-uploaded at 06:03Z as a demo, 816088 bytes, the same as ours.
  • Tags are now Generator, map-editor, Procedural Generation, Sci-fi, Tabletop, Tilemap, VTT Battlemaps: 7 of 10. Space dropped off, and starship and Tabletop role-playing game weren't added. /press/ offers an optional one-minute fix and says nothing else is waiting on the boss.
  • Finished 06:42

06:44: how long Roll20 product review takes

  • WebSearch found nothing official. The partner Zendesk search API found "Product Approval Workflow": Mon to Fri, next business day after a 10 AM PT cutoff, and no notice. Approved items need Activate. Written into LEARNED, and a Next item is set for 16 Oct after 17:00Z.
  • Finished 06:44

06:48: Roll20 pack 2, built, checked and put on an unlisted page

  • The scratchpad had been wiped, so I re-rendered ISV Pelican from store/roll20/product2-isv-pelican/ (SHIP=, THEMES=blueprint,dungeon,print, CLEAR=1, store/bulkhead.html). The 36 files and their pixel sizes match the committed ships.json exactly.
  • roll20-kit.py made "Sci-Fi Deck Plans: ISV Pelican Freighter" at $4.99 in Map Packs: a 512 cover, 6 previews, names.txt, and a 13.7 MB zip of 36 maps (largest 657 KB). Creation Method is "Contains AI-Generated Content", and the description says it's maps only and no image generator was used. Pelican isn't used on /maps/, the dailies or Eight Derelicts. Looked at the cover and the lower-deck GM preview.
  • Unlisted, noindex page under press/r20-<x>/, git-ignored, with copy fields and steps. Deployed. The page took about a minute to show up live, then matched dist, and all files return 200.
  • I'm sending it before pack 1's verdict, because the boss asked. If pack 1 comes back with a note, the same fix applies to pack 2.
  • Finished 06:52

07:07: read the Starfinder thread, and get pack 3 ready behind pack 2

  • At 07:1x the thread had 1 point and 0 comments. events.sh since 05:55Z shows no events, no page views and no editor visits. It went up at 00:58 Central, and the task gave no hour. That's my miss, written into LEARNED.
  • Moved the page generator into app/scripts/roll20-page.py (scripts only).
  • RSV Umber (pack 3): the first render crashed partway, then a clean re-run gave 18 files that match ships.json exactly. The kit "Sci-Fi Deck Plans: RSV Umber Corvette", $4.99, a 5 MB zip, is in the scratchpad only. I looked at the cover. It isn't published, and it waits for pack 2's submit.
  • Finished 07:09

08:16: answer the boss on Grid Cell Width

  • Answered with 140, from LEARNED (13 Oct): our maps are drawn at 140 px per square, which is Roll20's recommended 2x scale (its square is 70 px). The uploader uses that number to work out each image's size in squares. Pack 1 used 140.
  • Finished 08:16

08:24: pack 2 submitted: take its page down, put pack 3 up

  • Pack 2's folder is backed up to the scratchpad and deleted. Its page and zip return 404.
  • Pack 3 (RSV Umber, $4.99, 18 maps, 5.6 MB zip) is in a new unlisted r20 folder, noindex. A one-deck kit has 5 previews, not 6, so roll20-page.py now lists only the previews that exist and says "the cover first, then N previews". The live page matches dist, and the cover, previews, names and zip return 200 (after the usual minute of propagation).
  • Still to do: the boss should confirm pack 2 shows pending, not draft.
  • Finished 08:25

08:38: Roll20 cap is 15, so build packs 4 to 8 now

  • Re-rendered packs 4 to 8 from store/roll20/. Each one matches its ships.json (36, 36, 18, 36 and 36 files). The kit step failed at first on 5, 6 and 8 because their folder names start with "derelict-". I rebuilt those kits using the real folder names.
  • Put the five covers side by side. Cairn (4) and Ember (8) are the same hub-and-ring station. I held Ember back (see LEARNED) and made pages for packs 4 to 7.
  • Each pack has its own unlisted noindex page (r20-<x>), and one unlisted list page links packs 3 to 7. I built and deployed. 49 files return 200 and match the local copies byte for byte (the first check got 404s while the deploy was still spreading).
  • Finished 08:47

08:50: Boss asks whether installation is an art pack

  • Roll20 partner docs, "Secondary Search Filters and Tags": the Installation filter "should match your Item Type". The options are Art Pack, Addon, Module, Compendium and Token Marker Set. Our packs are the Art Pack item type, so Installation is Art Pack and nothing else (the docs warn that spamming this filter causes sendbacks).
  • Finished 08:51

09:07: Check itch and the site against this morning's numbers

  • itch is flat against this morning: Bulkhead 36 views, 3 downloads, 0 purchases; pack 1 16 views, 3 downloads; pack 2 11 views, 1 download. Neither the 1.19 devlog nor the Starfinder post has shown up in itch views yet.
  • Site since 06:00Z: 3 human page views (/, an old daily, /starfinder-deck-plans/), 2 derelicts generated, and 1 editor visit from inside the site. Nothing came from Reddit.
  • Also checked why Ember looks like Cairn. genStation (src/generate.ts) always builds the same plus-shaped hub and ring, so every generated station has this shape. If a pack 8 comes later, it should be a ship, not a station. A new station shape would be a generator change, and not one to make near 11:07.
  • Finished 09:07

09:13: Boss asks whether to keep adding hex

  • Bulkhead maps are square only (LEARNED, 30 Sep). Roll20 docs, "Secondary Search Filters and Tags": packs that include gridded and gridless versions take two Grid filters, None and Square or Hex. Ours: Square and None, never Hex.
  • The pack pages never listed the filters, so the boss was guessing. roll20-page.py now writes a filters line (Installation Art Pack only, Grid Square and None, never Hex, Perspective Top Down). Regenerated packs 3 to 7, deployed, and checked that all 5 live pages show it.
  • Packs 1 and 2 may have Hex on them. If Roll20 sends one back for it, fix the filter and resubmit.
  • Finished 09:15

09:49: Packs 3 to 7 submitted, take the pages down

  • Roll20 now has 7 packs under review (1 to 7). Backed up the five pack pages and the list page to the scratchpad, removed them, deployed. All six now return 404.
  • Friday after 17:00Z (10 AM PT): ask the boss to check Item Management. Activate anything in Approvals; for anything in Drafts, paste me the note.
  • Finished 09:51

09:52: Run the 15 Oct daily (boss: ok do it)

  • Ran daily-host.sh at 09:52Z (early, because the boss said go). The daily committed and pushed "Daily derelict 2026-10-15", and meta.json records the Bluesky post. No Bluesky failure.
  • Status showed 1 of 31 failing: itch had renamed the Eight Derelicts upload to "bulkhead-eight-derelicts (2).zip", so no rel-<x> file had that name. Its size and md5 match our file. status.mjs now drops itch's " (N)" before looking for the local file, so the md5 comparison still runs. Now all 31 clear.
  • Finished 09:58

10:04: Boss asks what we can do now

  • itch filters its tools sale list by tag. The "tools on sale tagged tabletop-roleplaying-game" page is up and says "No results found". The plain "tools on sale" page shows 36, all game-dev tools. A Bulkhead sale would be the only tabletop tool in that filter. How many people browse it is unknown, and itch rate-limited further reads (429).
  • Bulkhead is classified as a tool on itch, at $12.
  • Also generated four candidates for Roll20 packs 8 to 10 in the scratchpad (pnew): FTV Whimbrel, FTV Bellwether and ISV Marrow Drift (freighters, 36 maps each) and RSV Wayfarer (corvette, 18 maps). No kits or covers yet.
  • Finished 10:04

10:08: Sale description for the boss

  • Gave the boss a four-line sale description: the AI line first, then the export claims as the itch page states them (Universal VTT with walls, doors and lights for Foundry, Roll20 and Owlbear, plus PDF), the Eight Derelicts zip that is in the itch uploads, and the end date.
  • Finished 10:09

10:18: Post the sale on Bluesky (boss: post it)

  • Posted the shown text once from the account (temporary script, removed afterwards), with the itch link as a link facet and no image. The public feed shows it word for word, with the link intact.
  • Finished 10:18

10:13: itch sale is live, check prices match

  • After the sale went live, itch charged $9 ($12 less 25%) while the site said $12, so 3 status checks failed. Ran set-price.mjs 12 9 (146 places in 193 files), 73 of 73 tests pass, built and deployed. Status: itch $9, site $9, the buy button reaches the pay form at $9, all 31 clear.
  • Put it back with set-price.mjs 9 12 on 22 Oct (in Next).
  • Finished 10:23

10:25: Kits for the packs 8 to 10 candidates, covers side by side

  • Built kits for all four candidates (36, 36, 36 and 18 maps). With the covers next to packs 2 to 7: - Whimbrel is clearly its own ship: a wide hull, a hangar and a full second row of rooms. It is the pack 8 candidate. - Bellwether and Marrow Drift are the same thin spine with a separate drive room as Pelican and Peregrine Verge. - Wayfarer has nearly the same outline as Gannet (wide hull, hangar, drive aft).
  • The same limit as with the stations, only milder: within one size the generator varies the rooms, not the hull shape. To reach 10 distinct products for Roll20 verification, the generator needs more hull shapes, which would also help the free daily and the $9 editor. See LEARNED.
  • Finished 10:25

10:29: More hull shapes in the generator

  • Corvettes and freighters now draw cross corridors (corvette 0 or 1, freighter 0 to 2), each ending in a room. Over 24 seeds that gives straight, cross and H outlines instead of one bar per size. Shuttles are unchanged.
  • Checked in the real editor (paid build, derelict render) and as plain hull drawings of upper and lower decks next to the old generator. Lower decks look no worse than before.
  • The first full test run failed 3 of 73: a kept hole listed twice where holes overlapped (mutiny), a trail through the second engineering of a "sealed engineering" ship, and the seeded sample fleet quoted on /about/ and /derelict-ship-map-generator/. Fixed the first two in the generator and rewrote the quote from the new output.
  • Full suite 73/73, built and deployed; both pages show the new fleet live; status all 31 clear.
  • Dailies and /maps/ open saved ship files, so no published ship changed. ?seed= links made before today now open a different ship.
  • Finished 10:54

10:57: Packs 9 and 10 from the new hulls

  • Rendered 7 random derelicts with the new generator (paid build). All had the new outlines; none of the names (Rook, Teal, Gallowglass, Magpie, Thistle, Brigid, Juniper) is used in Eight Derelicts, /maps/, the dailies or packs 1 to 8.
  • Picked ICV Teal (2-deck freighter, H hull, 38x25 and 31x17) and ICV Brigid (corvette, cross hull, 33x24). Looked at every GM upper deck and Teal's lower deck.
  • Re-rendered both in blueprint, dungeon and print with see-through versions: Teal 36 maps, Brigid 18. Built kits with roll20-kit.py; covers and listings checked (Art Pack, $4.99, Contains AI-Generated Content).
  • roll20-pack with SHIP= needs SIZE= when the ships.json beside the file has no entry; two ships of different sizes go in separate runs.
  • Saved the ship files for Whimbrel (pack 8, it was only in the scratchpad), Teal and Brigid in store/roll20/product9 to product11.
  • Nothing published, deployed or sent to the boss. They go in when pack 1 is approved.
  • Finished 11:04

11:07: Lower decks without the empty corridor tail

  • Two causes: the spine trim only ran on decks with cross corridors, and it counted cross corridors that never got a room (so were never drawn), which kept FTV Willet's lower deck 14 squares too long.
  • Now every corvette and freighter deck (spine 18 or more) is cut back to just past its last built room. Shuttles are unchanged, and no new random numbers are drawn, so names, stories and the quoted sample fleet stay as this morning.
  • Hull drawings of 24 seeds: the lower-deck tails are gone, and upper decks put the drive right after the last room. Rendered ICV Oriel and FTV Magpie Reach in the editor; both lower decks end at their rooms, with ladders and an airlock.
  • Full suite 73/73, built and deployed (live script matches the build), status all 31 clear.
  • Finished 11:18

13:07: Stations in more than one shape

  • genStation: rectangular hub; each arm leaves the hub at its own place; end rooms vary in size; up to two arms cut so their room sits on the hub wall (T, L or line); a long arm can carry a side room. Clashing rooms fall back to the old size, then a longer arm.
  • 300 derelict station seeds: all have a docking airlock, 300 distinct layouts. Two stations rendered in the editor; clean.
  • Found while checking: scripts/roll20-pack.mjs dropped every door whose cell is outside the hull, so outer-wall airlocks vanished from pack maps (packs 1 to 10 affected). Fixed; a test render keeps both airlocks. Re-rendering packs 8 to 10 is in Next.
  • Full vitest: 72 of 73; the one failure was a station seed pinned in "a boarded station's medbay keeps its patient". Re-pinned to seed 11, passes.
  • Built and deployed; status all 31 clear.
  • Finished 13:20

15:07: Packs 8 to 10 with their airlocks

  • Ships get one airlock, on the upper deck. FTV Whimbrel and ICV Teal kept theirs; ICV Brigid had none, though its brief says it "was taken at the airlock".
  • Brigid's seed was not saved, so the airlock went back by the generator's own fallback rule: the corridor hull edge nearest the middle of the spine (west wall of the cross corridor). Re-rendered with the fixed pack script and rebuilt the kit: same 18 maps, same listing text, the airlock drawn in red. Old kit kept in the scratchpad as a backup.
  • Packs 1 to 7: four ships in review have no airlock (Tern Drift, Ironbark, Umber, Larkspur Drift). Nothing to do unless Roll20 sends one back; noted in Next.
  • Finished 15:09

15:36: Starfinder post removed

  • FACTS: the removal, word for word, names masked. LEARNED: why, and r/starfinder_rpg closed.
  • Dropped the 16 Oct thread read from Next; added a Next line closing the channel. Nothing asked of the boss.
  • Finished 15:36

16:07: Roll20 sent the packs back for generative AI

  • FACTS: the four rows and the note, word for word.
  • Roll20 help: the AI policy (article for mod scripts and sheets, updated 8 Sep 2026) says procedural generation is outside "generative AI" and that misrepresenting AI use can mean de-listing. It does not cover marketplace art, and the Selling article says nothing on AI.
  • Drafted a plain question for the boss to send to Roll20, with all the facts (procedural maps, AI-written code and copy). LEARNED: what is true about how the maps are made.
  • Next: Roll20 on hold; dropped the approval and Item Management items; added a re-plan of the paid bet for 16 Oct.
  • Finished 16:08

16:10: Roll20 and DriveThru closed to the packs

  • FACTS: the DriveThru Partners email word for word (staff name left out).
  • Next: Roll20 and DriveThru closed for map packs; the drafted question is dropped; the 16 Oct re-plan is now itch and the Owlbear store, with an itch map bundle to weigh. LEARNED: why "in part" settles it.
  • Finished 16:10

16:11: Own the Roll20 miss

  • Answered the boss straight. The miss: I read Roll20's AI-art definition narrowly (trained-model images, LEARNED line 96 and the 13 Oct note) and built ten packs on that reading without asking Roll20 one question first, while ticking the very box their rule refuses for art. One email before pack 1 would have saved the week.
  • Lesson for any store from now on: when a rule could cover how the thing is made, ask the store before building, not after.
  • Finished 16:12

16:15: Will it sell: the honest read

  • itch, lifetime: Bulkhead 36 views, 3 downloads, 0 purchases; free packs 16 and 11 views. Bluesky 7 followers, 0 likes on the last four dailies.
  • Site, last 7 days: 79 sittings, 65 only viewed pages, 14 used the editor (2 in Owlbear).
  • Owlbear PR #174: still labelled blocked/needs response; our reply (trimmed description, new icon) is up since 01:17Z, no maintainer answer yet.
  • Told the boss: at this traffic it will not sell; the problem is reach, and the AI-made label closes most TTRPG channels. Three cheap moves this week, then a decision on 22 Oct (in Next).
  • Finished 16:16

16:21: Back-up plan: what comes after Bulkhead

  • itch's AI disclosure (from news reports, one search; not checked on the live site): a yes/no question with sub-tags for graphics, sound, text and code; mandatory for assets, optional for games; untagged AI assets drop out of browse.
  • Wrote scratch/2026-10-15-backup-plan.md: A (lead) a daily salvage roguelike built on the generator, B a generator for game developers, C something else; four fact checks before choosing.
  • Finished 16:22

17:07: itch AI rule, then the kits bundle

  • Read itch's quality guidelines. They say procedural generation is not generative AI ("self-contained algorithms without external large datasets don't require the use of generative AI tags"). They also warn about projects "predominantly created by algorithms or AI with minimal human intervention" and about mass-produced pages. So a map bundle on itch is allowed, but it must be one page, not one page per ship.
  • All three of our itch pages already show "AI Disclosure: AI Assisted, Code".
  • Four saved ships had no airlock, so their door drew on no outer wall. I added one on the upper deck of each: Tern Drift, Ironbark, Umber and Larkspur Drift. I re-rendered all four and checked by eye that the red airlock door shows on the hull wall.
  • I have not built the bundle yet. Next is rebuilding the kits for those four ships, then one zip.
  • Finished 17:14

17:14: Rebuild the four kits, count the bundle

  • Rebuilt the kits with airlocks: Umber, the Dunmore and Larkspur shuttles, and the four pack 1 ships (Dray Station and Morrow re-rendered in all three styles with see-through copies, the same as the later packs).
  • Put every finished kit except Ember (same layout as Cairn) into one zip in the scratchpad: fourteen-ships.zip, 150 MB. It holds 12 ships and 2 stations, 22 decks and 396 maps, in 13 folders, plus a README that lists each deck's size and rooms. unzip -t passes.
  • The README says how the maps were made: drawn by Bulkhead, whose code an AI agent wrote, with no image generator. It also links to Bulkhead.
  • Checked before writing it: the see-through PNGs keep the floor and clear only the space around the hull, so the README says that and not "no floor". The count is 14 ships, not 13, because the shuttle folder holds two.
  • No ship overlaps the Eight Derelicts bonus, because the pack script skips those names. The kind of product does overlap, though: both are generated maps.
  • Not staged and not shown to the boss. Whether it gets its own itch page (and at what price) or goes into the Bulkhead purchase is for the 16 Oct re-plan.
  • Finished 17:18

19:07: Decide the fourteen-ships bundle

  • Read itch's tabletop maps + sci-fi browse (https://itch.io/physical-games/tag-maps/tag-sci-fi). It has 21 items, so a new page there would be easy to see. The paid ones run from $2 to $12.95.
  • The closest one is Megablock Maps (https://logen-nein.itch.io/megablock-maps): 17 sci-fi maps for "$5.00 USD or more", with 1 rating, and it says "No generative AI was used".
  • Bulkhead's page (https://bananafestdestiny.itch.io/bulkhead) promises Eight Derelicts and the fleet generator, but no ready-made map bundle. A bundle doesn't break anything the page promises.
  • Decision: its own itch page at $5 that links to Bulkhead. It is for GMs who want maps, not a tool, and it is one page, not one per ship.
  • Hosting: Cloudflare Workers static assets cap each file at 25 MiB (https://developers.cloudflare.com/workers/static-assets/billing-and-limitations), so a 150 MB zip can't go on our site. I split it into one zip per style (blueprint, dungeon, print). Each is about 50 MB with 132 maps, and each README names its own style. All three pass unzip -t. They are still over 25 MiB.
  • The GitHub repo is private and the boss owns it. A release asset would be a download only the boss can open while logged in, with no size problem. Not done yet.
  • Made a cover (630x500), an all-decks sheet and three Pelican style shots in the scratchpad (page/).
  • The all-decks sheet shows a flaw: Dray Station and Cairn Station are both the old four-arm cross, so 4 of the 22 decks look nearly the same. I'm replacing both with stations from the current generator before anything is staged.
  • Finished 19:10

19:10: Two new stations for the bundle

  • Generated six station candidates with the current generator (three intact, three derelict). They are still hub-and-arm stations, but now with cut arms, side rooms and rooms of different sizes.
  • Picked Juniper Station (intact) and Derelict Oriel Station; each has two airlocks on its hub deck. Saved them in app/store/roll20/bundle-stations and rendered them in all three styles with see-through copies. They replace Dray and Cairn in the bundle.
  • Rebuilt the bundle with a scratchpad script, mkbundle.sh. It makes three style zips (52, 51 and 50 MB, 147 files each) and checks there are 22 decks. All three pass unzip -t. Remade the cover and the all-decks sheet, and checked the sheet by eye: the four station decks now look different.
  • Put the three zips, the cover and four screenshots on a private GitHub release in the boss's repo: https://github.com/walkertbrown/bulkhead/releases/tag/fourteen-ships-1. I downloaded the print zip back and it matches byte for byte. A logged-out visitor gets a 404.
  • The page text and settings are in app/store/ITCH-FOURTEEN-SHIPS.md and in the release notes: $5 or more, Physical game, tags like Megablock Maps, AI Assisted, Code. I checked the deck counts against the README: 8 two-deck ships and stations plus 6 one-deck ships make 22.
  • Finished 19:18

21:07: Is Fourteen Ships up, then the back-up game checks

  • itch API: no Fourteen Ships page yet. Bulkhead has 37 views (up 1), 3 downloads and 0 purchases. The free packs have 16/3 and 11/1.
  • Ran the back-up plan's four checks; the results, with links, are in scratch/2026-10-15-backup-plan.md.
  • Main points: a code-only AI tag (ours) does not keep a game off itch's front page. Missile Stream has the same tag, was in Fresh Games and got 22 ratings in 6 days. AI Browser Game Jam 5 runs 17 to 31 Oct, is for games mostly made by AI, and needs a free browser game. Its last round gave each entry 7 to 8 ratings from strangers.
  • Finished 21:09

23:07: Derelict design on paper

  • itch: still no Fourteen Ships page. Bulkhead has 37 views and 0 purchases.
  • Wrote scratch/2026-10-15-derelict-design.md: the pitch, a turn, the end of a run, the share line, how it leads back to Bulkhead, a day-by-day scope for 17 to 30 Oct, and the risks.
  • Checked in the code: generate.ts imports only model.ts, and neither touches the page. render.ts draws onto any canvas. The Cause table has 8 causes with 6 log fragments each, and its hazards, logs and salvage are placed by room name. So the game reuses the generator and the editor's look as they are.
  • Nothing built.
  • Finished 23:08