Commit Graph

161 Commits

Author SHA1 Message Date
jmiller 63ae3bc9b0 chore: move .gitea/workflows/branch-protection.yml to .mokogitea/branch-protection.yml [skip ci] 2026-05-12 05:14:44 +00:00
jmiller ebb2f5891a chore: remove .gitea/.moko-platform (moved to .mokogitea/) [skip ci] 2026-05-12 05:14:43 +00:00
jmiller 2c7478a6f6 chore: move .gitea/.moko-platform to .mokogitea/.moko-platform [skip ci] 2026-05-12 05:14:43 +00:00
Jonathan Miller 63a21fe0c0 fix: force Site column first in Site Health table via indexByName
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 23:56:21 -05:00
Jonathan Miller 787d778e91 feat: rewrite dashboard tables with clean filterFieldsByName pattern
- Site Health: rewritten from scratch — site_url via label_replace on HTTP
  query (works for offline sites), filterFieldsByName to keep only needed
  fields, endpoint URL as clickable Site column
- Joomla Core & Extensions: rewritten — same pattern, Site links to /administrator/
- Backup Status: rewritten — same pattern, Site links to Akeeba Manage
- Combined SSL Days and Last Scrape into Site Health table
- Collapsed Joomla Core section by default
- Moved dashboard to Endpoints folder
- Added site-uptime-alert.sh for ntfy critical alerts on site downtime
- Split updates into System and Ext Updates columns

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 23:54:37 -05:00
Jonathan Miller 1c7de961c6 chore: migrate references from .gitea/ to .mokogitea/
- Update template-CONTRIBUTING.md: .github/workflows/ → .mokogitea/workflows/
- Update templates/gitea/README.md: .gitea/ → .mokogitea/
- .mokogitea/ is now the standard system folder

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 23:38:10 -05:00
Jonathan Miller c061338428 feat: full-width stat layout, filter non-Joomla sites, standardize noValue
- Switch all stat panels to w:24 full-width for natural 3-column wrapping
- Filter site variable to joomla.* site_type only (excludes git, grafana)
- Standardize all noValue to "—" for offline/unavailable endpoints
- Joomla Version panel uses table format with labelsToFields for xx.xx.xx display
- Remove wideLayout option (only applies to value_and_name textMode)

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 22:55:50 -05:00
Jonathan Miller 2e57e60335 feat: enhance WaaS Grafana dashboard with data links, backup monitoring, and layout improvements
- Add clickable links: Site Status → admin, API Reachable → endpoint, HTTP Status → Wikipedia reference, Last Backup/Records → Akeeba Manage
- Fix backup status doubling with max by() aggregation
- Show version as two-row display (site name + version string) using table format with labelsToFields
- Map 0 values to dash on Extensions, Enabled, Disabled panels
- Set minVizWidth for 3-column wrapping layout
- All links use dynamic Grafana variables, no hardcoded endpoints

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 22:41:41 -05:00
Jonathan Miller 0e273dae96 feat: add license header check to repo health (15 pts)
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
New 'License Headers' category in check_repo_health.php:
- Copyright headers present (>=80% of source files, 5 pts)
- SPDX-License-Identifier present (>=80%, 5 pts)
- FILE INFORMATION block present (>=70%, 5 pts)

Scans PHP, TS, CSS, and YAML files, excluding vendor/node_modules/dist.
Total health score now 155 pts (was 140).

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:12:47 -05:00
Jonathan Miller 1799401db5 feat: add standard file headers to all 57 files missing them
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
- Add Copyright + FILE INFORMATION headers to 11 PHP enterprise classes
- Add FILE INFORMATION blocks to 9 PHP files with incomplete headers
- Add headers to 2 test files
- Add markdown comment headers to 27 index/README files
- Add headers to 5 root markdown files
- Add FILE INFORMATION to 4 files with existing but incomplete headers

