skills/omc-gh-setup/SKILL.md
Configure GitHub integration for the current project. WHEN: User wants to set up GitHub integration, connect a project to GitHub, configure .omcp/config.json for GitHub, or troubleshoot GitHub connection issues. DO NOT USE FOR: Issue triage (use omc-gh-triage), project board management (use omc-gh-project), PR review (use omc-gh-review), or Azure DevOps configuration (use omc-ado-setup).
npx skillsauth add RobinNorberg/oh-my-copilot omc-gh-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Configure GitHub integration for the current project. Detects the owner and repo from the git remote URL, verifies gh authentication, and writes .omcp/config.json with all required settings.
When this skill is invoked, immediately execute the workflow below. Do not only restate or summarize these instructions back to the user.
Before running the main workflow, verify all prerequisites are present. If any fail, report the issue and stop with actionable remediation steps.
gh --version 2>&1 | head -1
If this fails: tell the user to install the GitHub CLI from https://cli.github.com/.
gh auth status 2>&1
If this fails or shows "not logged in": tell the user to run gh auth login and retry.
gh auth status 2>&1 | grep -i "token scopes"
The token must include the repo scope for full access. If scopes are insufficient, suggest: gh auth refresh -s repo.
Inspect the git remote URL to determine if the repo is hosted on GitHub.
git remote -v 2>&1
GitHub remote URLs follow these patterns:
https://github.com/{owner}/{repo}.githttps://github.com/{owner}/{repo}[email protected]:{owner}/{repo}.gitParse the remote URL to extract:
owner — the GitHub organization or userrepo — the repository name (strip trailing .git if present)If no GitHub remote is detected, inform the user and ask whether they want to configure manually (prompt for owner, repo values).
Check if .omcp/config.json already exists:
cat .omcp/config.json 2>/dev/null || echo "NOT_FOUND"
If it exists and contains github settings, ask the user whether to update or keep the existing configuration (use AskUserQuestion).
Confirm the detected owner/repo are accessible with the current authentication:
gh repo view {owner}/{repo} --json name,defaultBranchRef,isPrivate,owner 2>&1
Extract:
defaultBranch — the default branch name (e.g. main, dev, master)isPrivate — whether the repo is private (informational)If this fails, the user may need to re-authenticate or the repo may not exist:
gh auth login
Ask the user (via AskUserQuestion) for optional configuration. Defaults are shown in brackets.
gh label list --repo {owner}/{repo} --json name --jq '.[].name' 2>&1
Show available labels and ask the user which label (if any) should mark untriaged issues. Default: none (skip).
.omcp/config.jsonCreate or update the config file. Preserve any existing keys (e.g. ado).
First, ensure the .omcp/ directory exists:
mkdir -p .omc
Write .omcp/config.json using the Write (or Edit) tool. The schema is:
{
"github": {
"owner": "{owner}",
"repo": "{repo}",
"defaultBranch": "main",
"labelTriage": "",
"configuredAt": "{ISO timestamp}"
}
}
| Key | Type | Description |
|-----|------|-------------|
| github.owner | string | GitHub owner (organization or user) |
| github.repo | string | Repository name |
| github.defaultBranch | string | Default branch name (e.g. main) |
| github.labelTriage | string? | Label used to identify untriaged issues (optional) |
| github.configuredAt | string | ISO 8601 timestamp of when setup ran |
{
"github": {
"owner": "RobinNorberg",
"repo": "oh-my-copilot",
"defaultBranch": "dev",
"labelTriage": "needs-triage",
"configuredAt": "2026-04-01T12:00:00Z"
}
}
Run a smoke test by listing the most recent 5 issues:
gh issue list --repo {owner}/{repo} --limit 5 --json number,title,state 2>&1
If the query returns results: report success and show the items.
If the query fails with an auth error: suggest gh auth login.
If the query returns 0 items: that is normal — confirm setup is complete.
Report a summary of what was configured:
GitHub Setup Complete
Owner : {owner}
Repository : {repo}
Default Branch: {defaultBranch}
Triage Label : {labelTriage or "none"}
Config file : .omcp/config.json
Next steps:
/oh-my-copilot:omc-gh-triage — run a full triage of issues, PRs, and CI
/oh-my-copilot:omc-gh-review — review open pull requests
| Error | Likely cause | Fix |
|-------|-------------|-----|
| gh: command not found | GitHub CLI not installed | Install from https://cli.github.com/ |
| not logged in | Not authenticated | Run gh auth login |
| Could not resolve to a Repository | Wrong owner/repo | Verify the remote URL and re-run |
| HTTP 403 | Insufficient token scopes | Run gh auth refresh -s repo |
| HTTP 404 | Repo not found or private | Ensure token has repo scope for private repos |
tools
Durable multi-goal workflow that persists plan/ledger artifacts under .omcp/ultragoal and prints Claude /goal handoff text for the active session
tools
testing
Evidence-driven tracing lane that orchestrates competing tracer hypotheses in Claude built-in team mode
tools
Consensus planning entrypoint that auto-gates vague ralph/autopilot/team requests before execution