Files
Jonathan Miller f76cd94c64
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 3s
Platform: moko-platform CI / CI Summary (pull_request) Blocked by required conditions
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Scripts governance (push) Successful in 21s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Release configuration (push) Successful in 22s
Generic: Repo Health / Repository health (push) Successful in 23s
Universal: PR Check / Validate PR (pull_request) Successful in 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Generic: Repo Health / Release configuration (pull_request) Successful in 4s
Generic: Repo Health / Scripts governance (pull_request) Successful in 4s
Universal: PR Check / Build RC Package (pull_request) Successful in 1s
Generic: Repo Health / Repository health (pull_request) Successful in 11s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Successful in 46s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Failing after 47s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Failing after 52s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Failing after 53s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Failing after 9s
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Failing after 51s
Platform: moko-platform CI / Gate 4: Governance (pull_request) Successful in 51s
chore: update CLAUDE.md with current architecture
- Language: HCL → PHP 8.1+
- Added directory layout table (cli/, validate/, lib/, etc.)
- Added CliFramework pattern for new tools
- Added code quality section (PHPCS, PHPStan levels)
- Added common commands (bin/moko, phpcs, phpstan)
- Added rules for new CLI tools and COMMAND_MAP registration

Closes #103

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 21:24:43 -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 06.00.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