agentleFS
hranesshraness/wrench/website/AGENTS.md

wrench / website

AGENTS.md7 starsChanged 47 days agoMITView on GitHub

The file

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

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Keep the page useful without JavaScript.

    line 23
  2. Distinctive:

    Keep every product claim observable in the public Ghostget release and put each qualification beside the claim it limits.

    line 24
  3. Very specific:

    Keep canonical metadata, robots, sitemap, llms.txt, Open Graph, X metadata, and the linked JSON-LD graph aligned to https://ghostget.com/.

    line 29
  4. Distinctive:

    Do not add private packages, private assets, cookies, replay, identity, feature flags, broad autocapture, console capture, or application …

    line 35
  5. Very specific:

    Use product names and addresses as the checked portfolio snapshot spells them.

    line 41

≈ “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

Contents

  • vendor/marketing-preset/ owns the immutable shared editorial CSS, licensed Instrument Serif, field textures, and source/hash provenance. marketing-preset.ts verifies that closed snapshot before build.ts publishes its bytes.
  • source/ – checked HTML, CSS, analytics, discovery, fallback, markdown, llms.txt, and WebMCP registry snapshot sources.
  • public/ – checked public icon, social, caption, and reusable demo assets.
  • social-image.ts – the one social-image site declaration (name, description, domain, icon, theme) for the shared template.
  • webmcp-registry.ts – strict checked-in snapshot parser plus /providers/<domain>/ page descriptors and untrusted-text rendering.
  • sync-webmcp-registry.ts – bounded wmcp.ai REST synchronization that rewrites the checked snapshot deterministically.
  • build.ts – deterministic static output generation from the root package release.
  • vercel-build.ts – fail-closed Vercel admission that validates the build-owned marker and platform state, requires the production deployment to build main, and keeps previews independently buildable.
  • provider-capability-attestation.ts – release-bound provider/operation/completeness table derived from built-in plugins and current bundled adapter manifests.
  • claims-register.ts – renders the /claims/ page fragments and serves the verification/claims.json register verbatim as /claims.json, parsed through the strict register parser.
  • html-to-markdown.ts – static markdown variants for public pages.
  • ../edge/ – Edge-safe Accept parsing and markdown, 406, and 404 negotiation.
  • *.test.ts – identity, SEO, accessibility, analytics-privacy, negotiation, and build regressions.
  • ../middleware.ts – Vercel Edge entry; it imports only ../edge/.
  • dist/ – ignored generated deployment output.

