agentleFS
hay-kothay-kot/hive-desktop/web/AGENTS.md

hive-desktop / web

AGENTS.md4 starsChanged 2 months agoMITView on GitHub

Scope: web/, the public site at hivedesktop.com. The repository-root AGENTS.md still applies (git standards, quality gates). A Zensical site, the successor of Material for MkDocs by the same team. zensical.toml is a copy of the hive CLI's docs configuration (theme variant, features, palette, markdown extensions) and holds the nav; the hive CLI's docs are the reference for look and feel. Pages are Markdown under docs/. The build writes site/, which Cloudflare serves as Worker static assets (wrangler.jsonc; the custom domain…

The file

We split this AGENTS.md into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep pages short and task-focused.

    line 64
  2. Very specific:

    After the build, scripts/llms.py derives site/llms.txt (one link per page), site/llms-full.txt (every page inlined), and a Markdown twin of …

    line 85
  3. Very specific:

    Never deploy. mise run deploy, npm run deploy, and npx wrangler deploy all publish to hivedesktop.com.

    line 125

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

Agent Instructions — Landing page and docs

Scope: web/, the public site at hivedesktop.com. The repository-root AGENTS.md still applies (git standards, quality gates).

What the site is

A Zensical site, the successor of Material for MkDocs by the same team. zensical.toml is a copy of the hive CLI's docs configuration (theme variant, features, palette, markdown extensions) and holds the nav; the hive CLI's docs are the reference for look and feel. Pages are Markdown under docs/. The build writes site/, which Cloudflare serves as Worker static assets (wrangler.jsonc; the custom domain is declared there and attaches on deploy). ADR the-site-is-zensical-built-under-mise-served-as-worker-static-assets records the choice.

mise.toml stands on its own: it pins Python, uv, and Node on top of the repository's toolchain (mise.lock beside it holds the resolved versions) and owns the site's tasks. Run them from inside web/:

TaskWhat it runs
mise run installuv sync --frozen and npm ci; once per fresh worktree
mise run buildzensical build --clean --strict, then python scripts/llms.py
mise run devzensical serve behind wrangler dev: the whole site, Worker routes included, on http://127.0.0.1:8788
mise run dev:pageszensical serve alone, browser live reload on http://127.0.0.1:8000; /api/* is absent
mise run previewthe build, then wrangler dev over site/, the way production serves it
mise run deploythe build, then wrangler deploy; CI's and the release tool's job, never by hand
mise run lockuv lock, after editing pyproject.toml

Zensical is pinned in pyproject.toml and resolved into uv.lock; package.json carries wrangler only.

Use mise run dev for anything that touches /api/*. zensical serve cannot answer those routes and dl.hivedesktop.com sends no CORS headers, so on the pages-only server the download buttons and panel stay in their fallback state and look broken. dev keeps zensical serve rebuilding site/ on save and puts wrangler dev in front of it, so a save still shows up on 8788 (refresh by hand; the live-reload socket belongs to 8000).

Pages

A page is docs/<directory>/<slug>.md plus a line in the nav in zensical.toml. The nav is the site's structure: its order is the tab and sidebar order, a nested table is a sidebar group, and a page that is not listed builds without a warning but has no nav entry, no llms.txt line, and no Markdown twin.

Two tabs beside Home. Getting Started is the reading path: getting-started/index.md (with the ## Install section), then the sidebar groups First run (getting-started/sign-in.md, notifications.md, first-feed.md), Inbox (inbox/), Code (code/), Chats (chats/), and Resources (getting-started/build-from-source.md, troubleshooting.md). Configuration is the reference tab: configuration/settings.md and configuration/keybindings.md. App pages go in the group for their area. Build and support pages go under Resources.

Frontmatter is icon: lucide/<name> and description:. The body starts with # Title; do not repeat the frontmatter description below it. Callouts are admonitions (!!! tip "Title", body indented four spaces), content tabs are === "macOS", keys are <kbd>, and internal links are relative Markdown-file links that the strict build validates.

Keep pages short and task-focused. State facts directly. Avoid em and en dashes, rhetorical contrasts, "Why it matters" headings, staged reveals, and marketing filler. Do not explain every visible control. Summarize ordinary settings and shortcuts by category, and use exact YAML only when a user needs to edit it manually. Keep each fact on the page that owns it and link there instead of repeating it.

Two repo skills govern this site: web-docs (the mechanics of a page) and docs-audit (whether a change on a branch needs one, and where).

The landing page is docs/index.md, HTML sections styled by docs/stylesheets/extra.css: a hero, a strip linking to the three showcase sections (Feeds, Code, Chats), each pairing copy with a demo video, and a CTA. Files under docs/ that are not Markdown are copied to the site root unchanged: install.sh, robots.txt, assets/favicon.svg, the demo videos under assets/demos/ (feeds.mp4, code.mp4, chats.mp4), javascripts/download.js, which fills the hero and CTA download buttons and the ## Install section's download panel from /api/latest, and javascripts/demos.js, which swaps a demo player for its "coming soon" placeholder when its video file is missing.

After the build, scripts/llms.py derives site/llms.txt (one link per page), site/llms-full.txt (every page inlined), and a Markdown twin of every nav page at its URL plus .md (/inbox/flows.md beside /inbox/flows/). overrides/main.html adds a <link rel="alternate" type="text/markdown"> pointing at /llms.txt to every page.

Worker routes

worker/index.ts runs for /api/* and for anything the asset router did not match:

  • /api/latest — proxies a release channel manifest for the download buttons. ?channel=stable|beta|dev, stable by default. download.js asks for dev because no stable manifest is published yet.
  • Old URLs 301-redirect to where their content went. /docs to /getting-started/; /install to /getting-started/#install; /compare and /compare/* to /; the moved pages /docs/concepts/* to /inbox/*, /code/*, or /chats/*, /docs/help/troubleshooting to /getting-started/troubleshooting/, /docs/help/reporting-a-problem to /getting-started/troubleshooting/#report-a-problem, and /docs/help/updates to /configuration/settings/#updates; any other /docs/<path> to /<path>/. Old app builds still use those redirects. The current About pane links directly to /getting-started/ and /configuration/settings/#updates (desktop/frontend/src/composables/useAboutSettings.ts), so a page move, or a rename of the ## Install, ## Updates, or ## Report a problem heading, means updating the table and direct links (heading ids are lower-cased, so ## Updates still answers #updates).

CI and deploy

.github/workflows/ci.yml runs mise run install and mise run build in web/ on every PR (the web-build job), so a broken link or a missing nav file fails the PR. .github/workflows/deploy-web.yml runs the same two tasks and then npx wrangler deploy on a push to main that touches web/**. The release tool (cmd/release/publish.go) also deploys, with mise run install and mise run deploy from web/, before it uploads a release.

Guardrails

  • Never deploy. mise run deploy, npm run deploy, and npx wrangler deploy all publish to hivedesktop.com.
  • site/ is build output; .venv/, node_modules/, and .wrangler/ are local state. All are gitignored. Never edit a file under site/ and never commit any of them.
  • This is user-facing product documentation only. docs/architecture.md, ADRs, and in-app copy are not this site.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.