Vspawn
vlinx-io/VelaTerm
Explicitly spawn a standalone child session under the current vlx-term session, passing the task in as its first message (mirrors spawntask).
Interactively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires).
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pigweed-project/pigweed manual-cli-test --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/manual-cli-test .claude/skills/manual-cli-test && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .claude/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-testType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pigweed-project/pigweed manual-cli-test --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/manual-cli-test .agents/skills/manual-cli-test && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .agents/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pigweed-project/pigweed manual-cli-test --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/manual-cli-test .cursor/skills/manual-cli-test && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .cursor/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pigweed-project/pigweed.git --path .agents/skills/manual-cli-test--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pigweed-project/pigweed manual-cli-test --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/manual-cli-test .gemini/skills/manual-cli-test && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .gemini/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pigweed-project/pigweed manual-cli-testInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/manual-cli-test .github/skills/manual-cli-test && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .github/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pigweed-project/pigweed --skill manual-cli-test -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pigweed-project/pigweed manual-cli-test --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pigweed-project/pigweed.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/manual-cli-test .opencode/skills/manual-cli-test && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "manual-cli-test" agent skill from https://github.com/pigweed-project/pigweed/tree/main/.agents/skills/manual-cli-test into .opencode/skills/manual-cli-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-cli-test", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
manual-cli-testInteractively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires).
Manual CLI Test is an agent skill from pigweed-project/pigweed. Interactively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires). Guides agents through decoupling branch-dependent binaries, setting up disposable Git worktree sandboxes, running multi-axis scenario matrices, critiquing real stdout/stderr ergonomics from a consumer's perspective, and using fresh-eyes subagents.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Git worktrees and Subagents. It works with Git. The repository describes itself as: Modern software development for embedded systems. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e73c1a0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Manual CLI Test loads about 4.1k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 2,107 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pigweed-project/pigweed at commit e73c1a0, republished under its Apache-2.0 licence (© pigweed-project). 2,107 words, ~4,146 tokens.
.claude/skills/manual-cli-test/SKILL.md (or your agent's skills folder)./manual-cli-test / agent-cli-kick-tires)Unit tests and mocked integration tests are necessary, but they are never sufficient for a CLI tool.
Unit tests only verify assertions the author remembered to write against synthetic fixtures. A CLI command can have 100% unit test pass rates while still emitting output that is contradictory on adjacent lines, bloated with bot noise, missing critical fields needed for the next step, or actively misleading when run against real repository and server state.
/manual-cli-test ("tasting the CLI" or "kicking the tires") is a
disciplined workflow where you—the LLM—step out of the code-author mindset and
into the consumer mindset. You build a standalone snapshot of the CLI, exercise
it across a matrix of realistic and adversarial states in a safe sandbox, read
every line of stdout and stderr critically, fix what feels wrong, and
re-taste until the CLI is crisp, honest, and ergonomic.
HEAD states, and half-finished rebases that
hand-crafted unit test structs rarely model./crank).
Tasting asks: "If I only had this stdout, could I take the exact right next
step immediately without running three extra diagnostic commands?"When testing a CLI subcommand that lives on your current feature branch (such as
a new ./gh or ./pw subcommand), do not test branch-switching, checkout,
rebase, or --prepare flows by invoking the repo wrapper (./gh) inside your
active development worktree:
./gh to rebuild an
older commit where your new subcommand or fix does not exist!MODULE.bazel.lock.Always separate the binary under test from the Git worktree being manipulated:
Compile & Snapshot the Binary to /tmp:
Build the target once in your primary feature worktree and copy the compiled
executable to /tmp:
bazelisk build --noshow_progress --noshow_loading_progress //pw_ghish:gh-ish
cp -f bazel-bin/pw_ghish/gh-ish_/gh-ish /tmp/gh-under-test
chmod +x /tmp/gh-under-test(Whenever you edit code during the fix loop, re-run this one-liner to
refresh /tmp/gh-under-test.)
Use Secondary Worktrees for Read-Only Cross-Worktree Sensing:
If git worktree list or ./gh wt list shows another clean worktree while
your primary worktree has an active CL, you can test read-only commands there
via a subshell:
(cd /path/to/other/worktree && /tmp/gh-under-test <subcmd>)Create a Disposable git worktree Sandbox in /tmp for Mutations:
For any scenario that switches branches, creates commits, dirties files,
triggers merge/rebase conflicts, or tests mutating flags (like --prepare or
checkout), create a lightweight detached worktree in /tmp with an
automatic EXIT cleanup trap:
SANDBOX="/tmp/cli-taste-sandbox-$$"
cleanup() {
git worktree remove --force "$SANDBOX" 2>/dev/null || rm -rf "$SANDBOX"
git worktree prune 2>/dev/null || true
git branch -D test-cli-wip test-cli-conflict 2>/dev/null || true
}
trap cleanup EXIT
git worktree add --detach "$SANDBOX" origin/mainVerify Your Sandbox Setup Actually Produced the Intended State:
git rebase conflict by editing a file on
origin/main~3 and rebasing onto origin/main, if that file was not
actually modified between origin/main~3 and origin/main, Git will
fast-forward/rebase cleanly without a conflict—and you will accidentally
test a clean branch thinking you tested a conflict!(
cd "$SANDBOX"
git checkout -q -b test-cli-conflict origin/main~1
FILE=$(git diff --name-only origin/main~1 origin/main | head -n 1)
echo "# SIMULATED CONFLICT" > "$FILE"
git commit -q -a -m "pw_foo: Simulated conflict on $FILE"
git rebase origin/main || true # Guaranteed UU conflict on $FILE
/tmp/gh-under-test <subcmd>
git rebase --abort || true
)Check Primary Worktree Hygiene Afterward:
After running your suite, run git status -s in your primary worktree and
revert any incidental lockfile touches (e.g.
git checkout -- MODULE.bazel.lock).
Before running commands, design a concrete scenario list of 8–12 cases spanning four orthogonal axes:
origin/main with an open
Gerrit CL (status=NEW).origin/main (ahead=0) or on
a branch whose CL was already MERGED or ABANDONED.ahead=0, dirty=true): Modified tracked files on a brand
new branch with zero commits ahead of origin/main.origin/main (test both a cleanly mergeable branch and one where in-memory
git merge-tree --write-tree HEAD origin/main detects a conflict).REBASE_IN_PROGRESS): Active git rebase paused on
an unmerged (UU) file conflict./tmp/gh-under-test pr list --limit 10) so you test against real review
threads, CI checks, and ownership metadata.MERGED CL and an
already-CLOSED Buganizer issue.OPEN bug that already has an
open Gerrit CL linked to it (should recommend adopting the CL, not creating a
duplicate CL!).pwrev/12345, b/12345), full
URLs, or external artifact URLs (e.g. Google Chat thread URLs).404) & Malformed Inputs: Test pwrev/999999999,
b/999999999, and not-a-valid-target.--help Inspection: Always read <subcmd> --help first. Are all flags,
defaults, and examples accurate?--json vs. --status.--fleet / --all and
environment overrides (e.g. GH_ISH_ONCALL_FILE=/tmp/mock-oncall.cfg).--prepare <target>) while
on a dirty branch or active open CL and verify it refuses to clobber work with
a clear reason./tmp sandbox and
verify the mutation succeeds.Run your scenario matrix in batches, read the literal output for each scenario, and evaluate it against the 6 Tasting Questions:
/crank or a human
engineer) everything needed to execute the next step without extra CLI
round-trips?Next: steps make sense
for this exact state, or are they generic boilerplate that tells the user
to do something invalid (like fixing a closed bug or checking out a 404 CL)?These real bugs were all discovered in a single ./gh sense tasting session
after 100% of unit tests were already passing:
| Bug Pattern | What Happened in Practice | Why Unit Tests Missed It & How Tasting Caught It |
|---|---|---|
1. Upstream State Leakage on ahead=0 | Creating a new branch git checkout -b wip origin/main (ahead=0) and dirtying a file caused the CLI to read HEAD's Change-Id: trailer from origin/main and report upstream's last merged CL (#497018 MERGED) as the branch's Active CL. | Unit tests mocked ChangeID: "" whenever CommitsAhead: 0. Live Git HEAD on origin/main has a Change-Id trailer from the last merged commit! |
| 2. Contradictory Adjacent Lines | During a mid-rebase conflict, the CLI printed Summary: Git rebase in progress on HEAD with unresolved conflicts right above Rebase: UP_TO_DATE — 0 commits behind origin/main. | During git rebase origin/main, detached HEAD sits on origin/main (behind=0). computeRebaseVerdict checked CommitsBehind == 0 before RebaseInProgress. |
| 3. Post-Mutation State Clobbering | Running --prepare b/469150426 when the bug branch already existed locally switched to the branch, but overwrote CommitsAhead = 0 and ChangeID = "" instead of re-sensing gitState and activeCL—hiding the branch's existing open CL! | Unit tests only tested CanSafelyPrepareWorktree gate logic, not the state re-sensing after executeSafePrepare checked out an existing branch. |
| 4. Active Context Shadowing Target Context | Running ./gh sense pwrev/490178 (a teammate's CL) from an active worktree (on #498153) rendered Active CL: #498153 in full and completely hid Target CL: #490178! | Status card rendering had if r.ActiveCL != nil { render(r.ActiveCL) } else { render(r.Target.CL) }, starving the explicit target whenever the local worktree had an active CL. |
| 5. Wrong-Branch File Enrichment | Inspecting a remote un-checked-out CL (pwrev/477005) attempted to read comment file paths from the local cwd worktree, attaching code snippets from the wrong branch (or trying to read /COMMIT_MSG from disk). | enrichCommentsWithLocalCode was called unconditionally inside senseGerritCL without checking if the CL was actually checked out at cwd. |
| 6. Recommending Duplicate Work | Sensing an open bug (b/469150426) that already showed pwrev/498953 [NEW] under Related Gerrit CLs still told the agent in Next: to implement a fix from scratch and run ./gh pr create. | Classification logic for CRANK_BUG didn't inspect whether issue.RelatedCLs already contained a NEW CL to adopt. |
| 7. Actioning Closed / Merged / 404 Targets | Passing a CLOSED bug (b/571616997) or a non-existent CL (pwrev/999999999) still recommended allocating a worktree slot and writing a fix or running pr checkout 999999999. | Classifier assumed any valid ID string resolved to an actionable open item without checking Issue.State == "CLOSED", CL.Status == "MERGED", or NotFound. |
| 8. Bot Noise & Backwards Comment Order | Live Buganizer comments printed newest-first (#4, #3, #2) with 15 lines of gitwatcher HTML ( , <details>) and blunderbuss auto-assigner noise. | Mocked issue comments in unit tests were clean 1-line strings in ascending order; live Buganizer API returns reverse-chronological entries with automated bot HTML. |
| 9. Silent Flag No-Ops & Missing Micro-Context | --fleet populated internal structs but never rendered the Fleet Worktrees section in text mode; dirty=true (1 files) omitted the dirty filenames; Target CL omitted (owner=...). | Text formatter was written before --fleet was wired up, and only tasting revealed that omitting dirty file paths and CL owner forced extra CLI calls. |
After fixing all issues discovered during tasting:
/tmp/<tool>-under-test.When invoke_subagent is available, always use TypeName: "self" and
Workspace: "inherit" (never "branch" or "share", which create ad-hoc
checkouts with cold Bazel caches). Subagents unlock three high-leverage CLI
testing patterns:
Because the author agent knows the implementation internals, it often overlooks confusing flag names, cryptic status badges, or missing next-step instructions. To get an unbiased evaluation, spawn a subagent that has not read the implementation source files:
/tmp/<tool>-under-test)./tmp/cli-sandbox-fresh)./crank. Run
/tmp/gh-under-test sense --help to learn the tool, then run it across
these 5 scenarios in /tmp/cli-sandbox-fresh. Do NOT read the Go source
code. Report every place where the output is confusing, contradictory,
noisy, or leaves you unsure what command to run next.").--help,
stdout, stderr, and exit codes—just like a real downstream consumer.When testing a large scenario matrix or slow network/build flows, fan out 2–3
subagents in parallel (Workspace: "inherit"), giving each subagent its own
isolated /tmp/cli-sandbox-<N> worktree and a slice of the scenario matrix
(e.g., Subagent 1 tests local Git/rebase conflict states; Subagent 2 tests live
Gerrit CL and Buganizer target states; Subagent 3 tests --prepare safety gates
and idempotency).
After an intensive manual CLI testing and debugging session in the parent conversation, you can delegate documentation, skill updates, or regression test authoring to a subagent while preserving the full history of what went wrong:
<appDataDir>/brain/<parent-conversation-id>/.system_generated/logs/transcript.jsonl)
and step range in the subagent prompt.view_file so it can
see the exact raw CLI outputs, hypotheses, and fixes without cluttering the
parent agent's context window.© pigweed-project, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/manual-cli-test of pigweed-project/pigweed.
Open the folder on GitHubat commit e73c1a0
Manual CLI Test next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Manual CLI Test this skillpigweed-project/pigweed | 548 | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Vspawnvlinx-io/VelaTerm | 281 | — | ~2.5k | Automated safety check: Pass | MIT | |
| PmApra-Labs/apra-fleet | 101 | — | ~5.4k | Automated safety check: Pass | Custom licence | |
| Qwen Code Team CoordinatorQwenLM/qwen-code | 28k | — | ~994 | Automated safety check: Pass | Apache-2.0 | |
| Vspawn Treevlinx-io/VelaTerm | 281 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Vibe Cherry Pick Integrationash1794/vibe-engineering | 163 | — | ~573 | Automated safety check: Pass | MIT |
vlinx-io/VelaTerm
Explicitly spawn a standalone child session under the current vlx-term session, passing the task in as its first message (mirrors spawntask).
Apra-Labs/apra-fleet
Project Manager skill. An agent skill from Apra-Labs/apra-fleet.
QwenLM/qwen-code
Leads a small team of Qwen Code teammates: read-only investigators work in parallel, then one writer pinned to a git worktree makes the changes.
vlinx-io/VelaTerm
Same as /vspawn, but opens a dedicated git worktree for the child session (equivalent to vspawn --worktree).
ash1794/vibe-engineering
Safely integrates commits from parallel agent branches using sequential cherry-pick.
alirezarezvani/claude-skills
Multi-agent collaboration plugin that spawns N parallel subagents competing on the same task via git worktree isolation.
pigweed-project/pigweed
Pigweed oncall rotation runbooks and maintenance workflows (such as rolling CIPD client tools for b/315378787).
pigweed-project/pigweed
Autonomous "take the next step" workflow orchestrator for Pigweed.
pigweed-project/pigweed
A skill your agent uses for ALL documentation-related workflows: rst style guide, changelog updates, C/C++ API reference (Doxygen)
pigweed-project/pigweed
Safely rebase or fast-forward the active Pigweed worktree onto its target branch (origin/main), resolve Pigweed dual-build and code conflicts, preserve Gerrit Change-Id footers, and verify local…
pigweed-project/pigweed
Address Gerrit review comments and private author drafts on a Pigweed CL with calibrated engineering judgment—implementing valid fixes, answering questions, or pushing back respectfully with…
pigweed-project/pigweed
High-signal, embedded-aware Pigweed code review skill with strict comment calibration.
Works with
Categories
Interactively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires). Manual CLI Test is an agent skill from pigweed-project/pigweed. Interactively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires).
Manual CLI Test fits situations like: tasks that involve Git worktrees; tasks that involve Subagents.
Run `npx skills add pigweed-project/pigweed --skill manual-cli-test -a claude-code`. Or copy the skill folder (.agents/skills/manual-cli-test in pigweed-project/pigweed) into .claude/skills/manual-cli-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pigweed-project/pigweed --skill manual-cli-test -a codex`. Or copy the skill folder (.agents/skills/manual-cli-test in pigweed-project/pigweed) into .agents/skills/manual-cli-test in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pigweed-project/pigweed --skill manual-cli-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/manual-cli-test, .gemini/skills/manual-cli-test, .github/skills/manual-cli-test and .opencode/skills/manual-cli-test in your project.
Going by SKILL.md and its folder, Manual CLI Test needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Manual CLI Test is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Manual CLI Test: Vspawn (vlinx-io/VelaTerm, 281 stars), Pm (Apra-Labs/apra-fleet, 101 stars), Qwen Code Team Coordinator (QwenLM/qwen-code, 28k stars) and Vspawn Tree (vlinx-io/VelaTerm, 281 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pigweed-project (a GitHub organization) maintains it in pigweed-project/pigweed, which has 548 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.
Source: pigweed-project/pigweed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.