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.
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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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-pagesonly through commits made by hand.Run it: Actions → seed → Run workflow.
slugventures/<slug>/is served at<slug>.yolopreneur.lolbundlesha256name,one_linerWhat happens:
seed.pydownloads the bundle and checks it before writing anything. It must match the sha256, contain only plain files and folders under<slug>/, include anindex.html, and be 64 MB at most. It then replacesventures/<slug>/ongh-pagesin one commit and adds or refreshes the venture's line inventures/ventures.json. The ledger keeps its own layout, so the diff is just that line, andshots/desktop.pngbecomes 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
gh-pages.Tests:
test_seed.pycovers landing, listing, replacing and the refusals: bad sha256, path traversal, symlinks, files outside<slug>/, a missingindex.html, reserved slugs, and nothing half-landed after a refusal. It runs in CI next totest_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