branding/index.html and brand.css: the logo (the name in Unbounded ExtraBold, a volt stone on the vertex of
the Y, the bands up the inside of its arms), how to use it, the icon, files, colour, type, motion, and every
draft from the six rounds that found it, each on the ground it was drawn for. No script, its own CSP.
branding/img/ is made by tools/brand/make.py and lands with the seed workflow; the branch keeps its MANIFEST,
and tools/build.sh now runs tools/brand/restore.sh so a refresh brings the images back from the live site
(checked by sha256) instead of dropping them. README says how; the site's footer links the page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GbSujc1VYmyjFzusaH6og3
anim.py (the icon's pull-and-release and its storyboard), anim_wm.py (the icon as the Y), slingy.py and
anim_wm2.py (the bare slingshot as the Y), fontstyle.py and motion2.py (Unbounded's own Y and the rounded one),
final.py and motion3.py (the logo and its motion). Kept as they were drawn, so make.py gives the same files.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GbSujc1VYmyjFzusaH6og3
fontkit, sling and kit (the shared drawing code), make.py (fetches the fonts from google/fonts at a fixed
commit, checked by sha256, and makes every image into branding/img/ with a MANIFEST), and restore.sh (brings
branding/img back from the live site on a refresh, checked against the MANIFEST). Nothing calls these yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GbSujc1VYmyjFzusaH6og3
tests/core.test.js: the crypto against the BIP-340, NIP-44, NIP-19 and LUD-01 vectors, the slingshot geometry, and
a whole sling against tools/devnet.mjs (a local relay with AUTH, a lightning address server, an NWC wallet).
tests/smoke.py is the browser check, run by hand with Playwright.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
tools/build.sh runs on the refresh runner: the tests, then the two screenshots, served by tools/serve.mjs (node
only, so the build needs node, curl and Chrome and nothing else). tools/og.html is the share card it shoots.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
index.html: the slingshot as the first screen, then the story (the Y is the fork), how it works, the
agent link, plans, the fine print. skill.md and llms.txt for agents; README for whoever works on it next.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
sling.js: the pull as a polar coordinate (angle picks who, stretch picks how much), rings for each step,
mouse, touch and keyboard, catch-it-back flight. app.js: demo mode, sign-in (extension, new key, nsec),
wallet (WebLN, NWC), slinging zaps and private notes, the Caught and Slung log, links an agent made.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
nostr.js: bech32/NIP-19, events, signers (page key or NIP-07), a relay pool with NIP-42 AUTH, NIP-05.
zap.js: lightning addresses, LNURL-pay, NIP-57 zap requests and receipts, the exact-amount invoice check.
wallet.js: WebLN and Nostr Wallet Connect (NIP-47). dm.js: NIP-17 notes, sealed and gift-wrapped.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
A "Copy prompt for your agent" button in the header copies SKILL.md as a prompt: one line pointing to the hosted file (for agents that can install skills) and then the skill itself, without its frontmatter, so it works in any agent, including one that can't open links. Until SKILL.md loads, or if it can't, the button copies a one-line prompt that points to it. SKILL.md teaches the format, the #d= link recipe in Python and Node, the #md= fallback for agents without code, and how to hand the link over. How it works gets a fourth card, and the README points to both. Two agents given only the copied prompt made working links, one compressed with code and one percent-encoded by hand.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
Copy link makes a link with the deck after "#d=": its text deflated (raw) and base64url-encoded, which browsers never send to a server, so nothing is stored. The page opens a deck it finds in its address, on load or when one is pasted in later, and also takes "#md=" with the text percent-encoded, for anything that can't compress. A link is kept ready while you type so a click copies it at once, the address bar shows it after copying, and notes say when a deck came from a link, when a link is broken, and when one is long enough that some apps may cut it short. The README documents the format with Python, Node and shell snippets for agents and scripts, and its live-page link now points at mdecks.yolopreneur.lol.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
A slide that doesn't fit at 70% is cut into the fewest slides that do: between lines, never right after a heading, as evenly as it can, and at a heading, a blank line or a change between list and text when that costs little evenness. Each new slide repeats the title with (cont.). Cuts are measured in a hidden frame showing the copied deck at 1280x720, so the preview and the copy have the same slides on any screen. The note under the preview says which slides were cut, in grey; it turns yellow only for a line longer than a whole slide.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
Both the preview and the copied HTML shrink a slide's text until nothing has
to scroll, down to 70% of its size. A slide that still doesn't fit keeps
scrolling, and a note under the preview names it: "Slide 3 is too long to
fit, even with smaller text. Split it with --- or cut some words." Long words
and links now wrap instead of running off the side. Checked in Chrome: a
nine-point slide fitted at 87% in the preview, a thirty-point one was named,
and the copied deck fits the same way on a laptop and a phone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
agentlore/index.html still pointed its script and stylesheet at the old
path layout (/v/agentlore/assets/...), which 404s on agentlore.yolopreneur.lol,
so the page stayed blank. They now start at the root. codex-goal's link to
finishline-supervisor, the only other old /v/ path, goes to its subdomain.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
The key tree page lists each npub's tapkey (its nostr key with the
BIP-86 tweak) for the org and every agent, in the tree, the inspector,
the keyring and lineage.json, and adds BIP-380 checksums to its
descriptors. Orgchain built from lineage/orgchain 17b8692.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
The key tree page gives each agent BIP-86 Taproot (inscriptions) and
BIP-84 SegWit (payments) at its account, adds the org's Taproot beside
its treasury, lists the addresses in each keyring and in lineage.json,
and checks the org rows against the BIP-84 and BIP-86 vectors.
Orgchain built from lineage/orgchain 0af51dc.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
Built from lineage/orgchain main (744c594): a lab root per holding, every
node at its lineage key, acts signed by the key that holds the authorizing
inscription, graduation by claim + countersign. Same headers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
Built from lineage/orgchain main (6acc319). Replaces the tree build
(2c613a7), which stays in history and as branch `tree` on
lineage/orgchain, to be compared and folded in. /orgchain/* gets a
stricter CSP (connect-src 'none', no frames, no blob images: the app
makes no requests); the recursive-preview rule goes with the preview.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
Built from supertestnet/app branch orgchain at 6d48c5c. ventures/lineage/_headers gives /orgchain/* the same headers as
supertestnet.lol (CSP, frame and referrer rules, immutable assets); the key tree at / keeps its own meta CSP.
The key tree's footer links to it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
Own-domain products, listed like well-known.online: forwarder at <slug>.yolopreneur.lol,
first-screen shot at 960x600. phly.cloud is back (phly/site on Teahub pages).