claude-harness-canary

Solid

Run the minimum current-Claude compatibility canary for claude-code-hermit by driving real interactive Claude Code instances in tmux with --plugin-dir. Use before a core release or after a Claude Code upgrade to verify cached model switching, unattended prompt safety, and native Monitor/Cron routine lifecycle. Core only; not application testing or CI.

AI & Automation 74 stars 15 forks Updated today MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
62
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Claude Harness Canary Run all three groups serially against the currently installed Claude Code. Take no arguments and do not offer group selectors. Target 5–8 minutes, but preserve bounded waits and evidence over that estimate. Keep this canary core-only, current-Claude-only, interactive-tmux-only, and loaded through `--plugin-dir`. Never add it to CI, release commands, or `$pre-release-review`. ## Shared probe prerequisite Reuse the installed `$probe` lifecycle. Before creating canary state, read its active `SKILL.md` and require all of these properties: - real interactive Claude in tmux, never `claude -p`, Codex, or another PTY; - no interactive `--no-session-persistence`; - `tmux pipe-pane` starts before any input; - one bounded readiness phase that detects the trust dialog, accepts it only when present, handles only explicitly recognized startup onboarding, and waits for the normal prompt; - a unique output-only completion nonce whose complete value is never contiguous in the injected prompt; - completion accepted only from assistant output after the requested evidence, never prompt echo; - one bounded wait per canary action; - teardown with `rm -r` only after validating the exact scratch path. If any property is absent, stop before preflight and report: `PREREQUISITE BLOCKED — update the local $probe protocol` Do not recreate generic tmux lifecycle rules locally or hand-roll a fallback. Extend the probe lifecycle only for the multi-action assertions below. ##...

Details

Author
gtapps
Repository
gtapps/claude-code-hermit
Created
5 months ago
Last Updated
today
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

upgrade-canary

Invoke ONLY when you suspect Claude Code may have upgraded, when you are about to cut a plugin release, or when the user says "run the upgrade canary", "did the update break the workflows", "re-check the runtime surface", or "what changed in the runtime". Re-verify both runtimes the toolkit depends on: the interactive `claude` binary and the SDK-bundled one. Run the full matrix only when versions changed since the last pass, when forced, or when the last verdict failed. Maintainer tool only; requires this repo's `toolkit/` tree plus local Claude Code auth.

1 Updated 2 days ago
home-dev-lab
AI & Automation Listed

canary-harness

Use the repo-local Canary MCP/CLI for Interactive Brokers account, market, rulebook, stress, proposal, opportunity, and order investigations while developing the trading harness. Read/preview first; explicit current-turn broker writes use only the gated CLI.

8 Updated today
osauer
AI & Automation Listed

claude-wrap-conpty

Drive a REAL Claude Code TUI from code on Windows — spawn `claude.exe` on a pseudo-console (ConPTY), render its ANSI output into a readable screen, inject prompts as bracketed paste, and verify what actually landed in the session transcript on disk. This is the black-box test harness for Claude Code itself: what a headless `claude -p` can NEVER exercise (the Ink TUI's input box, startup modals, draft/type-ahead behavior, paste framing, the eaten-Enter class of bug). Ships a verified driver (`scripts/conpty_claude.py`, pywinpty + pyte) with a `selftest` that proves the whole chain on this machine in one tiny turn, plus `probe` / `send` / `raw` CLI verbs. Encodes the measured facts that make it work: `\r` submits while `\n` is a literal newline in the box; bracketed paste is the only atomic multi-line delivery; an inherited `CLAUDE_CODE_CHILD_SESSION` SILENTLY DISABLES transcript saving (so every on-disk verification fails for a reason nothing on screen explains) — the trap for any wrapper launched from inside

1 Updated 3 days ago
Nucs