Files
MokoCLI/CLAUDE.md
T
Jonathan Miller 07ea171af9
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Platform: moko-platform CI / Gate 1: Code Quality (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
feat: release promotion pipeline, 5 new CLI tools, workflow refactoring
New CLI tools:
- manifest_element.php — extract element/type/prefix from any platform manifest
- release_create.php — create/overwrite Gitea releases with proper naming
- release_package.php — build ZIP+tar.gz, SHA-256, upload assets
- release_promote.php — promote releases between channels (dev→RC→stable)
- version_reset_dev.php — reset platform version on dev branch after release

Updated CLI tools:
- version_bump.php — now writes to manifests, Dolibarr mod, composer.json (not just README)
- release_cascade.php — added --version for version-aware deletion of stale releases
- release_validate.php — auto-detect platform, --github-output, source dir check

Workflow changes (auto-release.yml):
- Draft PR to main → auto-promote highest pre-release to RC
- Merged PR to main → promote RC to stable (skip rebuild when RC exists)
- Removed paths filter for Go/Node/generic repo compatibility
- Fixed cascade --api-base parameter bug

Workflow changes (pre-release.yml):
- Auto-trigger development pre-release on feature branch merge to dev
- Removed paths filter

Infrastructure:
- RepositorySynchronizer: fixed template repo names, .mokogitea/workflows path,
  universal workflow cascade (Template-Generic → other templates)
- bulk_sync.php: syncs universal workflows to templates before repo sync
- PHPDoc added to 4 classes missing class-level docs
- Version bump 09.00.00 → 09.01.00

Closes #152 #153 #154 #155 #156 #157 #158 #159 #161 #162

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 14:29:32 -05:00

3.8 KiB

CLAUDE.md

This file provides guidance to Claude Code when working with this repository.

Project Overview

moko-platform — Enterprise automation, validation, sync, and governance engine for all Moko Consulting repositories

Field Value
Language PHP 8.1+
Default branch main
License GPL-3.0-or-later
Version 09.01.00
Wiki moko-platform Wiki

Common Commands

composer install                         # Install PHP dependencies
php bin/moko health --path .             # Run repo health check
php bin/moko check:syntax --path .       # PHP syntax check
php bin/moko drift --org MokoConsulting  # Scan for standards drift
php bin/moko dashboard --token $TOKEN -o dashboard.html  # Generate client dashboard

# Code quality
php vendor/bin/phpcs --standard=phpcs.xml -n lib/ validate/ automation/ cli/
php vendor/bin/phpcbf --standard=phpcs.xml lib/ validate/ automation/ cli/
php vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=512M

# Run all checks
composer check

Architecture

Directory Layout

Directory Purpose
cli/ 32 standalone CLI tools (version, release, build, repo management)
validate/ 20 validation scripts (syntax, structure, manifests, drift)
automation/ 7 bulk operations (sync, push files, templates, cleanup)
lib/Enterprise/ Core library — CliFramework, ApiClient, adapters, validators
lib/Enterprise/Plugins/ 11 platform plugins (Joomla, Dolibarr, Node.js, Python, etc.)
deploy/ SFTP deployment scripts (Joomla, Dolibarr, health checks)
definitions/ Repository structure definitions (HCL format)
templates/ Workflow templates, config templates, docs templates
.mokogitea/workflows/ CI/CD workflows (Gitea Actions)
bin/moko Unified CLI dispatcher — runs any tool via php bin/moko <command>

CLI Framework

All CLI tools extend MokoEnterprise\CliFramework (defined in lib/Enterprise/CliFramework.php).

Pattern for new tools:

class MyTool extends CliFramework {
    protected function configure(): void {
        $this->setDescription('What this tool does');
        $this->addArgument('--name', 'Description', 'default');
    }
    protected function run(): int {
        $name = $this->getArgument('--name');
        // ... business logic ...
        return 0;
    }
}
$app = new MyTool();
exit($app->execute());

Built-in flags: --help, --verbose, --quiet, --dry-run

Platform Adapters

Git operations are abstracted via GitPlatformAdapter interface:

  • MokoGiteaAdapter — for git.mokoconsulting.tech (primary)
  • GitHubAdapter — for github.com mirrors

Plugin System

Platform-specific logic lives in lib/Enterprise/Plugins/. Each plugin implements ProjectPluginInterface with methods for health checks, validation, build commands, and config schemas.

Code Quality

Tool Level Config
PHPCS PSR-12 (errors only) phpcs.xml
PHPStan Level 2 phpstan.neon

PHPStan runs with --memory-limit=512M due to large codebase. CI enforces PHPCS errors; PHPStan is advisory (continue-on-error).

Rules

  • Workflow directory: .mokogitea/ (not .gitea/ or .github/)
  • Never commit .claude/, .mcp.json, TODO.md, or *.min.css/*.min.js
  • Attribution: use Authored-by: Moko Consulting in commits
  • Branch strategy: develop on dev, merge to main for release
  • Minification: handled at build time (CI) and runtime (MokoMinifyHelper for Joomla templates)
  • Wiki: documentation lives in the Gitea wiki, not in docs/ files
  • New CLI tools: extend CliFramework, not CLIApp (legacy)
  • After adding a CLI tool: register it in bin/moko COMMAND_MAP