Mastermind skills — list, sync, and map skills available to org agents. Scans .claude/skills/ directory and shows which roles have access to which skill domains.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add monoes/monomind --skill mastermind-skills --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Mastermind Skills?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/monoes-mastermind-skills-f6b14f41)More formats (shields.io, HTML) on the badges page.
---
name: mastermind-skills
description: Mastermind skills — list, sync, and map skills available to org agents. Scans .claude/skills/ directory and shows which roles have access to which skill domains.
type: domain-skill
default_mode: auto
---
# Mastermind Skills
This skill is invoked by `mastermind:skills` or directly via `/mastermind:skills`.
---
## Inputs
- `brain_context`: BRAIN CONTEXT block (injected by command, or loaded below if standalone)
- `org_name`: org to inspect skills for (optional — shows all skills if omitted)
- `action`: list | sync | map | enable | disable
- `skill_name`: skill slug (required for enable/disable)
- `role_id`: role to map skill to (optional)
- `caller`: command | master
---
## Step 0 — Brain Load (standalone only)
If `caller` is not "command", load brain context following mastermind-protocol/SKILL.md Brain Load Procedure with namespace: `ops`.
---
## Step 1 — Scan Skills Directory
```bash
skillsDir=".claude/skills"
[ ! -d "$skillsDir" ] && { echo "ERROR: No .claude/skills/ directory found."; exit 1; }
# List all skill files recursively
allSkills=$(find "$skillsDir" -name "*.md" ! -name "_*" | sort)
```
---
## Step 2 — Execute Action
### list (default)
Display all available skills with metadata:
```bash
echo "AVAILABLE SKILLS"
echo "────────────────────────────────────────────────────────"
printf "%-30s %-15s %-10s %s\n" "NAME" "TYPE" "MODE" "DESCRIPTION"
echo "────────────────────────────────────────────────────────"
for f in $allSkills; do
skillSlug=$(basename "$f" .md)
domain=$(dirname "$f" | sed "s|$skillsDir/||")
skillType=$(grep -m1 "^type:" "$f" 2>/dev/null | awk '{print $2}')
skillMode=$(grep -m1 "^default_mode:" "$f" 2>/dev/null | awk '{print $2}')
skillDesc=$(grep -m1 "^description:" "$f" 2>/dev/null | sed 's/^description: //' | cut -c1-60)
printf "%-30s %-15s %-10s %s\n" "${domain}:${skillSlug}" "${skillType:-skill}" "${skillMode:-auto}" "$skillDesc"
done
echo ""
echo "Total: $(echo "$allSkills" | wc -l | tr -d ' ') skills"
```
### map
Show which skills are mapped to each role in the org:
```bash
orgFile=".monomind/orgs/${org_name}.json"
[ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
echo "SKILL MAP — org: $org_name"
echo "────────────────────────────────────────────────────────"
jq -r '(.roles // [])[] | "[\(.id)] \(.title) agent_type=\(.agent_type)"' "$orgFile" | while IFS= read -r line; do
echo "$line"
roleId=$(echo "$line" | grep -o '^\[[^]]*\]' | tr -d '[]')
# Show skills configured for this role
mappedSkills=$(jq -r --arg id "$roleId" \
'(.roles // [])[] | select(.id == $id) | .skills // [] | join(", ")' \
"$orgFile" 2>/dev/null)
if [ -n "$mappedSkills" ] && [ "$mappedSkills" != "null" ]; then
echo " Skills: $mappedSkills"
else
echo " Skills: (inherited from agent_type)"
fi
echo ""
done
```
### sync
Refresh the skill registry by re-scanning `.claude/skills/` and updating org config with available skill slugs:
```bash
skillsDir=".claude/skills"
skillList=$(find "$skillsDir" -name "*.md" ! -name "_*" -exec basename {} .md \; | sort | jq -Rsc 'split("\n") | map(select(. != ""))')
if [ -n "$org_name" ]; then
orgFile=".monomind/orgs/${org_name}.json"
tmp="${orgFile}.tmp"
jq --argjson skills "$skillList" '.available_skills = $skills' "$orgFile" > "$tmp" && mv "$tmp" "$orgFile"
echo "Synced $(echo "$skillList" | jq 'length') skills → org: $org_name"
else
echo "Available skills:"
echo "$skillList" | jq -r '.[]'
echo ""
echo "Pass --org <name> to sync skills into a specific org config."
fi
```
### enable / disable
Add or remove a skill from a role's allowed list:
```bash
orgFile=".monomind/orgs/${org_name}.json"
[ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
[ -z "$skill_name" ] && { echo "ERROR: --skill-name required."; exit 1; }
[ -z "$role_id" ] && { echo "ERROR: --role-id required for enable/disable."; exit 1; }
tmp="${orgFile}.tmp"
if [ "$action" = "enable" ]; then
jq --arg id "$role_id" --arg skill "$skill_name" \
'.roles = [(.roles // [])[] | if .id == $id then .skills = ((.skills // []) + [$skill] | unique) else . end]' \
"$orgFile" > "$tmp" && mv "$tmp" "$orgFile"
echo "Enabled skill '$skill_name' for role '$role_id'"
else
jq --arg id "$role_id" --arg skill "$skill_name" \
'.roles = [(.roles // [])[] | if .id == $id then .skills = ((.skills // []) | map(select(. != $skill))) else . end]' \
"$orgFile" > "$tmp" && mv "$tmp" "$orgFile"
echo "Disabled skill '$skill_name' for role '$role_id'"
fi
```
---
## Step 3 — Return Output
```yaml
domain: ops
status: complete
action: <action>
org: <org_name if provided>
skills_found: <N>
```
---
## Step 4 — Brain Write (standalone only)
If `caller` is not "command", follow mastermind-protocol/SKILL.md Brain Write Procedure for domain `ops`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!