{"id":51577201,"url":"https://github.com/royashbrook/trustmebro","last_synced_at":"2026-07-11T01:32:07.819Z","repository":{"id":366427689,"uuid":"1276074109","full_name":"royashbrook/trustmebro","owner":"royashbrook","description":"the end of 'trust me bro' , an agent skill + zero-dep node CLI that adds verified citation links to your markdown/html posts. every link resolves or gets flagged, and it never rewrites a word.","archived":false,"fork":false,"pushed_at":"2026-06-23T22:50:08.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T00:22:50.918Z","etag":null,"topics":["agent-skills","ai-agents","citations","claude","claude-code","cli","developer-tools","documentation","llm","markdown","node","royashbrook-tool"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/royashbrook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-21T14:07:16.000Z","updated_at":"2026-06-23T22:50:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/royashbrook/trustmebro","commit_stats":null,"previous_names":["royashbrook/cite","royashbrook/trustmebro"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/royashbrook/trustmebro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royashbrook%2Ftrustmebro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royashbrook%2Ftrustmebro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royashbrook%2Ftrustmebro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royashbrook%2Ftrustmebro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/royashbrook","download_url":"https://codeload.github.com/royashbrook/trustmebro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royashbrook%2Ftrustmebro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35348376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-agents","citations","claude","claude-code","cli","developer-tools","documentation","llm","markdown","node","royashbrook-tool"],"created_at":"2026-07-11T01:32:07.031Z","updated_at":"2026-07-11T01:32:07.810Z","avatar_url":"https://github.com/royashbrook.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logo-dark.svg\"\u003e\n    \u003cimg src=\"assets/logo.svg\" width=\"200\" alt=\"trustmebro\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003etrustmebro\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003ethe end of \"trust me bro.\"\u003c/em\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-111111?style=flat-square\" alt=\"MIT\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/dependencies-0-111111?style=flat-square\" alt=\"zero dependencies\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/node-%E2%89%A518-111111?style=flat-square\" alt=\"node \u003e= 18\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/runs%20on-mac%20%C2%B7%20linux%20%C2%B7%20windows-111111?style=flat-square\" alt=\"cross-platform\"\u003e\n  \u003ca href=\"https://github.com/royashbrook/trustmebro/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/royashbrook/trustmebro/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003eadds verified citation links for your jargon and claims - every link resolves or gets flagged, and it never rewrites a word.\u003c/strong\u003e\u003c/p\u003e\n\n---\n\nyou wrote something. maybe it has some jargon in it. maybe it should link out to source code. trustmebro checks over what you wrote and adds links in common-sense places. it's a tool for an agent to use to help refine your post for your reader. instead of just telling you a citation may be needed, trustmebro goes and finds the actual source, checks that it loads, links it inline, and hands you back a diff showing it only added citations and didn't fiddle with your prose.\n\nevery article is an author saying *trust me bro* to a reader. trustmebro helps the reader actually be able to trust you.\n\nit's an [agent skill](SKILL.md) plus a small zero-dependency node CLI. your agent makes the judgment (which claims need a source, which source backs each); the CLI does the error-prone mechanics (resolve, verify, wrap, prove). you can use trustmebro or tmb for short.\n\n## what it cites\n\ntrustmebro makes three kinds of link, in value order. in every one the **words don't change** - only the link markup - and `tmb prove` checks that mechanically, so \"it didn't touch my prose\" is a passing test when it runs, not a promise.\n\n**EXPLAIN** - a term a non-specialist reader wouldn't know gets an authoritative explainer:\n\n```diff\n- raft keeps the replicas consistent.\n+ [raft](https://raft.github.io/) keeps the replicas consistent.\n```\n\n**SUBSTANTIATE** - a real tool / library / protocol / stat gets its authoritative page (where a wrong link does the most damage, so trustmebro is conservative here):\n\n```diff\n- we store everything in sqlite, one file on disk.\n+ we store everything in [sqlite](https://www.sqlite.org/), one file on disk.\n```\n\n**SHOW code** (rare) - a claim about code gets a SHA-pinned, line-ranged github permalink that can't rot:\n\n```diff\n- the dialect pick lives in one small file.\n+ the [dialect pick](https://github.com/royashbrook/sql-spider/blob/c06334e9a88eb9b82193d89cc6387df042c6e9dc/src/core/Dialect.cs#L1-L10) lives in one small file.\n```\n\nevery link resolves before it goes in (`tmb verify`); a dead or dubious one is flagged, never faked. (and yes - every link in this README is one trustmebro itself verified.)\n\n## what it tries to do\n\nthe goal is plain: make the post better for your reader, and save you some time. it links the meaningful stuff: jargon, claims, the github lines worth pointing at. it'll also 'improve' a weak link you already have: point at a file with no sha or line range and it pins + ranges it on the agent's judgement. you may still want to add some by hand; this just does the obvious passes, and it's all easy to revert.\n\nso trustmebro isn't fully deterministic, and that's by design: the *judgment* (WHICH words deserve a link, and what the right source is) belongs to the agent reading your doc, the way it would belong to any editor, so different agents (or the same one with more context) may pick differently. the *mechanics* are the deterministic half: hand the `tmb` script a phrase and a url and it resolves, wraps, and proves the same way every time. judgment is the agent's; the receipts are the tool's.\n\n## what it definitely does\n\n- **every link resolves, or it gets flagged.** a link is never inserted unless it returns HTTP 200. a dead or dubious one is recorded to `.tmb-flags.md`, never faked.\n- **it's checkable, not vibes.** `prove` + `lint` are mechanical gates with exit codes. a \"trustmebro-passed\" post is one a machine verified, not one an agent said was fine.\n- **zero dependencies.** one node file, stdlib only. needs `node` (\u003e=18); `git` only for the prove-gate + code permalinks. runs on macOS, Linux, and Windows.\n- **markdown or html.** point it at a post, a doc, a readme, an article - `.md` or `.html`. insert writes a `[markdown](link)` or an `\u003ca href\u003e` to match the file, and it skips code regions in both (fenced ```` ``` ```` / `` `inline` `` for markdown, `\u003cpre\u003e` / `\u003ccode\u003e` for html).\n\n## what it doesn't do\n\n- **it never rewrites your prose.** `tmb prove` reduces the doc to its reader-visible text and asserts it's byte-identical to before - only link markup may change.\n- **it doesn't fact-check.** trustmebro adds + verifies *links*; whether a claim is *true* is the reader's call, made from the source - not trustmebro's.\n- **the suggestions aren't the tool.** an agent driving trustmebro might also propose other edits (a rewrite, a missing section); that's the agent's doing - the `tmb` script itself only ever touches link markup.\n\n## install\n\neasiest way is just to tell your ai agent of choice you want to use this skill, and point it at this repo. you can generally ask it to install it or just use it in that session on something if you want. in my testing, it's fine either way.\n\nif you want more details though...\n\n```sh\nnode --version \u0026\u0026 git --version   # deps: node \u003e=18 + git. nothing to npm install. missing one? see AGENTS.md.\ngit clone https://github.com/royashbrook/trustmebro\nchmod +x trustmebro/trustmebro\n# then put trustmebro/trustmebro on your PATH (it ships a `tmb` symlink too), or drop it in your agent's skills/tools dir\n```\n\nrun it as `trustmebro` or the short alias `tmb` - same tool. on windows, or if the symlink doesn't survive your clone, just `alias tmb=trustmebro` (zero effort).\n\nor skip the clone and run the CLI straight from npm: `npx @royashbrook/trustmebro \u003ccmd\u003e` (or `npm i -g @royashbrook/trustmebro` for the `trustmebro` + `tmb` commands). note: this gives you the CLI, not the [SKILL.md](SKILL.md) playbook, for an agent, the clone or the [MCP](https://royashbrook.com/trustmebro) carries the judgment.\n\n**Claude Code** (auto-loads as a skill): `git clone https://github.com/royashbrook/trustmebro ~/.claude/skills/trustmebro`\n**any other agent:** see [AGENTS.md](AGENTS.md). then point it at [SKILL.md](SKILL.md) - that's the whole playbook.\n\n## the helper\n\nthe agent decides *what* to cite; the script does the mechanics. the command is `trustmebro` (or `tmb` for short):\n\n```sh\ntmb verify \u003curl\u003e | tmb verify -    # resolves? HTTP code + dead-vs-gated hint + redirect (batch: parallel, JSONL)\ntmb links \u003cfile\u003e                   # every link url (md / html / refs / autolinks / bare), images excluded\ntmb insert \u003cfile\u003e \u003cphrase\u003e \u003curl\u003e   # safe add: verify url + wrap the FIRST citable match (skips code + existing links)\ntmb prove \u003cfile\u003e [ref]             # assert ONLY link markup changed vs ref - fails on any prose edit\ntmb lint \u003cfile\u003e                    # catch the half-fix: visible text is a url that differs from its href (--fix syncs it)\ntmb flag \u003cpost\u003e \u003creason...\u003e        # record a dead link / dubious claim to .tmb-flags.md\ntmb check \u003cpost\u003e [base]            # optional one-shot: verify all links + prove + lint -\u003e PASS/ISSUES\ntmb sweep \u003crepo-dir\u003e \u003cbase\u003e        # prove + lint over every changed .md - backstop for a batch run\ntmb preflight / permalink          # (code mode) repo state / a SHA-pinned, range-validated github permalink\n```\n\nfull doctrine + the judgment calls (what a *technical generalist* reader needs explained, the laundering trap, flag-don't-fabricate) live in [SKILL.md](SKILL.md).\n\n## FAQ\n\n**how well does this work?**\npretty well? i guess it is subjective as it depends on your ai agent. in my experience, it saves time and finds a decent amount of jargon using frontier models.\n\n**does it check whether my claims are true?**\nno. it adds *verified links*, not verified facts. a link can resolve and still be the wrong source - that judgment stays with you (and the agent). trustmebro makes a post easier for a reader to *verify*, it does not fact-check it for them - that's the job, not a gap.\n\n**will it touch my writing?**\nno, and it proves it. `tmb prove` fails if anything but link markup changed.\n\n**dependencies?**\nnode always; git only for the prove-gate + code permalinks. that's it. no npm install, no lockfile, [one file](https://github.com/royashbrook/trustmebro/blob/main/trustmebro) you can read in one sitting.\n\n## license\n\n[MIT](LICENSE). cite the source, not the license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyashbrook%2Ftrustmebro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froyashbrook%2Ftrustmebro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyashbrook%2Ftrustmebro/lists"}