Connect Nazgul task tracking to an external project board (GitHub Projects, Azure DevOps, etc). Use when user says "connect to github projects", "set up board", "track on github", or "nazgul board".
/nazgul:board github — Connect to GitHub Projects/nazgul:board github --clean — Take over existing project (archive items first)/nazgul:board disconnect — Remove board sync/nazgul:board status — Show current board connection$ARGUMENTS
[ -f nazgul/config.json ] && echo "YES" || echo "NO"jq -r '.board.enabled // false' nazgul/config.json 2>/dev/null || echo "false"jq -r '.board.provider // "none"' nazgul/config.json 2>/dev/null || echo "none"jq -r '.board.last_sync // "never"' nazgul/config.json 2>/dev/null || echo "never"jq -r '.board.sync_failures // 0' nazgul/config.json 2>/dev/null || echo "0"gh repo view --json owner,name --jq '"\(.owner.login)/\(.name)"' 2>/dev/null || echo "NOT_DETECTED"gh auth status 2>&1 | grep -oE 'project' || echo "NO_PROJECT_SCOPE"gh project list --format json --jq '.projects[] | "\(.number): \(.title)"' 2>/dev/null | head -5 || echo "NONE"jq -r '.board.task_map | length' nazgul/config.json 2>/dev/null || echo "0"Pre-load: Run ToolSearch with query select:AskUserQuestion to load the interactive prompt tool (deferred by default). Do this BEFORE any step that uses AskUserQuestion.
Parse $ARGUMENTS for:
github, ado, trello (first positional arg)disconnect, status (if no provider)--clean (archive existing items before setup)disconnect:bash scripts/board-sync-github.sh disconnectstatus:bash scripts/board-sync-github.sh statusgithub:Continue to Step 2.
Show: "Provider '[name]' not yet supported. Available: github" STOP.
Show usage examples and current board state. STOP.
/nazgul:init first." — STOPgh not authenticated." — STOPproject scope. Run: gh auth refresh -s project" — STOPUsing the preprocessor "Existing projects" data:
If projects exist, present options:
Existing GitHub Projects found:
1. #[num]: [title]
2. #[num]: [title]
Then use AskUserQuestion:
gh project create --owner [owner] --title "Nazgul: [repo-name]" --format json and extract project numberIf no projects exist, use AskUserQuestion:
If user picks existing + --clean flag, use AskUserQuestion:
bash scripts/board-sync-github.sh archive-all [project-number]Run: bash scripts/board-sync-github.sh setup [project-number]
If tasks already exist in nazgul/tasks/:
bash scripts/board-sync-github.sh sync-allShow:
Board sync enabled!
═══════════════════════════════
Provider: GitHub Projects V2
Repo: [owner]/[repo]
Project: #[number] — [title]
Tasks: [N] synced
URL: https://github.com/orgs/[owner]/projects/[number]
Tasks will auto-sync to the board on every state transition.
Run `/nazgul:board status` to check sync health.
Run `/nazgul:board disconnect` to remove sync.