go/cmd/core
Snider c9ebb7c781 test: increase coverage to 63.8% across packages
Coverage improvements:
- pkg/build: 89.4%
- pkg/release: 86.7% (from 36.7%)
- pkg/container: 85.7%
- pkg/php: 62.1% (from 26%)
- pkg/devops: 56.7% (from 33.1%)
- pkg/release/publishers: 54.7%

Also:
- Add GEMINI.md for Gemini agent guidance
- Update .gitignore to exclude coverage files
- Remove stray core.go at root
- Add core go cov command for coverage reports

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:28:23 +00:00
..
bin git keep before a gitignore 2025-10-27 03:38:27 +00:00
cmd test: increase coverage to 63.8% across packages 2026-01-29 14:28:23 +00:00
go.mod refactor(cli): add core pkg command group for package management 2026-01-29 11:42:22 +00:00
go.sum refactor(cli): add core pkg command group for package management 2026-01-29 11:42:22 +00:00
main.go refactor: migrate module path from Snider/Core to host-uk/core 2026-01-28 15:29:42 +00:00
README.md docs(core): update README with setup, doctor, search, install commands 2026-01-28 15:20:27 +00:00
Taskfile.yml (#10) GitHub Actions workflow and refactor build and test infrastructure 2025-10-30 16:23:00 +00:00

Core CLI

Multi-repository management tool for the Core Framework ecosystem.

Installation

go install github.com/Snider/Core/cmd/core@latest

Or build from source:

cd cmd/core && go build .

Configuration

The CLI looks for repos.yaml in:

  1. Current directory and parent directories
  2. ~/Code/host-uk/repos.yaml
  3. ~/.config/core/repos.yaml

If no repos.yaml is found, it scans the current directory for git repositories.

repos.yaml format

version: 1
org: host-uk
base_path: ~/Code/host-uk

repos:
  core-php:
    type: foundation
    description: Core PHP framework
    depends_on: []
    docs: true

  core-tenant:
    type: module
    depends_on: [core-php]
    description: Multi-tenancy support

defaults:
  ci: github-actions
  branch: main

Commands

Health Check

Quick summary of repository health:

core health              # Summary: "18 repos │ clean │ synced │ up to date"
core health --verbose    # Include list of dirty/ahead repos

Work (All-in-One)

Status, commit, and push workflow:

core work                # Show status table + push repos with commits
core work --status       # Status only, no push
core work --commit       # Use Claude to commit dirty repos first

Commit

Claude-assisted commits across repositories:

core commit              # Show dirty repos, confirm, Claude commits each
core commit --all        # Skip confirmation

Reads AGENTS.md from the registry directory for commit context.

Push

Push commits to remote:

core push                # Show repos to push, confirm, push all
core push --force        # Skip confirmation

Pull

Pull updates from remote:

core pull                # Pull only repos that are behind
core pull --all          # Pull all repos

Impact Analysis

Show dependency impact of changing a repository:

core impact core-php     # Show what depends on core-php
core impact core-tenant  # Show direct and transitive dependents

Output:

Impact analysis for core-php
Core PHP framework - events, modules, lifecycle

● 16 direct dependent(s):
    core-admin
    core-tenant
    ...

Summary: Changes to core-php affect 16/17 repos

Issues

List open GitHub issues across repositories:

core issues                    # All open issues
core issues --assignee @me     # Filter by assignee
core issues --limit 5          # Limit per repo

Reviews

List open PRs with review status:

core reviews              # All open PRs
core reviews --author me  # Filter by author
core reviews --all        # Include draft PRs

CI Status

Check GitHub Actions workflow status:

core ci                  # Status for all repos (main branch)
core ci --branch dev     # Check specific branch
core ci --failed         # Show only failing runs

Documentation

Manage documentation across repositories:

core docs list                    # Show docs coverage
core docs sync                    # Sync to ./docs-build
core docs sync --dry-run          # Preview without copying
core docs sync --output ./site    # Custom output directory

Setup

Bootstrap a workspace by cloning all repos from registry:

core setup                        # Clone all repos into packages/
core setup --dry-run              # Show what would be cloned
core setup --only module,product  # Filter by type

Doctor

Check development environment:

core doctor                       # Check all requirements
core doctor --verbose             # Show version details

Checks: git, gh, php, composer, node, SSH keys, gh auth status.

Search GitHub for repositories:

core search --org host-uk                      # List all repos in org
core search --org host-uk --pattern 'core-*'   # Filter by name pattern
core search --org host-uk --type service       # Filter by type in name
core search --org host-uk --refresh            # Bypass cache

Results are cached in .core/cache/ for 1 hour.

Install

Install individual repositories:

core install --repo host-uk/core-php           # Clone to packages/
core install --repo host-uk/core-mcp --add     # Clone and add to repos.yaml
core install --repo host-uk/core-api --dir .   # Clone to current directory

Uses gh with HTTPS (no SSH key required).

Global Flags

All commands support:

--registry <path>    # Explicit path to repos.yaml

Requirements

  • Go 1.25+
  • gh CLI for GitHub operations (issues, reviews, ci)
  • claude CLI for AI-assisted commits

Cache

API responses are cached in the workspace .core/ directory:

<workspace>/
├── .core/
│   └── cache/
│       └── github/
│           └── <org>/
│               └── repos.json    # Cached repo list (1 hour TTL)
├── repos.yaml
└── packages/

The .core/ directory should be gitignored.

Architecture

cmd/core/
├── cmd/
│   ├── root.go       # CLI setup
│   ├── work.go       # work command
│   ├── health.go     # health command
│   ├── commit.go     # commit command
│   ├── push.go       # push command
│   ├── pull.go       # pull command
│   ├── impact.go     # impact command
│   ├── issues.go     # issues command
│   ├── reviews.go    # reviews command
│   ├── ci.go         # ci command
│   ├── docs.go       # docs command
│   ├── setup.go      # setup command
│   ├── doctor.go     # doctor command
│   ├── search.go     # search command
│   └── install.go    # install command
├── go.mod
└── main.go

pkg/
├── cache/
│   └── cache.go      # File-based cache with TTL
├── git/
│   └── git.go        # Parallel git operations
└── repos/
    └── registry.go   # repos.yaml parser + dependency graph