terrylica/cc-skills/plugins/itp/skills/setup/SKILL.md
setup
SETUP COMMAND - Execute TodoWrite FIRST, then Check -> Gate -> Install -> Verify. TRIGGERS - itp setup, install dependencies, check prerequisites
- Source repository stars
- 62
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-24
- Source checked
- 2026-08-25
Decision brief
What it does: where it fits
Verify and install dependencies required by the /itp:go workflow using TodoWrite-driven interactive workflow.
Not for
- graph-easy fails to install
- semantic-release not found
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/terrylica/cc-skills --skill "plugins/itp/skills/setup"Inspect the Agent Skill "setup" from https://github.com/terrylica/cc-skills/blob/a5f847b22ee5afa35677e446973a903d098cd1d4/plugins/itp/skills/setup/SKILL.md at commit a5f847b22ee5afa35677e446973a903d098cd1d4. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Phase 1: Preflight Check
Mark each todo as inprogress before starting, completed when done.
Found: [OK] uv (installed) - mark completedMissing: [x] prettier (missing) - note for Phase 3Mark each todo as inprogress before starting, completed when done. - 02
Phase 2: Present Findings (Interactive Gate)
IMPORTANT: Use mise-first commands when available
If HASMISE=true (detected in Todo 1): Show mise commandsIf HASMISE=false: Show platform package manager commands (brew/apt)IMPORTANT: Use mise-first commands when available - 03
Phase 3: Installation (Conditional)
Run installation commands for missing tools only:
User selected "Install missing"OR --install flag was passed (skip interactive gate)Display manual install commands - 04
MANDATORY FIRST ACTION
YOUR FIRST ACTION MUST BE TodoWrite with the template below.
Run any checks before TodoWriteSkip the interactive gateInstall without user confirmation - 05
Todo 0: Bootstrap the cc-plugin-root resolver
Every later step resolves plugin paths with cc-plugin-root, so install it first. This is the ONE place a marketplace-mirror path is hardcoded — it is the bootstrap, and by definition cannot use the resolver it is installing. Idempotent; safe to re-run.
Every later step resolves plugin paths with cc-plugin-root, so install it first. This is the ONE place a marketplace-mirror path is hardcoded — it is the bootstrap, and by definition cannot use the resolver it is instal…Why it exists: the CLAUDEPLUGINROOT placeholder is not a shell variable — Claude Code substitutes it only inside plugin manifests and sets it only in hook/MCP subprocess environments, so a skill that uses it gets an emp…
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --installRuns scripts
The documentation asks the agent to run terminal commands or scripts.
bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --checkEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 62 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- terrylica/cc-skills
- Skill path
- plugins/itp/skills/setup/SKILL.md
- Commit
- a5f847b22ee5afa35677e446973a903d098cd1d4
- License
- MIT
- Collected
- 2026-08-25
- Default branch
- main
View the original SKILL.md
ITP Setup
Verify and install dependencies required by the /itp:go workflow using TodoWrite-driven interactive workflow.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
MANDATORY FIRST ACTION
YOUR FIRST ACTION MUST BE TodoWrite with the template below.
DO NOT:
- Run any checks before TodoWrite
- Skip the interactive gate
- Install without user confirmation
Execute this TodoWrite template EXACTLY:
TodoWrite with todos:
- "Setup: Bootstrap cc-plugin-root resolver" | pending | "Bootstrapping path resolver"
- "Setup: Detect platform (macOS/Linux)" | pending | "Detecting platform"
- "Setup: Check Core Tools (uv, gh, prettier)" | pending | "Checking Core Tools"
- "Setup: Check ADR Diagram Tools (cpanm, graph-easy)" | pending | "Checking ADR Tools"
- "Setup: Check Code Audit Tools (ruff, semgrep, jscpd, gitleaks)" | pending | "Checking Audit Tools"
- "Setup: Check Release Tools (node, semantic-release)" | pending | "Checking Release Tools"
- "Setup: Present findings and disclaimer" | pending | "Presenting findings"
- "Setup: GATE - Await user decision" | pending | "Awaiting user decision"
- "Setup: Install missing tools (if confirmed)" | pending | "Installing missing tools"
- "Setup: Verify installation" | pending | "Verifying installation"
After TodoWrite completes, proceed to Phase 1 below.
Phase 1: Preflight Check
Mark each todo as in_progress before starting, completed when done.
Todo 0: Bootstrap the cc-plugin-root resolver
Every later step resolves plugin paths with cc-plugin-root, so install it first. This is the ONE
place a marketplace-mirror path is hardcoded — it is the bootstrap, and by definition cannot use the
resolver it is installing. Idempotent; safe to re-run.
/usr/bin/env bash << 'SETUP_EOF'
set -euo pipefail
if command -v cc-plugin-root >/dev/null 2>&1; then
echo "cc-plugin-root: already on PATH ($(command -v cc-plugin-root))"
exit 0
fi
SRC="$HOME/.claude/plugins/marketplaces/cc-skills/scripts/cc-plugin-root"
if [[ ! -f "$SRC" ]]; then
echo "cc-plugin-root: not found at $SRC — update the marketplace first:" >&2
echo " claude plugin marketplace update cc-skills" >&2
exit 1
fi
mkdir -p "$HOME/.local/bin"
chmod +x "$SRC"
ln -sfn "$SRC" "$HOME/.local/bin/cc-plugin-root"
echo "cc-plugin-root: linked -> $HOME/.local/bin/cc-plugin-root"
command -v cc-plugin-root >/dev/null 2>&1 \
|| echo "WARNING: ~/.local/bin is not on PATH — add it to your shell profile." >&2
SETUP_EOF
Why it exists: the CLAUDE_PLUGIN_ROOT placeholder is not a shell variable — Claude Code substitutes it only
inside plugin manifests and sets it only in hook/MCP subprocess environments, so a skill that uses it
gets an empty string. cc-plugin-root <plugin> reads ~/.claude/plugins/installed_plugins.json and
prints the live install path instead. See the
skill-plugin-root guard spoke.
Todo 1: Detect Platform
/usr/bin/env bash << 'SETUP_EOF'
PLUGIN_DIR="$(cc-plugin-root itp)"
source "$PLUGIN_DIR/scripts/install-dependencies.sh" --detect-only
SETUP_EOF
Platform detection sets: OS, PM (package manager), HAS_MISE
Todo 2: Check Core Tools
Check each tool using command -v:
| Tool | Check | Required |
|---|---|---|
| uv | command -v uv | Yes |
| gh | command -v gh | Yes |
| prettier | command -v prettier | Yes |
Record findings:
- Found:
[OK] uv (installed)-> mark completed - Missing:
[x] prettier (missing)-> note for Phase 3
Todo 3: Check ADR Diagram Tools
| Tool | Check | Required |
|---|---|---|
| cpanm | command -v cpanm | For diagrams |
| graph-easy | echo "[A]" | graph-easy (test) | For diagrams |
Todo 4: Check Code Audit Tools
| Tool | Check | Required |
|---|---|---|
| ruff | command -v ruff | For code-audit |
| semgrep | command -v semgrep | For code-audit |
| jscpd | command -v jscpd | For code-audit |
| gitleaks | command -v gitleaks | For secret-scan |
Todo 5: Check Release Tools
| Tool | Check | Required |
|---|---|---|
| node | command -v node | For release |
| semantic-release | npx semantic-release --version | For release |
| doppler | command -v doppler | For PyPI only |
Phase 2: Present Findings (Interactive Gate)
Todo 6: Present Findings
IMPORTANT: Use mise-first commands when available
When presenting missing tool installation commands:
- If
HAS_MISE=true(detected in Todo 1): Show mise commands - If
HAS_MISE=false: Show platform package manager commands (brew/apt)
Mise command reference (use when HAS_MISE=true):
| Tool | mise command | Notes |
|---|---|---|
| gitleaks | mise use --global gitleaks | |
| ruff | mise use --global ruff | |
| uv | mise use --global uv | |
| gh | brew install gh | NEVER mise (iTerm2 issues) |
| semgrep | mise use --global semgrep | |
| node | mise use --global node | |
| doppler | mise use --global doppler | |
| prettier | mise use --global npm:prettier | |
| jscpd | npm i -g jscpd (npm only) |
Warning: gh CLI must be installed via Homebrew, not mise. mise-installed gh causes iTerm2 tab spawning issues with Claude Code. ADR
Display summary format (versions derived from actual tool output):
=== SETUP PREFLIGHT COMPLETE ===
Found: X tools | Missing: Y tools
Your existing installations:
[OK] uv (<derived from: uv --version>)
[OK] gh (<derived from: gh --version>)
[x] gitleaks (missing)
...
Note: This plugin is developed against latest tool versions.
Your existing installations are respected.
Missing tools will be installed via mise (detected):
gitleaks -> mise use --global gitleaks
If HAS_MISE=false, show platform commands instead:
Missing tools will be installed via brew:
gitleaks -> brew install gitleaks
IMPORTANT: Version numbers must be derived dynamically from running the actual tool's version command. Never hardcode version numbers.
Todo 7: GATE - Await User Decision
If missing tools exist, STOP and ask user:
Use AskUserQuestion with these options:
question: "Would you like to install the missing tools?"
header: "Install"
options:
- label: "Install missing"
description: "Automatically install all missing tools"
- label: "Skip"
description: "Show manual install commands and exit"
IMPORTANT: Do NOT proceed to Phase 3 until user responds.
If ALL tools present: Mark todo completed, skip to "All set!" message, mark todos 8-9 as N/A.
Phase 3: Installation (Conditional)
Todo 8: Install Missing Tools
Only execute if:
- User selected "Install missing"
- OR
--installflag was passed (skip interactive gate)
Run installation commands for missing tools only:
/usr/bin/env bash << 'SETUP_EOF_2'
PLUGIN_DIR="$(cc-plugin-root itp)"
bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --install
SETUP_EOF_2
If user selected "Skip":
- Display manual install commands
- Mark todo as skipped
- Exit cleanly
Todo 9: Verify Installation
Re-run checks to confirm tools are now available:
/usr/bin/env bash << 'PREFLIGHT_EOF'
PLUGIN_DIR="$(cc-plugin-root itp)"
bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --check
PREFLIGHT_EOF
Mark todo completed only if verification passes.
Flag Handling
| Flag | Behavior |
|---|---|
| (none) | Default: Check -> Gate -> Ask permission |
--check | Same as default (hidden alias) |
--install | Check -> Skip gate -> Install automatically |
--yes | Alias for --install |
Parse $ARGUMENTS for flags:
case "$ARGUMENTS" in
*--install*|*--yes*)
SKIP_GATE=true
;;
*)
SKIP_GATE=false
;;
esac
Edge Cases
| Case | Handling |
|---|---|
| All tools present | Todos 1-6 complete, Todo 7 shows "All set!", Todos 8-9 marked N/A |
| Some missing, user says "install" | Todos 8-9 execute normally |
| Some missing, user says "skip" | Show manual commands, mark todos 8-9 as skipped |
--install flag passed | Skip Todo 7 gate, proceed directly to install |
| macOS vs Linux | Todo 1 detects platform, install commands adapt |
Troubleshooting
graph-easy fails to install
# Ensure cpanminus is installed first
brew install cpanminus
# Then install Graph::Easy
cpanm Graph::Easy
semantic-release not found
# Install globally with npm
npm i -g semantic-release@25
# Or use npx (no global install needed)
npx semantic-release --version
Permission errors with npm
/usr/bin/env bash << 'CONFIG_EOF'
# Fix npm permissions
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
# Add to your shell config
SHELL_RC="$([[ "$SHELL" == */zsh ]] && echo ~/.zshrc || echo ~/.bashrc)"
echo 'export PATH=~/.npm-global/bin:$PATH' >> "$SHELL_RC"
source "$SHELL_RC"
CONFIG_EOF
Next Steps
After setup completes, configure itp-hooks for enhanced workflow guidance:
-
Check hook status:
/itp:tether status -
Install hooks (if not already installed):
/itp:tether install
What hooks provide
- PreToolUse guard: Blocks Unicode box-drawing diagrams without
<details>source blocks - PostToolUse reminder: Prompts ADR sync and graph-easy skill usage
IMPORTANT: Hooks require a Claude Code session restart after installation.
Post-Execution Reflection
After this skill completes, reflect before closing the task:
- Locate yourself. — Find this SKILL.md's canonical path (Glob for this skill's name) before editing. All corrections target THIS file and its sibling references/ — never other documentation.
- What failed? — Fix the instruction that caused it. If it could recur, add it as an anti-pattern.
- What worked better than expected? — Promote it to recommended practice. Document why.
- What drifted? — Any script, reference, or external dependency that no longer matches reality gets fixed now.
- Log it. — Every change gets an evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.
Frequently asked questions
What to verify before installation and use
What does the setup source document cover?
Verify and install dependencies required by the /itp:go workflow using TodoWrite-driven interactive workflow.
How do I install setup?
The source record exposes this install command: npx skills add https://github.com/terrylica/cc-skills --skill "plugins/itp/skills/setup". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
davepoon/buildwithclaude
setup
Interactive setup wizard for the claude-ops plugin. Installs missing CLIs, configures env vars for each channel (Telegram, WhatsApp, Email, Slack, Notion, Linear, Sentry, Vercel), builds the project registry, and saves user preferences. Run once after installing the plugin or any time to reconfigure.
terrylica/cc-skills
setup
Full Cal.com Commander setup wizard - Cal.com API, Telegram bot, Supabase DB, GCP project, launchd services. Discovers 1Password.
terrylica/cc-skills
setup
Full Gmail Commander setup wizard - Gmail OAuth, Telegram bot, launchd services. Discovers 1Password items, configures mise.
vasilyu1983/AI-Agents-public
qa-testing-ios
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.