plugin-fresh-install-test
Test what a teammate on a brand-new machine actually gets from a Claude Code plugin (skills, SessionStart context, PreToolUse guards) - with a throwaway…
Skill by itgenius-au
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/itgenius-au-plugin-fresh-install-test
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, design, testing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/plugin-fresh-install-test
What's inside
- Skill name
plugin-fresh-install-test- Description
- Test what a teammate on a brand-new machine actually gets from a Claude Code plugin (skills, SessionStart context, PreToolUse guards) - with a throwaway config dir, optional logging stubs for risky commands, and evidence graded from events instead of the model's self-report. Works for any plugin. Use after changing a plugin's hooks, guards, session-start block, or how it is delivered (org push, personal subscription, repo .claude/settings.json), or when a new teammate's experience must be proven rather than assumed. Triggers on: fresh install test, plugin fresh install, test the plugin on a fresh machine, clean config test, does a new teammate get, does the repo settings file load the plugin, test plugin delivery, synced plugin test.
- License
- MIT
- Instructions
- 74 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (4)
- SKILL.md
- fresh-launch.sh · scripts/
- probe.sh · scripts/
- verify-transcript.sh · scripts/
SKILL.md (first lines)
# Plugin fresh-install test
Prove what a new teammate gets from a plugin, without trusting your own machine's setup
or the model's answer about itself. Three scripts in `scripts/`; run them with `bash`.
Before you start, decide three things about the plugin under test:
- its **name** (as it appears in the session init plugin list),
- a **phrase** that exists only in its SessionStart hook's context (if it has one),
- a **guard control** (if it has a PreToolUse guard): a command the guard should block or
warn on, plus the text the guard prints. If the control could do real damage when the
guard fails (a deploy, a delete, a push), stub that command with `--stub` so it only logs.
## Why the obvious test lies (read first)
- **Your claude.ai account masks the result.** Plugins turned on for your claude.ai
account (personally, or by your org) load as `<name>@synced` in EVERY folder, even in
a fresh `CLAUDE_CONFIG_DIR`. To test another route (for example a repo's
`.claude/settings.json`), turn the synced copy off BEFORE the first launch
(`--no-synced <plugin>`).
- **The model's self-report is unreliable both ways.** Grade from events: the
stream-json `system/init` plugin list (with `source`) and a `hook_response` that
carries a phrase found only in the hook's context.
- **Never grep for a string your own prompt contains.** It matches the prompt and gives
a false pass. The probe prompt here deliberately omits the phrase it checks for.
- **The first session after an in-session sign-in has no SessionStart context.**
Synced plugins arrive after sign-in, so the session-start block is missing while
PreToolUse guards still attach later. Judge the session-start block on the SECOND session.
- **A repo `.claude/settings.json` alone may not persist a plugin** (seen on Claude Code
2.1.283): the first session downloads and loads it, but it is never written to
`installed_plugins.json`, and later sessions log `Plugin "<name>" not cached`.
- **Probe from a clone outside any parent workspace.** A repo nested inside a parent
folder with its own CLAUDE.md or memory lets a session read the parent's context and
answer from the wrong source.
- **`claude -p` slips:** `--allowedTools` is variadic and swallows a following prompt
argument (pass the prompt on stdin); macOS has no `timeout`.
## Procedure
1. **Interactive first session** (a human signs in; never type credentials for them):
```bash
bash scripts/fresh-launch.sh <repo-dir> [--no-synced <plugin>] [--stub <cmd>]... [--out <dir>]
```
In the session: sign in, trust the folder, accept plugin/marketplace prompts, then
ask it to run your guard control (with a stub in place, for example `--stub gcloud`
and the control `gcloud run deploy x --source .`), then `/exit`. A stub only logs its
arguments to `<out-dir>/stub-<cmd>.log`; nothing real runs. With no `--stub`, nothing
is replaced, so only use controls that are safe to run for real.
2. **Verify that session** from its transcript (every check is optional; pass the ones
that apply to your plugin):
```bash
bash scripts/verify-transcript.sh <out-dir> [--phrase "<text only in the hook context>"] \
[--guard "<guard output prefix>"] [--forbid "<regex that must never reach a stub log>"]
```
3. **Second session, headless** - the real steady state:
```bash
bash scripts/probe.sh <out-dir> <repo-dir> --plugin <name> [--phrase "<text>"]
```
Pass = the plugin appears in init with the expected `source`, and (when you gave a
phrase) the phrase count is at least 1. `cache-miss errors > 0` with no install
record = the route did not persist.
## Reading results
| probe says | meaning |
|---|---|
| `[<name>@synced]` + phrase >= 1 | delivered by claude.ai (personal or org) |
| `[<name>@<marketplace>]` + phrase >= 1 | delivered by an installed marketplace plugin |
| `[none]` + cache-miss errors | enabled but never registered: that route does not persist |
| `[none]` + no errors | nothing enables the plugin here |
Give a negative-control run (a folder that should get nothing) alongside any "not
loaded" finding, and record the Claude Code version with every result.From itgenius-au/skills-library, MIT.
More from itgenius-au/skills-library
- 0.592score
dev-deploy-safely
itgenius-au
Use before production, shared staging, or preview deploys.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
dev-brainstorming
itgenius-au
Turn a vague idea into a concrete, approved design or spec through collaborative dialogue.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
exec-summary
itgenius-au
Turn complex content into a short plain-language executive summary in Simplified Technical English: 3-5 key points, numbered decisions each with a…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-auto-build
itgenius-au
Autonomously execute a plan/runbook end to end using a rigorous multi-model method: an AI build agent (e.g.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-update-env
itgenius-au
Audit and update the CLI tools, MCP servers, and system packages on a macOS or Linux dev machine.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-writing-plans
itgenius-au
Turn a spec into a granular, dependency-ordered implementation plan with a file-structure map, right-sized tasks, verification criteria, risk/rollback flags…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-debugging
itgenius-au
The house debugging discipline for a bug or unexpected behaviour: reproduce it on demand, form one testable hypothesis, isolate the cause with evidence…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-qa-verify
itgenius-au
The verification-before-completion gate: prove a change works on the real surface before anything is called done.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
machine-move
itgenius-au
Live multi-machine sync (the daily driver) OR one-time new-machine setup.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
ai-debate
itgenius-au
ALIAS - renamed to review-debate.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
cleanup-git
itgenius-au
ALIAS - renamed to repo-cleanup.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
codex-review
itgenius-au
ALIAS - renamed to review-with-codex.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/itgenius-au/skills-library
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from itgenius-au
- 0.592score
dev-brainstorming
itgenius-au
Turn a vague idea into a concrete, approved design or spec through collaborative dialogue.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
dev-deploy-safely
itgenius-au
Use before production, shared staging, or preview deploys.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-update-env
itgenius-au
Audit and update the CLI tools, MCP servers, and system packages on a macOS or Linux dev machine.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-auto-build
itgenius-au
Autonomously execute a plan/runbook end to end using a rigorous multi-model method: an AI build agent (e.g.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-qa-verify
itgenius-au
The verification-before-completion gate: prove a change works on the real surface before anything is called done.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
dev-writing-plans
itgenius-au
Turn a spec into a granular, dependency-ordered implementation plan with a file-structure map, right-sized tasks, verification criteria, risk/rollback flags…
SkillAFreshness: A★ 1Claude Code +9
Cite this page
plugin-fresh-install-test skill. Agent Mart. https://agentmart.dev/skills/itgenius-au-plugin-fresh-install-test (last updated 2026-10-24)