Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ include docs/.mintignore
recursive-include tools *.py *.txt
# The README's header assets, and the sources they are rendered from.
recursive-include docs/assets *.svg *.png *.gif *.tape *.sh *.txt
# The website's media. Mintlify deploys from `docs/`, so a page's video has to live under it,
# and `test_the_sdist_carries_everything_the_tests_read` then requires it to ship. That test
# is checked against `git ls-files`, so the only way out would be to untrack the file, which
# would take it off the site. The sdist carries the megabyte.
recursive-include docs/images *.mp4 *.jpg
recursive-include tests *.py
# SPEC-v0.4 §4.3 — T115 validates `--junit` against a checked-in schema, and reads the README
# beside it for the schema's provenance and licence. A test that ships without its data is a
Expand Down
568 changes: 126 additions & 442 deletions README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

One Mintlify project, deployed from this repository's `/docs` directory.

- `index.mdx` serves `/`: the product homepage, execution boundary, failure example, and scenario explorer.
- `index.mdx` serves `/`: the product homepage, the hallucinated-refund example, the execution boundary and its four rules, and the integration entry point.
- `try.mdx` serves `/try`: the interactive scenario explorer. Controls and a decision come first; the agent/boundary/system context sits in a disclosure below them.
- `docs.mdx` serves `/docs`: the preserved technical overview.
- `docs/` contains all technical pages, published under `/docs/...`. The three technical navigation tabs retain their full sidebar structure.
- `risk-check.mdx` and `protect-my-agent.mdx` are custom-mode product pages.
Expand Down Expand Up @@ -44,7 +45,7 @@ function accepting a page and an optional preview base URL. It exercises browser
downloads, error recovery and all six stages at three viewport widths. The letter demo remains
independent.

The homepage explorer contains 48 domains and 238 actions. All rules are illustrative, client-side simulations. The original Python runtime demos remain at `/docs/try-it` and `/docs/demos/medical-affairs`; they load their runtime only when invoked.
The scenario explorer contains 48 domains and 238 actions. All rules are illustrative, client-side simulations. The original Python runtime demos remain at `/docs/try-it` and `/docs/demos/medical-affairs`; they load their runtime only when invoked.

The risk check stores no answers and sends no form data until the visitor submits an architecture review. Its result distinguishes indicated patterns from unknown answers and explains the scoring rule.

Expand Down
4 changes: 4 additions & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
"description": "Execution safety for AI agents. Control consequential actions before they affect real systems.",
"navbar": {
"links": [
{
"href": "/#how-it-works",
"label": "How it works"
},
{
"href": "/docs",
"label": "Documentation"
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/CLAIMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ by its quoted claim, and `tests/test_docs_audit.py` fails if a named row is not
| "Not applicable is not a pass" | `Report.applicable` is passes plus failures — `verify/report.py`; every N/A reason is a statement about the document — `verify/guarantees.py` | `test_T101_a_policy_with_no_approve_rule_makes_G1_and_G2_not_applicable`, `test_T102_a_policy_with_no_effect_templates_makes_G3_G4_and_G5_not_applicable` |
| "`6/6 (5 not applicable)`, never `11/11`" | `Report.summary_line` — the N/A ids are a separate sentence, never a parenthesis inside the fraction | `test_T113_the_summary_is_the_last_line_and_names_the_not_applicable_ids` (asserts `11/11` appears nowhere in an N/A run) |
| "There is no flag that folds one into the count" | There is no such parameter on `run()` (§9.1 freezes the signature) and no such option on the CLI | `test_T101b_zero_applicable_guarantees_is_not_a_pass` — `0/0` exits **2** |
| The two quoted reports | Both are real runs; the first is asserted line by line against `run(examples/authority/payments.yaml)` and against `docs/docs/verify.md`'s copy | `test_the_readme_quotes_the_real_verify_output`, `test_the_readme_and_the_verify_page_quote_the_same_report` |
| The quoted report | A real run, asserted line by line against `run(examples/authority/payments.yaml)`. The README carried a second copy until the 2026-09-09 rewrite; `docs/docs/verify.md` is now its only home, and the README keeps the badge sentence | `test_the_verify_page_quotes_the_real_verify_output`, `test_the_readme_says_what_the_badge_does_not_mean` |
| "means the **declared guarantees pass**" | `badge_from_document` — `verify/report.py`; the phrase is the first sentence under `docs/docs/verify.md#what-the-badge-means` | `test_T119_the_rendered_badge_text_is_exactly_CTRLRun_verified_N_over_M`, `test_T119_the_link_target_carries_the_exact_phrase` |
| "It does not mean secure, safe, compliant, certified or audited" | Those words appear in `docs/docs/verify.md` only inside the sentence that refuses them, and nowhere in the badge, the summary, `action.yml` or the workflow | `test_T119_no_claim_uses_the_forbidden_vocabulary`, `test_T119_the_action_and_the_workflow_make_no_forbidden_claim` |
| "There is a GitHub Action" | `action.yml` at the repository root — composite, one verify run, summary and badge rendered from its JSON | `test_T118_the_action_is_a_composite_action_at_the_repository_root`, and CI's own `verify` job against both example configurations |
Expand Down
Binary file added docs/images/demo-poster.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/demo.mp4
Binary file not shown.
Loading