diff --git a/assets/images/rook/commands/rook-command-agent.png b/assets/images/rook/commands/rook-command-agent.png index 4429eb65b..19d787f32 100644 Binary files a/assets/images/rook/commands/rook-command-agent.png and b/assets/images/rook/commands/rook-command-agent.png differ diff --git a/assets/images/rook/commands/rook-command-ask.png b/assets/images/rook/commands/rook-command-ask.png index 3b6d987fd..e2d3897e1 100644 Binary files a/assets/images/rook/commands/rook-command-ask.png and b/assets/images/rook/commands/rook-command-ask.png differ diff --git a/assets/images/rook/commands/rook-command-auth.png b/assets/images/rook/commands/rook-command-auth.png index d53498d27..fb56ced07 100644 Binary files a/assets/images/rook/commands/rook-command-auth.png and b/assets/images/rook/commands/rook-command-auth.png differ diff --git a/assets/images/rook/commands/rook-command-docs.png b/assets/images/rook/commands/rook-command-docs.png index fbebef6de..e799506cc 100644 Binary files a/assets/images/rook/commands/rook-command-docs.png and b/assets/images/rook/commands/rook-command-docs.png differ diff --git a/assets/images/rook/commands/rook-command-doctor.png b/assets/images/rook/commands/rook-command-doctor.png index a625799fe..e06111ee9 100644 Binary files a/assets/images/rook/commands/rook-command-doctor.png and b/assets/images/rook/commands/rook-command-doctor.png differ diff --git a/assets/images/rook/commands/rook-command-env.png b/assets/images/rook/commands/rook-command-env.png index 0a9d64122..8adcd00a5 100644 Binary files a/assets/images/rook/commands/rook-command-env.png and b/assets/images/rook/commands/rook-command-env.png differ diff --git a/assets/images/rook/commands/rook-command-explore.png b/assets/images/rook/commands/rook-command-explore.png index e440f1db0..ef5b53b7b 100644 Binary files a/assets/images/rook/commands/rook-command-explore.png and b/assets/images/rook/commands/rook-command-explore.png differ diff --git a/assets/images/rook/commands/rook-command-export.png b/assets/images/rook/commands/rook-command-export.png index 5d20a73e2..2bf29a035 100644 Binary files a/assets/images/rook/commands/rook-command-export.png and b/assets/images/rook/commands/rook-command-export.png differ diff --git a/assets/images/rook/commands/rook-command-generate.png b/assets/images/rook/commands/rook-command-generate.png index 23f7640b4..bae8e00ca 100644 Binary files a/assets/images/rook/commands/rook-command-generate.png and b/assets/images/rook/commands/rook-command-generate.png differ diff --git a/assets/images/rook/commands/rook-command-guide.png b/assets/images/rook/commands/rook-command-guide.png index 86b2b3269..0f50f59e4 100644 Binary files a/assets/images/rook/commands/rook-command-guide.png and b/assets/images/rook/commands/rook-command-guide.png differ diff --git a/assets/images/rook/commands/rook-command-help.png b/assets/images/rook/commands/rook-command-help.png index a34f66242..9900eec59 100644 Binary files a/assets/images/rook/commands/rook-command-help.png and b/assets/images/rook/commands/rook-command-help.png differ diff --git a/assets/images/rook/commands/rook-command-login.png b/assets/images/rook/commands/rook-command-login.png index e98ea8847..53069dbb7 100644 Binary files a/assets/images/rook/commands/rook-command-login.png and b/assets/images/rook/commands/rook-command-login.png differ diff --git a/assets/images/rook/commands/rook-command-logout.png b/assets/images/rook/commands/rook-command-logout.png index 137b2b45e..e781cebed 100644 Binary files a/assets/images/rook/commands/rook-command-logout.png and b/assets/images/rook/commands/rook-command-logout.png differ diff --git a/assets/images/rook/commands/rook-command-mcp.png b/assets/images/rook/commands/rook-command-mcp.png index 7853110f0..530598292 100644 Binary files a/assets/images/rook/commands/rook-command-mcp.png and b/assets/images/rook/commands/rook-command-mcp.png differ diff --git a/assets/images/rook/commands/rook-command-plan.png b/assets/images/rook/commands/rook-command-plan.png index 7fecec19e..70298fc77 100644 Binary files a/assets/images/rook/commands/rook-command-plan.png and b/assets/images/rook/commands/rook-command-plan.png differ diff --git a/assets/images/rook/commands/rook-command-profile.png b/assets/images/rook/commands/rook-command-profile.png index 4dd617fe0..d59fe1543 100644 Binary files a/assets/images/rook/commands/rook-command-profile.png and b/assets/images/rook/commands/rook-command-profile.png differ diff --git a/assets/images/rook/commands/rook-command-project.png b/assets/images/rook/commands/rook-command-project.png index e95c3a9b7..93fccebb2 100644 Binary files a/assets/images/rook/commands/rook-command-project.png and b/assets/images/rook/commands/rook-command-project.png differ diff --git a/assets/images/rook/commands/rook-command-report.png b/assets/images/rook/commands/rook-command-report.png index 4e480c91e..904f22570 100644 Binary files a/assets/images/rook/commands/rook-command-report.png and b/assets/images/rook/commands/rook-command-report.png differ diff --git a/assets/images/rook/commands/rook-command-run.png b/assets/images/rook/commands/rook-command-run.png index 597bc3ecc..1c8d8f091 100644 Binary files a/assets/images/rook/commands/rook-command-run.png and b/assets/images/rook/commands/rook-command-run.png differ diff --git a/assets/images/rook/commands/rook-command-runs.png b/assets/images/rook/commands/rook-command-runs.png index d2a9f2cbc..8a345ec02 100644 Binary files a/assets/images/rook/commands/rook-command-runs.png and b/assets/images/rook/commands/rook-command-runs.png differ diff --git a/assets/images/rook/commands/rook-command-scenarios.png b/assets/images/rook/commands/rook-command-scenarios.png index 1b7306264..50f67034a 100644 Binary files a/assets/images/rook/commands/rook-command-scenarios.png and b/assets/images/rook/commands/rook-command-scenarios.png differ diff --git a/assets/images/rook/commands/rook-command-status.png b/assets/images/rook/commands/rook-command-status.png index 0072ca46e..50b8275b1 100644 Binary files a/assets/images/rook/commands/rook-command-status.png and b/assets/images/rook/commands/rook-command-status.png differ diff --git a/assets/images/rook/commands/rook-command-sync.png b/assets/images/rook/commands/rook-command-sync.png index 43d26717e..8cb159938 100644 Binary files a/assets/images/rook/commands/rook-command-sync.png and b/assets/images/rook/commands/rook-command-sync.png differ diff --git a/assets/images/rook/commands/rook-command-ui.png b/assets/images/rook/commands/rook-command-ui.png index a0e568b4d..f06802856 100644 Binary files a/assets/images/rook/commands/rook-command-ui.png and b/assets/images/rook/commands/rook-command-ui.png differ diff --git a/assets/images/rook/commands/rook-command-update.png b/assets/images/rook/commands/rook-command-update.png index 820185846..a479f1e20 100644 Binary files a/assets/images/rook/commands/rook-command-update.png and b/assets/images/rook/commands/rook-command-update.png differ diff --git a/assets/images/rook/commands/rook-command-whoami.png b/assets/images/rook/commands/rook-command-whoami.png index 57af64777..be9b65ce1 100644 Binary files a/assets/images/rook/commands/rook-command-whoami.png and b/assets/images/rook/commands/rook-command-whoami.png differ diff --git a/assets/images/rook/commands/rook-reference-doctor.png b/assets/images/rook/commands/rook-reference-doctor.png index 9c6765fed..fd07eba86 100644 Binary files a/assets/images/rook/commands/rook-reference-doctor.png and b/assets/images/rook/commands/rook-reference-doctor.png differ diff --git a/assets/images/rook/guides/rook-tui-agent-picker.png b/assets/images/rook/guides/rook-tui-agent-picker.png index 55e3634b0..35263e077 100644 Binary files a/assets/images/rook/guides/rook-tui-agent-picker.png and b/assets/images/rook/guides/rook-tui-agent-picker.png differ diff --git a/assets/images/rook/guides/rook-tui-env-values.png b/assets/images/rook/guides/rook-tui-env-values.png index 78d185257..b4ee860f8 100644 Binary files a/assets/images/rook/guides/rook-tui-env-values.png and b/assets/images/rook/guides/rook-tui-env-values.png differ diff --git a/assets/images/rook/guides/rook-tui-explore-confirm.png b/assets/images/rook/guides/rook-tui-explore-confirm.png index 8be14bc15..d223bf6f8 100644 Binary files a/assets/images/rook/guides/rook-tui-explore-confirm.png and b/assets/images/rook/guides/rook-tui-explore-confirm.png differ diff --git a/assets/images/rook/guides/rook-tui-generate-plan.png b/assets/images/rook/guides/rook-tui-generate-plan.png index e07821b23..698c09e75 100644 Binary files a/assets/images/rook/guides/rook-tui-generate-plan.png and b/assets/images/rook/guides/rook-tui-generate-plan.png differ diff --git a/assets/images/rook/guides/rook-tui-generated-scenarios.png b/assets/images/rook/guides/rook-tui-generated-scenarios.png index 5e29aa565..d5727d062 100644 Binary files a/assets/images/rook/guides/rook-tui-generated-scenarios.png and b/assets/images/rook/guides/rook-tui-generated-scenarios.png differ diff --git a/assets/images/rook/guides/rook-tui-get-started.png b/assets/images/rook/guides/rook-tui-get-started.png index 6312b8de1..8e33de63a 100644 Binary files a/assets/images/rook/guides/rook-tui-get-started.png and b/assets/images/rook/guides/rook-tui-get-started.png differ diff --git a/assets/images/rook/guides/rook-tui-local-ui.png b/assets/images/rook/guides/rook-tui-local-ui.png index 804ab179d..ce196b22d 100644 Binary files a/assets/images/rook/guides/rook-tui-local-ui.png and b/assets/images/rook/guides/rook-tui-local-ui.png differ diff --git a/assets/images/rook/guides/rook-tui-mcp-list.png b/assets/images/rook/guides/rook-tui-mcp-list.png index dd649adc7..c3ba84996 100644 Binary files a/assets/images/rook/guides/rook-tui-mcp-list.png and b/assets/images/rook/guides/rook-tui-mcp-list.png differ diff --git a/assets/images/rook/guides/rook-tui-profile-authoring.png b/assets/images/rook/guides/rook-tui-profile-authoring.png index fbc844b33..a03f30d20 100644 Binary files a/assets/images/rook/guides/rook-tui-profile-authoring.png and b/assets/images/rook/guides/rook-tui-profile-authoring.png differ diff --git a/assets/images/rook/guides/rook-tui-profile-picker.png b/assets/images/rook/guides/rook-tui-profile-picker.png index eed011072..5d799843f 100644 Binary files a/assets/images/rook/guides/rook-tui-profile-picker.png and b/assets/images/rook/guides/rook-tui-profile-picker.png differ diff --git a/assets/images/rook/guides/rook-tui-profile-verified.png b/assets/images/rook/guides/rook-tui-profile-verified.png index 9bd92d7cc..91865f11b 100644 Binary files a/assets/images/rook/guides/rook-tui-profile-verified.png and b/assets/images/rook/guides/rook-tui-profile-verified.png differ diff --git a/assets/images/rook/guides/rook-tui-report.png b/assets/images/rook/guides/rook-tui-report.png index a2c2ee82b..0fccc35de 100644 Binary files a/assets/images/rook/guides/rook-tui-report.png and b/assets/images/rook/guides/rook-tui-report.png differ diff --git a/assets/images/rook/guides/rook-tui-run-plan.png b/assets/images/rook/guides/rook-tui-run-plan.png index 1c79bbbc9..06f85596a 100644 Binary files a/assets/images/rook/guides/rook-tui-run-plan.png and b/assets/images/rook/guides/rook-tui-run-plan.png differ diff --git a/assets/images/rook/guides/rook-tui-run-progress.png b/assets/images/rook/guides/rook-tui-run-progress.png index af7af7eed..e19d04726 100644 Binary files a/assets/images/rook/guides/rook-tui-run-progress.png and b/assets/images/rook/guides/rook-tui-run-progress.png differ diff --git a/assets/images/rook/guides/rook-tui-scenarios.png b/assets/images/rook/guides/rook-tui-scenarios.png index 08d0f0a88..55b1006c3 100644 Binary files a/assets/images/rook/guides/rook-tui-scenarios.png and b/assets/images/rook/guides/rook-tui-scenarios.png differ diff --git a/assets/images/rook/guides/rook-tui-sync.png b/assets/images/rook/guides/rook-tui-sync.png index 93b30c286..ca0b65971 100644 Binary files a/assets/images/rook/guides/rook-tui-sync.png and b/assets/images/rook/guides/rook-tui-sync.png differ diff --git a/assets/images/rook/rook-local-attack-intent.png b/assets/images/rook/rook-local-attack-intent.png new file mode 100644 index 000000000..4f0504f0e Binary files /dev/null and b/assets/images/rook/rook-local-attack-intent.png differ diff --git a/assets/images/rook/rook-local-coverage-gaps.png b/assets/images/rook/rook-local-coverage-gaps.png new file mode 100644 index 000000000..2aa2b6d69 Binary files /dev/null and b/assets/images/rook/rook-local-coverage-gaps.png differ diff --git a/docs/agent-assurance-ci-cd.md b/docs/agent-assurance-ci-cd.md index 4b4fbec7d..6bd9aefa1 100644 --- a/docs/agent-assurance-ci-cd.md +++ b/docs/agent-assurance-ci-cd.md @@ -84,7 +84,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-11" + "dateModified": "2026-10-13" }) }} /> @@ -245,7 +245,7 @@ Use an explicit shell error policy, such as set -euo pipefail in Ba ## Gate on Completion and Verdicts -rook run --json produces one JSON document on stdout, not NDJSON. The document includes ok, run_id, halted, and, when available, report.totals. +rook run --json produces one JSON document on stdout, not NDJSON; see [structured output](/support/docs/agent-assurance-command-reference/#structured-output-and-progress) for the other commands that do. The document includes ok, run_id, halted, and, when available, report.totals. A process exit code of zero is **not** an agent-quality gate. The current run/report paths do not implement the older documented 0/1/2/3/4 verdict mapping. A halted run or a run with failed verdicts can still produce an outcome document. Inspect its contents. diff --git a/docs/agent-assurance-command-reference.md b/docs/agent-assurance-command-reference.md index c451d6b84..ae0196896 100644 --- a/docs/agent-assurance-command-reference.md +++ b/docs/agent-assurance-command-reference.md @@ -96,7 +96,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-25" + "dateModified": "2026-10-13" }) }} /> @@ -138,7 +138,7 @@ rook profile add --help Inside the terminal, use `/help run`. Do not paste slash commands into a normal shell. -The screenshots below were captured inside the **Rook 0.1.5 interactive TUI**, using /help <command> in a saved demo workspace. They show command help, not completed paid operations. Only the Rook content is captured; no desktop, window title, or browser chrome is included. +The screenshots below were captured inside the **Rook 0.1.11 interactive TUI**, using /help <command> in the quickstart workspace. They show command help, not completed paid operations. Only the Rook content is captured; no desktop, window title, or browser chrome is included. ## Terminal and Help {#terminal-and-help} @@ -173,7 +173,7 @@ Run Rook from the intended workspace. The current directory selects the local rook ask to ask a question or describe a testing task in natural language. This is Rook's own model-backed operation and can spend Rook credits; it is different from asking a coding assistant that has loaded the Rook skill. -Rook ask command help showing JSON and verbose options +Rook ask command help showing JSON and verbose options #### Syntax {#rook-ask-syntax} @@ -202,7 +202,7 @@ For deterministic automation, prefer the explicit command and flags. Natural lan Use /guide when you know you want to test an agent but do not yet know which command comes next. -Rook guide command help +Rook guide command help #### Syntax {#guide-syntax} @@ -226,7 +226,7 @@ The guide also lists the commands that spend credits (explore, /help to list the current command surface or inspect one command in full. -Rook help command help +Rook help command help #### Syntax {#help-syntax} @@ -248,9 +248,9 @@ Help, slash-command completion, and shell parsing are derived from the same comm ### /docs {#docs} -Use /docs to print and open the public Rook repository. +Use /docs to print and open the Rook documentation site. -Rook docs command help showing the no-open option +Rook docs command help showing the no-open option #### Syntax {#docs-syntax} @@ -296,7 +296,7 @@ There is no rook exit shell command. Use /login when Rook has no stored credential or the existing token is invalid. -Rook login command help +Rook login command help #### Syntax {#login-syntax} @@ -345,7 +345,7 @@ If a browser cannot open, follow the URL or instruction printed by the command. Use /auth to verify the effective credentials against the Rook controller. -Rook auth command help showing the status subcommand +Rook auth command help showing the status subcommand #### Syntax {#auth-syntax} @@ -386,7 +386,7 @@ Stored authentication is shared by sessions using the same Rook home, profile, a Use rook whoami outside the interactive terminal to verify which TestMu AI account is authenticated. -Rook whoami command help +Rook whoami command help #### Syntax {#rook-whoami-syntax} @@ -425,7 +425,7 @@ Check ROOK_ENV and the exported LT_USERNAME/LT_A Use /logout to revoke the current token and remove stored Rook credentials. -Rook logout command help +Rook logout command help #### Syntax {#logout-syntax} @@ -478,7 +478,7 @@ Exported LT_USERNAME and LT_ACCESS_KEY are separate fr Use /plan to check the TestMu AI account plan and credit balance before generating or executing a suite. -Rook plan command help +Rook plan command help #### Syntax {#plan-syntax} @@ -521,7 +521,7 @@ Nothing in the project is changed. The command reads the authenticated account a Use /project to choose the TestMu AI project that owns discovered agents, versions, and runs in the current workspace. -Rook project command help showing use and create subcommands +Rook project command help showing use and create subcommands #### Syntax {#project-syntax} @@ -563,7 +563,7 @@ If access to the active project is revoked, Rook asks you to choose another proj Use /explore to tell Rook what local material describes your agent. The target can be a PRD, an office document, an image, a documentation folder, an agent source directory, or a complete local repository. -Rook explore command help with force and free-text guidance +Rook explore command help with force and free-text guidance #### Syntax {#explore-syntax} @@ -634,7 +634,7 @@ A PRD or knowledge base describes what should happen. It cannot prove which tool Use /agent when the selected project contains several discovered agents or when you need to confirm which agent later phases use. -Rook agent command help showing the use subcommand +Rook agent command help showing the use subcommand #### Syntax {#agent-syntax} @@ -670,7 +670,7 @@ Agent removal is intentionally not a command. Rook's project data is stored as r A profile names the reviewable hook scripts Rook uses to invoke a live agent. Use /profile to generate those scripts from a prompt, repair them from a failure, verify the target, inspect lifecycle phases, or select a profile. -Rook profile command help showing use, show, prompt-based add, fix, and test +Rook profile command help showing use, show, prompt-based add, fix, and test #### Syntax {#profile-syntax} @@ -712,7 +712,7 @@ Rook does not provide profile edit or remove commands. Profiles are plain files Use /generate after exploration to write test scenarios for the active agent's discovered features. -Rook generate command help with total, class, category, force, allow, JSON, and verbose options +Rook generate command help with total, class, category, force, allow, JSON, and verbose options #### Syntax {#generate-syntax} @@ -745,7 +745,7 @@ Generated files remain editable. A scenario whose origin is human is not silentl Use /scenarios to inspect the active agent's suite and curate what runs by default. -Rook scenarios command help showing list, exclude, include, and delete +Rook scenarios command help showing list, exclude, include, and delete #### Syntax {#scenarios-syntax} @@ -774,7 +774,7 @@ Pass IDs as separate arguments for include, exclude, and delete, for example /status to understand where the current machine stands before synchronizing or running tests. -Rook status command help showing agent and JSON options +Rook status command help showing agent and JSON options #### Syntax {#status-syntax} @@ -805,7 +805,7 @@ Status exits successfully even when the tree is not clean; the state is data, no Use /sync after exploration, generation, profile changes, or manual edits to record the local project tree upstream. -Rook sync command help showing agent and JSON options +Rook sync command help showing agent and JSON options #### Syntax {#sync-syntax} @@ -840,7 +840,7 @@ A timeline run requires the agent to have been synchronized at least once. When Use /run to plan a selection, execute the active profile's lifecycle hooks, collect evidence, and judge each acceptance criterion. -Rook run command help with lifecycle phases, continuation, selection, profile, test, resume, and RCA options +Rook run command help with lifecycle phases, continuation, selection, profile, test, resume, and RCA options #### Syntax {#run-syntax} @@ -906,7 +906,7 @@ The target's writes are real. Rook cannot roll them back. Use staging data and s Use /runs sync when a run completed locally but a network or service interruption prevented all verdicts from reaching upstream. -Rook runs command help showing the sync subcommand +Rook runs command help showing the sync subcommand #### Syntax {#runs-syntax} @@ -934,7 +934,7 @@ This command repairs result synchronization. Use /sync for agent sp Use /report to read a stored run from disk. Without a run ID, Rook uses the most recent run for the active agent. -Rook report command help showing run ID, RCA, and allow options +Rook report command help showing run ID, RCA, and allow options #### Syntax {#rook-report-syntax} @@ -1004,7 +1004,7 @@ Use rook ui to open synchronized results in the [Web UI](/support/d Use /ui to review synchronized results in the hosted TestMu AI application. Add --local to serve the evidence currently on disk. -Rook UI command help showing local and no-open options +Rook UI command help showing local and no-open options #### Syntax {#ui-syntax} @@ -1061,7 +1061,7 @@ The hosted application starts at **Projects**. Select the project and agent to r Use /env to manage tokens, endpoint values, and other variables referenced by profiles without writing literal secrets into project files. -Rook environment command help with list set show and remove +Rook environment command help with list set show and remove #### Syntax {#env-syntax} @@ -1119,7 +1119,7 @@ When /profile add finds a credential in supplied material, the gene Use /mcp to manage MCP servers that Rook can discover or use for read-only verification and controlled tool access. -Rook MCP command help with list enable disable and approve +Rook MCP command help with list, get, add, remove, enable, disable, and approve #### Interactive syntax {#mcp-interactive-syntax} @@ -1175,7 +1175,7 @@ Enabled MCP servers in this command remain Rook tools for discovery or independe Use /doctor as the first diagnostic when Rook cannot authenticate, select a project, reach a service, or start normal work. -Rook doctor command help +Rook doctor command help #### Syntax {#doctor-syntax} @@ -1214,7 +1214,7 @@ Use --session with a recorded Rook session ID to locate its diagnos Use /update to check for a newer public Rook release. It can also perform an upgrade for a recognized global npm or recorded shell installation, so treat it as an installation-changing command, not a read-only version check. -Rook update command help showing auto and JSON forms +Rook update command help showing auto and JSON forms #### Syntax {#update-syntax} @@ -1236,7 +1236,7 @@ The latest public release checked on October 13, 2026 is [0.1.11](https://github Export a local diagnostic bundle when a support investigation needs more than the error message. The shell command is rook export logs; in the TUI use /export logs. -Rook 0.1.5 interactive export help with output path and session selection options +Rook 0.1.11 interactive export help with output path and session selection options ```bash rook export logs --out ./rook-diagnostics.zip @@ -1288,7 +1288,7 @@ Active project and agent selections, profiles, scenarios, runs, credentials, and Only use a flag where `rook help ` lists it. -The plan, status, run, and normal report commands have structured output. Commands such as explore, generate, sync, profile operations, paid report --rca, and update can emit text even when they accept --json. Check the actual stdout before parsing it, then inspect the relevant saved files or make a separate structured read. +With --json, plan, status, run, a normal report, scenarios list, project --workspace, mcp, and ask write one JSON document to stdout. Commands such as explore, generate, sync, profile operations, paid report --rca, and update can emit text even when they accept --json. Check the actual stdout before parsing it, then inspect the relevant saved files or make a separate structured read. Keep stdout and stderr separate when saving JSON: do not use 2>&1 for a machine-readable result file. Refusals and parser errors can leave stdout empty. A failure document may contain error or reason; ok: true can accompany a discarded run, so it is not sufficient to establish success. See the [public headless contract](https://github.com/LambdaTest/rook/blob/main/skill-installer/skills/references/headless-contract.md). diff --git a/docs/agent-assurance-connect-and-explore-agents.md b/docs/agent-assurance-connect-and-explore-agents.md index 2d941a14c..4035652bd 100644 --- a/docs/agent-assurance-connect-and-explore-agents.md +++ b/docs/agent-assurance-connect-and-explore-agents.md @@ -127,7 +127,7 @@ Rook scans deterministically first, then gives its discovery subagent read tools This real TUI capture shows `/explore .` finding the public triage sample and pausing for registration. Read the discovery summary before choosing **yes**; arrow keys change the choice, Enter submits it, and Esc declines. The progress line shows the current task and credit use while the footer keeps the selected project visible. -Interactive exploration finding the public support triage agent and asking whether to register it before continuing analysis +Interactive exploration finding the public support triage agent and asking whether to register it before continuing analysis After approval, wait for agent and feature analysis to finish. Review the findings, then select the resulting agent with `/agent`. Discovery writes local records; it does not mean a profile has been verified, scenarios have been generated, or a run has passed. @@ -279,9 +279,9 @@ Rook also refuses two paths to keep read scope tight: Launch `rook` in your workspace, then enter `/agent` in the interactive TUI. The picker lists agents in the selected project. Type to filter, use the arrow keys to move, and press Enter to select an agent or Esc to go back. Check the active agent in the footer before exploring or running tests. -Rook interactive agent picker with CommerceCare selected, search, keyboard controls, and the active-project footer +Rook interactive agent picker with the triage-service agent active, search, keyboard controls, and the active-project footer -This saved demo has one agent. Projects containing several agents show more choices in the same picker. You can also select a known agent ID directly: +This quickstart project has one agent. Projects containing several agents show more choices in the same picker. You can also select a known agent ID directly: diff --git a/docs/agent-assurance-mcp.md b/docs/agent-assurance-mcp.md index 4a5fbbc9f..825b4cab6 100644 --- a/docs/agent-assurance-mcp.md +++ b/docs/agent-assurance-mcp.md @@ -209,7 +209,7 @@ rook mcp list --json Each row reports the server name, origin, transport, state, source, and connection or tool status when available. -Rook interactive MCP listing reporting no configured or discovered servers for the HTTP-only triage sample +Rook interactive MCP listing reporting no configured or discovered servers for the HTTP-only triage sample This actual first-use capture has no MCP servers: the triage sample is reached by HTTP, not MCP. It is an empty configuration, not a failed connection. After adding a server, repeat `/mcp list` and inspect it with `/mcp get ` before approving or using it. Declaring a server alone does not prove its tools work. diff --git a/docs/agent-assurance-overview.md b/docs/agent-assurance-overview.md index e2eb5b783..304eccfcb 100644 --- a/docs/agent-assurance-overview.md +++ b/docs/agent-assurance-overview.md @@ -102,7 +102,7 @@ import ThemedImage from '@theme/ThemedImage'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -130,9 +130,9 @@ Commands and stored file formats can change. Test against a disposable or stagin Launch `rook` from your agent workspace to open the interactive terminal UI (TUI). Enter slash commands such as `/agent`, `/profile`, and `/report` at its prompt; commands beginning with `rook` belong in your regular shell. -Rook 0.1.11 interactive startup with the pixel rook mascot and ROOK banner, the Explore, Generate, Run, and Report journey, Get Started commands, and a sign-in prompt +Rook 0.1.11 interactive startup with the pixel rook mascot and ROOK banner, the Explore, Generate, Run, and Report journey, Get Started commands, and the project chooser after sign-in -This TUI capture shows a new session before sign-in and before an agent has been explored. Sign in with `/login`, then select a project with the arrow keys and Enter. The [quickstart](/support/docs/agent-assurance-quickstart/) shows the actual exploration, profile authoring, generation, approval, execution, and report screens in sequence. +This TUI capture shows a signed-in session in a new workspace, before an agent has been explored. If you are not signed in yet, enter `/login` first; then select a project with the arrow keys and Enter. The [quickstart](/support/docs/agent-assurance-quickstart/) shows the actual exploration, profile authoring, generation, approval, execution, and report screens in sequence. ## Agent Assurance and Agent Testing {#conversation-testing-and-autonomous-testing} diff --git a/docs/agent-assurance-quickstart.md b/docs/agent-assurance-quickstart.md index b654942ba..1ba8215f5 100644 --- a/docs/agent-assurance-quickstart.md +++ b/docs/agent-assurance-quickstart.md @@ -98,7 +98,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -114,7 +114,7 @@ Install → launch Rook → sign in → select a project → generate and review scenarios → sync → approve one run → inspect evidence ``` -The interactive workflow and terminal screenshots were tested with **Rook 0.1.5** on September 28, 2026. Discovery, profile generation, scenario generation, and judging use TestMu AI credits; even a small suite can involve several model calls. Review the proposed work and credit balance before approving it. The browser examples below are separately identified saved runs. +The interactive workflow and terminal screenshots were tested with **Rook 0.1.11** on October 13, 2026. Discovery, profile generation, scenario generation, and judging use TestMu AI credits; even a small suite can involve several model calls. Review the proposed work and credit balance before approving it. The browser examples below are separately identified saved runs. Already have a live agent? Follow the same sequence with your own [source or requirements](/support/docs/agent-assurance-connect-and-explore-agents/) and [invocation profile](/support/docs/rook-profiles-and-hooks/#add-a-profile-interactively). @@ -140,7 +140,7 @@ npm install -g @testmuai/rook PowerShell on Windows x64: ```powershell -npm.cmd install -g @testmuai/rook@0.1.11 +npm.cmd install -g @testmuai/rook ``` Then check your installation: @@ -208,7 +208,7 @@ Invoke-RestMethod -Uri 'http://127.0.0.1:19110/v1/triage' -Method Post -ContentT The response should say T-1043 triaged as S1 and assigned to platform. and include the recorded tool steps. -### 2. Open the TUI, Sign In, and Explore {#open-the-tui-and-explore} +### 2. Open the TUI, sign in, and explore {#open-the-tui-and-explore} Open the sample folder in your Rook terminal: @@ -228,7 +228,7 @@ rook.cmd The Rook banner, command prompt, and footer confirm that you are in interactive mode. If you are already signed in, Rook can open the project chooser automatically: -Fresh Rook 0.1.11 interactive session showing the mascot banner, the Explore, Generate, Run, and Report journey, and Get Started commands before sign-in and discovery +Fresh Rook 0.1.11 interactive session showing the mascot banner, the Explore, Generate, Run, and Report journey, Get Started commands, and the project chooser before discovery If not signed in, enter `/login`, complete the browser flow, and return to this terminal. Use `/doctor` to check readiness and `/plan` to check credits. At a chooser, use arrow keys and Enter; Esc goes back. At the prompt, Tab completes commands. The remaining commands belong **inside this TUI**, not in your shell. @@ -250,7 +250,7 @@ Run exploration only after the intended test project is selected: Rook reads the sample and shows discovery progress. When it proposes an agent, review the name, source path, and purpose before choosing **yes** to register it. This is an actual exploration of the public sample: -Rook exploration finding the support triage agent and asking whether to register it, with yes and no choices and a live progress footer +Rook exploration finding the support triage agent and asking whether to register it, with yes and no choices and a live progress footer Wait for exploration to finish, then open the agent picker: @@ -278,7 +278,7 @@ Use concurrency 1. Rook generates the hook and verifies it against the running sample. Approve only the intended local HTTP call and script work; do not approve server startup, dependency installation, or unrelated commands. Wait for the result before continuing. -Actual TUI profile-generation conversation with the triage HTTP request description and an approval prompt for the generated hook script +Actual TUI profile-generation conversation with the triage HTTP request description and an approval prompt for the generated hook script This checkpoint shows authoring in progress. Read the exact requested file or command, then approve once with **yes** if it matches the sample setup; the prompt is not evidence that verification has passed. @@ -294,7 +294,7 @@ Inspect and test the generated result inside the TUI: Review the generated profiles/local-triage.yaml and scripts/ files below the active agent directory. A successful probe should return the real answer and four tool calls. Stop here if the probe fails; generation and testing will not repair a broken connection automatically. -Rook completing profile authoring after a successful triage probe, reporting four mapped tool calls and selecting local-triage as the active profile +Rook completing profile authoring after a successful triage probe, reporting four mapped tool calls and selecting local-triage as the active profile This is the successful connection checkpoint: the hook answered, the generated profile was saved, and the footer now includes `local-triage`. Profile verification is not a scenario verdict. @@ -308,7 +308,7 @@ The sample needs only an execute hook. Use [additional lifecycle ho Before writing scenarios, Rook shows the plan and offers **proceed**, **discard**, or **change**. Check both the included cases and the features it intentionally leaves uncovered: -Rook's actual generation plan for two triage scenarios, with included and excluded features and proceed, discard, or change choices +Rook's actual generation plan for two triage scenarios, with included and excluded features and proceed, discard, or change choices Choose **proceed** only if the scope matches the two requested tickets. Wait for writing to finish, then inspect the saved suite: @@ -316,10 +316,27 @@ Choose **proceed** only if the scope matches the two requested tickets. Wait for /scenarios list ``` -Rook listing the two generated triage scenarios, their functional happy-path classification, four criteria each, and runnability against local-triage +Rook listing the two generated triage scenarios with their functional happy-path classification, feature, criteria count, and runnability against local-triage The count is a generation target, not a guarantee. In this capture, two scenarios were written and both are runnable against `local-triage`; neither has passed yet. Review the resulting files before running them. Check that every criterion can be evaluated from the answer or the calls your hook actually returns. For example, a JSON-path check against $.steps cannot inspect that field if your hook returned only an answer string. +Also read each scenario's `calls` list. A `called_with` check needs the arguments to match; with empty `arguments: {}` there is nothing to compare, and the run reports that call as **Unable to Verify** even when the agent made it. In this capture, both generated scenarios had such checks. Add the arguments you expect, or use `called` when only the call matters, then save the file: + +```yaml +calls: + - tool: get_ticket + expect: called_with + arguments: { ticket_id: T-1043 } + - tool: set_severity + expect: called_with + arguments: { ticket_id: T-1043, severity: S1 } + - tool: assign_team + expect: called_with + arguments: { ticket_id: T-1043, team: platform } + - tool: reply_to_customer + expect: called +``` + Choose the scenario for **T-1043**. Do not assume it will always be SC-002. ### 5. Sync, then run one scenario @@ -330,21 +347,21 @@ Choose the scenario for **T-1043**. Do not assume it will always be SC-002 Wait for the agent to be recorded upstream before starting the run: -Rook synchronizing the triage agent and confirming one agent recorded upstream +Rook synchronizing the triage agent and confirming one agent recorded upstream ```text /run --only --profile local-triage --concurrency 1 --name first-triage-run ``` -Replace the placeholder with the generated scenario ID. Review the selected scenario and active profile before proceeding. This plan selects only `SC-002` and explicitly skips `SC-001`: +Replace the placeholder with the generated scenario ID. Review the selected scenario and active profile before proceeding. This plan selects only `SC-001` and explicitly skips `SC-002`: -Interactive run plan selecting one triage scenario, skipping the other, and waiting for proceed, discard, or change +Interactive run plan selecting one triage scenario, skipping the other, and waiting for proceed, discard, or change Choose **proceed** to execute this reviewed scope, **discard** to run nothing, or **change** to revise it. Read any additional permission prompts before approving. The plan is not a fixed credit quote; check `/plan` before starting. While Rook runs, the scenario row shows its current phase. This capture is in **judging**, with `0/1` completed; it is not a final verdict: -Live Rook test run showing SC-002 in the judging phase with evidence reads and zero of one scenarios completed +Live Rook test run showing SC-001 in the judging phase, the judge's notes, and zero of one scenarios completed Wait for completion before opening the report. Press Esc only if you intend to interrupt; stopping Rook does not undo actions already performed by the target. @@ -358,9 +375,9 @@ First read the report, then choose either UI: /report ``` -Completed interactive report for first-triage-run showing one executed scenario, one pass, zero failures, and a warning about narrow feature coverage +Completed interactive report for first-triage-run showing one executed scenario, one pass, zero failures, zero unable to verify, and the run's evidence directory -The report names the saved run and its evidence directory. Check the counts, not just the percentage: this run executed one scenario and left four discovered feature areas untested. Reading `/report` does not rerun the target; do not add `--rca` unless you intend to request additional paid analysis. +The report names the saved run and its evidence directory. Check the counts, not just the percentage: this run executed one scenario, and four of the five discovered features were not tested. Reading `/report` does not rerun the target; do not add `--rca` unless you intend to request additional paid analysis. | Review on this machine | Review with your team | |---|---| diff --git a/docs/agent-assurance-results-and-evidence.md b/docs/agent-assurance-results-and-evidence.md index eefa303f4..b6dba3f1d 100644 --- a/docs/agent-assurance-results-and-evidence.md +++ b/docs/agent-assurance-results-and-evidence.md @@ -84,7 +84,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -232,11 +232,29 @@ Launch `rook` in the workspace containing your saved run. In the interactive TUI Replace `` with the saved run's ID. `/report` without an ID reads the latest local run. If Rook asks you to sign in, use `/login` and retry the report command. Reading an existing report does not rerun the agent; adding `--rca` can start paid analysis. -This is the completed report from the Rook 0.1.5 [interactive quickstart](/support/docs/agent-assurance-quickstart/), not a help screen: +This is the completed report from the Rook 0.1.11 [interactive quickstart](/support/docs/agent-assurance-quickstart/), not a help screen: -Rook's saved first-triage-run report showing one executed and passed scenario, no unverifiable results, and four untested feature areas +Rook's saved first-triage-run report showing one executed and passed scenario, no unverifiable results, credits, agent latency, and the evidence directory -Read the run ID and name, execution counts, verdicts, and coverage warning together. When the run includes adversarial scenarios, the report adds an **OWASP red-team coverage** table that maps the scenario inventory to OWASP LLM and Agentic entries, and a **Known coverage gaps (unverified)** list. A control with no mapped scenario remains unverified. `100% passed of 1 decided` is one passing case, not complete coverage of the agent. This September 28 terminal run is separate from the saved browser examples above. Use `/help report` for additional output and RCA options. +Read the run ID and name, execution counts, and verdicts together. When the run includes adversarial scenarios, the report adds an **OWASP red-team coverage** table that maps the scenario inventory to OWASP LLM and Agentic entries, and a **Known coverage gaps (unverified)** list. A control with no mapped scenario remains unverified. `1 of 1 executed · 100% passed` is one passing case, not complete coverage of the agent. This October 13 terminal run is separate from the saved browser examples above. Use `/help report` for additional output and RCA options. + +With adversarial scenarios in the inventory, the same report includes the coverage table. This excerpt is from a Rook 0.1.11 run of the triage-service sample on October 13, 2026, with rows elided: + +```text +OWASP red-team coverage (scenario inventory; unmapped controls remain unverified) +risk | generated | executed | reached | verified | Pass | Fail | Unable to Verify +redteam | 4 | 0 | 0 | 0 | 0 | 0 | 4 +owasp:asi01 | 1 | 0 | 0 | 0 | 0 | 0 | 1 +owasp:llm01 | 1 | 0 | 0 | 0 | 0 | 0 | 1 +owasp:llm02 | 2 | 0 | 0 | 0 | 0 | 0 | 2 +owasp:llm07 | 1 | 0 | 0 | 0 | 0 | 0 | 1 +... +Known coverage gaps (unverified): + F-001 · cross-session-memory-poisoning: no scenario generated; applicability remains unverified + F-003 · retrieval-boundary: no scenario generated; applicability remains unverified +``` + +Read the columns left to right. **generated** counts attack scenarios in the inventory and **executed** the ones that ran. **reached** counts attacks with grounded evidence that the mapped control was exercised, and **verified** those that ended in a grounded result. **Pass** means the attack was defended and **Fail** that it compromised the agent; anything else, including an attack that never ran, is **Unable to Verify**. In this run all four attacks were written but marked not runnable, so none executed. A zero row means no scenario covers that entry, not that the agent is safe against it. For shell-based output or automation: diff --git a/docs/agent-assurance-run-tests.md b/docs/agent-assurance-run-tests.md index 040a6dffd..c7dd403e1 100644 --- a/docs/agent-assurance-run-tests.md +++ b/docs/agent-assurance-run-tests.md @@ -84,7 +84,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -207,7 +207,7 @@ Use higher concurrency only when the target isolates sessions and fixtures. Conc First review the run plan. This actual [quickstart](/support/docs/agent-assurance-quickstart/) capture selects one scenario, excludes the other, and waits for a decision: -Rook waiting for approval of a one-scenario run plan, with the excluded scenario and proceed, discard, and change choices +Rook waiting for approval of a one-scenario run plan, with the excluded scenario and proceed, discard, and change choices Use the arrow keys and Enter to choose **proceed**, **discard**, or **change**. Check the active project, agent, and profile in the footer. A selected plan does not prove that the endpoint is safe: inspect the profile and its scripts first. The plan is not a fixed credit quote. @@ -226,9 +226,9 @@ Deny rules override allow rules, and more specific rules win. Permission state i ## Follow Run Progress -After approval, each active scenario shows its current phase. This is an actual `SC-002` execution against the public triage fixture, captured while Rook was judging the response and recorded hook evidence: +After approval, each active scenario shows its current phase. This is an actual `SC-001` execution against the public triage fixture, captured while Rook was judging the response and recorded hook evidence: -Rook's interactive run progress with SC-002 in judging, evidence reads, a completion counter, and active project and profile +Rook's interactive run progress with SC-001 in judging, the judge's notes, a completion counter, and the active project and profile `0/1` means the scenario has not finished; it does not mean it failed. Wait for completion, then enter `/report` to inspect pass, fail, unverifiable, and unjudged counts. See [results and evidence](/support/docs/agent-assurance-results-and-evidence/#print-or-export-a-report) for the completed report from this demo. diff --git a/docs/agent-assurance-scenarios.md b/docs/agent-assurance-scenarios.md index 78ea62ab7..e9069536f 100644 --- a/docs/agent-assurance-scenarios.md +++ b/docs/agent-assurance-scenarios.md @@ -84,7 +84,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -120,7 +120,7 @@ Review the steps and estimated credits before proceeding. For a first run, use a narrow generation request such as the [two-scenario quickstart](/support/docs/agent-assurance-quickstart/#test-your-first-agent). This actual TUI plan includes two features and explains why the other three are excluded: -Interactive Rook generation plan showing two included triage cases, three excluded features, and proceed, discard, or change controls +Interactive Rook generation plan showing two included triage cases, three excluded features, and proceed, discard, or change controls Use the arrow keys and Enter to **proceed** with writing, **discard** the plan without writing scenarios, or **change** the request. After generation completes, use `/scenarios list` and read the resulting criteria before running. A plan is not yet a saved suite or a test result. @@ -134,11 +134,11 @@ Rook has three classes and 16 categories. | `non_functional` | `token_economy`, `quality` | Cost, completeness, tone, and format | | `adversarial` | `prompt_injection`, `jailbreak`, `data_exfiltration`, `pii_leakage`, `harmful_content`, `hallucination`, `hijacking`, `policy_violation`, `technical_injection` | Attacks, unsafe behavior, leakage, invention, off-task behavior, and injection | -A plain `generate` covers the functional and adversarial classes. Ask for `non_functional` with `--class`; a `token_economy` scenario runs only when the profile reports usage. Since 0.1.7, Rook no longer generates the earlier `performance` and `reliability` categories. +A plain `generate` plans for the functional and adversarial classes, but the planner can decide that no attack is warranted for a small agent. Ask for attacks explicitly with `--class adversarial`, and check the report's coverage gaps for attack patterns that got no scenario. Ask for `non_functional` with `--class`; a `token_economy` scenario runs only when the profile reports usage. Since 0.1.7, Rook no longer generates the earlier `performance` and `reliability` categories. ## Red-Team Coverage and Standards {#red-team-standards} -Adversarial scenarios are built from 25 attack patterns. Since 0.1.11, each generated attack records the standards it exercises in a `redteam` block: the [OWASP Top 10 for LLM Applications](https://genai.owasp.org/llm-top-10/) (2025, `LLM01`–`LLM10`), the OWASP Top 10 for Agentic Applications (2026, `ASI01`–`ASI10`), and MITRE ATLAS techniques. Scenario tags such as `owasp:llm01` carry the same mapping. +Adversarial scenarios are built from 25 attack patterns. Since 0.1.11, each generated attack records the standards it exercises in a `redteam` block: the [OWASP Top 10 for LLM Applications](https://genai.owasp.org/llm-top-10/) (2025, `LLM01`–`LLM10`), the [OWASP Top 10 for Agentic Applications](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/) (2026, `ASI01`–`ASI10`), and MITRE ATLAS techniques. Scenario tags such as `owasp:llm01` carry the same mapping. ```yaml class: adversarial @@ -159,6 +159,10 @@ The `goal` stays the payload delivered to the target; `objective` and `target_co Patterns that need seeded data, independently collected evidence, or a fresh session are skipped until the profile supplies the matching hook; see [hooks for red-team scenarios](/support/docs/rook-profiles-and-hooks/#red-team-hooks). The run report maps what ran to each standard; see [Print or Export a Report](/support/docs/agent-assurance-results-and-evidence/#print-or-export-a-report). +In either viewer, an adversarial scenario's page shows its **Attack intent**: the standards it maps to, the attack pattern, the objective, how the payload is delivered, and the control under test. This local view is from the Quickstart's triage-service sample on Rook 0.1.11: + +Local SC-010 prompt-injection scenario with the Attack intent panel listing OWASP ASI01 Agent Goal Hijack, OWASP LLM01 Prompt Injection, MITRE ATLAS AML.T0051.001, the objective, delivery, and target control + ## Control the Suite Size and Focus Request an approximate total: @@ -230,9 +234,9 @@ Launch `rook` in your workspace, then list scenarios inside its interactive TUI: /scenarios list ``` -Rook interactive scenario listing with twelve CommerceCare scenarios, runnability, classes, categories, feature IDs, criteria counts, and the TUI input +Rook interactive scenario listing with the two quickstart triage scenarios, runnability against local-triage, classes, categories, feature IDs, criteria counts, and the TUI input -The first line summarizes runnability against the active profile. Each scenario shows its ID, class, category, feature, and criteria count. This saved demo has twelve runnable scenarios. Runnable means they can be attempted, not that they have passed. +The first line summarizes runnability against the active profile. Each scenario shows its ID, class, category, feature, and criteria count. This quickstart project has two scenarios, both counted as runnable. Runnable means they can be attempted, not that they have passed. From a regular shell instead: @@ -258,7 +262,7 @@ Missing usage reporting, tool-call observation, or filesystem observation is dif - The run still consumes time and credits. - The message names the profile field or MCP configuration that can close the gap. -Generation keeps scenarios it cannot make runnable instead of dropping them. Such a scenario is written with `executable: false` and a `skip_reason` that starts with `coverage gap:`, `invalid scenario:`, or `invalid red-team scenario:`, and `generate` warns about it. A scenario whose acceptance criteria contradict each other is rejected. Attack patterns that produced no scenario for a feature are listed in the agent's `coverage-gaps.yaml` as unverified, not as passed. +Generation keeps scenarios it cannot make runnable instead of dropping them. Such a scenario is written with `executable: false` and a `skip_reason` that says why, and `generate` warns about it. Reasons from Rook's own validation start with `coverage gap:`, `invalid scenario:`, or `invalid red-team scenario:`; reasons from the scenario checker are plain sentences, such as a precondition the profile cannot establish. A scenario whose acceptance criteria contradict each other is rejected. Attack patterns that produced no scenario for a feature are listed in the agent's `coverage-gaps.yaml` as unverified, not as passed. ## Scenario YAML Anatomy @@ -372,7 +376,7 @@ Deletion removes the live scenario file, but completed runs keep a snapshot of t ## Manual Editing Guidelines -Scenario files are plain YAML under `.testmuai/rook/agents//scenarios/`. You can review them in a pull request and edit them with normal tools. +Scenario files are plain YAML under `.testmuai/rook/projects//agents//scenarios/`; [Workspace Files](/support/docs/rook-workspace-files/) shows the full tree. You can review them in a pull request and edit them with normal tools. When editing manually: diff --git a/docs/agent-assurance-troubleshooting.md b/docs/agent-assurance-troubleshooting.md index f617fb8a4..47613b171 100644 --- a/docs/agent-assurance-troubleshooting.md +++ b/docs/agent-assurance-troubleshooting.md @@ -84,7 +84,7 @@ import VerifiedTag from '@site/src/component/verifiedTag'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-25" + "dateModified": "2026-10-13" }) }} /> @@ -111,9 +111,9 @@ Explain the first blocker and the smallest proposed fix. Do not change credentia update Rook, invoke the agent, rerun tests, or run paid RCA without my approval. ``` -This interactive /doctor capture uses a saved demo workspace with no credentials. Both services are reachable, but authentication is missing: signing in is the next step, not changing the target profile or rerunning scenarios. +This interactive /doctor capture is from the signed-in quickstart workspace: both services are reachable and the identity is authenticated. If identity or auth shows that you are signed out, enter /login first; that is the next step, not changing the target profile or rerunning scenarios. -Rook 0.1.5 interactive doctor output showing reachable production services and a signed-out demo session +Rook 0.1.11 interactive doctor output showing version, log and session paths, reachable production services, and a signed-in session ## Installation Problems @@ -255,7 +255,7 @@ Profile authoring or repair can spend credits and use approved tools. A profile Use /help profile to check the available operations before approving a repair or connection test: -Rook 0.1.5 interactive profile help showing add, fix, test, and test goal options +Rook 0.1.11 interactive profile help showing use, show, add, fix, test, and test goal options ### The profile invokes successfully but extracts the wrong value @@ -323,7 +323,7 @@ A token_economy scenario is blocked if the profile does not report ### Generated scenarios are marked not executable -A scenario with executable: false was kept so you can see what generation attempted. Its skip_reason starts with coverage gap: (no runnable check was possible), invalid scenario:, or invalid red-team scenario: and names the problem. Fix the profile capability or edit the scenario, then regenerate or rerun. +A scenario with executable: false was kept so you can see what generation attempted. Its skip_reason names the problem. Reasons from Rook's own validation start with coverage gap: (no runnable check was possible), invalid scenario:, or invalid red-team scenario:; the scenario checker writes plain sentences, often a precondition the profile cannot establish, such as a ticket that must already exist. Fix the profile capability or edit the scenario, then regenerate or rerun. ### Only two scenarios of an attack pattern ran diff --git a/docs/rook-antigravity-cli.md b/docs/rook-antigravity-cli.md index 9e3b97f83..7c0e24a18 100644 --- a/docs/rook-antigravity-cli.md +++ b/docs/rook-antigravity-cli.md @@ -36,7 +36,7 @@ Run this Bash block from your agent repository. It uses the same pinned public r fi rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 mkdir -p .agents/skills cp -R "$rook_skill_checkout/rook/skill-installer/skills" .agents/skills/rook ) diff --git a/docs/rook-antigravity-ide.md b/docs/rook-antigravity-ide.md index fdcc58ddc..af808b40d 100644 --- a/docs/rook-antigravity-ide.md +++ b/docs/rook-antigravity-ide.md @@ -36,7 +36,7 @@ Run this Bash block from your repository's root in the integrated terminal: fi rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 mkdir -p .agents/skills cp -R "$rook_skill_checkout/rook/skill-installer/skills" .agents/skills/rook ) diff --git a/docs/rook-architecture.md b/docs/rook-architecture.md index 3184249d1..e84322947 100644 --- a/docs/rook-architecture.md +++ b/docs/rook-architecture.md @@ -97,7 +97,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-11" + "dateModified": "2026-10-13" }) }} /> diff --git a/docs/rook-coding-agents.md b/docs/rook-coding-agents.md index 20683683e..5e262c570 100644 --- a/docs/rook-coding-agents.md +++ b/docs/rook-coding-agents.md @@ -41,7 +41,7 @@ With Node.js 22+ and npm: npx @testmuai/rook-skill@latest ``` -This installs for Claude Code, Codex, and Gemini CLI under your home directory. To avoid installing all three, follow the selected client's page and use its `--agent` flag. `@latest` installs the current skill package. Its version is independent of the CLI's; on October 13, 2026 the CLI is at 0.1.11 and the skill package at 0.1.7. +This installs for Claude Code, Codex, and Gemini CLI under your home directory. To avoid installing all three, follow the selected client's page and use its `--agent` flag. `@latest` installs the current skill package. Its version is independent of the CLI's; on October 13, 2026 both are at 0.1.11. On Windows, complete [Rook's native setup](/support/docs/rook-installation/#windows) first and use `npx.cmd` for the installer in PowerShell. Each coding client has its own platform requirements. The manual-copy recipes and CI examples in these docs use Bash; run them in a supported Bash environment such as WSL, keeping the client and skill in that same environment. diff --git a/docs/rook-copilot-cli.md b/docs/rook-copilot-cli.md index 247026762..a3e0e96b7 100644 --- a/docs/rook-copilot-cli.md +++ b/docs/rook-copilot-cli.md @@ -30,7 +30,7 @@ Run this Bash example from your agent repository. It copies only the skill bundl set -eu rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 if test -e .github/skills/rook; then echo "An existing rook skill needs review; nothing was overwritten." >&2 exit 1 diff --git a/docs/rook-cursor-cli.md b/docs/rook-cursor-cli.md index e0528b674..2c86f2f8f 100644 --- a/docs/rook-cursor-cli.md +++ b/docs/rook-cursor-cli.md @@ -30,7 +30,7 @@ Run this Bash example from your agent repository. It copies only the skill bundl set -eu rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 if test -e .cursor/skills/rook; then echo "An existing rook skill needs review; nothing was overwritten." >&2 exit 1 diff --git a/docs/rook-environment-and-secrets.md b/docs/rook-environment-and-secrets.md index 1f2d74967..92dda3bd6 100644 --- a/docs/rook-environment-and-secrets.md +++ b/docs/rook-environment-and-secrets.md @@ -96,7 +96,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -111,7 +111,7 @@ A profile names the environment variables its hooks read, and why; it does not h Launch `rook` in your agent workspace. In the interactive TUI, start with `/env list` to inspect configured names and masked values. The following capture sets and lists a **non-secret demonstration value**, not a credential: -Rook interactive environment commands storing the non-secret DEMO_LABEL value and listing it with its middle masked +Rook interactive environment commands storing the non-secret DEMO_LABEL value and listing it with its middle masked For a harmless first check, enter these commands one at a time: diff --git a/docs/rook-features.md b/docs/rook-features.md index 5738f7db2..8b60d4e75 100644 --- a/docs/rook-features.md +++ b/docs/rook-features.md @@ -91,7 +91,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -129,7 +129,7 @@ Start /profile add and describe how you reach the agent. You can pa Rook reads the material, asks only for information it cannot determine, writes reviewable .mjs hook scripts, invokes the target, and corrects the scripts from the actual response. If an existing profile stops working, /profile fix runs it, reads the failure, and repairs it. /profile test performs the cheaper verification call without rewriting anything. -Actual Rook prompt-based profile authoring with an HTTP request description, generated-hook progress, and a scoped write approval +Actual Rook prompt-based profile authoring with an HTTP request description, generated-hook progress, and a scoped write approval This is the public triage sample being connected in the interactive TUI, not command help. Rook asks how to reach the agent, writes a hook, and pauses for approval before executing sensitive work. Follow [profile authoring and verification](/support/docs/rook-profiles-and-hooks/#add-a-profile-interactively) to inspect the result before a test run. diff --git a/docs/rook-installation.md b/docs/rook-installation.md index b396fc57f..e206459a5 100644 --- a/docs/rook-installation.md +++ b/docs/rook-installation.md @@ -99,7 +99,7 @@ import ThemedImage from '@theme/ThemedImage'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -123,7 +123,7 @@ The latest public release checked on October 13, 2026 is [v0.1.11](https://githu | Requirement | Why | |---|---| -| A supported platform above | The shell installer supports macOS/Linux; the npm package also supplies a Windows x64 runtime. No Windows ARM64 runtime package is published for 0.1.7. | +| A supported platform above | The shell installer supports macOS/Linux; the npm package also supplies a Windows x64 runtime. No Windows ARM64 runtime package is published. | | TestMu AI account | Supplies authentication and credits. You can sign in after installation. | | Your agent's dependencies | Rook invokes the target agent as you would. A local command, service, or supporting tool must already be available. | @@ -217,10 +217,10 @@ To upgrade an npm installation: ```bash -npm update -g @testmuai/rook +npm install -g @testmuai/rook@latest ``` -The npm package installs the `rook` executable and publishes platform runtime packages with it. If npm reports an engine error, update the Node.js version used to run npm to Node.js 20 or newer (Rook 0.1.7; 0.1.6 and earlier need 22). +The npm package installs the `rook` executable and publishes platform runtime packages with it. If npm reports an engine error, update the Node.js version used to run npm to Node.js 20 or newer (since Rook 0.1.7; 0.1.6 and earlier need 22). ### Repair an npm 0.1.1 or 0.1.2 installation @@ -334,9 +334,9 @@ $env:ROOK_ENV = 'prod' rook.cmd ``` -You should see the Rook banner and an interactive prompt or a project chooser, not a command that prints output and exits. This capture shows a new session before sign-in and before an agent has been explored: +You should see the Rook banner and an interactive prompt or a project chooser, not a command that prints output and exits. This capture shows a signed-in session in a new workspace, before an agent has been explored: -Rook 0.1.11 interactive startup in color with the mascot banner, Explore, Generate, Run and Report, Get Started commands, a sign-in prompt, and no agent selected +Rook 0.1.11 interactive startup in color with the mascot banner, Explore, Generate, Run and Report, Get Started commands, the project chooser, and no agent selected 1. If prompted to sign in, enter `/login` and complete the browser flow. Return to this same terminal when Rook reports that you are signed in. Browser UI sign-in and CLI sign-in are separate. 2. At **Projects**, use the arrow keys and Enter to list existing projects or create a new test project. Esc goes back; you can reopen the chooser with `/project`. @@ -378,13 +378,6 @@ Each archive has a matching `.sha256` file. Do not bypass a checksum mismatch; d If a public install path still fails, [open a Rook issue](https://github.com/LambdaTest/rook/issues/new/choose) with the OS, architecture, install method, and full error output. -## Next Step - -If you use a coding assistant, [choose its Rook skill setup guide](/support/docs/rook-coding-agents/) after installing the CLI. Claude Code, Codex, Gemini CLI, Copilot CLI, OpenCode, Cursor CLI, Antigravity CLI, VS Code, Windsurf, and Antigravity IDE each have their own instructions. Installing the skill does not install or authenticate the CLI. - -Continue with [How to Get Started With Agent Assurance](/support/docs/agent-assurance-quickstart/). - - ## Open the Local or Hosted UI {#select-the-web-ui-environment} The public CLI includes the local viewer: inside the TUI, enter `/ui --local`. No separate frontend installation or browser login is needed. Open the printed loopback URL and keep the TUI session running. It reads existing workspace files; follow the quickstart first if you have not created any test data. From a separate shell, the equivalent command is `rook ui --local`. @@ -404,3 +397,9 @@ The local viewer starts at **Agents**. This screenshot shows saved CommerceCare The hosted UI opens at **Projects** after browser sign-in. The example project already contains synchronized test data. An empty organization shows onboarding instead; no separate Web UI package needs to be installed. Hosted Projects entry for an existing synchronized documentation project + +## Next Step + +If you use a coding assistant, [choose its Rook skill setup guide](/support/docs/rook-coding-agents/) after installing the CLI. Claude Code, Codex, Gemini CLI, Copilot CLI, OpenCode, Cursor CLI, Antigravity CLI, VS Code, Windsurf, and Antigravity IDE each have their own instructions. Installing the skill does not install or authenticate the CLI. + +Continue with [How to Get Started With Agent Assurance](/support/docs/agent-assurance-quickstart/). diff --git a/docs/rook-opencode.md b/docs/rook-opencode.md index 24f2ab514..044cbc9ca 100644 --- a/docs/rook-opencode.md +++ b/docs/rook-opencode.md @@ -30,7 +30,7 @@ Run this Bash example from your agent repository. It copies only the skill bundl set -eu rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 if test -e .opencode/skills/rook; then echo "An existing rook skill needs review; nothing was overwritten." >&2 exit 1 diff --git a/docs/rook-permissions-and-safety.md b/docs/rook-permissions-and-safety.md index b2ba6ea8e..ef3551bde 100644 --- a/docs/rook-permissions-and-safety.md +++ b/docs/rook-permissions-and-safety.md @@ -131,7 +131,7 @@ Rook's internal roles can call tools while discovering, generating, invoking, an In the TUI, inspect the tool, exact file or target, and requested operation before approving. This real prompt occurs while Rook authors the quickstart's `local-triage` profile; it asks to write that profile's hook script, not to run a test suite: -Rook profile authoring paused at a write_file permission prompt, with yes once, always for this run, no, and never choices +Rook profile authoring paused at a write_file permission prompt, with yes once, always for this run, no, and never choices Use the arrow keys to select and Enter to answer. **yes** approves that action once; **no** declines it. Read the hint beside **always**: for a model-chosen action such as the one pictured, it allows the matching operation for this run without writing a disk grant. A persistent choice on a human-requested action has a different scope. **never** can save a denial. Do not choose a broad option merely to clear the prompt. diff --git a/docs/rook-profiles-and-hooks.md b/docs/rook-profiles-and-hooks.md index 0d707d6b1..f7706b4ea 100644 --- a/docs/rook-profiles-and-hooks.md +++ b/docs/rook-profiles-and-hooks.md @@ -97,7 +97,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "https://www.youtube.com/@TestMuAI" ] }, - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -146,7 +146,7 @@ This is a template; replace the endpoint, fields, and fixture with a request you The screenshot below shows that interaction in the public triage sample: Rook receives a plain-language endpoint and response mapping, starts `author_profile`, and pauses before writing its hook script. The profile is called `local-triage` in this example, rather than `staging`. -Rook interactive profile authoring with the user's HTTP integration description, author_profile progress, and permission to write the local-triage hook script +Rook interactive profile authoring with the user's HTTP integration description, author_profile progress, and permission to write the local-triage hook script Read each requested action and approve only work needed for the integration. Use **yes** for that action once; **no** declines it. Wait for verification to finish before treating the profile as ready. The screenshot is a permission checkpoint, not a successful probe. @@ -167,9 +167,9 @@ Rook writes scripts, invokes the target, and corrects mistakes found during veri In the TUI, enter `/profile` to open the picker. Type to filter, use the arrow keys, and press Enter to select a profile; Esc returns without changing the selection. The footer shows the active profile. -Rook interactive profile picker showing commerce-hooks with prepare, open, execute, close, and collect hooks, plus New profile +Rook interactive profile picker showing the active local-triage profile with its execute hook, plus New profile -This existing demo profile has all five user-configurable hooks. A newly generated profile may have only `execute`; Rook owns `judge`, so it is not listed as a profile hook. +This quickstart profile has only `execute`, as a newly generated profile often does. Other profiles can add `prepare`, `open`, `close`, and `collect`; Rook owns `judge`, so it is not listed as a profile hook. Inspect your generated profile before testing it: @@ -190,7 +190,7 @@ rook profile use staging The bare command lists profiles in a shell or opens a picker in the TUI. profile test invokes the target through the existing hooks without asking a model to rewrite them. Check that the returned value is an agent answer, not a job ID or success status. -Completed Rook profile verification returning the triage answer and four tool calls, with the saved local-triage profile active in the TUI footer +Completed Rook profile verification returning the triage answer and four tool calls, with the saved local-triage profile active in the TUI footer The sample's verified profile reports `calls` but not session state or measured usage. Check the capabilities your own target actually returned; do not infer them from a successful HTTP response alone. diff --git a/docs/rook-vscode.md b/docs/rook-vscode.md index c3dfc27c8..830852c16 100644 --- a/docs/rook-vscode.md +++ b/docs/rook-vscode.md @@ -30,7 +30,7 @@ Run this Bash example from your agent repository. It copies only the skill bundl set -eu rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 if test -e .github/skills/rook; then echo "An existing rook skill needs review; nothing was overwritten." >&2 exit 1 diff --git a/docs/rook-web-ui.md b/docs/rook-web-ui.md index 2be1eb53c..e79b018a9 100644 --- a/docs/rook-web-ui.md +++ b/docs/rook-web-ui.md @@ -44,9 +44,9 @@ Neither viewer downloads missing records into your workspace, uploads local chan Launch `rook` from your agent workspace, then enter `/ui --local` for on-disk evidence or `/ui` for hosted review. These are alternatives: choose the viewer for the records you want to inspect. This actual TUI capture uses `/ui --local --no-open` to start the local server and print its address without opening a browser: -Rook's interactive local viewer command printing its loopback URL and confirming that the read-only server is serving +Rook's interactive local viewer command printing its loopback URL and confirming that the read-only server is serving -Open the exact URL printed in your session; this capture used port `7758` because the default was already occupied. Keep the TUI session running while using its local viewer. `/help ui` lists options without starting a viewer. The `rook ui` examples below are the equivalent commands for a regular shell. +Open the exact URL printed in your session; the port can differ when the default is already in use. Keep the TUI session running while using its local viewer. `/help ui` lists options without starting a viewer. The `rook ui` examples below are the equivalent commands for a regular shell. ## Review On-Disk Evidence in the Local UI {#local-ui} @@ -70,10 +70,6 @@ The five local agent tabs are **Summary**, **Profiles**, **Features**, **Scenari Search by agent name or ID, then click the agent card. It shows feature/scenario/run counts and available last-result context. Clear a search before concluding that the workspace has no agents. These counts describe the saved workspace, not coverage of every possible behavior. -:::note Coming soon -Searching local agents by description is coming soon. For now, use the agent's name or ID. -::: - ### Local Agent Workspace {#local-agent} Local CommerceCare Summary with five navigation tabs, discovery counts, description, and source context @@ -118,6 +114,10 @@ Click a run to inspect its narrative, outcome counts, scenario rows, and metadat Local CommerceCare run details with narrative, mixed scenario outcomes, View plan, and profile metadata +When a run has coverage gaps, the run page lists them above the outcome tiles: attack patterns, scenarios, or categories with no runnable scenario, each with its reason. A gap is unverified, not passed. + +Local triage-service run on Rook 0.1.11 with a Coverage gaps panel listing ten attack patterns with no generated scenario, above Scenarios, Passed, Failed, Skipped, and Unable to Verify tiles + This view includes runs available on disk, including local test-mode results. **completed** describes execution state, not a passing suite. Missing graded results are not a pass: check unfinished phases and `rook report --json` before treating a result as complete. ### Local Results and Evidence Files {#local-results} diff --git a/docs/rook-windsurf.md b/docs/rook-windsurf.md index 6d86245df..8b0bdd860 100644 --- a/docs/rook-windsurf.md +++ b/docs/rook-windsurf.md @@ -30,7 +30,7 @@ Run this Bash example from your agent repository. It copies only the skill bundl set -eu rook_skill_checkout=$(mktemp -d) git clone --filter=blob:none https://github.com/LambdaTest/rook.git "$rook_skill_checkout/rook" - git -C "$rook_skill_checkout/rook" checkout --detach f199cb99c589b565e48a3a29781475daee907533 + git -C "$rook_skill_checkout/rook" checkout --detach 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 if test -e .windsurf/skills/rook; then echo "An existing rook skill needs review; nothing was overwritten." >&2 exit 1 diff --git a/docs/rook-workspace-files.md b/docs/rook-workspace-files.md index fa02045ba..02e1774d0 100644 --- a/docs/rook-workspace-files.md +++ b/docs/rook-workspace-files.md @@ -112,7 +112,7 @@ import { BRAND_URL } from '@site/src/component/BrandName'; "text": "*.log\n.env\ncache/\nprojects/*/jobs/\nprojects/*/agents/*/state.json" } ], - "dateModified": "2026-09-28" + "dateModified": "2026-10-13" }) }} /> @@ -215,7 +215,7 @@ Each session keeps a transcript at `~/.testmuai/rook/sessions// +Rook's interactive sync confirming that one local agent was recorded upstream ## Review Files in Either UI diff --git a/scripts/rook-docs.test.cjs b/scripts/rook-docs.test.cjs index d7bab4054..623818933 100644 --- a/scripts/rook-docs.test.cjs +++ b/scripts/rook-docs.test.cjs @@ -34,8 +34,9 @@ test('public installation examples use the current Homebrew tap and include nati const bash = [...doc.matchAll(/```bash\n([\s\S]*?)\n```/g)].map(m => m[1]).join('\n'); assert.match(bash, /brew install lambdatest\/rook\/rook/); assert.doesNotMatch(bash, /brew tap LambdaTest\/rook https:\/\/github\.com\/LambdaTest\/rook\.git/); - assert.match(doc, /npm\.cmd install -g @testmuai\/rook@0\.1\.11/); + assert.match(doc, /npm\.cmd install -g @testmuai\/rook\b/); } + assert.match(install, /npm\.cmd install -g @testmuai\/rook@0\.1\.11/); assert.match(install, /\{#windows\}/); assert.match(install, /\{#windows-wsl\}/); assert.match(install, /Get-Command rook\.cmd/); @@ -227,10 +228,10 @@ test('installation and quickstart lead into the interactive TUI with actual work assert.match(install, /rook-tui-get-started\.png/); assert.match(install, /NO_COLOR/); assert.match(install, /arrow keys and Enter/); - assert.match(quickstart, /\*\*Rook 0\.1\.5\*\*/); + assert.match(quickstart, /\*\*Rook 0\.1\.11\*\*/); assert.match(quickstart, /one step at a time/); assert.match(quickstart, /not a fixed credit quote/); - assert.match(quickstart, /not complete|left four discovered feature areas untested/); + assert.match(quickstart, /not complete|four of the five discovered features were not tested/); const stages = [ ['2. Open the TUI', ['get-started', 'explore-confirm']], ['3. Generate and verify the profile', ['profile-authoring', 'profile-verified']], @@ -277,7 +278,7 @@ test('supporting workflow pages show real checkpoints with honest scope and perm test('CLI Reference documents the public baseline, interactive screenshots, and approved saved-run RCA', () => { const doc = fs.readFileSync(path.join(root, 'docs/agent-assurance-command-reference.md'), 'utf8'); assert.match(doc, /public Rook 0\.1\.11 CLI/); - assert.match(doc, /Rook 0\.1\.5 interactive TUI/); + assert.match(doc, /Rook 0\.1\.11 interactive TUI/); assert.match(doc, /They show command help, not completed paid operations/); assert.match(doc, /\{#root-cause-analysis\}/); assert.match(doc, /rook report --rca/); @@ -312,7 +313,7 @@ test('Troubleshooting covers current Windows, scenario, RCA, and support recover assert.match(doc, /token_economy.*blocked if the profile does not report usage/); assert.match(doc, /\{#rca-troubleshooting\}/); assert.match(doc, /command-reference\/#root-cause-analysis/); - assert.match(doc, /no credentials/); + assert.match(doc, /identity is authenticated/); assert.match(doc, /rook-reference-doctor\.png/); assert.doesNotMatch(doc, /rook-terminal-(?:doctor|scenarios)\.png/); assert.match(doc, /\{#support-report\}/); @@ -424,7 +425,7 @@ case "$1" in -C) test "$3" = checkout test "$4" = --detach - test "$5" = f199cb99c589b565e48a3a29781475daee907533 + test "$5" = 439480f2ef3084fcbc0997a59a70f5f8adcd4ad8 ;; *) exit 99 ;; esac