Skip to content
Back to skills

Detect Release Scope

ASecurity

Analyze git changes to determine release scope (marketplace/plugin/variants)

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
developmenttypescriptpythongobashgit

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill detect-release-scope --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Detect Release Scope?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Detect Release Scope
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-detect-release-scope/badge)](https://www.skillsdirectory.com/skills/majiayu000-detect-release-scope)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: detect-release-scope
description: Analyze git changes to determine release scope (marketplace/plugin/variants)
user-invocable: false
---

# Detect Release Scope

## Purpose

Analyzes git changes (modified, staged, and untracked files) to intelligently determine which release scope should be targeted: marketplace-level, per-plugin, or variants. This skill is the foundation for the release workflow, ensuring the correct versioning context is used.

## Input Context

The skill expects to be invoked in a git repository with changes to analyze. It will examine:

- Modified files (staged and unstaged)
- Newly created files
- Deleted files
- Current git branch

## Workflow

### 1. Gather Git Status

Use `git status --porcelain` to get a machine-readable list of all changed files:

```bash
git status --porcelain
```

Parse the output to categorize files by path patterns.

### 2. Categorize Files by Scope

Analyze each changed file path and increment counters for each scope:

**Marketplace Scope Indicators:**
- `.claude-plugin/marketplace.json`
- Root `README.md` (when marketplace.json also changed)
- Root `CHANGELOG.md`

**Plugin Scope Indicators:**
- `plugins/{plugin-name}/.claude-plugin/plugin.json`
- `plugins/{plugin-name}/skills/**/*`
- `plugins/{plugin-name}/commands/**/*`
- `plugins/{plugin-name}/README.md`
- `plugins/{plugin-name}/CHANGELOG.md`

**Variants Scope Indicators:**
- `variants/variants.json`
- `variants/*/CLAUDE.md`
- `variants/CHANGELOG.md`
- `variants/README.md`

### 3. Determine Primary Scope

Apply the following logic:

**Single Plugin Dominance:**
- If 70%+ of changes are within a single plugin directory → `plugin:<name>`

**Variants Dominance:**
- If 70%+ of changes are within `variants/` → `variants`

**Marketplace Changes:**
- If marketplace.json is modified AND no plugin dominance → `marketplace`

**Ambiguous Cases:**
- If changes are split across multiple scopes with no clear majority:
  - Return all detected scopes with file counts
  - Set confidence level to "ambiguous"
  - Command will prompt user to choose

### 4. Validate Current Branch

Check if the current branch is `master` or `main`:

```bash
git branch --show-current
```

If on a different branch, include a warning in the output.

## Output Format

Return a structured response with:

```
{
  "primary_scope": "plugin:daily-carry" | "marketplace" | "variants" | "ambiguous",
  "confidence": "high" | "medium" | "low" | "ambiguous",
  "evidence": {
    "marketplace_changes": <count>,
    "plugin_changes": {
      "daily-carry": <count>,
      "agent-behavior-patterns": <count>
    },
    "variants_changes": <count>
  },
  "current_branch": "master",
  "warnings": [
    "Not on master branch",
    "Multiple scopes detected"
  ]
}
```

## Examples

### Example 1: Clear Plugin Scope

**Git Status:**
```
M plugins/daily-carry/skills/deploy-site/SKILL.md
M plugins/daily-carry/README.md
A plugins/daily-carry/skills/new-skill/SKILL.md
```

**Output:**
```
{
  "primary_scope": "plugin:daily-carry",
  "confidence": "high",
  "evidence": {
    "marketplace_changes": 0,
    "plugin_changes": {
      "daily-carry": 3
    },
    "variants_changes": 0
  },
  "current_branch": "master",
  "warnings": []
}
```

### Example 2: Ambiguous Multi-Scope

**Git Status:**
```
M .claude-plugin/marketplace.json
M plugins/daily-carry/skills/deploy-site/SKILL.md
M variants/Android/CLAUDE.md
```

**Output:**
```
{
  "primary_scope": "ambiguous",
  "confidence": "ambiguous",
  "evidence": {
    "marketplace_changes": 1,
    "plugin_changes": {
      "daily-carry": 1
    },
    "variants_changes": 1
  },
  "current_branch": "master",
  "warnings": [
    "Multiple scopes detected - please specify scope explicitly"
  ]
}
```

### Example 3: Variants Release

**Git Status:**
```
M variants/Typescript/CLAUDE.md
M variants/Python/CLAUDE.md
M variants/Generic/CLAUDE.md
M variants/CHANGELOG.md
```

**Output:**
```
{
  "primary_scope": "variants",
  "confidence": "high",
  "evidence": {
    "marketplace_changes": 0,
    "plugin_changes": {},
    "variants_changes": 4
  },
  "current_branch": "master",
  "warnings": []
}
```

## Error Handling

- **No git repository**: Return error with message "Not a git repository"
- **No changes detected**: Return error with message "No changes to release"
- **Invalid git state**: Return error with details about unresolved conflicts or detached HEAD

## Integration Notes

This skill is invoked by the `/release` command in Phase 1. The command will:
1. Use the `primary_scope` if confidence is "high" or "medium"
2. Prompt user to choose if confidence is "ambiguous"
3. Respect explicit scope argument if provided (bypasses detection)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.