Havre: the skill where agents look (.well-known/skills, the alternate link, robots) #87

Closed
opened 2026-10-18 01:13:57 +00:00 by teahubxyz · 8 comments
Owner

Base: gh-pages

Havre is built for agents as much as for people (skill.md, llms.txt, the copy-prompt button), but an agent reading the site finds the skill only through the page's links. Give it the same front door .mdeck gets in #60, so one convention holds across the factory's ventures. Read ventures/havre/OWNER.md first.

Work from ventures/havre on gh-pages, on a branch off gh-pages, with the PR against gh-pages.

  • .well-known/skills/index.json at the site root, in the convention Whop uses for its own docs skills (docs.whop.com/.well-known/skills/index.json pointing at SKILL.md files), pointing at /skill.md; state the assumption in the PR, as #60 does.
  • <link rel="alternate" type="text/markdown" href="skill.md" title="Skill"> in index.html's head, next to the existing llms.txt alternate link.
  • robots.txt at the site root that allows everything and names sitemap.txt (the sitemap itself comes with #86; if #86 lands first, use what it wrote).
  • A unit test (tests/agents.test.mjs) that the index parses, points at a file that exists, and that index.html carries both alternate links; and the smoke test's security-policy step keeps passing (the files are static, nothing runs).
  • tools/build.sh keeps .well-known/.

DONE: PR open against gh-pages; sh tools/build.sh green; /.well-known/skills/index.json, /robots.txt and the alternate links serve from a local serve; CI green.

Base: gh-pages Havre is built for agents as much as for people (`skill.md`, `llms.txt`, the copy-prompt button), but an agent reading the site finds the skill only through the page's links. Give it the same front door .mdeck gets in #60, so one convention holds across the factory's ventures. Read `ventures/havre/OWNER.md` first. Work from `ventures/havre` on `gh-pages`, on a branch off `gh-pages`, with the PR against `gh-pages`. - `.well-known/skills/index.json` at the site root, in the convention Whop uses for its own docs skills (`docs.whop.com/.well-known/skills/index.json` pointing at SKILL.md files), pointing at `/skill.md`; state the assumption in the PR, as #60 does. - `<link rel="alternate" type="text/markdown" href="skill.md" title="Skill">` in `index.html`'s head, next to the existing `llms.txt` alternate link. - `robots.txt` at the site root that allows everything and names `sitemap.txt` (the sitemap itself comes with #86; if #86 lands first, use what it wrote). - A unit test (`tests/agents.test.mjs`) that the index parses, points at a file that exists, and that `index.html` carries both alternate links; and the smoke test's security-policy step keeps passing (the files are static, nothing runs). - `tools/build.sh` keeps `.well-known/`. DONE: PR open against gh-pages; `sh tools/build.sh` green; `/.well-known/skills/index.json`, `/robots.txt` and the alternate links serve from a local serve; CI green.
teahubxyz added the enhancementready labels 2026-10-18 01:13:57 +00:00

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-87.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-87`. <!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->

⏱️ Time: today's spend is $5.01 of the $5.00 cap; carrying on tomorrow. Nothing is lost; this card resumes once there is budget.

⏱️ Time: today's spend is $5.01 of the $5.00 cap; carrying on tomorrow. Nothing is lost; this card resumes once there is budget. <!-- time {"beat":"capped"} -->
teahubxyz added queued and removed ready labels 2026-10-18 04:01:23 +00:00
Author
Owner

Set back to queued for a few hours. Today's run started on a branch cut from main (where ventures/havre does not exist) and was then stopped by the daily spend cap mid-run, so nothing came of it. I added Base: gh-pages to the body; once the engine honors it (change in flight), this card goes back to ready with a /time retry, and the worker starts on a fresh branch off gh-pages.

Set back to `queued` for a few hours. Today's run started on a branch cut from `main` (where `ventures/havre` does not exist) and was then stopped by the daily spend cap mid-run, so nothing came of it. I added `Base: gh-pages` to the body; once the engine honors it (change in flight), this card goes back to `ready` with a `/time retry`, and the worker starts on a fresh branch off `gh-pages`.
teahubxyz added ready and removed queued labels 2026-10-18 05:02:55 +00:00
Author
Owner

/time retry

Fresh start on time/card-87-gh-pages, cut from gh-pages (#121 landed). The first run was on a branch off main and was then stopped by the old spend cap mid-way; neither can happen now.

/time retry Fresh start on `time/card-87-gh-pages`, cut from `gh-pages` (#121 landed). The first run was on a branch off `main` and was then stopped by the old spend cap mid-way; neither can happen now.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-87-gh-pages.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-87-gh-pages`. <!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->

⏱️ Time: sonnet opened PR #129 (23 steps, claude-sonnet-5-5). Review and landing follow on the next beat.

⏱️ Time: `sonnet` opened PR #129 (23 steps, claude-sonnet-5-5). Review and landing follow on the next beat. <!-- time {"beat":"dispatched","worker":"anthropic","pr":129,"steps":23,"seat":"sonnet","model":"claude-sonnet-5-5"} -->

⏱️ Time: PR #129 is up for this card. haiku reviewed it on the PR.

⏱️ Time: PR #129 is up for this card. `haiku` reviewed it on the PR. <!-- time {"beat":"pr","pr":129,"launched":false,"seat":"haiku","as":"seat","review":"venice","seats":["haiku"]} -->
time closed this issue 2026-10-18 07:07:40 +00:00

⏱️ Time: approved and green, merged PR #129. Card done.

⏱️ Time: approved and green, merged PR #129. Card done. <!-- time {"beat":"merged","pr":129} -->
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: teahubxyz/time#87