All notable changes to the github-repo-manager plugin are documented here.
- add onboarding, config resolution, and batch execution scripts
- pass 3 — close remaining gaps, 293 total tests across 9 plugins
- close gap analysis findings, 247 total tests across 9 plugins
- add 166 bats tests across 9 plugins for new scripts
scripts/onboarding.sh— single-pass environment validation (deps, PAT, tier detection, portfolio config, label check) with JSON outputscripts/config-resolve.sh— multi-source config resolution with stdlib-only YAML parser and precedence tracking (portfolio per-repo > repo-level > portfolio defaults > tier defaults)scripts/batch-executor.sh— sequential mutation executor with rate limit awareness, dry-run mode, and audit logging- Session setup in
/repo-managernow referencesonboarding.shandconfig-resolve.shfor automated pre-flight
- Bump the all-dependencies group across 1 directory with 2 updates
- UX templates reference (
references/ux-templates.md) with 9 output templates for consistent formatting
- Converted 14 skills to on-demand references loaded by the command, following the nominal plugin's architecture pattern
- Rewrote
/repo-managercommand as a thin orchestrator that readsreferences/files at the right moment instead of relying on skill auto-loading - Organized references into top-level orchestration files and
modules/subdirectory for the 9 assessment modules
- Deleted all 15 skills (14 moved to references, 1 self-test deleted)
- The
skills/directory no longer exists
- apply audit findings — plugin.json, CHANGELOG, skills
- Org-aware assessments:
owner_type(User | Organization) is now established as session context during onboarding. All subsequent modules apply org-specific rules only where relevant. - Community health: org inheritance resolution (new Step 0): For org repos, checks the org's
.githubrepository before any per-file checks. Files inherited at the org level are reported as✅ Inherited (org .github)rather than flagged as missing. - Community health: API score caveat: The GitHub community profile API excludes inherited files from its percentage. Org repo assessments now present this score with an explicit caveat and use the per-file breakdown as the authoritative view.
- Community health: CODEOWNERS team pattern validation:
@org/team-namepatterns are accepted as valid for org repos; flagged as likely invalid for user repos (personal accounts have no teams). - Security: org ruleset audit (new Step 6): For org repos, checks
GET /orgs/{org}/rulesetsfor org-level branch rulesets. Rulesets that cover the default branch suppress or contextualize per-repo "unprotected branch" findings. - Security: branch protection Applicability column: The branch protection recommendation table now shows which rules apply to all repos vs. org repos only (e.g., team reviewers are only recommended for org repos).
- Mutation guard hook (
scripts/gh-manager-guard.sh): PreToolUse hook that emits a mutation warning to the agent context window before anygh-managerwrite command runs. Exits 0 (non-blocking). Complements the existing PostToolUse audit trail ingh-manager-monitor.sh. hooks/hooks.jsonupdated to register the PreToolUse Bash hook (gh-manager-guard.sh) alongside the existing PostToolUse hook (gh-manager-monitor.sh).
- Add missing waivers and fix gh-manager PATH detection
- Remove invalid plugin.json fields and refactor mutation guards
- Apply auto-fixes from hygiene sweep
- Align plugin principles with trust-based philosophy
repos classify: addedtierkey as alias forsuggested_tierfor consistent field naming in skill layer and testsfiles exists: now exits 1 when file is not found (404), matching the command contract (exit code signals presence)security dependabot: returns success withaccessible: falseon 403/404 for graceful skill-layer degradationsecurity code-scanning: same graceful degradation pattern on 403repo labels create/update: flattened label fields to top level (name,color,description) instead of nesting underlabelobjectbranches create: addednamealias alongsidebranchfield in response shapes for consistent key naming- All three self-test tiers now pass (Tier A: 61/61, Tier B: 28/28, Tier C: 40/40 + 3 expected skips)
- YAML frontmatter on all 12 skills (11 modules + orchestrator) for proper Claude Code trigger matching
ensure-deps.shfor automatic first-run dependency installation.gitignoreinhelper/to excludenode_modules/from git
- Fixed PAT leak in wiki error messages — sanitize token from git URLs in clone/init/push errors
- Fixed
--nameto--branchflag in cross-repo, release-health skills and Tier C tests - Fixed
--commentto--bodyflag in Tier C tests forissues closeandprs close - Fixed stdin handling:
files putandconfig writecommands no longer hang or silently accept empty input on TTY - Fixed GraphQL injection vector in
discussions list—categoryIdnow uses proper GraphQL variable - Fixed
branches create --fromCLI description to accurately state "branch name" (not tags/SHAs) - Simplified
error()exit code inoutput.js— removed dead ternary - Removed stale Phase 0 "not yet implemented" note from orchestrator skill
- Changed Phase 6 status from ⏳ to ✅ in orchestrator skill availability section
- Updated
docs/SETUP.mdwith working directory clarification and script references
hooks/hooks.jsonschema corrected from empty array[]to valid record{"hooks": {}}
- Initial release with conversational GitHub repository maintenance
- Security posture — vulnerability alerts, code scanning, secret scanning, branch protection audit
- Release health — tag cadence, changelog drift, stale release detection
- Community health — license, README, CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, issue/PR templates
- PR management — stale PR detection, review bottleneck analysis, label enforcement
- Issue triage — stale/unlabeled issue detection, assignment gaps, duplicate candidates
- Dependency audit — Dependabot alert aggregation, outdated dependency tracking
- Notifications — unread notification processing, filtering, mark-read operations
- Discussions — discussion listing, commenting, close operations via GraphQL
- Wiki sync — clone, diff, push workflow for repository wikis
- Full CLI with 40+ commands across repos, issues, PRs, files, branches, releases, config, wiki, discussions, and notifications
- JSON-structured output for all commands (machine-parseable by skill layer)
- PAT-based authentication with
auth verifycommand
- Three-tier test architecture: Tier A (offline/infrastructure), Tier B (read-only API), Tier C (mutation tests)
- Shared test library (
lib.sh) with JSON assertion helpers
- Per-repo config (
.github-repo-manager.ymlcommitted to repo) - Portfolio config (
~/.config/github-repo-manager/portfolio.ymlfor multi-repo) - Schema validation via
config validatecommand
- 11 module skill files with YAML frontmatter for context-aware loading
- Cross-module intelligence framework with deduplication rules
- Orchestrator skill for multi-module assessment coordination
- Community file templates: CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, ISSUE_TEMPLATE, PR_TEMPLATE