From e4a7fd47d07f4afa31e60835c79367f73b226add Mon Sep 17 00:00:00 2001
From: sepehr-safari
+ How the tool works, as opposed to how to set it up. The guides cover the
+ setup; these are the documents the guides point to when a question needs the exact behavior.
+
+ Each one is written and reviewed in the repository, next to the code it
+ describes, and copied here with only its links changed. Every change to this site is checked
+ against the repository's main branch, and a copy that differs from it fails the check.
+ {one.blurb} Why the main choices went the way they did, one record per decision. What each version shipped, and what the next one is for. How to report a vulnerability, and the security considerations for running it.Docs
+
+ The documents{' '}
+
+ #
+
+
+
+ {DOCS.map((one) => (
+
+
+ In the repository only{' '}
+
+ #
+
+
+
+
+
The full hooks document, including how a replacement is matched to a tool's own output shape, - is in the repository. + is in the hooks reference.
diff --git a/src/pages/guides/ecc.astro b/src/pages/guides/ecc.astro index 643dcb1..21b9ca9 100644 --- a/src/pages/guides/ecc.astro +++ b/src/pages/guides/ecc.astro @@ -1,6 +1,5 @@ --- import Base from '../../layouts/Base.astro'; -import { REPO } from '../../data/benchmark'; import { findGuide, guideUrl } from '../../data/guides'; import { guideSchema } from '../../data/schema'; @@ -182,7 +181,7 @@ const AGENTSHIELD = 'https://www.npmjs.com/package/ecc-agentshield';The full hook reference, including how a withheld result is matched to a tool's own output - shape, is in the repository. + shape, is in the hooks reference.
diff --git a/src/pages/guides/index.astro b/src/pages/guides/index.astro index 11d65d9..c951064 100644 --- a/src/pages/guides/index.astro +++ b/src/pages/guides/index.astro @@ -25,7 +25,7 @@ const description =They assume the package is installed and describe the current release. If you want the architecture rather than the setup, that lives in{' '} - the design document. + the design document.
npm install -g agent-chaperone
@@ -68,11 +68,11 @@ const description =
- The architecture, the exact wording of every screening question, the policy file and the - audit log format. + The design, with the exact wording of every screening question, the policy file and the + audit log format, plus the hooks reference and the benchmark method.
- The exact wording of every question is in{' '} - the design document, because a screen whose - questions you cannot read is asking you to trust a summary of them. + The exact wording of every question is in the design document, + because a screen whose questions you cannot read is asking you to trust a summary of them.
@@ -270,8 +269,8 @@ agent-chaperone wrap ~/.claude.json --write .The false criterion on the main question, and the second question that was measured and - dropped for adding no signal, are both in{' '} - the design document. + dropped for adding no signal, are both in the design document.
diff --git a/src/pages/guides/secret-exfiltration.astro b/src/pages/guides/secret-exfiltration.astro index 351fd12..64337a7 100644 --- a/src/pages/guides/secret-exfiltration.astro +++ b/src/pages/guides/secret-exfiltration.astro @@ -1,6 +1,6 @@ --- import Base from '../../layouts/Base.astro'; -import { REPO, SHIPPED } from '../../data/benchmark'; +import { SHIPPED } from '../../data/benchmark'; import { findGuide, guideUrl } from '../../data/guides'; import { guideSchema } from '../../data/schema'; @@ -275,8 +275,8 @@ const guide = findGuide('secret-exfiltration');The measured results for the call side are the hand-labeled set, scored at {SHIPPED.holdDestructive}, the stricter of the two call thresholds.{' '} - The design document has the exact wording of - each question and the full pattern list. + The design document has the exact wording of each question and the + full pattern list.
diff --git a/src/pages/llms.txt.ts b/src/pages/llms.txt.ts index 7e56a9d..2ec3c4e 100644 --- a/src/pages/llms.txt.ts +++ b/src/pages/llms.txt.ts @@ -1,5 +1,7 @@ import type { APIRoute } from 'astro'; import { CURRENT_VERSION, NPM, REPO, RUN } from '../data/benchmark'; +import { DOCS } from '../data/docs'; +import { headlines } from '../data/doc-files'; import { GUIDES, SITE } from '../data/guides'; /** @@ -18,6 +20,7 @@ import { GUIDES, SITE } from '../data/guides'; const RAW = 'https://raw.githubusercontent.com/agent-chaperone/agent-chaperone/main'; export const GET: APIRoute = () => { + const named = headlines(); const body = `# agent-chaperone > agent-chaperone is an open-source npm package that screens an AI agent's tool calls before they run, and the tool results those calls return before the agent reads them. It covers MCP servers through a transparent proxy, and a client's own shell commands, file edits and web fetches through a hooks adapter. @@ -43,12 +46,12 @@ ${GUIDES.map((one) => `- [${one.h1}](${SITE}/guides/${one.slug}.md): ${one.blurb - [Overview](${SITE}/index.md): what it screens, what it is not, how it compares, and the shadow-to-enforce path - [Guides](${SITE}/guides.md): each setup, with what it covers and where it stops - [Measured results](${SITE}/results.md): the same tables as the HTML page +- [Docs](${SITE}/docs.md): the reference documents, copied from the repository ## Docs +${DOCS.map((one) => `- [${named[one.slug] ?? one.title}](${SITE}/docs/${one.slug}.md): ${one.blurb}`).join('\n')} - [README](${RAW}/README.md): install, the two screens, the commands, and the measured results -- [Design](${RAW}/docs/design.md): architecture, every screening question and its exact wording, the policy file, the audit log -- [Hooks](${RAW}/docs/hooks.md): screening a client's own tools, what each hook command answers, and what hooks cannot see - [Roadmap](${RAW}/ROADMAP.md): what each version shipped ## Measured diff --git a/src/pages/results.astro b/src/pages/results.astro index c564c7c..584e9eb 100644 --- a/src/pages/results.astro +++ b/src/pages/results.astro @@ -24,8 +24,8 @@ const description = `One run of ${RUN.model} on ${RUN.date}: what the screeningThis is one dated run, not a scoreboard. The recorded model responses are committed, so the - scorer reproduces these numbers with no API key.{' '} - The harness and the method are in the repository. + scorer reproduces these numbers with no API key. The method says + how, and the harness itself is in the repository.
diff --git a/vercel.json b/vercel.json index b74564c..ea586cf 100644 --- a/vercel.json +++ b/vercel.json @@ -70,14 +70,9 @@ "destination": "https://www.npmjs.com/package/agent-chaperone", "permanent": true }, - { - "source": "/docs", - "destination": "https://github.com/agent-chaperone/agent-chaperone/blob/main/docs/design.md", - "permanent": true - }, { "source": "/hooks", - "destination": "https://github.com/agent-chaperone/agent-chaperone/blob/main/docs/hooks.md", + "destination": "/docs/hooks", "permanent": true }, {