Back to skills
SKILL.md
Mastermind Skills
ASecurityMastermind skills — list, sync, and map skills available to org agents. Scans .claude/skills/ directory and shows which roles have access to which skill domains.
- 21 stars
- 0 votes
- 0 copies
- 3 views
- Added September 10, 2026
Security analysis
100/100npx -y skills add monoes/monomind --skill mastermind-skills --agent claude-codeAre you the author of Mastermind Skills?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/monoes-mastermind-skills)---
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
pick: low
---
# Mastermind Skills
This skill is invoked 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`.
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.