refactor(cli): move git/multi-repo commands under core dev

Move multi-repo workflow commands under `core dev`:
- work, health, commit, push, pull
- issues, reviews, ci, impact

Cleaner root with language-specific groups:
- core go (Go development)
- core php (PHP/Laravel)
- core dev (multi-repo workflow)
- core vm (LinuxKit VMs)
- core pkg (package management)

Update SKILL.md with new command paths.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Snider 2026-01-29 12:25:18 +00:00
parent 2d2b63af39
commit b4872c65b3
11 changed files with 65 additions and 48 deletions

View file

@ -27,14 +27,14 @@ The `core` command provides a unified interface for Go/Wails development, multi-
| Build for targets | `core build --targets linux/amd64,darwin/arm64` | Cross-compile | | Build for targets | `core build --targets linux/amd64,darwin/arm64` | Cross-compile |
| Release | `core release` | Build + publish to GitHub/npm/Homebrew | | Release | `core release` | Build + publish to GitHub/npm/Homebrew |
| Check environment | `core doctor` | Verify tools installed | | Check environment | `core doctor` | Verify tools installed |
| Multi-repo status | `core health` | Quick summary across repos | | Multi-repo status | `core dev health` | Quick summary across repos |
| Multi-repo workflow | `core work` | Status + commit + push | | Multi-repo workflow | `core dev work` | Status + commit + push |
| Commit dirty repos | `core commit` | Claude-assisted commit messages | | Commit dirty repos | `core dev commit` | Claude-assisted commit messages |
| Push repos | `core push` | Push repos with unpushed commits | | Push repos | `core dev push` | Push repos with unpushed commits |
| Pull repos | `core pull` | Pull repos that are behind | | Pull repos | `core dev pull` | Pull repos that are behind |
| List issues | `core issues` | Open issues across repos | | List issues | `core dev issues` | Open issues across repos |
| List PRs | `core reviews` | PRs needing review | | List PRs | `core dev reviews` | PRs needing review |
| Check CI | `core ci` | GitHub Actions status | | Check CI | `core dev ci` | GitHub Actions status |
| Generate SDK | `core sdk` | Generate API clients from OpenAPI | | Generate SDK | `core sdk` | Generate API clients from OpenAPI |
| Sync docs | `core docs sync` | Sync docs across repos | | Sync docs | `core docs sync` | Sync docs across repos |
| Search packages | `core pkg search <query>` | GitHub search for core-* repos | | Search packages | `core pkg search <query>` | GitHub search for core-* repos |
@ -71,30 +71,30 @@ When working across host-uk repositories:
```bash ```bash
# Quick health check # Quick health check
core health core dev health
# Output: "18 repos │ clean │ synced" # Output: "18 repos │ clean │ synced"
# Full status table # Full status table
core work --status core dev work --status
# Commit + push workflow # Commit + push workflow
core work core dev work
# Commit dirty repos with Claude # Commit dirty repos with Claude
core commit core dev commit
# Push repos with unpushed commits # Push repos with unpushed commits
core push core dev push
# Pull repos that are behind # Pull repos that are behind
core pull core dev pull
``` ```
### Dependency Analysis ### Dependency Analysis
```bash ```bash
# What depends on core-php? # What depends on core-php?
core impact core-php core dev impact core-php
``` ```
## GitHub Integration ## GitHub Integration
@ -103,16 +103,16 @@ Requires `gh` CLI authenticated.
```bash ```bash
# Open issues across all repos # Open issues across all repos
core issues core dev issues
# Include closed issues # Include closed issues
core issues --all core dev issues --all
# PRs needing review # PRs needing review
core reviews core dev reviews
# CI status # CI status
core ci core dev ci
``` ```
## SDK Generation ## SDK Generation
@ -487,15 +487,15 @@ PHP/Laravel project?
└── Deploy: core php deploy [--staging] └── Deploy: core php deploy [--staging]
Working across multiple repos? Working across multiple repos?
└── Quick check: core health └── Quick check: core dev health
└── Full workflow: core work └── Full workflow: core dev work
└── Just commit: core commit └── Just commit: core dev commit
└── Just push: core push └── Just push: core dev push
Need GitHub info? Need GitHub info?
└── Issues: core issues └── Issues: core dev issues
└── PRs: core reviews └── PRs: core dev reviews
└── CI: core ci └── CI: core dev ci
Setting up environment? Setting up environment?
└── Check: core doctor └── Check: core doctor
@ -519,9 +519,9 @@ Managing packages?
| `php artisan serve` | `core php dev` | Missing Vite, Horizon, Reverb, Redis | | `php artisan serve` | `core php dev` | Missing Vite, Horizon, Reverb, Redis |
| `./vendor/bin/pest` | `core php test` | Inconsistent invocation | | `./vendor/bin/pest` | `core php test` | Inconsistent invocation |
| `./vendor/bin/pint` | `core php fmt --fix` | Consistent interface | | `./vendor/bin/pint` | `core php fmt --fix` | Consistent interface |
| `git status` in each repo | `core health` | Slow, manual | | `git status` in each repo | `core dev health` | Slow, manual |
| `gh pr list` per repo | `core reviews` | Aggregated view | | `gh pr list` per repo | `core dev reviews` | Aggregated view |
| Manual commits across repos | `core commit` | Consistent messages, Co-Authored-By | | Manual commits across repos | `core dev commit` | Consistent messages, Co-Authored-By |
| Manual Coolify deploys | `core php deploy` | Tracked, scriptable | | Manual Coolify deploys | `core php deploy` | Tracked, scriptable |
| Raw `linuxkit run` | `core vm run` | Unified interface, templates | | Raw `linuxkit run` | `core vm run` | Unified interface, templates |
| `gh repo clone` | `core pkg install` | Auto-detects org, adds to registry | | `gh repo clone` | `core pkg install` | Auto-detects org, adds to registry |

