Plugin Claude Code
Canary — AI-powered test automation. Generate, review, recommend, and de-flake tests across Playwright, Vitest, Pytest, and k6 with four specialist personas.
Plugin Claude Code
Canary — AI-powered test automation. Generate, review, recommend, and de-flake tests across Playwright, Vitest, Pytest, and k6 with four specialist personas.
Plugin Claude Code
AI-powered test generation for Claude Code — generate, init, and migrate test suites via slash commands.
Hook Claude Code
Runs before the agent uses a tool for Bash, Write, Edit and mcp__.* tool calls, executing block-no-verify.js, protect-config.js, sentinel-pre.js and prefer-first-party-mcp.js via node with --show-toplevel (4 commands). From bop-clocktower/canary.
Hook Claude Code
Runs after a tool call finishes for Edit and Write tool calls, executing quality-warner.js and sentinel-post.js via node with --show-toplevel (2 commands). From bop-clocktower/canary.
Hook Claude Code
Runs before the context is compacted, executing pre-compact-state.js via node with --show-toplevel. From bop-clocktower/canary.
Hook Claude Code
Runs when the agent finishes a response, executing adoption-tracker.js and telemetry-reporter.js via node with --show-toplevel (2 commands). From bop-clocktower/canary.
Settings file Claude Code
Agent settings declaring 4 hook events (PreToolUse, PostToolUse, PreCompact, Stop).
MCP server Claude CodeCodexCursor +2
MCP server "canary-mcp" as configured in bop-clocktower/canary. Launched with canary-mcp.
MCP server Claude CodeCodexCursor +2
MCP server "harness" as configured in bop-clocktower/canary. Launched with harness-mcp.
MCP server Claude CodeCodexCursor +2
Lets the agent drive a real browser: open pages, click, type, take screenshots and read the accessibility tree, using Playwright. Runs locally from the @playwright/mcp npm package.
Instructions file CodexOpenCode
Instructions for bop-clocktower/canary, covering canary knowledge map, project overview, documentation, diagrams and repository structure.
Instructions file
Instructions for bop-clocktower/canary, covering claude code — project instructions and branch hygiene.
Agent
Diagnose flaky tests by analyzing test code, CI logs, and failure patterns, then propose a deterministic fix. Use when the user says "this test is flaky", "intermittent failure", "passes locally fails in CI", "only fails sometimes", or pastes a CI log of a failing test. NOT for tests that fail consistently — those are…
Agent
Recommend the right testing framework (Playwright, Vitest, Pytest, k6, contract-testing tools) for a given testing need, and propose a folder structure. Use when the user asks "what framework should I use", "Playwright or Cypress", "how should I structure my tests", or "what kind of test is right for X". Recommends…
Agent
Scaffolds a new test suite for a chosen framework using Canary's init tool.
Agent
Migrates a harness-scaffolded test suite to Canary's layout with an explicit confirm-before-apply flow.
Agent
Generate production-ready test code from natural-language requirements across Playwright (E2E), Vitest (JS/TS unit and component), Pytest (Python unit and API), and k6 (performance). Use when the user wants to create new tests — phrases like "write a test for...", "generate an E2E test", "I need a unit test that…
Agent
Generates framework-appropriate tests for a source file using Canary's MCP analysis tools.
Agent
Diagnose and fix a consistently-failing test. Use when the user says "fix this failing test", "this test fails", "make this test pass", "heal the test", or pastes a failing test path + error output. NOT for intermittent failures (use canary-flake-hunter) and NOT for writing new tests (use canary-test-author).
Agent
Review existing test code for brittleness, anti-patterns, missing coverage, and quality gaps. Use when the user asks "review this test", "audit my test suite", "is this test any good", or pastes a test file and wants structured feedback. Distinct from flake-hunter (which diagnoses a specific intermittent failure).
Skill Claude CodeCodex
Add a new testing framework to Canary's registry end-to-end — aligns the classifier↔registry contract, authors the ts/src/data/frameworks/registry.json entry, validates the execution command, and ensures every classifier testtype still resolves to a non-null framework. Use for "add support for a new framework", "add…
Skill Claude CodeCodex
Temporal-dependency linter for test files — statically flags tests that lean on wall-clock time, a real delay, or the local timezone, the ones that pass all day and fail at midnight, across a DST boundary, or on Feb 29. Suppresses itself when the file already installs a frozen clock (fake timers, freezegun…
Skill Claude CodeCodex
Vacuous-test detection — finds tests that PASS WITHOUT PROVING ANYTHING: an assertion that compares a value with itself, a test that never invokes the target it claims to cover, and a test whose every assertion is an absence observed on a bystander rather than on the code under test. Use when the user says "why did…
Skill Claude CodeCodex
Analyses a test suite for CI readiness: coverage depth, flakiness, assertion quality, critical path coverage, and suite runtime. Accepts documented failures (quarantined tests with linked open issues count as verified). Investigates config/auth failures using the consuming repo's declared usercatalogskill.