Guidelines

  • Keep the homepage's shared editorial preset scoped by data-hraness-marketing-preset="editorial" with data-hraness-pattern="none": a flat palette background, the sans display role, opaque reading surfaces, hairline-separated sections, and one real transcript beside the hero copy. Do not add hero fields, pointer-driven light, textures, serif display headings, glass, or material paint. Keep product adaptations outside the immutable snapshot and preserve the separate inert native-control previews, ordinary documentation, release identity, and all production admission gates.
  • Ordinary HTML pages follow the reader's system appearance; do not add a per-page theme control, saved-preference bootstrap, or a second theme owner. Keep tabindex="-1" on each <main id="main"> as the skip-link target. The deliberate /preview remains inert and all Markdown outputs remain text-only.
  • Keep the page useful without JavaScript. JavaScript may progressively enhance explicit copy controls, canonical-host analytics, and the shared attachFoil pointer treatment on [data-foil] elements; keep all commands readable and selectable without it.
  • Keep every product claim observable in the public Ghostget release and put each qualification beside the claim it limits.
  • Derive release identity and install commands from the validated root package.json; never copy a version into page source.
  • Keep the Agent Skill install command centralized in build.ts, pin its skills source to hraness/ghostget#v<package version>, render it as inert HTML, and make clipboard enhancement reusable through the data-skill-install contract. Link installation to that exact canonical GitHub archive; registry mirrors may be advertised only after verified availability.
  • Keep the checked-in Vercel build command bound to exact non-secret marker WRENCH_VERCEL_BUILD=release-bound-v1, Vercel System Environment Variables enabled, and the Production Branch configured as main. Local admission is allowed only when the marker and every Vercel signal are absent. A marked or otherwise Vercel-signaled build must have the exact marker, VERCEL=1, a valid VERCEL_ENV, and an exact nonempty VERCEL_GIT_COMMIT_REF; missing, malformed, or inconsistent state fails before building. Require VERCEL_GIT_COMMIT_REF=main only for a production deployment, and reject main for a non-production deployment. Preview and local builds perform no release verification and remain independently buildable. Merging reviewed main history deploys the site directly through the Vercel Git integration; there is no promotion ref, canary ref, ref writer, production marker, or release binding between main and the live site. Keep immutable release artifact admission entirely on the tag Release workflow and never substitute site state for it.
  • Keep Vercel project prj_TZbDZ38ABPan158IqnczgsuTu6Ue under team team_UAd1iD2XogJlbFg4h14mRaPM linked to GitHub repository ID 1316443113, with link.productionBranch=main, autoExposeSystemEnvs=true, and autoAssignCustomDomains=true; the last setting is not a per-release switch. Checked-in workflows remain token-free and never mutate project settings, call Vercel APIs, alias, or promote. Staged recovery pins one exact uncontested deployment and uses one owner-authorized vercel promote <exact-id-or-url> followed by complete readback, never a ref rewrite or individual alias assignment.
  • Keep canonical metadata, robots, sitemap, llms.txt, Open Graph, X metadata, and the linked JSON-LD graph aligned to https://ghostget.com/.
  • Share images come only from the shared @hraness/web-discovery social-image template through the single defineSocialImageSite declaration in social-image.ts; scripts/generate-og.tsx renders /og.png from it with socialImageSiteDetails and createSocialImageCard, pages pass copy only (headline, description, eyebrow), and the site keeps no drawing code of its own. The provenance-bound editorial images above are the only other social images.
  • Keep ordinary reference and task guides typographic and preserve the real getting-started video and poster. For the small set of live editorial argument or comparison pages, treat editorial-images.ts as the single image registry and use the editorial-image-seo skill. For new imagery, use a reviewed Slopcamera build from its source-install guide, retain its exact source commit, invoke bun "$SLOPCAMERA_SOURCE_ROOT/apps/desktop/dist/cli/main.js" inside the intended Vercel environment, and never retry an ambiguous paid result. Preserve historical Atet credits and completed provenance bytes; extend the registry truthfully before accepting a new generator. For each new image, review the original and card thumbnail, then keep that provenance-bound 1536-pixel original canonical for social, schema, and sitemap use while serving locally derived 384- and 768-pixel WebP files through srcset in visible figures and cards. Synchronize the visible figure and credit, homepage card, Open Graph and X metadata, TechArticle.image, and image sitemap. Retain prompt, completed job, and receipt under editorial-provenance/<slug>/ without exposing those internal paths publicly. Do not register a draft route, including the PayPal/GrapheneOS page, until that route is live. Use semantic editorial metaphors rather than generated factual, capability, or security diagrams.
  • The HTML 404 renders the shared design-kit status page through renderGhostgetStatusPage in build.ts: the homepage primary action, at most three next links, and every public page and listed post as "Did you mean" routes. source/status-page.ts bundles attachStatusPage as its only enhancement. Keep 404 presentation in design-kit, not in styles.css.
  • Public content pages keep one URL for HTML and Markdown. Honor Accept q-values, set Vary: Accept, and return 406 only when no owned representation remains. Unknown paths stay HTTP 404 and point agents at llms.txt, the sitemap, and getting started.
  • Keep analytics canonical-host-only, cookieless, personless, memory-only, and DNT-aware. Allow only page lifecycle, web vitals, budgeted redacted exceptions, page-not-found events, the two explicit GitHub links, the four named home page install and getting-started link clicks, and copies of the two named install commands. Preserve the portfolio attribution keep-list while stripping every other query parameter and every fragment. Interaction events carry only a fixed name from a checked list, never copied text. Bundle the pinned SDK and skip the bootstrap entirely under Do Not Track because cookieless mode ignores respect_dnt.
  • Do not add private packages, private assets, cookies, replay, identity, feature flags, broad autocapture, console capture, or application behavior.
  • Preserve semantic headings, native disclosures, visible focus, keyboard-scrolling tables, touch-sized links, reduced-motion behavior, and forced-color legibility.
  • Public copy (page text, metadata, llms.txt, and generated pages) follows the synced ../STYLE.md. The rules in this file are written for maintainers; do not copy their wording onto a page.
  • The one-line description and shared product names, hero copy, and marketing headings come from the canonical portfolio-messaging.generated.json through portfolio-copy.ts. SITE_DESCRIPTION in build.ts reads messaging.meta; package.json description must equal it (the build enforces this), and the llms.txt lead renders it. Refresh and review the checked snapshot explicitly; ordinary builds never fetch or rewrite copy.
  • On a public page, translate these internal words into what the reader gets: admission or admitted (allowed to run, or checked before it runs); attested or attestation (supported, or listed on the provider support reference); bounded (name the limit, such as “at most two browsers at once” or “one result per call”); contract (the action's reviewed definition, or what it sends and returns); custody (stored on your machine); fails closed or drift (stops when a service changes); inert (does nothing until a named step, or starts nothing and makes no network request on import); realm (one account); reservation or capture-required (can't run until it is reviewed); receipt or dispatch evidence (a record of what ran); surface (the page, command, or interface by name); lane (approach).
  • Describe a sibling product with its canonical name and description from the checked portfolio snapshot. State what two products do together only when portfolio-relationships.json in hraness/jungle records it or the sibling's own README documents it. Preserve those registered or documented relations when refreshing copy.
  • Use product names and addresses as the checked portfolio snapshot spells them. Qualify the canonical TextButler name with “(formerly Message Like Me)” once where the export-message-like-me command or the Message Like Me format appears; preserve compatibility commands and wire-format names.

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.