dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Shift-left AI Agent Security posture analysis aligning to OWASP Top 10 For Agentic AI and LLM applications
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A security review workflow for internal AI agents: fixed rules and two AI models review each agent's profile against the OWASP Top 10 for Agentic Applications, then a person must decide before the agent can launch, and every decision is recorded with who made it. It is built for Harborline Financial Group, a fictional customer; every agent, person and record in it is synthetic.
Sign-in is a labelled stand-in for corporate sign-in: pick one of four fictional users and enter the demo passcode, which is shared separately.
The demo, on two live reviews (no model calls):
Each review can be decided only once. After the two decisions in steps 1 and 2, the Treasury review shows its decision history instead of the form.
Optional, makes one real review: sign in as Riley Chen, Submitter, open Submit, load a sample profile, then Submit for review. The review runs in the background and the page fills in when both models finish. The Treasury review above cost $0.0077 in model calls and finished about 23 seconds after it was submitted (AI Gateway records and the audit log).
Solid boxes are built. Dashed boxes and links are designed, not built.
flowchart LR
subgraph People["People (fictional users)"]
SUB["Submitter"]
REV["AppSec and Model Risk reviewers"]
AUD["Auditor"]
end
subgraph VERCEL["Vercel: one project, deployed from Git"]
SITE["Overview site /"]
APP["Reviewer app /app<br/>sign-in check on every page and route"]
WF["Vercel Workflow<br/>durable review, pauses for a person"]
RULES["Rules R1 to R8 and tier rules"]
GW["Vercel AI Gateway<br/>provider allow list, no prompt training"]
DB[("Neon Postgres<br/>from the Vercel Marketplace<br/>reviews, decisions, append-only audit log")]
end
subgraph MODELS["Models through AI Gateway"]
M1["Reviewer: openai/gpt-5-mini<br/>Azure or OpenAI"]
M2["Checker: google/gemini-2.5-flash<br/>Vertex"]
end
subgraph AWS["Harborline's AWS (customer owned, not built here)"]
SSO["Corporate sign-in<br/>OIDC or SAML"]
REG["Agent registry"]
SIEM["SIEM"]
TKT["Ticketing"]
end
SUB --> APP
REV --> APP
AUD --> APP
APP --> WF
WF --> RULES
WF --> GW
GW --> M1
GW --> M2
WF <--> DB
APP <--> DB
APP -.-> SSO
WF -.-> REG
DB -.-> SIEM
WF -.-> TKT
VERCEL -. "Secure Compute (designed)" .- AWS
classDef planned stroke-dasharray:5 4;
class SSO,REG,SIEM,TKT planned;
| Tier | What it means | Who decides |
|---|---|---|
| 1 | Read-only, internal documents | AppSec |
| 2 | Drafts changes or takes small actions a person confirms | AppSec |
| 3 | Handles customer financial data | AppSec, then Model Risk (a different person) |
| 4 | Moves money with no person confirming, or acts on its own with power to write or run code | Not approved in this app: routed to a review committee with an evidence pack |
The review runs as a durable workflow that pauses until a person decides. The decision is written to the database first, then the workflow is resumed; the database is the record.
12 synthetic profiles with an answer key written by the project owner, 8 for tuning and 4 held out and never tuned on. 12 profiles is a small set: these are indications, not proof. Answers also vary between runs. Full results: eval/results.md.
At the eval-v1 freeze (models, prompts and rules frozen at the git tag
eval-v1 before any run):
| Tuning set (8) | Held-out set (4) | |
|---|---|---|
| Final tier inside the key's accepted range | 6 of 8 | 2 of 4 |
| Final tier below the key (the dangerous direction) | 0 | 0 |
| Expected critical risks found, rules and models combined | 9 of 9 | 6 of 6 |
| Found by the rules alone / the models alone | 6 of 9 / 8 of 9 | 5 of 6 / 6 of 6 |
| Adversarial profiles that fooled it | 0 of 2 | none in this set |
| Cost per review (AI Gateway records) | about $0.008 | about $0.008 |
| Model time per review | about 20 s | about 22 s |
Every tier error at the freeze was too high, never too low.
After two checker fixes (labelled separately; each fix is one sentence in the checker's instructions, measured on 3 runs before and 3 after):
| Tuning set (8) | Held-out set (4) | |
|---|---|---|
| Final tier inside the key's range | 7 of 8 | 3 of 4 (one rerun after the fixes, held-out results already seen) |
Honest limits and open findings:
/app page and /api route needs a signed session, checked on
the server. Each role may do only its own actions; nobody approves their
own submission; Tier 3's second approver must be a different person.
Decisions are accepted only from this site's own pages.Results (eval/security-tests.md): all four prompt-injection attacks (orders in the description, in the owner name and a tool name, fake end-of-data markers) left every tier at 4 and were flagged with a verified quote. Every route test passed: signed out, wrong role, wrong stage, another site, decision replay, decision reuse across reviews and the public workflow webhook. One real fault was found and fixed (a checker marker reaching the reviewer's prompt), and four wrong test expectations were corrected, with both results kept. A scan of every saved version of every file, run during security testing, found no passwords or keys; each change since is scanned before it is saved. The project owner's live check of attack (a) is pending. Six known gaps are written up honestly, the largest being that anyone with the passcode can choose any role.
What production at Harborline would add, none of it built here:
experimental_retention: 0 when a run starts), so a finished run's payloads stop being readable at
once; the review result is already written to the database by a step.
Described, not enabled.You need Node.js 22 or later, a Vercel AI Gateway key and a Postgres database (this project uses Neon from the Vercel Marketplace).
npm install.env.local with these variables (names only; never commit
values): AI_GATEWAY_API_KEY, DATABASE_URL, SESSION_SECRET,
DEMO_PASSCODE.npm run db:setup to create the tables, then npm run dev.npm test runs the unit tests; node --env-file=.env.local scripts/evaluate.ts run eval-<name> reruns the evaluation (it spends
model credit).On Vercel, the AI Gateway uses the project's own sign-in (OIDC), so the key is needed only on your computer. "Enable access to System Environment Variables" must be on for Workflow.
Cut: registry integration (step 11c), real corporate sign-in, SIEM and ticketing connections, a second evaluation freeze with fresh held-out profiles.
Next: fix profile 03's reviewer tier, measured the same way; ask Harborline to settle profile 04's tier; test a checker that runs several times and counts only risks raised consistently; cost and speed reporting from the platform (step 14).
Designed, not built
- Real SSO (corporate sign-in through OIDC or SAML)
- Agent registry integration
- SIEM forwarding of the audit log
- Vercel Secure Compute into Harborline's private network
- Zero data retention on AI Gateway (needs Pro or Enterprise)
- Edge Gateway is a separate project of mine, still a design: enforcing policy on live agent traffic at the edge. This review workflow is the pre-launch half, and Edge Gateway would be the runtime half. It is not part of this repo and not built here.
npm run build deletes paused workflow runs kept in
.next/workflow-data.The code and tests were written by Claude Code (Anthropic) under my direction. The planning documents and the one-page summary were drafted with Claude. Every commit made with Claude Code carries a Co-Authored-By line. The 'why' lines in the decision log and on the site, and FEEDBACK.md, are my own words.
More: docs/DECISION_LOG.md (decisions and why), docs/CODE_TOUR.md (one line per file), FEEDBACK.md (my feedback on the Vercel products used).