원클릭으로
scope-resolver
Internal skill that resolves scope for review agents.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Internal skill that resolves scope for review agents.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when updating the toolkit to a new version.
Use when code changes need review before merging or completing.
Use when diagnosing toolkit health issues or optimizing configuration.
Use when contributing generic improvements back to the toolkit repo.
Use when setting up or reconfiguring the toolkit for a project.
Use when existing code needs iterative quality improvement.
| name | scope-resolver |
| description | Internal skill that resolves scope for review agents. |
| user-invocable | false |
Resolves user intent (feature name, diff range, or "uncommitted") into a Scope Bundle for review agents.
| Rule | Description |
|---|---|
| 1. Return valid Scope Bundle JSON | Output must always be a complete JSON object matching the Scope Bundle schema; never return partial or prose output. |
| 2. Never modify files | This skill is read-only; it resolves scope but must not create, edit, or delete any files. |
| 3. Fail fast on ambiguous scope | If the scope key cannot be resolved to files, return an error immediately instead of guessing. |
scope-resolverNatural language or structured scope specification:
feature:my-feature - Named feature from features.jsonuncommitted - Uncommitted changes (staged + unstaged)diff:HEAD~1 - Single commit diffdiffs:main..HEAD - Range of commitsReturns a JSON Scope Bundle with:
{
"scope_key": "feature:my-feature",
"scope_slug": "feature-my-feature",
"scope_type": "feature",
"commit_hash": "abc1234",
"files": ["list of files"],
"diff": "unified diff (truncated for context)",
"language_breakdown": {"python": 3, "swift": 5},
"risk_profile": {
"auth": false,
"storage": true,
"network": true,
"crypto": false,
"pii": false
},
"tests_touched": ["tests/test_*.py"],
"likely_tests_missing": ["heuristic suggestions"],
"entrypoints": {
"routes": ["/api/data"],
"screens": ["HomeView"]
}
}
Input: "my feature" or "my-feature" or "feature:my-feature"
Output: scope_key = "feature:my-feature", scope_slug = "feature-my-feature"
Input: "my changes" or "uncommitted" or nothing
Output: scope_key = "uncommitted", scope_slug = "uncommitted"
Input: "last commit" or "HEAD~1"
Output: scope_key = "diff:HEAD~1", scope_slug = "diff-HEAD-1"
Input: "this branch" or "main..HEAD"
Output: scope_key = "diffs:main..HEAD", scope_slug = "diffs-main-HEAD"
For features: Read features.json, expand globs
For uncommitted: git status --porcelain
For diffs: git diff --name-only <range>
# Uncommitted
git diff HEAD
# Specific commit
git diff HEAD~1
# Range
git diff main..HEAD
Scan files for patterns:
auth: Files in auth/, login, token, sessionstorage: Database access, file I/Onetwork: HTTP clients, API callscrypto: Encryption, hashingpii: User data, personal infoFrom features.json for feature scopes, or infer from file paths.
Projects should create a features.json file to define their feature registry.
This file maps feature names to file globs and entrypoints.
Called internally by review-suite orchestrator. Not typically invoked directly.
# Internal call pattern
scope_bundle = scope_resolver.resolve("feature:my-feature")