seed: land a venture built elsewhere on yolopreneur.lol #64

Merged
teahubxyz merged 1 commits from seed-workflow into main 2026-10-15 23:56:46 +00:00
Owner

A manual workflow for ventures that weren't built by the venture loop: a hand-built page, a site built on the Mac, another agent's work. Until now these reached gh-pages only through commits made by hand.

Run it: Actions → seed → Run workflow.

input what it is
slug the folder and the subdomain: ventures/<slug>/ is served at <slug>.yolopreneur.lol
bundle https URL of a .tgz whose top folder is the slug, or the URLs of its parts, space-separated and in order (Boring blob download links work)
sha256 sha256 of the whole .tgz; nothing lands unless it matches
name, one_liner the venture's line in the ledger; needed for a new venture, optional after that

What happens: seed.py downloads the bundle and checks it before writing anything. It must match the sha256, contain only plain files and folders under <slug>/, include an index.html, and be 64 MB at most. It then replaces ventures/<slug>/ on gh-pages in one commit and adds or refreshes the venture's line in ventures/ventures.json. The ledger keeps its own layout, so the diff is just that line, and shots/desktop.png becomes the venture's card when the bundle has one. The last step POSTs to the Teahub pages hook so the site is live within the minute.

Safety

  • Nothing in the bundle runs.
  • The inputs reach the script through the environment and are never interpolated into it.
  • The engine checkout keeps no credentials.
  • It shares the venture loop's concurrency group, because both write gh-pages.

Tests: test_seed.py covers landing, listing, replacing and the refusals: bad sha256, path traversal, symlinks, files outside <slug>/, a missing index.html, reserved slugs, and nothing half-landed after a refusal. It runs in CI next to test_time.py.

First use: House Hand, the house drawing hand promoted to a venture, at househand.yolopreneur.lol.

Touches workflows, so it's a protected path for a human to merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K9wtGiGEeq1H5DA3T88PRe

A manual workflow for ventures that weren't built by the venture loop: a hand-built page, a site built on the Mac, another agent's work. Until now these reached `gh-pages` only through commits made by hand. **Run it:** Actions → seed → Run workflow. | input | what it is | |---|---| | `slug` | the folder and the subdomain: `ventures/<slug>/` is served at `<slug>.yolopreneur.lol` | | `bundle` | https URL of a .tgz whose top folder is the slug, or the URLs of its parts, space-separated and in order (Boring blob download links work) | | `sha256` | sha256 of the whole .tgz; nothing lands unless it matches | | `name`, `one_liner` | the venture's line in the ledger; needed for a new venture, optional after that | **What happens:** `seed.py` downloads the bundle and checks it before writing anything. It must match the sha256, contain only plain files and folders under `<slug>/`, include an `index.html`, and be 64 MB at most. It then replaces `ventures/<slug>/` on `gh-pages` in one commit and adds or refreshes the venture's line in `ventures/ventures.json`. The ledger keeps its own layout, so the diff is just that line, and `shots/desktop.png` becomes the venture's card when the bundle has one. The last step POSTs to the Teahub pages hook so the site is live within the minute. **Safety** - Nothing in the bundle runs. - The inputs reach the script through the environment and are never interpolated into it. - The engine checkout keeps no credentials. - It shares the venture loop's concurrency group, because both write `gh-pages`. **Tests:** `test_seed.py` covers landing, listing, replacing and the refusals: bad sha256, path traversal, symlinks, files outside `<slug>/`, a missing `index.html`, reserved slugs, and nothing half-landed after a refusal. It runs in CI next to `test_time.py`. **First use:** House Hand, the house drawing hand promoted to a venture, at househand.yolopreneur.lol. Touches workflows, so it's a protected path for a human to merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01K9wtGiGEeq1H5DA3T88PRe
teahubxyz added 1 commit 2026-10-15 23:46:51 +00:00
seed: land a venture built elsewhere on yolopreneur.lol
ci / test (pull_request) Successful in 35s
9caa59640c
Actions -> seed -> Run workflow with a slug, the URL(s) of a .tgz whose top folder is the slug, and its sha256
(plus a name and a one-liner for a new venture). seed.py checks the bundle (sha256, plain files and folders under
<slug>/ only, an index.html, 64 MB at most), copies it over ventures/<slug>/ on gh-pages in one commit, adds or
refreshes the venture's line in ventures/ventures.json without changing the ledger's layout, and the workflow asks
Teahub pages to pull. Nothing in the bundle runs; inputs reach the script through the environment. It shares the
venture loop's concurrency group, since both write gh-pages. test_seed.py runs in CI.

First use: House Hand at househand.yolopreneur.lol, built on hb-5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K9wtGiGEeq1H5DA3T88PRe
teahubxyz merged commit 721212ba7e into main 2026-10-15 23:56:46 +00:00
Sign in to join this conversation.