skills/devel/do-interactive-test/SKILL.md
Prepare for and run user-driven interactive testing of a directory the user points to. Use when the user wants the agent to read what is already there first, be prepared, follow step-by-step test instructions, or honor a constrained edit boundary during testing. Handle generic directories, demo/tutorial directories, and OpenSpec change directories differently; for OpenSpec change directories, use openspec CLI commands to gather context instead of assuming a file layout inside the directory. During interactive testing, do not automatically modify the system under test; report issues first, let the developer decide whether to log them or proceed to a fix, and only modify demo-specific code when a fix is explicitly requested. Do not create extra logs unless the developer asks for issue logging or step logging.
npx skillsauth add igamenovoer/magic-context do-interactive-testInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run an interactive test as a guided session. Inspect first, execute only the step the user asks for, log the session when requested, and keep any code changes inside the user-approved boundary.
Choose the narrowest fitting category:
openspec commands firstDuring preparation, do not edit code. Summarize:
Inspect the directory itself first.
README, runnable scripts, test files, or config files.Prioritize operator guidance and runnable surfaces.
Do not assume files such as proposal.md or design.md exist just because the target lives under an OpenSpec-looking path.
Use OpenSpec tooling first:
openspec list --json.openspec show --type change --json --no-interactive <change-name>openspec status --change <change-name> --jsonopenspec validate --type change --strict --json --no-interactive <change-name> when validation state matters to the test.When reading files for an OpenSpec change, use the OpenSpec tool output to decide what to inspect next. Do not hard-code or assume the artifact layout inside the directory.
Do not assume any repository-local logging directory exists.
By default, create no extra logs at all. The only logging that should happen by default is whatever the system or demo already implements in its own code or runner.
Derive <demo-slug> from the target directory name by normalizing it to lowercase hyphen-case.
If the developer says demo-root=<some-dir>, use that exact directory as <demo-root> for this session.
Otherwise, when this skill uses its default logging layout, resolve <repo-root> as the main Git repository root that owns the target under test and define:
<demo-root>: <repo-root>/.agent-automation/demos/<demo-slug>If this skill creates .agent-automation/demos/, add .agent-automation/demos/ to the main repository .gitignore so helper-managed demo artifacts stay out of commits. If .gitignore already has commented .agent-automation/demos entries, treat that as a developer signal not to auto-add the ignore rule.
If the developer specifies demo-root=<some-dir>, treat that as a user-chosen location and do not modify .gitignore unless the developer explicitly asks.
Enable issue logging only when the developer says things like:
Default issue-log directory:
<demo-root>/issuesIf the developer specifies a location directory, use that directory instead of the default issue-log directory.
If the default issue-log directory is used, create <demo-root>/issues as needed. When <demo-root> is the default helper-managed root and creating that path also creates .agent-automation/demos/, add .agent-automation/demos/ to the main repository .gitignore unless commented .agent-automation/demos entries are already present.
If the developer specifies a logging directory, do not touch .gitignore.
After issue logging is enabled, whenever the interactive run exposes an issue, create one Markdown file in the issue-log directory:
<ts>-<what>.mdYYYYMMDD-HHMMSS<what>: short hyphen-case summary of the issueEach issue log should include:
Enable step logging only when the developer says things like:
Default step-log directory:
<demo-root>/stepsIf the developer specifies a location directory, use that directory instead of the default step-log directory.
If the default step-log directory is used, create <demo-root>/steps as needed. When <demo-root> is the default helper-managed root and creating that path also creates .agent-automation/demos/, add .agent-automation/demos/ to the main repository .gitignore unless commented .agent-automation/demos entries are already present.
If the developer specifies a logging directory, do not touch .gitignore.
After step logging is enabled, create one Markdown file per qualifying step:
<ts>-<step-slug>.mdYYYYMMDD-HHMMSS<step-slug>: short hyphen-case summary of the stepOnly log steps that result in code execution or code changes.
Each step log should include:
Keep all logs factual. Separate observed behavior from proposed fixes.
Treat interactive testing as read-run-log by default.
When the boundary is ambiguous, use the narrowest reasonable interpretation and prefer asking before expanding scope.
Treat shared runtime modules, common CLI internals, and the broader system being tested as non-editable unless the developer explicitly changes the rule for the session.
When the interactive test exposes a problem:
If the likely fix is outside demo-specific code, say so clearly and stop before editing.
$do-interactive-test on this directory and tell me what is implemented before I give more steps."openspec/changes/add-foo; read what is there first and wait for my instructions."$do-interactive-test for scripts/demo/bar-pack, and log the issues."$do-interactive-test for this demo, demo-root=tmp/demo-logs, and log the issues."$do-interactive-test for this demo, log the process under tmp/test-logs."data-ai
Create readable Mermaid diagrams inside Markdown files. Use for flowcharts and sequence diagrams that must render cleanly in common Markdown renderers (e.g., GitHub) without horizontal scrolling. Covers fenced mermaid blocks, init/theme styling, label wrapping with <br/>, and sequenceDiagram layout rules (short IDs, wrapped labels, don’t break identifiers).
development
Manual invocation only; use only when the user explicitly requests `make-program-tutorial` by exact name, OR when the user asks to use a skill to create an SDK/API/library tutorial. Create a clear, reproducible, step-by-step tutorial for a specific API/SDK/library (or a set of functions/classes), with runnable examples, expected outputs, and basic troubleshooting.
testing
Use when the user wants to create a self-hosted, offline-installable Conda channel (mirror) containing a specific subset of packages using Pixi.
tools
Guides the agent to setup a new or existing Pixi environment for compiling C++ and CUDA code. It ensures the correct compilers, toolkits, and CMake configurations are in place for a robust user-space build.