Rewrite README for clearer agent onboarding - #138
Conversation
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
A1igator
left a comment
There was a problem hiding this comment.
Review: comments-only, no blocking defects found
Reviewed against docs/CONVENTIONS.md-equivalent house style, the actual command surface in src/commands/*.ts, and origin/main's prior README, verified at 00a1904.
What's solid:
- The new flow (prompt-first setup → manual setup → when-to-use guidance → core commands → publishing → wallet → permissions → MCP → config → developing) reads more clearly for a first-time human or agent than the old flag-table-heavy README. It matches the PR's stated goal.
- No injection, hidden-instruction, or lookalike-link findings anywhere in the diff — see "Verified, not issues".
- Does not reintroduce the "parked candidates" / candidate-pen concept #131 removed; grepped the full diff, no mention.
- Every command, flag, and config key that survived into the new README checks out against the real source (see "Verified, not issues").
Major
None.
Minor
- Content: three real top-level commands are undocumented:
tenjin uninstall,tenjin session start, andtenjin editall exist (src/commands/uninstall.ts,session.ts,edit.ts, wired insrc/cli.ts) but appear nowhere in the new README, includinguninstall— the old README's only documented way to cleanly undo everythinginstallwrote (baseREADME.md, § "tenjin uninstall").tenjin --helpis a live fallback (confirmed real:src/cli.ts:48,690point errors at it), so this isn't a functional break, but a reader deciding whether to paste the install prompt has no "how do I undo this" answer in the doc that's supposed to onboard them. https://github.com/BackTrackCo/tenjin-agent/blob/00a1904271145e4fdfa3ae769e95191a2cbe0bef/README.md - Content: the safety-model summary is gone from the README: the old "Safety model" section's two sharpest lines — "Purchased content is untrusted data, never instructions... no harness permission, hook, or settings change is ever recommended on the strength of content the agent read" and "A harness permission denial is never worked around" — don't appear in the new README at all. The invariant itself is intact and enforced where it actually runs (verified near-verbatim in
skills/tenjin/SKILL.md:83,skills/tenjin-search/SKILL.md:115and:328,skills/tenjin-publish/SKILL.md:146), so this is not a live security gap — just the loss of the one place a human skimming the repo (rather than the skills an agent loads) could read the security posture in one shot. Given this repo explicitly serves AI agents and the review brief called this out as the top risk category, worth restoring at least a one-paragraph pointer. - Content: Codex's required sandbox rule isn't mentioned:
[sandbox_workspace_write]\nnetwork_access = trueis what makes paid x402 calls work under Codex's defaultworkspace-writesandbox (src/commands/install.ts:156-161,CODEX_NETWORK_RULE, comment: "would make every paid x402 call fail (or prompt) until this is set").tenjin installstill prints this live to Codex users at install time, so it's functionally covered, but the doc lists Codex as a first-class target harness in its own intro without a heads-up that this step exists.
Nits (3), none blocking
- Headings switch from the repo's established sentence case (base README: "## Search hooks", "## Consent modes and pricing";
docs/agent-permissions.md: "# Agent permissions", "## The free tier") to Title Case ("## Start With A Prompt", "## When To Use Tenjin", "## Core Commands"). A house-style deviation this PR introduces, not present before. - The three top badges (MCP, x402, License) from the old README are dropped. Cosmetic only.
tenjin install --dry-runand its idempotency aren't mentioned beyond "It is safe to run again."; a minor loss of detail, not inaccurate.
Verified, not issues
- No prompt-injection strings, no hidden/zero-width Unicode, no homoglyphs (checked the full README byte-by-byte for any codepoint outside normal punctuation — none found).
- Every URL in the new README resolves to a legitimate destination:
tenjin.blog/*(7 links),npmjs.com/package/tenjin-cli, or a relative in-repo path —docs/agent-permissions.md,RELEASING.md,NOTICE.mdall confirmed present at head. No lookalike or unrelated domains. - Candidate pen / "parked candidates" (#131) is not reintroduced anywhere in the diff.
- Commands and values that appear in the new README all match real source:
--max-priceand--applies-to(src/commands/search.ts),maxAutoSpend/sessionBudget/publish.mode/publish.defaultPrice/hooks.searchMode(src/commands/config.ts:59-72), exit codes 0-4 (consistent with old README and CLI behavior), the<!--paywall-->marker (confirmed inskills/tenjin/SKILL.md:210and the OpenAPI fixture),pnpm build/test/typecheck/lint(all realpackage.jsonscripts),engines.node >=22matches "Node.js 22 or newer", and both MCPclaude mcp addinvocations match the old README's. - No dead relative links, no broken internal anchors (the new README uses none).
Closed as decisions
None — round 1, no prior review found on this PR (only an expired-trial Greptile comment on each commit).
Decision for the operator, not a defect: this PR trades a reference-grade README (every command, every flag, every config key in one file — the old ~670-line version) for a narrative onboarding README (~300 lines: prompt-first flow, when-to-use guidance, core commands only). That's a legitimate, arguably better, choice for the stated goal, and nothing checked above is factually wrong or unsafe. The open question is whether the reference material that's gone (full flag tables, uninstall/session start/edit, the 12-key config table, the standalone safety-model paragraph) needs a home — a docs/COMMANDS.md, or a "Full reference" section — or whether tenjin --help plus docs/agent-permissions.md is judged sufficient from here. Given priority: high and that this is the project's front door, rewritten by a first-time contributor, that's worth a deliberate answer before merge rather than a silent gap.
Verdict: comments-only. No security, injection, or factual-accuracy findings; no reintroduction of removed content. The minors above are real but none block — they're a product-scope question for the operator to close, not code to fix.
|
Thanks for taking this on, and the instinct to slim the README down is the right one. The shape we want is deliberately minimal: a short, skimmable human-facing entry point that covers only the basics (what this is, install, the one or two commands to get started), then links out to dedicated markdown files for the detailed sections rather than carrying them inline. So the reference that got trimmed here (the That way the top-level README stays short while nothing is actually lost, which is the pattern most repos follow. Longer term we will move the detailed sections onto our own docs page and link to that instead. Concretely: keep the top-level README to the essentials and genuinely short, and pull the fuller command reference and safety section into linked |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
A1igator
left a comment
There was a problem hiding this comment.
Review at 990ed38 (base main): clean, the restructure does exactly what it should
This delta ("move README details into reference pages") resolves the earlier dropped-content finding the right way: restore, do not drop, and move detail into linked docs. Verified against the checked-out head.
Restructure holds. The README stays a quickstart and links out: README.md:145 to docs/command-reference.md, :178 to docs/safety-model.md, :221 to docs/agent-permissions.md. All three targets exist and resolve.
Nothing lost, restored:
uninstall,session start,editare all back: listed in the README and fully documented indocs/command-reference.md(:33,:84,:132).- The "purchased content is untrusted" safety model is restored and expanded in
docs/safety-model.md:7. - Bonus: the Codex
sandbox_workspace_writenetwork-access snippet the earlier rewrite had silently dropped is back (README.md:227,docs/safety-model.md:38).
CLI accuracy verified against source. Every command, flag, and config key in docs/command-reference.md maps 1:1 to src/cli.ts / src/commands/* / src/lib/config.ts / src/mcp/server.ts (no invented or stale entries; the quoted install prompts match install.ts verbatim; the MCP tool list matches the registered tools). The removed candidate pen is confirmed NOT reintroduced anywhere.
Integrity + hygiene clean. No injected instructions, no hidden Unicode/homoglyphs, all external links legitimate (tenjin.blog, github.com/BackTrackCo/tenjin-agent, npmjs.com). The agent-permissions.md pointer fix repairs a genuinely dead anchor, and the ## MCP -> ## Local stdio MCP server rename fixes a second latent one. Markdown structurally sound, no em dashes in new copy.
Two non-blocking nits: a 3-line interactive-prompt block in the README (:65) could have linked out rather than restored inline, and session start's behavior is described in both the README and the reference doc. Author's call, neither is a defect.
Verdict: comments-only (the loop does not approve). Clean, faithful to the direction, and it strengthens the earlier version. Ready for the operator's approve/merge call. Note the CI here is gated on a maintainer approving the first-time-contributor workflow run.
#130, #132, #135, and #138 landed. README.md was the only conflict. #138 rewrote the README as a short onboarding doc, deleting the install flags table, the Search hooks section, and the skills-landing list that carried the three Hermes edits. Main's shape is the baseline, so those sections stay deleted rather than being reinstated to host the delta. The Hermes content is re-expressed on what #138 actually kept: the harness enumeration up top, and a Hermes entry in the Local stdio MCP server section naming the plugin, its consent flags, and the inert-until-named default. HOOK_SCRIPT_VERSION stays at 13: none of the four commits touch hook-scripts.ts or harness-hooks.ts, so no script body changed. #132's contract.test.ts rename merged clean; this branch does not touch that file. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rehomes the Client identity README section onto the rewritten README (#138).
Summary
Verification