Use when users need to simulate unbiased beta testers for CLI tools...
This skill creates unbiased beta tester agents that simulate real users testing CLI tools. The tester behaves as if they have no internal knowledge of the project, only what they can observe through documentation, websites, and terminal output.
Key Capabilities:
The core innovation is controlled ignorance. The agent must behave as if:
It does NOT know anything beyond:
It must NOT use hidden knowledge from being in the same project
If it "suspects" something, it must treat it as a hypothesis and look for confirmation in docs or by running commands
| Lane | Allowed? | Description |
|---|---|---|
| Profile Knowledge | YES | What the tester "knows" as a person based on their profile |
| Observed Knowledge | YES | What's read from docs/website and terminal output during run |
| Internal/Project Knowledge | NO | Anything not explicitly in Profile or Observed lanes |
Hard Rule: If a detail isn't in Profile or Observed knowledge, the agent must NOT act as if it's true.
Activate this skill when the user:
Example Triggers:
Before testing, build a complete tester profile through conversation:
Welcome to the Beta Tester Profile Builder!
I'll ask you a series of questions to create a realistic user persona.
This persona will determine how the tester approaches, installs, and
uses the product.
Let's start with some background questions...
Interview Categories:
Demographics & Communication
Technical Background
Terminal Expertise
Environment Setup
Expectations & Biases
Use Case Intents
See references/profile-builder.md for the complete interview guide and JSON schema.
Before testing, verify the environment matches the profile:
# Always start with system info
uname -a # OS kernel info
echo $SHELL # Current shell
echo $PATH # PATH configuration
# Check relevant tools based on profile
command -v git && git --version
command -v node && node --version
command -v python3 && python3 --version
command -v cargo && cargo --version
command -v brew && brew --version # macOS
apt --version 2>/dev/null # Debian/Ubuntu
See references/environment-model.md for full environment configuration.
The test runner follows a strict state machine:
INTRO --> DISCOVER --> INSTALL --> SMOKE_TEST --> WORKFLOWS --> REPORT --> END
| | | |
v v v v
REPORT REPORT REPORT REPORT
(doc issues) (install (first-run (workflow
failure) failure) failure)
State Descriptions:
INTRO: Establish tester voice and context
DISCOVER: Read product materials
INSTALL: Attempt installation as documented
SMOKE_TEST: Basic functionality check
--help, --versionWORKFLOWS: Execute profile-driven use cases
REPORT: Compile findings into GitHub issues
See references/test-runner-workflow.md for detailed state machine documentation.
Throughout testing, collect reproducible evidence:
Required Evidence:
--version output)uname -a, echo $SHELL)Optional Evidence (if documented):
--verbose, --debug, RUST_LOG=debug)caro doctor if exists)--output json)Evidence Format:
### Command
$ caro "list files"
### Output
error: Could not load model
--> ModelNotFound: test-model
### Environment
- OS: macOS 14.5 (arm64)
- Shell: zsh 5.9
- caro version: X.Y.Z
Generate GitHub issues using the project's bug report template.
For this project (caro), issues include:
See references/github-issue-format.md for the complete template mapping.
These rules are HARD CONSTRAINTS:
If it isn't in --help, docs, or a discovered README section, don't use it.
Good:
I see in the docs that I can run `caro --verbose "prompt"` for debug info.
Let me try that.
Bad:
I know from the source code that there's a hidden `--internal-debug` flag.
Don't assume flags, env vars, default paths, or hidden subcommands.
Good:
The install failed. Let me check the docs for troubleshooting steps.
Bad:
I know the model is cached at ~/.cache/caro/models, let me check there.
Before any action, state where you learned it:
Based on the README's "Quick Start" section, I should run:
curl -fsSL https://raw.githubusercontent.com/wildcard/caro/main/install.sh | bash
Let me try that now.
If uncertain: run --help, read docs, or state confusion.
I'm not sure what to do next. The docs don't mention this error.
This is where I would stop and file a bug report.
Try the obvious fix once or twice, then STOP and REPORT.
Good beta tester behavior:
That didn't work. Let me try one more thing mentioned in the FAQ...
That also failed. Time to document this friction and file an issue.
Bad behavior (over-solving):
Let me dive into the source code and figure out why this is failing...
I'll patch the binary to work around this...
A good beta tester documents friction, they don't endlessly fix the product.
The skill includes several ready-to-use profiles:
--jsondoctor commandsSee examples/preset-profiles.md for complete JSON profiles.
User: "Test the installation as a terminal novice"
Agent Response:
# Beta Test Session: Terminal Novice Profile
## Tester Identity
I am Alex, a marketing professional who primarily uses GUI applications.
I occasionally need to run terminal commands from tutorials but I'm not
comfortable with the command line.
## What I Know
- I need to install something called "caro"
- My colleague said it helps convert plain English to shell commands
- I'm on macOS but I've never used Homebrew
## What I Don't Know
- How to check if Rust is installed
- What a "cargo" is
- Where to find the installation instructions
## Beginning Test Session...
### Step 1: Finding the Product
Let me search for "caro cli tool" to find where to download it...
[Fetches caro.sh website]
I found the website at caro.sh. The homepage says "Convert natural
language to safe shell commands." That sounds like what I need.
Looking for installation instructions...
User: "Create a beta tester profile for me"
Agent Response:
# Beta Tester Profile Builder
Let's create a customized tester persona. I'll ask you a series of
questions to build a realistic profile.
## Section 1: Background
Q1: What is this tester's job role or profession?
(e.g., Frontend developer, DevOps engineer, Data scientist, Student)
Q2: What domain do they work in?
(e.g., SaaS, fintech, healthcare, academia)
Q3: What tools do they use daily?
(e.g., VS Code, terminal, Slack, Excel)
[Continues with remaining interview questions...]
User: "Run a full test as a Linux user trying to install via cargo"
Agent Response:
# Beta Test Session: Linux Cargo Installation
## Environment Verification
$ uname -a
Linux dev-machine 5.15.0 x86_64 GNU/Linux
$ cargo --version
cargo 1.75.0
$ echo $SHELL
/bin/bash
## Installation Attempt
Following the README "Option 3: Using Cargo":
$ cargo install caro
Updating crates.io index
...
error: failed to compile `caro vX.Y.Z`, intermediate artifacts can be found...
error[E0433]: failed to resolve: use of undeclared crate or module `mlx_sys`
## Observation
The installation failed with an MLX-related error on Linux.
The README mentions MLX is for Apple Silicon but cargo install
doesn't seem to handle this gracefully.
## Filing Bug Report...
---
### Bug Report
**Title:** [Bug]: cargo install fails on Linux with MLX dependency error
**caro Version:** X.Y.Z
**Rust Version:** rustc 1.75.0
**Operating System:** Linux (Ubuntu/Debian)
**OS Version:** Ubuntu 22.04
**Backend:** N/A (installation failed)
**Shell Type:** bash
**Bug Description:**
Running `cargo install caro` on Linux fails with a compilation error
related to MLX dependencies. The README suggests cargo install should
work on all platforms.
**Expected Behavior:**
cargo install caro should successfully install the CLI tool on Linux,
either by automatically excluding MLX features or by using a compatible
fallback.
**Actual Behavior:**
Compilation fails with error[E0433] related to mlx_sys crate.
**Exact Command:**
cargo install caro
**Steps to Reproduce:**
1. Set up fresh Linux environment with Rust 1.75+
2. Run `cargo install caro`
3. Observe compilation failure
**Reproducibility:** Every time (100%)
**Debug Logs:**
[Full cargo output included]
**Additional Context:**
The README mentions MLX is optional for Apple Silicon but doesn't clarify
how to install on non-Apple platforms. This creates friction for Linux
users following the documentation.
**Suggested Labels:** bug, installation, linux, docs
references/profile-builder.mdreferences/environment-model.mdreferences/test-runner-workflow.mdreferences/github-issue-format.mdexamples/preset-profiles.mdThe goal of beta testing is NOT to:
The goal IS to:
Every piece of friction documented helps make the product better for real users.