SKILL.md
Describe Repository
This skill adds or updates metadata for the current repository.
Instructions for Agent
1. Identify Repository
- Detect current repository path:
git rev-parse --show-toplevel - Extract repository name from path
- Get remote URL:
git remote get-url origin - Determine category (work/personal) based on remote URL:
- Contains "dev.azure.com" or company domain → work - Contains "github.com/yoshiwatanabe" → personal
2. Collect Metadata
From user's description, extract:
- Main description: What the repository contains/does
- Team information: If mentioned
- Approval process: If mentioned (e.g., "needs Core-Platform approval")
- Special notes: Any important context
- Tags: From user parameter or inferred from description
Get current machine and OS context:
- Machine:
hostname(lowercase) - OS: Windows/WSL/Linux
3. Call Python Script
Get configuration repository path:
- Read
YWCONFIGREPO_PATHenvironment variable (required) - If not set, return error: "Please set YWCONFIGREPO_PATH in ~/.claude/settings.json. See installation guide for WSL path requirements."
Execute the script from plugin directory:
cd "${CLAUDE_PLUGIN_ROOT}"
# Detect Python command (python3 on Linux, python on Windows)
PYTHON_CMD=$(command -v python3 || command -v python)
# Try to use venv if available, create if needed, skip if venv creation fails
if [ -d "venv" ]; then
# Activate venv (cross-platform)
if [ -f "venv/bin/activate" ]; then
source venv/bin/activate
elif [ -f "venv/Scripts/activate" ]; then
source venv/Scripts/activate
fi
elif $PYTHON_CMD -m venv venv 2>/dev/null; then
echo "Setting up Python environment (first time)..."
if [ -f "venv/bin/activate" ]; then
source venv/bin/activate
elif [ -f "venv/Scripts/activate" ]; then
source venv/Scripts/activate
fi
pip install -r requirements.txt
else
echo "Note: Using system Python (venv creation not available)"
fi
$PYTHON_CMD scripts/manage_memory.py describe-repo \
--config-repo "$YW_CONFIG_REPO_PATH" \
--repo-path {repo_path} \
--description "{description}" \
--tags "{tags}" \
--machine {machine} \
--os {os}
4. Handle Result
Parse the JSON output:
{
"success": true,
"repo_slug": "dynamics-solutions",
"filepath": "memory/repositories/dynamics-solutions.md"
}
Return confirmation to the user:
Repository metadata updated!
- Repository: dynamics-solutions
- Description: [user's description]
- Tags: [tags if any]
- Synced to remote: Yes
Example Usage
User: "Hey, this repo contains Dynamics solution packages. We need Core-Platform approval for PRs."
Agent:
- Identifies current repository
- Extracts key information from description
- Calls manage_memory.py describe-repo
- Confirms metadata was saved