diff --git a/onboarding/appendix-a-vocabulary.md b/onboarding/appendix-a-vocabulary.md index e4e00df..51be9ae 100644 --- a/onboarding/appendix-a-vocabulary.md +++ b/onboarding/appendix-a-vocabulary.md @@ -14,7 +14,7 @@ Two tables. One for GitHub words (useful to R1 and R4 if they venture there). On | **PR / pull request** | A proposed change to a repo, visible and reviewable before it lands. | | **Fork** | Your own copy of a repo. What you do when you want to extend or dissent. | | **Star** | A bookmark. Used as a weak popularity signal. | -| **CLI** | A tool you run from a terminal. `npx aux-audit run ./spec.yaml` is a CLI invocation. | +| **CLI** | A tool you run from a terminal. `node packages/aux-audit/dist/cli.js run ./spec.yaml` is a CLI invocation; `npx aux-audit` is the same after npm publish. | | **CI / CI pipeline** | Automation that runs on every code change. Where `aux-audit` becomes merge-blocking. | | **SARIF** | A standard file format for code-scan findings. What CI tools read to surface violations. | | **YAML** | A human-readable config format. Every AUX schema is YAML. | diff --git a/onboarding/for-ctos.md b/onboarding/for-ctos.md index 4190e87..f491450 100644 --- a/onboarding/for-ctos.md +++ b/onboarding/for-ctos.md @@ -4,7 +4,7 @@ > **AUX** is an open standard for agentic UX published at **github.com/auxfirst** — schemas and heuristics are **CC BY 4.0**, tooling is **MIT**. Fork it, cite it, extend it. -This is the 5-minute version. The long version is **[ARCHITECTURE.md](../ARCHITECTURE.md)**. The executable version is **[aux-audit](../repos/aux-audit/README.md)**. +This is the 5-minute version. The long version is **[ARCHITECTURE.md](../ARCHITECTURE.md)**. The executable version is **[aux-audit](../packages/aux-audit/README.md)** (GitHub Action: `auxfirst/trustkit@v0.2`). --- @@ -42,11 +42,20 @@ A Trust Contract without guarantees-backed-by-tests is a marketing page. Don't s `aux-audit` runs the 10 heuristics + 4 trust stages against an agent spec and emits a score, a grade, and named violations. It emits SARIF, which means it can block merges in CI the same way your static-analyzer does. -> *v0.1 — CLI contract published, binary in active development. The command below describes the intended invocation; follow [aux-audit](../repos/aux-audit/README.md) for the ship date.* +> *v0.1 ships as a GitHub Action. It grades the spec, not the running product.* + +```yaml +- uses: auxfirst/trustkit@v0.2 + with: + spec: ./spec.yaml + fail-on: high +``` + +Copy-paste workflow: **[forwardables/A3-aux-audit.yml](forwardables/A3-aux-audit.yml)**. From a clone of this repo, without npm: ```bash -# v0.1 contract -npx aux-audit run ./spec.yaml --format sarif --fail-on high +npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./spec.yaml --format sarif --fail-on high ``` What this gives you: diff --git a/onboarding/for-engineering.md b/onboarding/for-engineering.md index a139a88..0a6d064 100644 --- a/onboarding/for-engineering.md +++ b/onboarding/for-engineering.md @@ -36,16 +36,17 @@ Full schema: **[schemas/agent-spec.schema.yaml](../schemas/agent-spec.schema.yam ## 2 · Running aux-audit -> **Status — v0.1 contract · CLI in development.** The commands below describe the v0.1 invocation. The binary isn't on npm yet; follow [aux-audit](../repos/aux-audit/README.md) for the ship date. You can still adopt the spec format today and wire the workflow file in advance. +> **Status — v0.1 implemented.** In CI use the Action. Locally, clone this repo and build — `npx aux-audit` works after the package is on npm. -Locally (v0.1 contract): +Locally (from a clone of [auxfirst/trustkit](https://github.com/auxfirst/trustkit)): ```bash -npx aux-audit run ./spec.yaml +npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./spec.yaml # → score, grade, named gaps, recommendations ``` -In CI (v0.1 contract): +In CI: ```yaml # .github/workflows/aux-audit.yml @@ -58,9 +59,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: { node-version: 20 } - - run: npx aux-audit run ./spec.yaml --format sarif --out audit.sarif --fail-on high + - uses: auxfirst/trustkit@v0.2 + with: + spec: ./spec.yaml + fail-on: high - uses: github/codeql-action/upload-sarif@v3 if: always() with: { sarif_file: audit.sarif } diff --git a/packages/aux-audit/README.md b/packages/aux-audit/README.md index 77de71e..fd0af62 100644 --- a/packages/aux-audit/README.md +++ b/packages/aux-audit/README.md @@ -3,6 +3,11 @@ > Score an agent product against the [10 AUX Heuristics](../../schemas/aux-heuristics.yaml) and the [Trust Architecture](../../schemas/trust-architecture.yaml). Score, grade, violations — reproducible. ```bash +# today — from a clone of auxfirst/trustkit +npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./agent-spec.yaml + +# after npm publish npx aux-audit run ./agent-spec.yaml ``` @@ -34,6 +39,16 @@ Two consequences, both deliberate: ## Install +**Works today** (from a clone of this repository): + +```bash +npm --prefix packages/aux-audit ci +npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./agent-spec.yaml +``` + +**After `npm publish`** (optional — the GitHub Action does not need this): + ```bash npx aux-audit run ./agent-spec.yaml # no install npm install --save-dev aux-audit # or pin it diff --git a/profile/README.md b/profile/README.md index 6bf847e..45dbf61 100644 --- a/profile/README.md +++ b/profile/README.md @@ -24,7 +24,7 @@ If you ship AI products, you are no longer designing screens. You are designing | Entry point | What it is | Use when | |---|---|---| | **[aux-frameworks](../repos/aux-frameworks)** | Methodology as code. Audits, taxonomies, scorecards as YAML. | You want the standard. | -| **[aux-audit](../repos/aux-audit)** | `npx aux-audit` — a CLI (v0.1 contract · binary in development) that scores an agent product against the 10 heuristics. | You want a grade, not an opinion. | +| **[aux-audit](../packages/aux-audit)** | GitHub Action `auxfirst/trustkit@v0.2` — scores an agent spec against the 10 heuristics. | You want a grade, not an opinion. | | **[trust-gap-classifier](../repos/trust-gap-classifier)** | A taxonomy + detector for how agent trust breaks. | You want shared language for failures. | | **[agent-memory-policy](../repos/agent-memory-policy)** | Generate memory governance policy + system-prompt snippets from a config. | Product, compliance, and devs need to agree. | | **[agent-ux-teardowns](../repos/agent-ux-teardowns)** | Structured teardowns of shipped AI products. | You want receipts, not vibes. | @@ -53,13 +53,21 @@ This is the **proof layer** for the category — every claim ships with a schema Every tool ships as a CLI. Every framework ships as YAML/JSON. Every claim ships with a reproducible scenario. +```yaml +- uses: auxfirst/trustkit@v0.2 + with: + spec: ./agent-spec.yaml + fail-on: high +``` + +From a clone, without npm: + ```bash -# aux-audit v0.1 contract — CLI in active development -npx aux-audit run ./agent-spec.json -# → score: 72 grade: B issues: [trust_gap, memory_amnesia] +npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./agent-spec.yaml ``` -The spec format ([`agent-spec.schema.yaml`](../schemas/agent-spec.schema.yaml)) and rule set ([`aux-heuristics.yaml`](../schemas/aux-heuristics.yaml)) are published today. The binary follows — see [`aux-audit`](../repos/aux-audit). +The spec format ([`agent-spec.schema.yaml`](../schemas/agent-spec.schema.yaml)) and rule set ([`aux-heuristics.yaml`](../schemas/aux-heuristics.yaml)) drive the CLI. See [`packages/aux-audit`](../packages/aux-audit). ## For product & design diff --git a/repos/aux-audit/README.md b/repos/aux-audit/README.md index 5e30e39..f17d31b 100644 --- a/repos/aux-audit/README.md +++ b/repos/aux-audit/README.md @@ -5,6 +5,11 @@ > **Status — v0.1 implemented.** The CLI lives at **[`packages/aux-audit`](../../packages/aux-audit/)** in this repository: validator, rule set, scorer, and Markdown/JSON/SARIF output, with a GitHub Action wrapper at [`action.yml`](../../action.yml). From a clone: `npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build`. `npx aux-audit` works after the package is published to npm. ```bash +# today — from a clone of this repo +npm --prefix packages/aux-audit ci && npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./agent-spec.yaml + +# after npm publish npx aux-audit run ./agent-spec.yaml ``` @@ -45,10 +50,27 @@ Because AUX claims need to be **inspectable and reproducible.** A score that can ## Install +**Works today** + +```bash +# CI +- uses: auxfirst/trustkit@v0.2 + with: + spec: ./agent-spec.yaml + fail-on: high + +# local, from a clone of auxfirst/trustkit +npm --prefix packages/aux-audit ci +npm --prefix packages/aux-audit run build +node packages/aux-audit/dist/cli.js run ./spec.yaml +``` + +**After `npm publish`** (optional — not required for the Action) + ```bash npm i -g aux-audit # or one-shot: -npx aux-audit run ./spec.json +npx aux-audit run ./spec.yaml ``` ## Agent spec format @@ -67,8 +89,11 @@ flows: ["./flows/handoff.md", "./flows/refund.md"] ## Use in CI ```yaml -# .github/workflows/aux-audit.yml -- run: npx aux-audit run ./spec.yaml --format sarif --fail-on high +# .github/workflows/aux-audit.yml — copy-paste: onboarding/forwardables/A3-aux-audit.yml +- uses: auxfirst/trustkit@v0.2 + with: + spec: ./spec.yaml + fail-on: high ``` Failing the build on `severity: high` makes AUX a merge-blocking check, not a slide.