Claude Code Plugins

Community-maintained marketplace

Feedback

Use when determining which repositories a task affects. Distinguishes between target repos (where changes happen) and reference repos (for learning patterns). Returns structured object with targets and references arrays.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name scope-check
description Use when determining which repositories or files a task affects. Distinguishes between target repos (where changes happen) and reference repos (for learning patterns). Supports both standard mode returning { targets, references } and audit mode detecting specific config files to audit. Returns structured scope object.

Scope Check Skill

Purpose: Analyze a prompt and return target repositories + reference repositories, or audit-specific files and repos.

Input: prompt (string) - The user's request; mode (string, optional) - "default" or "audit"

Output:

  • Default mode: { targets: string[], references: string[] } - Structured object with repo paths
  • Audit mode: { repos: string[], files: string[] } - Repos to audit and specific files to check

How to Execute

This is a TEXT ANALYSIS task - analyze the prompt text as your sole input:

Default Mode (targets & references)

  1. Scan the prompt for reference indicators (repos mentioned for pattern learning)
  2. Scan the prompt for target indicators (repos where changes should happen)
  3. Apply default: CWD is target if no explicit target mentioned
  4. Return: scope: { targets: [...], references: [...] }
  5. Complete in under 200 tokens

Expected output format:

scope: { targets: ["{CODE_ROOT}/metasaver-com"], references: ["{CODE_ROOT}/rugby-crm"] }

Audit Mode (repos & files)

  1. Detect repo targets using Step 2 rules (repositories to audit)
  2. Detect specific files using Step 2A rules (config files to check)
  3. If prompt mentions "audit X" pattern, detect files for X
  4. Return: scope: { repos: [...], files: [...] }
  5. Complete in under 200 tokens

Expected audit output format:

scope: { repos: ["{CODE_ROOT}/metasaver-com"], files: ["eslint.config.js", "turbo.json"] }

Path Resolution: Replace {CODE_ROOT} with the actual code directory (e.g., /home/user/code/). The calling agent provides the resolved paths.


Step 1: Detect Reference Repositories

Reference indicators - repos mentioned for learning/copying, NOT for changes:

Pattern Example
look at {repo}, check {repo} "look at rugby-crm for patterns"
similar to {repo}, like in {repo} "similar to how resume-builder does it"
follow pattern from {repo} "follow the pattern from multi-mono"
reference {repo}, based on {repo} "reference the rugby-crm implementation"
how {repo} does it, copy from {repo} "see how metasaver-com handles this"
{repo} has examples, {repo} shows how "rugby-crm has several pages like this"

Key distinction: Reference repos are mentioned WITH context clues indicating they're for learning, not changing.


Step 2: Detect Target Repositories

Target indicators - repos where changes WILL be made:

Pattern Example
in {repo}, to {repo}, for {repo} "add feature to metasaver-com"
update {repo}, fix {repo}, change {repo} "fix the bug in resume-builder"
create in {repo}, build for {repo} "create new component in rugby-crm"
{repo}'s {thing}, the {repo} {thing} "the metasaver-com database"
Direct path mentioned "/home/user/code/resume-builder/src/..."
Explicit: make changes in, modify, implement "implement auth in metasaver-com"

Default target: If no explicit target mentioned, use current working directory (CWD).


Step 2A: Detect Audit Files (Audit Mode Only)

When mode: "audit" is specified, detect specific config files mentioned or implied:

Prompt Pattern Files Detected
audit eslint, eslint config ["eslint.config.js"]
audit docker-compose, docker compose ["docker-compose.yml", "docker-compose.yaml"]
audit turbo, turbo config ["turbo.json"]
audit typescript, audit tsconfig, ts config ["tsconfig.json", "tsconfig.*.json"]
audit prettier, prettier config ["package.json"] (prettier field)
audit vite, vite config ["vite.config.ts"]
audit vitest, vitest config ["vitest.config.ts"]
audit monorepo root, root config All root-level config files: [".npmrc", "turbo.json", "pnpm-workspace.yaml", "package.json", "tsconfig.json"]
audit all configs, all configuration All known config files (union of above)
audit package.json, package files ["package.json"]
audit pnpm-lock ["pnpm-lock.yaml"]

File detection logic:

  • Match keywords in prompt (case-insensitive)
  • If specific file mentioned (e.g., "eslint.config.js"), return exact filename
  • If config type mentioned (e.g., "turbo"), return standard filename for that config
  • If "all configs" or "monorepo root", return all root-level configs
  • Empty files array means no specific file audit requested

Step 3: Known Repositories Reference

Repository Name Type Keywords
multi-mono Producer multi-mono, shared, library, config package
metasaver-com Consumer metasaver-com, metasaver.com, main site
resume-builder Consumer resume, resume-builder
rugby-crm Consumer rugby, rugby-crm, commithub
metasaver-marketplace Plugin agent, skill, command, plugin, mcp, claude, marketplace

Step 4: Handle Special Cases

Pattern Targets References
No repo mentioned at all [CWD] []
Only reference indicators found [CWD] [matched]
sync between X and Y, update both X and Y [X, Y] []
all repos, across all, all my metasaver [all known repos from Step 3] []
standardize X based on Y [X] [Y]