All files now conform to moko-platform file header standard.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:10:19 -05:00
Jonathan Miller 1d87be7d5e fix: standardize file headers — REPO rename, SPDX case, missing fields
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
- Update REPO: from MokoStandards-API to moko-platform in 125 files
- Fix wrong org path (mokoconsulting-tech → MokoConsulting) in 10 files
- Fix SPDX-LICENSE-IDENTIFIER case in 2 template files
- Add missing REPO: field to 3 files

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:01:17 -05:00
Jonathan Miller 38a975ee57 chore: remove VERSION from all file header comments
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
Remove VERSION: XX.YY.ZZ lines from 213 file headers across PHP,
TypeScript, TF definitions, workflows, CSS, markdown, and XML files.
Version is tracked in composer.json and CHANGELOG.md only.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:51:00 -05:00
Jonathan Miller 34aace2638 refactor: remove docs/ — wiki-first, relocate non-doc files
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
- Remove 52 markdown files from docs/ (all content lives in Gitea wiki)
- Relocate legal_doc_generator.html → tools/
- Relocate mokostandards-schema.xsd → templates/schemas/
- Fix XSD path in MokoStandardsParser.php
- Update index.md and README.md to reference wiki

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:40:53 -05:00
Jonathan Miller 993f77d5a8 feat: major version bump 05.00.00 — CHANGELOG, Grafana 2-col layout
Branch Policy Check / Verify merge target (pull_request) Has been cancelled
- Bump platform version 04.05.00 → 05.00.00 across all 58 definition/config files
- Add CHANGELOG.md with full release history
- Add MokoWaaS Grafana dashboard template (2 columns per row)

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:34:10 -05:00
jmiller d318d5e854 chore: add PR branch policy check workflow [skip ci] 2026-05-11 17:16:03 +00:00
jmiller c511847fef feat: centralized MokoWaaS dashboard for all Joomla sites 2026-05-11 16:31:09 +00:00
Jonathan Miller aa1800e2f6 feat: comprehensive repo health check updates
Branch Protection Setup / Apply Branch Protection Rules (push) Successful in 24s
Sync Wikis to GitHub / Export wikis to GitHub (push) Successful in 7s
- Security: flag renovate.json as disallowed (removed from ecosystem)
- Disallowed: add .claude/, .mcp.json, renovate.json, profile.ps1
- Manifest: check .gitignore has required exclusions (.claude/, TODO.md, *.min.css/js)
- Manifest: check CLAUDE.md has project context + MokoStandards reference
- Updated scoring and header documentation

Authored-by: Moko Consulting
2026-05-10 15:07:17 -05:00
Jonathan Miller 15de3eed96 feat: add CLAUDE.md to repo health check, flag unwanted files
- CLAUDE.md now required (5 pts)
- Makefile now required (3 pts)
- Removed profile.ps1 and .mcp.json from required files
- Added negative checks: .mcp.json, TODO.md, renovate.json, .claude/
  flagged if committed

Authored-by: Moko Consulting
2026-05-10 15:03:46 -05:00
jmiller f5d35e10d9 docs: add CLAUDE.md for Claude Code context [skip ci] 2026-05-10 19:55:19 +00:00
jmiller 8245b5fd10 chore: add .moko-platform manifest [skip ci] 2026-05-10 19:51:08 +00:00
jmiller dd6eb8fc24 chore: remove deprecated .mokostandards (now .moko-platform) [skip ci] 2026-05-10 19:48:57 +00:00
Jonathan Miller 8abc30835c feat: add cleanup script to remove .claude/ and .mcp.json from repos
Scans all repos via Gitea API and deletes .claude/ directories and
.mcp.json files that were accidentally committed. These are local
workspace configs and should be gitignored.

Authored-by: Moko Consulting
2026-05-10 14:47:04 -05:00
Jonathan Miller aeb574980b feat: auto-discover all repos with wikis across all orgs
Sync Wikis to GitHub / Export wikis to GitHub (push) Successful in 8s
No more hardcoded repo list — queries Gitea API for all orgs and
repos that have wikis enabled. Falls back to hardcoded list if
no GITEA_TOKEN is set.

Authored-by: Moko Consulting
2026-05-09 19:15:02 -05:00
Jonathan Miller de1fef1de6 feat: daily wiki sync workflow — mirrors all Gitea wikis to GitHub
- sync-wikis.yml: runs daily at 5am UTC via cron, also manual dispatch
- sync-wikis-to-github.sh: exports all project wikis to consolidated
  mokoconsulting-tech/wiki repo on GitHub, organized by project folder

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 18:14:44 -05:00
Jonathan Miller 61d3f16675 feat: add CHANGELOG [Unreleased] section check to repo health (5 pts) 2026-05-09 18:05:11 -05:00
Jonathan Miller 5e894a2c8f feat: add wiki health check and GitHub wiki mirror sync
- validate/check_wiki_health.php — checks Home page, MokoStandards ref
- scripts/sync-wikis-to-github.sh — mirrors Gitea wikis to GitHub
- MCP tools: standards_check_wiki, standards_sync_wikis

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 17:58:20 -05:00
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