Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
14f9a24
Add full-surface documentation refresh spec
aram356 Aug 20, 2026
e4da50a
Address spec self-review findings
aram356 Aug 20, 2026
3bba26c
Ship all work packages in a single implementation PR
aram356 Aug 20, 2026
1b937f4
Fold issues #277 and #341 into the documentation refresh spec
aram356 Aug 20, 2026
9ddf3f4
Land spec and work packages in the same PR
aram356 Aug 20, 2026
82caa0c
Rework documentation refresh spec after pre-implementation review
aram356 Aug 20, 2026
7d853a5
Align documentation refresh spec with rc/202608
aram356 Aug 20, 2026
4056bf4
Record accessibility scope decision in Non-goals
aram356 Aug 20, 2026
2c95da4
Rework spec after second pre-implementation review
aram356 Aug 21, 2026
a7cdc8c
Rework spec after third pre-implementation review
aram356 Aug 21, 2026
1adcb25
Rework spec after fourth pre-implementation review
aram356 Aug 21, 2026
aa5327d
Rework spec after fifth pre-implementation review
aram356 Aug 21, 2026
5a324d2
Rework spec after sixth pre-implementation review
aram356 Aug 21, 2026
f5a8385
Rework spec after seventh pre-implementation review
aram356 Aug 21, 2026
df1bd96
Regenerate spec against rc/202608 at a163367b3
aram356 Aug 27, 2026
0e9441f
Rework spec after ninth pre-implementation review
aram356 Aug 28, 2026
91f4e6d
Rework spec after tenth pre-implementation review
aram356 Aug 28, 2026
b55e573
Rework spec after eleventh pre-implementation review
aram356 Aug 28, 2026
0ddbb88
Rework spec after twelfth pre-implementation review
aram356 Aug 28, 2026
2ff5b89
Rework spec after thirteenth pre-implementation review
aram356 Aug 29, 2026
08f339f
Add release-handoff PR sequencing row
aram356 Aug 29, 2026
60b6334
Rework spec after fourteenth pre-implementation review
aram356 Aug 29, 2026
306e106
Rework spec after fifteenth pre-implementation review
aram356 Aug 29, 2026
2daa370
Rework spec after sixteenth pre-implementation review
aram356 Aug 29, 2026
b404a36
Order sequencing table by epoch
aram356 Aug 29, 2026
92a3a33
Rework spec after seventeenth pre-implementation review
aram356 Aug 29, 2026
b904b3a
Split attestation job from read-only validation
aram356 Aug 29, 2026
8588391
Approve documentation refresh delivery plan
aram356 Aug 31, 2026
349fd46
Clarify documentation refresh evidence controls
aram356 Aug 31, 2026
931e53e
Record documentation approval evidence
aram356 Aug 31, 2026
3ac8bc3
Adopt single-PR documentation refresh design
aram356 Sep 1, 2026
54cb66e
Remove obsolete documentation epoch terminology
aram356 Sep 1, 2026
01bf84a
Rewrite documentation refresh plan for one PR
aram356 Sep 1, 2026
333bb47
Align documentation refresh records to one PR
aram356 Sep 1, 2026
4314575
Clarify documentation release capture ownership
aram356 Sep 1, 2026
06d916f
Contain internal documentation pages
aram356 Aug 31, 2026
5dcf84b
Fix internal onboarding links
aram356 Aug 31, 2026
0a8e57f
Record documentation containment transfer
aram356 Sep 1, 2026
75fd406
Harden documentation containment evidence
aram356 Sep 1, 2026
f47ef6e
Parse documentation containment links semantically
aram356 Sep 1, 2026
e6441a8
Update containment source provenance
aram356 Sep 1, 2026
5a7b389
Resolve documentation site domain
aram356 Sep 1, 2026
b4a99c5
Clean documentation publishing policy
aram356 Sep 1, 2026
4624613
Harden documentation policy evidence
aram356 Sep 1, 2026
14ea4d9
Normalize documentation evidence URLs
aram356 Sep 1, 2026
4f7fe47
Add documentation parity tool foundation
aram356 Sep 1, 2026
048ab3a
Reject dangling documentation output symlinks
aram356 Sep 1, 2026
91bfa7f
Harden documentation parity boundaries
aram356 Sep 1, 2026
d0e8399
Complete documentation path device checks
aram356 Sep 1, 2026
ed1c76f
Enforce documentation source classification
aram356 Sep 1, 2026
db86fef
Close documentation classification review gaps
aram356 Sep 1, 2026
2693da4
Harden documentation parity review boundaries
aram356 Sep 1, 2026
2ce0e11
Close documentation scanner context gaps
aram356 Sep 1, 2026
441473e
Harden documentation parser semantics
aram356 Sep 1, 2026
ce63f6e
Close documentation parser review gaps
aram356 Sep 1, 2026
f15f2f0
Harden documentation governance edge handling
aram356 Sep 1, 2026
f73689e
Correct documentation scanner context validation
aram356 Sep 1, 2026
a2a2fe3
Refine documentation domain context
aram356 Sep 1, 2026
993ab59
Remove broad domain prose heuristics
aram356 Sep 1, 2026
53a5a9e
Correct documentation audit totals
aram356 Sep 1, 2026
4eb96c1
Add checked documentation regions and links
aram356 Sep 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions .claude/commands/check-ci.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
Run all CI checks locally, in order. Stop and report if any step fails.
Run every check in the [canonical CI gate list](/CLAUDE.md#ci-gates), in its
documented order. Stop and report if any gate fails.

1. `cargo fmt --all -- --check`
2. `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare`
3. `cargo test-fastly && cargo test-axum && cargo test-cloudflare`
4. `cargo check-cloudflare` (wasm32-unknown-unknown target check, mirrors CI)
5. `cd crates/trusted-server-js/lib && npx vitest run`
6. `cd crates/trusted-server-js/lib && npm run format`
7. `cd docs && npm run format`

Report a summary of all results when done.
Report the result of each canonical gate. Do not maintain a separate gate list
in this command.
3 changes: 3 additions & 0 deletions .claude/commands/review-changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
Review all staged and unstaged changes in the working tree.

Use the [canonical CI gate list](/CLAUDE.md#ci-gates) as the sole source for
required verification. Do not copy its commands into this file.

1. Run `git diff` and `git diff --cached` to see all changes.
2. Review each changed file for:
- Correctness and logic errors
Expand Down
17 changes: 5 additions & 12 deletions .claude/commands/test-all.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
Run the full test suite for both Rust and JavaScript.
Run the Rust and JavaScript test gates from the
[canonical CI gate list](/CLAUDE.md#ci-gates). Do not maintain a separate test
command list in this file.

```bash
cargo test-fastly && cargo test-axum && cargo test-cloudflare
```

Then run JS tests:

```bash
cd crates/trusted-server-js/lib && npx vitest run
```

Report results for both. If any test fails, investigate and suggest a fix.
Report each test-gate result. If a test fails, investigate it before reporting
the command complete.
18 changes: 6 additions & 12 deletions .claude/commands/test-crate.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@ Test a specific crate by name.

Usage: /test-crate $ARGUMENTS

Run:
Use the target-aware test rules referenced by the
[canonical CI gate list](/CLAUDE.md#ci-gates). Select the canonical adapter or
JavaScript gate that covers `$ARGUMENTS`; do not substitute a bare workspace
test. For a host-only crate without a covering alias, follow the host-target
procedure in `CLAUDE.md`.

```bash
cargo test -p $ARGUMENTS
```

If $ARGUMENTS is "js" or "javascript", run:

```bash
cd crates/trusted-server-js/lib && npx vitest run
```

Report results and investigate any failures.
Report the selected canonical rule and its result. Investigate any failure.
15 changes: 4 additions & 11 deletions .claude/commands/verify.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
Full verification: build, test, and lint the entire project.
Run full repository verification from the
[canonical CI gate list](/CLAUDE.md#ci-gates). That region is the sole source
for required gate commands; do not maintain a copy here.

1. `cargo build-fastly && cargo build-axum && cargo build-cloudflare`
2. `cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1`
3. `cargo fmt --all -- --check`
4. `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare`
5. `cargo test-fastly && cargo test-axum && cargo test-cloudflare`
6. `cd crates/trusted-server-js/lib && npx vitest run`
7. `cd crates/trusted-server-js/lib && npm run format`
8. `cd docs && npm run format`

Report results for each step. Stop and investigate if any step fails.
Report every canonical gate result. Stop and investigate if any gate fails.
17 changes: 5 additions & 12 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,15 @@ Closes #

## Test plan

<!-- How did you verify this works? Check all that apply -->

- [ ] `cargo test-fastly && cargo test-axum`
- [ ] `cargo clippy-fastly && cargo clippy-axum`
- [ ] `cargo fmt --all -- --check`
- [ ] JS tests: `cd crates/trusted-server-js/lib && npx vitest run`
- [ ] JS format: `cd crates/trusted-server-js/lib && npm run format`
- [ ] Docs format: `cd docs && npm run format`
- [ ] WASM build: `cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1`
- [ ] Manual testing via `fastly compute serve`
- [ ] Other: <!-- describe -->
<!-- Follow the canonical gates; do not copy their command list here. -->

- [ ] Completed the [canonical CI gate list](/CLAUDE.md#ci-gates)
- Evidence: <!-- Record exact results and any scoped additional checks. -->

## Checklist

- [ ] Changes follow [CLAUDE.md](/CLAUDE.md) conventions
- [ ] No `unwrap()` in production code — use `expect("should ...")`
- [ ] Uses `tracing` macros (not `println!`)
- [ ] Uses `log` macros (not `println!`)
- [ ] New code has tests
- [ ] No secrets or credentials committed
27 changes: 17 additions & 10 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,20 @@ If you cannot read `CLAUDE.md`, follow these rules:

1. Present a plan and get approval before coding.
2. Keep changes minimal — do not refactor unrelated code.
3. Run tests after every code change — use the workspace aliases defined in `.cargo/config.toml`:
- `cargo test-fastly` — Fastly adapter + core (wasm32-wasip1 via Viceroy)
- `cargo test-axum` — Axum dev server adapter (native)
- `cargo test-cloudflare` — Cloudflare Workers adapter (native host)
Do NOT use bare `cargo test --workspace` — it will attempt to compile the Fastly adapter for the host target.
4. Run `cargo fmt --all -- --check` and `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare`.
5. Run JS tests with `cd crates/trusted-server-js/lib && npx vitest run` when touching JS/TS code.
6. Use `error-stack` (`Report<E>`) for error handling — not anyhow, eyre, or thiserror.
7. Use `log` macros (not `println!`) and `expect("should ...")` (not `unwrap()`).
8. Target is `wasm32-wasip1` — no Tokio or OS-specific dependencies in core crates.

<!-- BEGIN GENERATED CI GATES: source CLAUDE.md#ci-gates -->

Every PR must pass:

1. `cargo fmt --all -- --check`
2. `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare && cargo clippy-cloudflare-wasm && cargo clippy-spin-native && cargo clippy-spin-wasm`
3. `cargo test-fastly && cargo test-axum && cargo test-cloudflare && cargo test-spin`
4. `cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity`
5. JS build and test (`cd crates/trusted-server-js/lib && npx vitest run`)
6. JS format (`cd crates/trusted-server-js/lib && npm run format`)
7. Docs format (`cd docs && npm run format`)
<!-- END GENERATED CI GATES -->

8. Use `error-stack` (`Report<E>`) for error handling — not anyhow, eyre, or thiserror.
9. Use `log` macros (not `println!`) and `expect("should ...")` (not `unwrap()`).
10. Target is `wasm32-wasip1` — no Tokio or OS-specific dependencies in core crates.
6 changes: 6 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,12 @@ impl core::error::Error for MyError {}
- Do not write or commit real domains, customer names, credentials,
configuration values, or other potentially sensitive real-world information in
comments, tests, docs, or examples.
- Sensitive-data exceptions are limited to these types: vendor URL,
hash-pinned fake-credential fixture, historical example, service ID, and
project-owned public domain.
- Record every exception before use with its exact type and scope, owner,
rationale, and expiry timestamp. Ownerless, expired, broad, or untyped
exceptions are prohibited.

---

Expand Down
11 changes: 9 additions & 2 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@ export default withMermaid(
description:
'Edge computing for ad serving, consent signal handling, and edge cookie (EC) generation',
base: '/trusted-server',
srcExclude: [
'superpowers/**',
'internal/**',
'epics/**',
'guide/onboarding.md',
'README.md',
'business-use-cases.md',
],

// Replace version placeholders like {{NODEJS_VERSION}} with values from .tool-versions
markdown: {
Expand All @@ -58,8 +66,7 @@ export default withMermaid(
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: 'Home', link: '/' },
{ text: 'Guide', link: '/guide/getting-started' },
{ text: 'Business Value', link: '/business-use-cases' },
{ text: 'Guide', link: '/guide/' },
{ text: 'Roadmap', link: '/roadmap' },
],

Expand Down
6 changes: 6 additions & 0 deletions docs/business-use-cases.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Business Use Cases

> [!CAUTION]
> **Unverified planning material.** The claims, metrics, projections, and
> capabilities in this document have not been validated against the current
> implementation. Do not treat them as shipped behavior or product
> commitments.

Scenarios where publishers can realize measurable value with Trusted
Server across revenue, consent handling, performance, and user
experience.
Expand Down
30 changes: 30 additions & 0 deletions docs/guide/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Guide

Use these guides to understand Trusted Server, configure a deployment, and
contribute to the project.

## Start here

- [What is Trusted Server?](/guide/what-is-trusted-server)
- [Getting Started](/guide/getting-started)

## Core concepts

- [Edge Cookies](/guide/edge-cookies)
- [GDPR Compliance](/guide/gdpr-compliance)
- [Ad Serving](/guide/ad-serving)
- [First-Party Proxy](/guide/first-party-proxy)
- [Asset Routes](/guide/asset-routes)

## Development

- [Architecture](/guide/architecture)
- [Configuration](/guide/configuration)
- [CLI](/guide/cli)
- [Testing](/guide/testing)
- [Integration Guide](/guide/integration-guide)

## Reference

- [API Reference](/guide/api-reference)
- [Error Reference](/guide/error-reference)
160 changes: 0 additions & 160 deletions docs/guide/onboarding.md

This file was deleted.

Loading
Loading