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
YW_CONFIG_REPO_PATHenvironment variable (required) - •If not set, return error: "Please set YW_CONFIG_REPO_PATH in ~/.claude/settings.json. See installation guide for WSL path requirements."
Execute the script from plugin directory:
bash
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:
json
{
"success": true,
"repo_slug": "dynamics-solutions",
"filepath": "memory/repositories/dynamics-solutions.md"
}
Return confirmation to the user:
code
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