github-ops

Provides structured guidance for repository reconnaissance using gh api and gh search .

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "github-ops" with this command: npx skills add oimiragieo/agent-studio/oimiragieo-agent-studio-github-ops

GitHub Ops Skill

Provides structured guidance for repository reconnaissance using gh api and gh search .

Overview

Repository reconnaissance often fails when agents guess file paths or attempt to fetch large files blindly. This skill enforces a structured Map -> Identify -> Fetch sequence using the GitHub CLI to minimize token waste and improve reliability.

⚡ Essential Reconnaissance Commands

Use these commands to understand a repository structure before fetching content.

  1. List Repository Root

gh api repos/{owner}/{repo}/contents --jq '.[].name'

  1. List Specific Directory

gh api repos/{owner}/{repo}/contents/{path} --jq '.[].name'

  1. Fetch File Content (Base64 Decoded)

gh api repos/{owner}/{repo}/contents/{path} --jq '.content' | base64 -d

  1. Search for Pattern in Repository

gh search code "{pattern}" --repo {owner}/{repo}

  1. Get Repository Metadata

gh repo view {owner}/{repo} --json description,stargazerCount,updatedAt

🔄 Token-Efficient Workflow

  • Map Tree: List the root and core directories (commands , src , docs ).

  • Identify Entrypoints: Look for README.md , gemini-extension.json , package.json , or SKILL.md .

  • Targeted Fetch: Download only the entrypoints first.

  • Deep Dive: Use gh search code to find logic patterns rather than reading every file.

🛡️ Platform Safety (Windows)

  • When using base64 -d , ensure the output is redirected to a file using the Write tool if it's large.

  • Avoid Linux-style /dev/stdin patterns in complex pipes.

  • Use native paths for any local storage.

Iron Laws

  • ALWAYS follow the Map → Identify → Fetch sequence before reading any file — blindly fetching files by guessed path wastes tokens, triggers 404s, and produces hallucinated repo structure.

  • NEVER fetch a file without first listing its parent directory or confirming it exists via gh api — large files fetched unnecessarily can exhaust the context window.

  • ALWAYS use --jq to filter gh api JSON output to only the fields needed — unfiltered API responses contain hundreds of irrelevant fields that inflate token usage.

  • NEVER use gh search code without a scoping qualifier (repo, org, or path) — unscoped code search returns results from all of GitHub, producing irrelevant noise.

  • ALWAYS prefer gh api structured queries over reading repository files directly when repository metadata is needed — API queries are faster, structured, and don't require authentication context for public repos.

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach

Guessing file paths and fetching them directly High 404 rate; wasted tokens on non-existent paths Map root tree first: gh api repos/{owner}/{repo}/git/trees/HEAD --jq '.tree[].path'

Fetching entire files for a single field Large files exhaust context; slow and imprecise Use --jq to extract only the required field from API response

Unscoped gh search code queries Returns GitHub-wide results; noise overwhelms signal Always add --repo owner/name or --owner org scope qualifier

Reading binary or generated files Binary content is unreadable; generated files change frequently Identify file type first; skip binaries; read source files only

Sequential API calls for each file Unnecessary round-trips inflate latency Batch: use gh api trees or search to identify multiple targets, then fetch in parallel

Assigned Agents

  • artifact-integrator: Lead agent for repository onboarding.

  • developer: PR management and exploration.

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md

  • Issue found -> .claude/context/memory/issues.md

  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

pyqt6-ui-development-rules

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

code-analyzer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

gcloud-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

github-mcp

No summary provided by upstream source.

Repository SourceNeeds Review