Commit Graph

135 Commits

Author SHA1 Message Date
Jonathan Miller 395921282e feat: add client platform type with detection and structure definition
Client repos (WaaS) are managed Joomla sites — not extensions. They have
src/ with site structure PLUS deployment configs (sftp-config, monitoring,
sync scripts). Detection prioritizes client over joomla when deployment
markers are present.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 17:40:20 -05:00
Jonathan Miller 0e82802f0c feat(mcp): add mokostandards MCP server with 24 governance tools
Embeds an MCP server in mcp/ that exposes MokoStandards CLI tools as
AI assistant tools: platform detection, repo health checks, validation
(structure, headers, secrets, changelog, version consistency, enterprise
readiness, drift scan), Joomla/Dolibarr-specific checks, definitions
browser, policy/guide reader, and release notes generation.

Also adds McpServerPlugin, MCP platform detection, and MCP workflow
templates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 15:44:10 -05:00
Jonathan Miller 2dc43603da chore: add cascade, gitleaks, renovate, and updated branch protections to definitions [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 15:36:04 -05:00
Jonathan Miller 38c2536c7b feat: add PHPStan, Gitleaks, and Renovate — templates, workflows, and docs [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 14:56:02 -05:00
Jonathan Miller 4e17ccf1f7 docs: update cascade docs for v2 multi-branch support [skip ci] 2026-05-07 14:32:11 -05:00
Jonathan Miller 5d6d9536a2 docs: add cascade and branch protection workflow documentation [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 14:26:48 -05:00
Jonathan Miller 5520aecc6f fix: remove gitea-actions[bot] from push whitelist (not a real user) [skip ci] 2026-05-07 14:13:32 -05:00
Jonathan Miller 671027c4f4 fix: delete-then-create branch protection rules to avoid 422 [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 14:10:44 -05:00
Jonathan Miller a6a9b8920e ci: add branch protection setup workflow [skip ci] 2026-05-07 14:04:50 -05:00
Jonathan Miller 57d05a74bd refactor: simplify platform types across definitions and sync engine
Old → New:
  crm-module → dolibarr
  crm-platform → platform
  waas-component → joomla
  joomla-template → joomla (merged)
  default-repository → generic
  standards-repository → standards
  client-site → client
  generic-repository → generic

Updated: definitions, RepositorySynchronizer.php, WORKFLOW_STANDARDS.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:29:57 -05:00
Jonathan Miller bcfd1fb029 chore: set platform to standards
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:22:56 -05:00
Jonathan Miller 89eec33c7b docs: fix stale workflow and client repo references
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:02:27 -05:00
Jonathan Miller 3f002a5996 docs: update workflow standards — minor bump policy, client changes, cascade
- Version policy: stable=minor bump (was major), pre-release=patch
- Client repos: 10 workflows (no update-server, no updates.xml)
- Cascade delete documented
- Release naming with element name documented
- Full changelog updated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 14:50:37 -05:00
Jonathan Miller 46a87d2a98 fix: update mokostandards xmlns to point to MokoStandards-API repo
Schema documentation lives alongside the API implementation.
Updated namespace URI in spec docs, XSD schema, PHP parser,
XML template, and self-referencing .mokostandards manifest.

Old: https://standards.mokoconsulting.tech/mokostandards/1.0
New: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 14:44:17 -05:00
Jonathan Miller fe38765d03 feat: add client-site definition
Defines standard structure for client Joomla site repos:
- No updates.xml (not an installable extension)
- No update-server workflow
- Has sync-media.yml for bidirectional SFTP media sync
- 10 workflows (vs 10+update-server for extensions)
- Required per-repo variables/secrets for media sync

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 14:04:55 -05:00
Jonathan Miller 3740c553da chore: remove templates/github — all CI/templates now in .gitea/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:19:56 -05:00
Jonathan Miller 06b1a36320 docs: update architecture section — sync engine clones templates at runtime
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:18:23 -05:00
Jonathan Miller 2bfbc2d89d refactor: sync engine clones template repos at runtime for workflows
No longer references local templates/workflows/ — instead clones
the canonical template repo (Joomla/Dolibarr/Generic/Client) at
sync time to get the latest workflow files directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:17:53 -05:00
Jonathan Miller c332c3ae5c chore: remove templates/workflows — canonical source is now template repos
Workflow templates live in:
- MokoStandards-Template-Joomla/.gitea/workflows/
- MokoStandards-Template-Dolibarr/.gitea/workflows/
- MokoStandards-Template-Client/.gitea/workflows/
- MokoStandards-Template-Generic/.gitea/workflows/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:15:49 -05:00
gitea-actions[bot] f368f271b7 chore: enrich .mokostandards with build/deploy/scripts 2026-05-02 18:13:07 -05:00
Jonathan Miller a4fbcc0f87 refactor: update sync engine to use new canonical workflow sources
- Replace old .template files with actual workflow YMLs from template repos
- Update RepositorySynchronizer to use new 10/11-workflow standard
- Remove legacy shared workflows (enterprise-firewall, auto-assign, etc.)
- Joomla workflows sourced from MokoStandards-Template-Joomla
- Dolibarr workflows sourced from MokoStandards-Template-Dolibarr

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:12:50 -05:00
gitea-actions[bot] 0119834cef chore: update .mokostandards to XML format 2026-05-02 18:05:59 -05:00
Jonathan Miller abc08fb6f2 docs: update for consolidated Joomla template repo
- Update WORKFLOW_STANDARDS.md to reference MokoStandards-Template-Joomla
- Remove 6 obsolete sync definitions for deleted individual template repos
- Update sync commands to use unified template

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:41:28 -05:00
Jonathan Miller a9c1cd3c16 docs: update workflow standards with client sync-media and full repo list
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:26:28 -05:00
Jonathan Miller 86ccfdc64f docs: add WORKFLOW_STANDARDS.md + update definitions
- Document new 10-workflow standard for Joomla, 11 for Dolibarr
- Remove deploy.yml from definitions (deploy is manual only)
- Add pre-release.yml to definitions
- Update waas-component.tf: ci-dolibarr + publish-to-mokodolimods
- Canonical source is now template repos, not API repo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:15:07 -05:00
Jonathan Miller c9735396a9 chore: remove template workflows from API repo (canonical source is template repos)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:08:18 -05:00
Jonathan Miller 7525486710 fix: add patch version bump to pre-release workflow
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:02:39 -05:00
Jonathan Miller 1472dcb650 chore: remove auto-deploy workflow (deploy is manual only)
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:42:53 -05:00
Jonathan Miller 93fe181e1b feat: add pre-release workflow for manual dev/alpha/beta/rc builds
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:40:52 -05:00
Jonathan Miller 8a864a2eb4 feat: add pr-check, security-audit, notify, cleanup to workflow definitions
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Expands standard workflow suite from 6 to 10 in both joomla-template.tf
and waas-component.tf definitions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:32:36 -05:00
Jonathan Miller 91fdd63fe9 feat: expand workflow suite (10 workflows from MokoOnyx)
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:31:27 -05:00
Jonathan Miller efc7180b01 feat: add .gitea/workflows definitions to Joomla structure defs
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Replaces old .github/workflows with the standard 6-workflow set
matching MokoOnyx: auto-release, ci-joomla, deploy, deploy-manual,
repo-health, update-server.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:23:13 -05:00
Jonathan Miller f51b3a97d9 feat: add Joomla workflow templates from MokoOnyx
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Adds auto-release, ci-joomla, deploy, deploy-manual, repo-health,
and update-server workflows as standard templates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:17:49 -05:00
jmiller cbbb4895bb fix: always emit <client> tag in UpdateXmlGenerator, map 0→site 1→administrator
Bulk Repository Sync / Sync Standards to Repositories (push) Successful in 1m16s
2026-04-30 15:01:03 +00:00
jmiller f04d57a416 fix: rewrite updates.xml.template with 5 stability channels, client, sha256, maintainer 2026-04-30 15:00:12 +00:00
Jonathan Miller b4b7947658 chore: add .mcp.json to .gitignore and untrack 2026-04-30 09:42:38 -05:00
Jonathan Miller f12f660641 chore: chore: cleanup 2026-04-26 23:11:26 -05:00
Jonathan Miller 8758570216 fix: migrate .mokostandards from .github/ to .gitea/ on Gitea
migrateMokoStandards() now checks both root and .github/.mokostandards
as sources, migrating to .gitea/.mokostandards when running on Gitea.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 22:47:01 -05:00
Jonathan Miller 62394838b5 chore: replace jmiller-moko with jmiller, move .mokostandards to .gitea/ 2026-04-26 22:30:35 -05:00
Jonathan Miller 65e3c6acb6 docs: update workflow architecture — .gitea only, stream tags, cascade, auto-detect [skip ci]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 19:30:30 -05:00
Jonathan Miller f71c186e26 fix: replace jmiller-moko with jmiller across all templates
GitHub username jmiller-moko replaced with Gitea username jmiller in:
- Issue templates (assignees)
- CODEOWNERS
- dependabot.yml
- Workflow authorized user lists

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 18:48:13 -05:00
Jonathan Miller 7800eadbd7 fix: Gitea compatibility for artifact uploads and bulk sync
- Guard upload-artifact@v4 / download-artifact@v4 with
  github.server_url == 'https://github.com' so they skip on Gitea
- Add Gitea fallbacks (checkout or log message) where artifacts are used
- Make enforce-tags step continue-on-error so sync doesn't fail on tag issues
- Replace upload-artifact in bulk-repo-sync with step summary on Gitea
- Fix escaped variable references in bulk-repo-sync.yml

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 18:38:52 -05:00
Jonathan Miller df81c55084 chore: add profile.ps1 to .gitignore 2026-04-26 16:02:26 -05:00
Jonathan Miller 5548eae35d chore: add debug logging to workflow sync deduplication 2026-04-26 15:54:43 -05:00
Jonathan Miller 531e462d9d fix: use API repo root for template resolution in bulk sync
syncFilesToBranch was resolving template paths against $standardsRoot
(../MokoStandards) instead of $repoRoot (the API repo where templates
actually live). This caused all template-sourced entries to silently
fail with "Source file not found", resulting in 0 files synced.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 15:41:22 -05:00
Jonathan Miller 78c484c6a7 chore: add .mokostandards platform definition (default-repository) 2026-04-26 13:38:30 -05:00
Jonathan Miller ff07d0a563 fix: prevent self-referencing composer dependency in enterprise package
ensureComposerEnterprise() now skips repos whose composer.json name
matches 'mokoconsulting-tech/enterprise' to avoid the package requiring
itself. Also removes the re-added self-reference from composer.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 11:55:10 -05:00
Jonathan Miller 5c0cb98082 fix: resolve label names to IDs in GiteaAdapter::createIssue
Gitea API expects label IDs (int64) not names. When string labels are
passed, resolve them via listLabels() before posting. Fixes 422
Unprocessable Entity errors that were causing tracking issue creation
to fail and repos to be marked as skipped during bulk sync.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 11:53:38 -05:00
jmiller 6795b72fec chore: add mokoconsulting-tech/enterprise dependency 2026-04-26 16:35:54 +00:00
jmiller c3c427df14 chore: add TODO.md from MokoStandards 2026-04-26 16:35:53 +00:00