View file

@ -44,7 +44,7 @@ type WorkflowRun struct {
} }
// AddCICommand adds the 'ci' command to the given parent command. // AddCICommand adds the 'ci' command to the given parent command.
func AddCICommand(parent *clir.Cli) { func AddCICommand(parent *clir.Command) {
var registryPath string var registryPath string
var branch string var branch string
var failedOnly bool var failedOnly bool

View file

@ -13,7 +13,7 @@ import (
) )
// AddCommitCommand adds the 'commit' command to the given parent command. // AddCommitCommand adds the 'commit' command to the given parent command.
func AddCommitCommand(parent *clir.Cli) { func AddCommitCommand(parent *clir.Command) {
var registryPath string var registryPath string
var all bool var all bool

View file

@ -34,7 +34,7 @@ var (
) )
// AddHealthCommand adds the 'health' command to the given parent command. // AddHealthCommand adds the 'health' command to the given parent command.
func AddHealthCommand(parent *clir.Cli) { func AddHealthCommand(parent *clir.Command) {
var registryPath string var registryPath string
var verbose bool var verbose bool

View file

@ -23,7 +23,7 @@ var (
) )
// AddImpactCommand adds the 'impact' command to the given parent command. // AddImpactCommand adds the 'impact' command to the given parent command.
func AddImpactCommand(parent *clir.Cli) { func AddImpactCommand(parent *clir.Command) {
var registryPath string var registryPath string
impactCmd := parent.NewSubCommand("impact", "Show impact of changing a repo") impactCmd := parent.NewSubCommand("impact", "Show impact of changing a repo")

View file

@ -61,7 +61,7 @@ type GitHubIssue struct {
} }
// AddIssuesCommand adds the 'issues' command to the given parent command. // AddIssuesCommand adds the 'issues' command to the given parent command.
func AddIssuesCommand(parent *clir.Cli) { func AddIssuesCommand(parent *clir.Command) {
var registryPath string var registryPath string
var limit int var limit int
var assignee string var assignee string

View file

@ -12,7 +12,7 @@ import (
) )
// AddPullCommand adds the 'pull' command to the given parent command. // AddPullCommand adds the 'pull' command to the given parent command.
func AddPullCommand(parent *clir.Cli) { func AddPullCommand(parent *clir.Command) {
var registryPath string var registryPath string
var all bool var all bool

View file

@ -11,7 +11,7 @@ import (
) )
// AddPushCommand adds the 'push' command to the given parent command. // AddPushCommand adds the 'push' command to the given parent command.
func AddPushCommand(parent *clir.Cli) { func AddPushCommand(parent *clir.Command) {
var registryPath string var registryPath string
var force bool var force bool

View file

@ -66,7 +66,7 @@ type GitHubPR struct {
} }
// AddReviewsCommand adds the 'reviews' command to the given parent command. // AddReviewsCommand adds the 'reviews' command to the given parent command.
func AddReviewsCommand(parent *clir.Cli) { func AddReviewsCommand(parent *clir.Command) {
var registryPath string var registryPath string
var author string var author string
var showAll bool var showAll bool

View file

@ -25,22 +25,39 @@ func Execute() error {
app := clir.NewCli("core", "CLI for Go/PHP development, multi-repo management, and deployment", "0.1.0") app := clir.NewCli("core", "CLI for Go/PHP development, multi-repo management, and deployment", "0.1.0")
// Add the top-level commands // Add the top-level commands
devCmd := app.NewSubCommand("dev", "Development tools for Core Framework") devCmd := app.NewSubCommand("dev", "Multi-repo development workflow")
devCmd.LongDescription("Multi-repo git operations and GitHub integration.\n\n" +
"Commands:\n" +
" work Multi-repo status, commit, push workflow\n" +
" health Quick health check across repos\n" +
" commit Claude-assisted commits\n" +
" push Push repos with unpushed commits\n" +
" pull Pull repos that are behind\n" +
" issues List open issues across repos\n" +
" reviews List PRs needing review\n" +
" ci Check CI status\n" +
" impact Show dependency impact")
// Git/multi-repo commands under dev
AddWorkCommand(devCmd)
AddHealthCommand(devCmd)
AddCommitCommand(devCmd)
AddPushCommand(devCmd)
AddPullCommand(devCmd)
AddIssuesCommand(devCmd)
AddReviewsCommand(devCmd)
AddCICommand(devCmd)
AddImpactCommand(devCmd)
// Internal dev tools (API, sync, agentic)
AddAPICommands(devCmd) AddAPICommands(devCmd)
AddSyncCommand(devCmd) AddSyncCommand(devCmd)
AddAgenticCommands(devCmd) AddAgenticCommands(devCmd)
AddDevCommand(devCmd) AddDevCommand(devCmd)
// Top-level commands
AddBuildCommand(app) AddBuildCommand(app)
AddWorkCommand(app)
AddHealthCommand(app)
AddIssuesCommand(app)
AddReviewsCommand(app)
AddCommitCommand(app)
AddPushCommand(app)
AddPullCommand(app)
AddImpactCommand(app)
AddDocsCommand(app) AddDocsCommand(app)
AddCICommand(app)
AddSetupCommand(app) AddSetupCommand(app)
AddDoctorCommand(app) AddDoctorCommand(app)
AddPkgCommands(app) AddPkgCommands(app)

View file

@ -55,7 +55,7 @@ var (
) )
// AddWorkCommand adds the 'work' command to the given parent command. // AddWorkCommand adds the 'work' command to the given parent command.
func AddWorkCommand(parent *clir.Cli) { func AddWorkCommand(parent *clir.Command) {
var statusOnly bool var statusOnly bool
var autoCommit bool var autoCommit bool
var registryPath string var registryPath string