2026-01-29 09:44:28 +00:00
|
|
|
# core setup
|
|
|
|
|
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
Clone repositories from registry or bootstrap a new workspace.
|
2026-01-29 09:44:28 +00:00
|
|
|
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
The `setup` command operates in three modes:
|
|
|
|
|
|
|
|
|
|
1. **Registry mode** - When `repos.yaml` exists nearby, clones repositories into packages/
|
|
|
|
|
2. **Bootstrap mode** - When no registry exists, clones `core-devops` first, then presents an interactive wizard to select packages
|
2026-01-29 19:09:51 +00:00
|
|
|
3. **Repo setup mode** - When run in a git repo root, offers to create `.core/build.yaml` configuration
|
2026-01-29 16:26:27 +00:00
|
|
|
|
2026-01-29 09:44:28 +00:00
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
core setup [flags]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Flags
|
|
|
|
|
|
|
|
|
|
| Flag | Description |
|
|
|
|
|
|------|-------------|
|
2026-01-29 16:26:27 +00:00
|
|
|
| `--registry` | Path to repos.yaml (auto-detected if not specified) |
|
2026-01-29 19:09:51 +00:00
|
|
|
| `--dry-run` | Show what would be cloned without cloning |
|
2026-01-29 16:26:27 +00:00
|
|
|
| `--only` | Only clone repos of these types (comma-separated: foundation,module,product) |
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
| `--all` | Skip wizard, clone all packages (non-interactive) |
|
|
|
|
|
| `--name` | Project directory name for bootstrap mode |
|
|
|
|
|
| `--build` | Run build after cloning |
|
2026-01-29 09:44:28 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
## Registry Mode
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
|
|
|
|
When `repos.yaml` is found nearby (current directory or parents), setup clones all defined repositories:
|
2026-01-29 09:44:28 +00:00
|
|
|
|
|
|
|
|
```bash
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
# In a directory with repos.yaml
|
2026-01-29 09:44:28 +00:00
|
|
|
core setup
|
|
|
|
|
|
2026-01-29 16:26:27 +00:00
|
|
|
# Preview what would be cloned
|
|
|
|
|
core setup --dry-run
|
|
|
|
|
|
|
|
|
|
# Only clone foundation packages
|
|
|
|
|
core setup --only foundation
|
2026-01-29 19:09:51 +00:00
|
|
|
|
|
|
|
|
# Multiple types
|
|
|
|
|
core setup --only foundation,module
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
```
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
In registry mode with a TTY, an interactive wizard allows you to select which packages to clone. Use `--all` to skip the wizard and clone everything.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Bootstrap Mode
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
|
|
|
|
When no `repos.yaml` exists, setup enters bootstrap mode:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# In an empty directory - bootstraps workspace in place
|
|
|
|
|
mkdir my-project && cd my-project
|
|
|
|
|
core setup
|
|
|
|
|
|
|
|
|
|
# In a non-empty directory - creates subdirectory
|
|
|
|
|
cd ~/Code
|
|
|
|
|
core setup --name my-workspace
|
|
|
|
|
|
|
|
|
|
# Non-interactive: clone all packages
|
|
|
|
|
core setup --all --name ci-test
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Bootstrap mode:
|
2026-01-29 19:09:51 +00:00
|
|
|
1. Detects if current directory is empty
|
|
|
|
|
2. If not empty, prompts for project name (or uses `--name`)
|
|
|
|
|
3. Clones `core-devops` (contains `repos.yaml`)
|
|
|
|
|
4. Loads the registry from core-devops
|
|
|
|
|
5. Shows interactive package selection wizard (unless `--all`)
|
|
|
|
|
6. Clones selected packages
|
|
|
|
|
7. Optionally runs build (with `--build`)
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
2026-01-29 09:44:28 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
## Repo Setup Mode
|
|
|
|
|
|
|
|
|
|
When run in a git repository root (without `repos.yaml`), setup offers two choices:
|
|
|
|
|
|
|
|
|
|
1. **Setup Working Directory** - Creates `.core/build.yaml` based on detected project type
|
|
|
|
|
2. **Create Package** - Creates a subdirectory and clones packages there
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd ~/Code/my-go-project
|
|
|
|
|
core setup
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
# Output:
|
|
|
|
|
# >> This directory is a git repository
|
|
|
|
|
# > Setup Working Directory
|
|
|
|
|
# Create Package (clone repos into subdirectory)
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
```
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
Choosing "Setup Working Directory" detects the project type and generates configuration:
|
|
|
|
|
|
|
|
|
|
| Detected File | Project Type |
|
|
|
|
|
|---------------|--------------|
|
|
|
|
|
| `wails.json` | Wails |
|
|
|
|
|
| `go.mod` | Go |
|
|
|
|
|
| `composer.json` | PHP |
|
|
|
|
|
| `package.json` | Node.js |
|
|
|
|
|
|
|
|
|
|
Creates three config files in `.core/`:
|
|
|
|
|
|
|
|
|
|
| File | Purpose |
|
|
|
|
|
|------|---------|
|
|
|
|
|
| `build.yaml` | Build targets, flags, output settings |
|
|
|
|
|
| `release.yaml` | Changelog format, GitHub release config |
|
|
|
|
|
| `test.yaml` | Test commands, environment variables |
|
|
|
|
|
|
|
|
|
|
Also auto-detects GitHub repo from git remote for release config.
|
|
|
|
|
|
2026-01-29 19:11:28 +00:00
|
|
|
See [Configuration Files](example.md#configuration-files) for generated config examples.
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Interactive Wizard
|
|
|
|
|
|
|
|
|
|
When running in a terminal (TTY), the setup command presents an interactive multi-select wizard:
|
|
|
|
|
|
|
|
|
|
- Packages are grouped by type (foundation, module, product, template)
|
|
|
|
|
- Use arrow keys to navigate
|
|
|
|
|
- Press space to select/deselect packages
|
|
|
|
|
- Type to filter the list
|
|
|
|
|
- Press enter to confirm selection
|
|
|
|
|
|
|
|
|
|
The wizard is skipped when:
|
|
|
|
|
- `--all` flag is specified
|
|
|
|
|
- Not running in a TTY (e.g., CI pipelines)
|
|
|
|
|
- `--dry-run` is specified
|
|
|
|
|
|
|
|
|
|
---
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
|
|
### Clone from Registry
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-29 19:09:51 +00:00
|
|
|
# Clone all repos (interactive wizard)
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
core setup
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
# Clone all repos (non-interactive)
|
|
|
|
|
core setup --all
|
|
|
|
|
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
# Preview without cloning
|
|
|
|
|
core setup --dry-run
|
|
|
|
|
|
|
|
|
|
# Only foundation packages
|
|
|
|
|
core setup --only foundation
|
2026-01-29 09:44:28 +00:00
|
|
|
```
|
|
|
|
|
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
### Bootstrap New Workspace
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-29 19:09:51 +00:00
|
|
|
# Interactive bootstrap in empty directory
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
mkdir workspace && cd workspace
|
|
|
|
|
core setup
|
|
|
|
|
|
|
|
|
|
# Non-interactive with all packages
|
|
|
|
|
core setup --all --name my-project
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
# Bootstrap and run build
|
|
|
|
|
core setup --all --name my-project --build
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
```
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
2026-01-29 09:44:28 +00:00
|
|
|
## Registry Format
|
|
|
|
|
|
2026-01-29 19:19:21 +00:00
|
|
|
The registry file (`repos.yaml`) defines repositories. See [Configuration Files](example.md#configuration-files) for format.
|
2026-01-29 09:44:28 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
|
|
|
|
|
2026-01-29 09:44:28 +00:00
|
|
|
## Finding Registry
|
|
|
|
|
|
|
|
|
|
Core looks for `repos.yaml` in:
|
|
|
|
|
|
|
|
|
|
1. Current directory
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
2. Parent directories (walking up to root)
|
|
|
|
|
3. `~/Code/host-uk/repos.yaml`
|
|
|
|
|
4. `~/.config/core/repos.yaml`
|
2026-01-29 09:44:28 +00:00
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
|
|
|
|
|
2026-01-29 09:44:28 +00:00
|
|
|
## After Setup
|
|
|
|
|
|
|
|
|
|
```bash
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
# Check workspace health
|
2026-01-29 19:59:49 +00:00
|
|
|
core dev health
|
2026-01-29 09:44:28 +00:00
|
|
|
|
2026-01-29 15:41:33 +00:00
|
|
|
# Full workflow (status + commit + push)
|
2026-01-29 19:59:49 +00:00
|
|
|
core dev work
|
refactor(cli): restructure cmd packages into subdirectories
- Move CLI commands into subdirectories matching command hierarchy:
dev/, go/, php/, build/, ci/, sdk/, pkg/, vm/, docs/, setup/, doctor/, test/, ai/
- Create shared/ package for common styles and utilities
- Add new `core ai` root command with claude subcommand
- Update package declarations and imports across all files
- Create commands.go entry points for each package
- Remove GUI-related files (moved to core-gui repo)
This makes the filesystem structure match the CLI command structure,
improving context capture and code organization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:02:43 +00:00
|
|
|
|
|
|
|
|
# Build the project
|
|
|
|
|
core build
|
|
|
|
|
|
|
|
|
|
# Run tests
|
2026-01-29 19:59:49 +00:00
|
|
|
core go test # Go projects
|
|
|
|
|
core php test # PHP projects
|
2026-01-29 09:44:28 +00:00
|
|
|
```
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
---
|
|
|
|
|
|
2026-01-29 09:44:28 +00:00
|
|
|
## See Also
|
|
|
|
|
|
2026-01-29 19:09:51 +00:00
|
|
|
- [dev work](../dev/work/) - Multi-repo operations
|
|
|
|
|
- [build](../build/) - Build projects
|
|
|
|
|
- [doctor](../doctor/) - Check environment
|