Examples

Example 1: Clear reference vs target

Prompt: "Add Applications screen to metasaver-com, look at rugby-crm for the pattern"
→ Target: "metasaver-com" (explicit target)
→ Reference: "rugby-crm" (look at = reference indicator)
→ Output: scope: { targets: ["{CODE_ROOT}/metasaver-com"], references: ["{CODE_ROOT}/rugby-crm"] }

Example 2: No repo mentioned (use CWD)

Prompt: "Fix the login bug"
→ Target: CWD (no explicit target)
→ Reference: none
→ Output: scope: { targets: ["{CWD}"], references: [] }

Example 3: Only reference mentioned

Prompt: "Check how rugby-crm handles authentication"
→ Target: CWD (no explicit target for changes)
→ Reference: "rugby-crm" (check how = reference indicator)
→ Output: scope: { targets: ["{CWD}"], references: ["{CODE_ROOT}/rugby-crm"] }

Example 4: Multiple targets

Prompt: "Update scope-check skill in metasaver-marketplace and multi-mono"
→ Target: both repos (explicit update targets)
→ Reference: none
→ Output: scope: { targets: ["{CODE_ROOT}/metasaver-marketplace", "{CODE_ROOT}/multi-mono"], references: [] }

Example 5: Target implicit from context

Prompt: "Create a shared Button component"
→ Target: multi-mono (shared = producer repo keyword)
→ Reference: none
→ Output: scope: { targets: ["{CODE_ROOT}/multi-mono"], references: [] }

Example 6: Standardize pattern

Prompt: "Standardize error handling in resume-builder based on metasaver-com patterns"
→ Target: resume-builder (standardize in)
→ Reference: metasaver-com (based on = reference indicator)
→ Output: scope: { targets: ["{CODE_ROOT}/resume-builder"], references: ["{CODE_ROOT}/metasaver-com"] }

Example 7: All repositories

Prompt: "audit all docker-compose files in all my metasaver repos"
→ Target: ALL known repos (detected: "all my metasaver repos")
→ Reference: none
→ Output: scope: { targets: ["{CODE_ROOT}/multi-mono", "{CODE_ROOT}/metasaver-com", "{CODE_ROOT}/resume-builder", "{CODE_ROOT}/rugby-crm", "{CODE_ROOT}/metasaver-marketplace"], references: [] }

Example 8: All repos with different phrasing

Prompt: "standardize eslint config across all repos"
→ Target: ALL known repos (detected: "across all repos")
→ Reference: none
→ Output: scope: { targets: ["{CODE_ROOT}/multi-mono", "{CODE_ROOT}/metasaver-com", "{CODE_ROOT}/resume-builder", "{CODE_ROOT}/rugby-crm", "{CODE_ROOT}/metasaver-marketplace"], references: [] }

Example 9: Audit single file (Audit Mode)

Prompt: "audit eslint config in metasaver-com"
Mode: "audit"
→ Repos: metasaver-com (explicit target)
→ Files: ["eslint.config.js"] (audit eslint = detected)
→ Output: scope: { repos: ["{CODE_ROOT}/metasaver-com"], files: ["eslint.config.js"] }

Example 10: Audit turbo in all repos (Audit Mode)

Prompt: "audit turbo.json in all my metasaver repos"
Mode: "audit"
→ Repos: ALL known repos (detected: "all my metasaver repos")
→ Files: ["turbo.json"] (audit turbo = detected)
→ Output: scope: { repos: ["{CODE_ROOT}/multi-mono", "{CODE_ROOT}/metasaver-com", "{CODE_ROOT}/resume-builder", "{CODE_ROOT}/rugby-crm", "{CODE_ROOT}/metasaver-marketplace"], files: ["turbo.json"] }

Example 11: Audit monorepo root configs (Audit Mode)

Prompt: "audit monorepo root configuration in multi-mono"
Mode: "audit"
→ Repos: multi-mono (explicit target)
→ Files: [".npmrc", "turbo.json", "pnpm-workspace.yaml", "package.json", "tsconfig.json"] (monorepo root = all root configs)
→ Output: scope: { repos: ["{CODE_ROOT}/multi-mono"], files: [".npmrc", "turbo.json", "pnpm-workspace.yaml", "package.json", "tsconfig.json"] }

Example 12: Audit multiple config types (Audit Mode)

Prompt: "audit typescript and prettier configs"
Mode: "audit"
→ Repos: [CWD] (no explicit target, use current working directory)
→ Files: ["tsconfig.json", "tsconfig.*.json", "package.json"] (combined from typescript and prettier patterns)
→ Output: scope: { repos: ["{CWD}"], files: ["tsconfig.json", "tsconfig.*.json", "package.json"] }

Integration

Runs in Phase 1 (Analysis) parallel with agent-check (when used in /audit context).

Output Routing

Default Mode Output (targets + references):

  • Passed to: /build, /ms, and general workflow agents
  • targets - Repos where workers will make changes
  • references - Repos for pattern research (read-only exploration)

Audit Mode Output (repos + files):

  • Passed to: /audit workflow and agent-check skill
  • repos - Repositories containing files to audit
  • files - Specific config files to audit in those repos
  • Enables targeted configuration audits without full repository scans