{"id":50974685,"url":"https://github.com/xiaojiou176-open/webaudit","last_synced_at":"2026-06-19T06:30:42.181Z","repository":{"id":349679348,"uuid":"1203411533","full_name":"xiaojiou176-open/webaudit","owner":"xiaojiou176-open","description":"Evidence-first browser automation for AI agents and operators, with recovery and MCP.","archived":false,"fork":false,"pushed_at":"2026-05-27T14:40:47.000Z","size":2767,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T16:16:27.527Z","etag":null,"topics":["ai-agents","browser-automation","codex","coding-agents","developer-tools","e2e-testing","fastapi","mcp","model-context-protocol","openapi","playwright","reproducibility","workflow-automation"],"latest_commit_sha":null,"homepage":"https://xiaojiou176-open.github.io/webaudit/","language":"TypeScript","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/xiaojiou176-open.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","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-04-07T02:41:21.000Z","updated_at":"2026-05-27T14:29:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xiaojiou176-open/webaudit","commit_stats":null,"previous_names":["xiaojiou176-open/prooftrail-cutover-20260406","xiaojiou176-open/proofyard","xiaojiou176-open/webaudit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/xiaojiou176-open/webaudit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2Fwebaudit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2Fwebaudit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2Fwebaudit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2Fwebaudit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiaojiou176-open","download_url":"https://codeload.github.com/xiaojiou176-open/webaudit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2Fwebaudit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34520431,"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-06-19T02:00:06.005Z","response_time":61,"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":["ai-agents","browser-automation","codex","coding-agents","developer-tools","e2e-testing","fastapi","mcp","model-context-protocol","openapi","playwright","reproducibility","workflow-automation"],"created_at":"2026-06-19T06:30:41.510Z","updated_at":"2026-06-19T06:30:42.175Z","avatar_url":"https://github.com/xiaojiou176-open.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://em-content.zobj.net/source/apple/391/magnifying-glass-tilted-left_1f50d.png\" width=\"120\" alt=\"magnifying glass\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ewebaudit\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eevery claim ships with its receipt\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/xiaojiou176-open/webaudit/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/xiaojiou176-open/webaudit?style=flat\u0026color=yellow\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/xiaojiou176-open/webaudit/commits/main\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/xiaojiou176-open/webaudit?style=flat\" alt=\"Last Commit\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/xiaojiou176-open/webaudit?style=flat\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#what-you-get\"\u003eWhat You Get\u003c/a\u003e •\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e •\n  \u003ca href=\"#how-it-work\"\u003eHow It Work\u003c/a\u003e •\n  \u003ca href=\"#ecosystem\"\u003eEcosystem\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nwebaudit turns long, messy AI outputs into auditable workflows. Every step gets a hash, every claim gets a source, every replay matches byte-for-byte.\n\n```\n┌──────────────────────────────────────┐\n│  LOCAL-FIRST          ████████ 100%  │\n│  SOURCE-TRACEABLE     ████████ 100%  │\n│  TYPING REQUIRED      ░░░░░░░░   0%  │\n│  VIBES                ████████ ZERO  │\n│                                FILLER│\n└──────────────────────────────────────┘\n```\n\n\u003e Evidence-first workbench. Trace, hash, replay, prove.\n\n## What You Get\n\n| Surface | What |\n|---|---|\n| `webaudit apps` | Workshop, quick-launch, task center. Authored output, traced. |\n| `packages` | Shared evidence primitives — hashing, tracing, snapshotting. |\n| `mcp skills` | Hand a flow to any agent. Get a flow plus the receipt. |\n| `contracts` | Versioned proof schemas. Diffable. Replayable. |\n| `e2e tests` | Cross-surface integration. The receipts run too. |\n\n\u003e [!IMPORTANT]\n\u003e Local-first by default. No silent telemetry. No cloud round-trip. Your data stays on your machine until you explicitly ship it somewhere.\n\n## Install\n\n```bash\ngit clone https://github.com/xiaojiou176-open/webaudit.git\ncd webaudit\n# follow the per-stack quickstart in INSTALL.md or docs/\n```\n\nThree commands. No `curl | sh`. No login. Read what you run.\n\nInstall break? Open your favorite agent and say *\"Read AGENTS.md and bootstrap webaudit for me.\"* Agent fix own brain. Long version: [`docs/`](./docs/).\n\n## How It Work\n\nThe repo is seven layers — exactly the seven commits in `git log`. New work goes in as small named PRs. No 50-file mystery commits.\n\n| Layer | What |\n|---|---|\n| `chore: scaffold` | License, governance, hygiene gates, CI scaffolding. |\n| `feat(core)` | The primary engine. The reason webaudit exists. |\n| `feat(modules)` | Packages, adapters, services, plugins. The second floor. |\n| `feat(contracts)` | Schemas, configs, public boundaries. Other code talks here. |\n| `test:` | Receipts. Everything in this layer must run. |\n| `feat(ops)` | Scripts, infra, CI helpers, build glue. |\n| `docs:` | Public docs surface. The pretty face. |\n\n`git log` reads like a building floor plan. Look once, know the whole shape.\n\n## Ecosystem\n\nwebaudit lives in the **yard family**: seven yards. one philosophy: structured input, structured output, structured proof.\n\n| Repo | What |\n|---|---|\n| [**switchyard**](https://github.com/xiaojiou176-open/switchyard) | model \u0026 agent runtime switch board |\n| [**browserclickyard**](https://github.com/xiaojiou176-open/browserclickyard) | your AI clicks, your browser obeys |\n| [**noteyard**](https://github.com/xiaojiou176-open/noteyard) | your Apple Notes never really die |\n| [**dealyard**](https://github.com/xiaojiou176-open/dealyard) | let prices fight, you sit and watch |\n| [**docyard**](https://github.com/xiaojiou176-open/docyard) | docs site in, markdown out, no scraping by hand |\n| [**fileyard**](https://github.com/xiaojiou176-open/fileyard) | messy folders in, organized library out |\n| [**webaudit**](https://github.com/xiaojiou176-open/webaudit) *(you here)* | every claim ships with its receipt |\n\nCross-family taste:\n[**BeamMe**](https://github.com/xiaojiou176-open/BeamMe) ·\n[**BrewMe**](https://github.com/xiaojiou176-open/BrewMe) ·\n[**OpenVibeCoding**](https://github.com/xiaojiou176-open/OpenVibeCoding) ·\n[**webaudit**](https://github.com/xiaojiou176-open/webaudit).\n\n## Star This Repo\n\nIf webaudit saves you a click, an hour, or a headache — star costs zero. Fair trade. ⭐\n\n[![Star History Chart](https://api.star-history.com/svg?repos=xiaojiou176-open/webaudit\u0026type=Date)](https://star-history.com/#xiaojiou176-open/webaudit\u0026Date)\n\n## Also by Yifeng[Terry] Yu\n\n- **[switchyard](https://github.com/xiaojiou176-open/switchyard)** — model \u0026 agent runtime switch board\n- **[browserclickyard](https://github.com/xiaojiou176-open/browserclickyard)** — your AI clicks, your browser obeys\n- **[BeamMe](https://github.com/xiaojiou176-open/BeamMe)** — beam your agent config to any planet\n- **[BrewMe](https://github.com/xiaojiou176-open/BrewMe)** — wake up, news already brewed\n- **[OpenVibeCoding](https://github.com/xiaojiou176-open/OpenVibeCoding)** — AI codes overnight, you ship in the morning\n\n## License\n\nMIT — small print, big freedom.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaojiou176-open%2Fwebaudit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaojiou176-open%2Fwebaudit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaojiou176-open%2Fwebaudit/lists"}