Session Note 028
This note catches the Workshop up after Session Note 027. The gap covered a dense operational stretch: the YouTube Shorts lane moved from prototype into public uploads, daily media automation was tested, compute limits forced a full cron pause, and the Bluesky outpost was rebuilt around a verified two-step cron method that actually survived contact with the environment.
The main lesson was simple: autonomous routines need separable steps, visible checkpoints, and proof that the file exists before the next agent tries to act on it.
1. The Robot Short Became A Real Production Artifact
The first follow-on thread after Note 027 was the OpenClaw robot intro Short. The local 24-second vertical draft was corrected after a render issue made the first pass repeat the opening scene. The fix was to feed each image into the ffmpeg motion pass as a single-frame source before the final assembly.
The finished Workshop artifact remained:
The working files were moved out of public assets/ and into ignored local scratch space once the public artifact had what it needed. That kept the Workshop cleaner while preserving the useful production trail locally.
2. YouTube Moved From Manual Upload Toward A Small Factory
The YouTube lane then proved that OpenClaw could move media from local file to public channel. A manual Short from Christopher's shared media folder was uploaded and published as:
OpenClaw Field Note 002: Alpine Signal Log #Shortshttps://youtu.be/xh53J4rKOY0
Then OpenClaw built a repeatable local helper:
tools/youtube-daily-short-upload.mjs
The first daily-style YouTube render/publish run succeeded with:
https://youtu.be/2qqWqlC--7c- Title:
OpenClaw Field Note: Build the Tiny Loop #Shorts - Local render path:
tmp/youtube-daily-shorts/2026-05-26/youtube-daily-short-2026-05-26.mp4
That proved a practical Shorts factory shape: generate visual inputs, render locally, upload through the YouTube API, log the result, and keep the public artifact trail coherent. Google/Gemini image generation remained unavailable in this environment, so the working path used OpenAI image generation.
3. Compute Limits Forced A Hard Cron Pause
By May 26, compute was tight enough that Christopher asked OpenClaw to shut down the running schedules. OpenClaw disabled every cron job and confirmed the enabled list was empty.
That pause mattered. It prevented half-tested autonomous loops from continuing while the environment was strained, and it created a clean reset point for the next session. Gmail Outreach was also effectively put to sleep because the lane had technical capability but not enough current direction or reply signal to justify keeping it active.
4. May 31 Restarted With A Cleaner Priority
On May 31, OpenClaw restarted from the workspace identity, README, and recent memory. The practical direction was to keep Gmail paused and make Bluesky the active daily signal lane.
The first instinct was to restore an all-in-one Bluesky field-agent cron, but the tests showed the same structural weakness as earlier: image generation could succeed while the isolated cron agent failed to continue into downstream posting.
The evidence became clearer across several tests:
- A 1:30 PM all-in-one Bluesky run generated an image but did not create a post, draft, or report.
- A 2:30 PM clean test produced an image only after the cron agent had already finished.
- Telegram still received the image because OpenClaw's image-completion route delivered it after the background task finished.
- A synchronous local OpenAI CLI path was not usable because
OPENAI_API_KEYwas not available in the shell.
The important correction was to stop treating image generation and social posting as one atomic cron step.
5. The Bluesky Loop Was Rebuilt As Two Verified Jobs
The successful method split the work into two responsibilities:
- Generate the daily image and verify that a matching file exists.
- Later, look up the newest verified file and post it to Bluesky.
The image-prep job uses a daily filename prefix:
bluesky-two-step-YYYY-MM-DD*
It checks the OpenClaw image-generation folder immediately, then after 30 seconds, 60 seconds, and 90 seconds. The job's success condition is not "image generation was requested." The success condition is "a file with today's prefix exists in the folder."
The 6:05 PM test produced the verified file:
/home/augmentedthinker/.openclaw/media/tool-image-generation/bluesky-two-step-2026-05-31---8ae30caa-f47b-45ae-8b0d-9644997dd44b.jpg
The 6:11 PM post-only cron then used that file and successfully posted:
https://bsky.app/profile/augmentedthinker.bsky.social/post/3mn6limd6pb2n
After that, the same split was promoted into the recurring daily loop:
- 7:00 PM image prep:
3dca6e91-b7dc-4335-82e1-14ce71ac3d89 - 7:05 PM post-only publish:
f843463a-3f89-4717-9cc6-cfdd2c63b114 - Timezone:
America/New_York
The first recurring 7:00/7:05 run also worked:
- Image:
/home/augmentedthinker/.openclaw/media/tool-image-generation/bluesky-two-step-2026-05-31---cea0b637-5100-4686-aef7-f63369ec4391.jpg - Post:
https://bsky.app/profile/augmentedthinker.bsky.social/post/3mn6ojgjbaz2x
This is the current live Bluesky method.
6. The Projects Area Was Updated To Match Reality
Once the two-step Bluesky process was verified, the Workshop project pages were brought back into alignment.
Gmail Outreach was removed from the active Projects area and added to the archived projects page. Its landing page and cron mirror were preserved as paused/archived records rather than deleted.
The Bluesky Signal Outpost page and Bluesky cron mirror were updated to remove the older all-in-one field-agent framing and replace it with the present setup:
- daily image prep at 7:00 PM;
- daily post-only publish at 7:05 PM;
bluesky-two-step-YYYY-MM-DD*file naming;- 30/60/90-second verification for the image-prep job;
- newest-matching-file lookup for the posting job;
- report back with the image path and Bluesky URL or a precise failure reason.
That gives future OpenClaw a reliable place to see how the routine is supposed to work now, instead of inheriting stale cron assumptions.
7. Current State At This Handoff
At the time of this note:
- The active daily autonomous lane is Bluesky Signal Outpost.
- The active recurring cron jobs are the 7:00 PM image-prep job and the 7:05 PM post-only job.
- Gmail Outreach is archived and should not be restarted without explicit direction from Christopher.
- The YouTube lane has working upload/render foundations, but it is not the currently active daily cron priority.
- The key diagnostic rule for future failures is: first determine whether the image-prep job produced today's
bluesky-two-step-YYYY-MM-DD*file; only then inspect the post-only job.
The system became more reliable when it stopped pretending one agent turn could hold the whole workflow. The durable pattern is smaller agents, clearer handoffs, and proof at every boundary.