Source profileQuality 91/100Review permissions

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.

Best for

    Not for

    • graph-easy fails to install
    • semantic-release not found

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/terrylica/cc-skills --skill "plugins/itp/skills/setup"
    Safe inspection promptEditorial

    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

    1. 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.
    2. 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
    3. 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
    4. 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
    5. 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

    medium · line 226

    The documentation asks the agent to run terminal commands or scripts.

    bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --install

    Runs scripts

    medium · line 243

    The documentation asks the agent to run terminal commands or scripts.

    bash "$PLUGIN_DIR/scripts/install-dependencies.sh" --check

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars62SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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:

    ToolCheckRequired
    uvcommand -v uvYes
    ghcommand -v ghYes
    prettiercommand -v prettierYes

    Record findings:

    • Found: [OK] uv (installed) -> mark completed
    • Missing: [x] prettier (missing) -> note for Phase 3

    Todo 3: Check ADR Diagram Tools

    ToolCheckRequired
    cpanmcommand -v cpanmFor diagrams
    graph-easyecho "[A]" | graph-easy (test)For diagrams

    Todo 4: Check Code Audit Tools

    ToolCheckRequired
    ruffcommand -v ruffFor code-audit
    semgrepcommand -v semgrepFor code-audit
    jscpdcommand -v jscpdFor code-audit
    gitleakscommand -v gitleaksFor secret-scan

    Todo 5: Check Release Tools

    ToolCheckRequired
    nodecommand -v nodeFor release
    semantic-releasenpx semantic-release --versionFor release
    dopplercommand -v dopplerFor 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):

    Toolmise commandNotes
    gitleaksmise use --global gitleaks
    ruffmise use --global ruff
    uvmise use --global uv
    ghbrew install ghNEVER mise (iTerm2 issues)
    semgrepmise use --global semgrep
    nodemise use --global node
    dopplermise use --global doppler
    prettiermise use --global npm:prettier
    jscpdnpm 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 --install flag 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

    FlagBehavior
    (none)Default: Check -> Gate -> Ask permission
    --checkSame as default (hidden alias)
    --installCheck -> Skip gate -> Install automatically
    --yesAlias for --install

    Parse $ARGUMENTS for flags:

    case "$ARGUMENTS" in
      *--install*|*--yes*)
        SKIP_GATE=true
        ;;
      *)
        SKIP_GATE=false
        ;;
    esac
    

    Edge Cases

    CaseHandling
    All tools presentTodos 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 passedSkip Todo 7 gate, proceed directly to install
    macOS vs LinuxTodo 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:

    1. Check hook status:

      /itp:tether status
      
    2. 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:

    1. 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.
    2. What failed? — Fix the instruction that caused it. If it could recur, add it as an anti-pattern.
    3. What worked better than expected? — Promote it to recommended practice. Document why.
    4. What drifted? — Any script, reference, or external dependency that no longer matches reality gets fixed now.
    5. 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