Skip to content

Install one-liner first: README top + xerj.org hero + llms.txt - #219

Open
xerj-org wants to merge 2 commits into
mainfrom
feat/install-first
Open

Install one-liner first: README top + xerj.org hero + llms.txt#219
xerj-org wants to merge 2 commits into
mainfrom
feat/install-first

Conversation

@xerj-org

@xerj-org xerj-org commented Aug 8, 2026

Copy link
Copy Markdown
Owner

What

User directive (2026-08-08): the simple one-liner install becomes the MAIN thing a visitor sees on both the README and the xerj.org landing page.

Both endpoints were verified live first: https://xerj.org/get (sh) and https://xerj.org/get.ps1 (PowerShell) both resolve the latest GitHub release (v1.0.0-rc.12 today), verify SHA-256 fail-closed, and install one static binary. The sh installer does not edit PATH (prints the path + an export hint); the PowerShell one adds its dir to the user PATH.

README.md

Old order: H1+intro / ES-API para / badges / video / Install / Index a folder / …
New order: H1+intro / Install (sh + PowerShell) / one-line first-commands pointer (server → autoindex) / badges / video / Index a folder / … — everything moved, nothing deleted; the ES-API sentence now lives in the install block's follow-on paragraph. The demo video stays prominent right after install.

landing/ (xerj.org)

The hero now leads with a large copyable install command block in the site's existing visual language (1px accent rule, mono, text-only COPY buttons — no icons, no fills, no restyle), the Windows variant beneath, and an adjacent paste-to-your-agent one-liner.

Honesty check on the agent line: curl … | sh && xerj autoindex . is NOT honest — the sh installer doesn't touch PATH, and autoindex is a client of a running node at localhost:9200 (verified: engine/crates/xerj-autoindex/src/cli.rs:122; ensure_index is single-attempt, so a boot race is real). The shipped line is the honest three-step: install → start xerj --insecure --data-dir ./dataxerj autoindex . → query :9200.

Rendered and checked in both day and night themes at 1600×1080 (puppeteer against a local static serve). style.css?v bumped on index.html only; the CSS additions are additive classes, so other pages on the old cached sheet are unaffected.

landing/llms.txt

New ## Install (start here) section directly after the intro with both one-liners, verified installer facts, and the ordered first-run sequence. The AI-native positioning section is preserved unchanged and still precedes everything that classifies the project.

Build note

landing/ is a plain static Cloudflare Pages site (pages_build_output_dir = "landing", no build step; functions/ is Pages Functions). Nothing was deployed.

🤖 Generated with Claude Code

User directive (2026-08-08): the simple one-liner install becomes the MAIN
thing a visitor sees on both the README and the xerj.org landing page.

Both endpoints were verified live before writing any copy:
  curl -fsSL https://xerj.org/get      -> POSIX sh installer: resolves the
    latest GitHub release (v1.0.0-rc.12 at time of writing, XERJ_VERSION to
    pin), sha256-verified fail-closed, installs a single static binary to
    ~/.local/bin (or XERJ_INSTALL_DIR / cwd fallback), does NOT edit PATH --
    it prints the path and an export hint; next steps printed:
    'xerj --insecure --data-dir ./data' + the console URL.
  curl -fsSL https://xerj.org/get.ps1  -> PowerShell installer: same
    resolution + sha256, installs to %LOCALAPPDATA%\Programs\xerj and adds
    it to the user PATH (XERJ_NO_PATH=1 opts out) and the current session.

README.md -- reordered, nothing deleted:
  old: H1+intro / ES-API para / badges / video / Install / Index a folder / ...
  new: H1+intro / Install (sh + PowerShell) / one-line first-commands pointer
       (server then autoindex, linking #index-a-folder) / badges / video /
       Index a folder / ... (all remaining sections unchanged)
  The ES-API sentence moved into the install block's follow-on paragraph.

landing/index.html + style.css -- the hero now leads with the install
command: a large copyable command block (site visual language kept: 1px
accent left rule, mono type, text-only COPY affordances, no icons/fills),
the Windows variant beneath it, and -- per XERJ's AI-first positioning --
an adjacent paste-to-your-agent one-liner. The naive form
'curl ... | sh && xerj autoindex .' is NOT honest (the sh installer does
not touch PATH, and autoindex is a client of a running node at
localhost:9200 -- verified in engine/crates/xerj-autoindex/src/cli.rs:122
and esclient.rs: ensure_index is single-attempt, so a boot race is real).
The shipped line is the honest three-step: install -> start
'xerj --insecure --data-dir ./data' -> 'xerj autoindex .', query :9200.
Copy handler added to the existing inline script; style.css?v bumped
(additive classes only, other pages unaffected). Rendered and checked in
both day and night themes at 1600x1080 via puppeteer.

landing/llms.txt -- new '## Install (start here)' section directly after
the intro: both one-liners, verified installer facts (targets, sha256,
install dirs, PATH behavior), and the ordered first-run sequence
(server -> autoindex -> query), with the client-of-a-running-node caveat
stated. The AI-native positioning section is preserved unchanged and still
precedes everything else that classifies the project.

Landing build note: landing/ is a plain static Cloudflare Pages site
(wrangler.toml pages_build_output_dir = "landing", no build step; the
functions/ dir is Pages Functions). Nothing was deployed.
@cla-bot cla-bot Bot added the cla-signed label Aug 8, 2026
The adversarial review of the install-first restructure (PR #219) verified the
pages against the live installers and found two honesty defects:

- The hero label and llms.txt claimed unconditional fail-closed SHA-256
  verification, but the sh installer skips verification with a warning when the
  machine has neither sha256sum nor shasum (get lines 95-102). The label now
  says SHA-256 CHECKSUMS and llms.txt states the exact behaviour.
- README's first-commands line assumed xerj is on PATH (the sh installer does
  not edit PATH) and hid a real boot window: autoindex run immediately after
  backgrounding the server exits 1 with 'endpoint unreachable' (reproduced with
  the rc.12 binary, ~2-6s to ready). The line now carries the PATH pointer and
  a wait-until-:9200-responds step.
@cla-bot

cla-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown

Thanks for this contribution — we'd like to merge it.

Before we can, we need a signed Contributor License Agreement from: @kvry-io

It is a one-time thing per contributor, not per pull request. Read CLA.md, then open a small pull request adding your GitHub username to .contributors — that pull request is your signature, since it is made from your own account.

Once it is merged, comment @cla-bot check here and this check will go green. If you believe you are already covered, comment @cla-bot check and it will re-verify.

@cla-bot cla-bot Bot removed the cla-signed label Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants