diff --git a/README.md b/README.md index 876e498..adb7b73 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,24 @@ -# Moko Consulting -- Wiki Archive +# Moko Consulting — Wiki Archive -Consolidated backup of all project wikis. +Consolidated backup of all project wikis from [Gitea](https://git.mokoconsulting.tech). > **Source of truth:** Gitea wikis. This repo is a read-only mirror. ## Projects - -### ClarksvilleFurs - -- [**client-waas-clarksvillefurs**](ClarksvilleFurs/client-waas-clarksvillefurs/) -- 16 pages - -### MokoConsulting - -- [**MokoCRM**](MokoConsulting/MokoCRM/) -- 8 pages -- [**MokoDPCalendarAPI**](MokoConsulting/MokoDPCalendarAPI/) -- 3 pages -- [**MokoDoliAdInsights**](MokoConsulting/MokoDoliAdInsights/) -- 10 pages -- [**MokoDoliArt**](MokoConsulting/MokoDoliArt/) -- 7 pages -- [**MokoDoliAuth**](MokoConsulting/MokoDoliAuth/) -- 2 pages -- [**MokoDoliCare**](MokoConsulting/MokoDoliCare/) -- 14 pages -- [**MokoDoliChimp**](MokoConsulting/MokoDoliChimp/) -- 2 pages -- [**MokoDoliClaude**](MokoConsulting/MokoDoliClaude/) -- 7 pages -- [**MokoDoliCredits**](MokoConsulting/MokoDoliCredits/) -- 7 pages -- [**MokoDoliDymo**](MokoConsulting/MokoDoliDymo/) -- 7 pages -- [**MokoDoliG**](MokoConsulting/MokoDoliG/) -- 4 pages -- [**MokoDoliGithub**](MokoConsulting/MokoDoliGithub/) -- 7 pages -- [**MokoDoliHRM**](MokoConsulting/MokoDoliHRM/) -- 7 pages -- [**MokoDoliMods**](MokoConsulting/MokoDoliMods/) -- 3 pages -- [**MokoDoliMulti**](MokoConsulting/MokoDoliMulti/) -- 8 pages -- [**MokoDoliOffline**](MokoConsulting/MokoDoliOffline/) -- 5 pages -- [**MokoDoliPhoneCom**](MokoConsulting/MokoDoliPhoneCom/) -- 7 pages -- [**MokoDoliProjTemplate**](MokoConsulting/MokoDoliProjTemplate/) -- 7 pages -- [**MokoDoliRelease**](MokoConsulting/MokoDoliRelease/) -- 16 pages -- [**MokoDoliSign**](MokoConsulting/MokoDoliSign/) -- 14 pages -- [**MokoDoliTraining**](MokoConsulting/MokoDoliTraining/) -- 8 pages -- [**MokoDolibarr**](MokoConsulting/MokoDolibarr/) -- 4 pages -- [**MokoGalleryCalendar**](MokoConsulting/MokoGalleryCalendar/) -- 6 pages -- [**MokoGitea**](MokoConsulting/MokoGitea/) -- 5 pages -- [**MokoISOUpdatePortable**](MokoConsulting/MokoISOUpdatePortable/) -- 15 pages -- [**MokoJoomHero**](MokoConsulting/MokoJoomHero/) -- 5 pages -- [**MokoJoomTOS**](MokoConsulting/MokoJoomTOS/) -- 5 pages -- [**MokoJoomla**](MokoConsulting/MokoJoomla/) -- 1 pages -- [**MokoOnyx**](MokoConsulting/MokoOnyx/) -- 9 pages -- [**MokoPerfectPublisher-Discord**](MokoConsulting/MokoPerfectPublisher-Discord/) -- 4 pages -- [**MokoTesting**](MokoConsulting/MokoTesting/) -- 2 pages -- [**MokoWaaS**](MokoConsulting/MokoWaaS/) -- 12 pages -- [**MokoWaaSAnnounce**](MokoConsulting/MokoWaaSAnnounce/) -- 6 pages -- [**MokoWiki**](MokoConsulting/MokoWiki/) -- 1 pages -- [**MokoWinSetup**](MokoConsulting/MokoWinSetup/) -- 6 pages -- [**Template-Client-WaaS**](MokoConsulting/Template-Client-WaaS/) -- 5 pages -- [**Template-Dolibarr**](MokoConsulting/Template-Dolibarr/) -- 7 pages -- [**Template-Generic**](MokoConsulting/Template-Generic/) -- 4 pages -- [**Template-MCP**](MokoConsulting/Template-MCP/) -- 4 pages -- [**backup-mcp**](MokoConsulting/backup-mcp/) -- 6 pages -- [**deploy-mcp**](MokoConsulting/deploy-mcp/) -- 6 pages -- [**dolibarr-api-mcp**](MokoConsulting/dolibarr-api-mcp/) -- 3 pages -- [**dreamhost-mcp**](MokoConsulting/dreamhost-mcp/) -- 3 pages -- [**gitea-api-mcp**](MokoConsulting/gitea-api-mcp/) -- 3 pages -- [**gitea-org-config**](MokoConsulting/gitea-org-config/) -- 2 pages -- [**gitea-private**](MokoConsulting/gitea-private/) -- 2 pages -- [**gitea-server-setup**](MokoConsulting/gitea-server-setup/) -- 6 pages -- [**joomla-api-mcp**](MokoConsulting/joomla-api-mcp/) -- 6 pages -- [**moko-platform**](MokoConsulting/moko-platform/) -- 53 pages -- [**monitor-mcp**](MokoConsulting/monitor-mcp/) -- 6 pages -- [**org-profile**](MokoConsulting/org-profile/) -- 2 pages -- [**project-mcp**](MokoConsulting/project-mcp/) -- 4 pages -- [**ssh-mcp**](MokoConsulting/ssh-mcp/) -- 10 pages -- [**wiki-mcp**](MokoConsulting/wiki-mcp/) -- 3 pages +- [**ClarksvilleFurs**](ClarksvilleFurs/) — 16 pages +- [**MokoConsulting**](MokoConsulting/) — 369 pages +- [**MokoOnyx**](MokoOnyx/) — 9 pages +- [**MokoWaaS**](MokoWaaS/) — 12 pages +- [**Template-Client-WaaS**](Template-Client-WaaS/) — 5 pages +- [**backup-mcp**](backup-mcp/) — 6 pages +- [**client-clarksvillefurs**](client-clarksvillefurs/) — 16 pages +- [**client-waas-clarksvillefurs**](client-waas-clarksvillefurs/) — 16 pages +- [**deploy-mcp**](deploy-mcp/) — 6 pages +- [**joomla-api-mcp**](joomla-api-mcp/) — 6 pages +- [**moko-platform**](moko-platform/) — 53 pages +- [**monitor-mcp**](monitor-mcp/) — 6 pages +- [**ssh-mcp**](ssh-mcp/) — 10 pages --- -*Last synced: 2026-05-10 19:38 UTC* +*Last synced: 2026-05-11 05:00 UTC* diff --git a/moko-platform/MINIFICATION.md b/moko-platform/MINIFICATION.md index 0672052..3047f11 100644 --- a/moko-platform/MINIFICATION.md +++ b/moko-platform/MINIFICATION.md @@ -8,10 +8,8 @@ CSS and JS assets are minified at build/release time. Minified files (`.min.css` ## Standard -All MokoStandards-compliant repos follow this pattern: - | What | Where | -|------|-------| +|---|---| | Source files | Committed to git (`*.css`, `*.js`) | | Minified files | Generated at build time, gitignored (`*.min.css`, `*.min.js`) | | Release ZIPs | Include both source and minified versions | @@ -20,16 +18,14 @@ All MokoStandards-compliant repos follow this pattern: ## Universal Minifier -**Location:** `moko-platform/build/minify.js` +Location: `moko-platform/build/minify.js` Auto-discovers all CSS/JS files in a source directory, skipping `vendor/`, `node_modules/`, and already-minified files. -| File Type | Tool | Settings | -|-----------|------|----------| -| CSS | **clean-css** | Level 1 | -| JS | **Terser** | Compress + mangle | - -### Usage +| Tool | Purpose | +|---|---| +| **clean-css** | CSS minification (level 1) | +| **Terser** | JS minification (compress + mangle) | ```bash # From any repo root @@ -64,7 +60,7 @@ The `build` target depends on `minify`, so `make build` and `make release` both ## CI/Release Integration -The `auto-release.yml` workflow includes Step 7.5 (Minify assets) which runs **before** the ZIP packaging step: +The `auto-release.yml` workflow includes Step 7.5 (Minify assets) before ZIP packaging: ```yaml - name: "Step 7.5: Minify assets" @@ -77,32 +73,65 @@ The `auto-release.yml` workflow includes Step 7.5 (Minify assets) which runs **b [ -n "$MINIFY" ] && node "$MINIFY" src ``` -This ensures minified assets are in the working tree when the ZIP is built, but never committed. +--- + +## MokoOnyx Runtime Minification + +MokoOnyx includes `MokoMinifyHelper` which auto-minifies editable files on the server: + +| Event | Behavior | +|---|---| +| **Debug OFF** | Regenerates `.min` files if source is newer than existing `.min` | +| **Debug ON** | Deletes all `.min` files so source is served directly | +| **Install/Update** | `cleanMediaFolder()` in `script.php` deletes stale `.min` files | +| **File edit** | Next page load detects stale `.min` and re-minifies | + +### Files managed by MokoMinifyHelper + +| CSS | JS | +|---|---| +| `css/template.css` | `js/template.js` | +| `css/offline.css` | `js/gtm.js` | +| `css/editor.css` | `js/user.js` | +| `css/a11y-high-contrast.css` | | +| `css/user.css` | | +| `css/theme/light.standard.css` | | +| `css/theme/dark.standard.css` | | +| `css/theme/light.custom.css` | | +| `css/theme/dark.custom.css` | | + +Joomla's Web Asset Manager auto-serves `.min` files when debug mode is off -- no separate asset registration needed. --- ## .gitignore -All repos include: - +All repos must include: ``` *.min.css *.min.js ``` +This is checked by the repo health check (`check_repo_health.php`). + --- -## Repos with Minification Enabled +## Vendor Assets -- Template-Client-WaaS (client template) -- Template-Joomla (extension template) -- Template-MCP (MCP server template) -- MokoOnyx (Joomla template) -- client-clarksvillefurs +Vendor libraries (e.g. Font Awesome) ship pre-minified only. Unminified vendor source files are not included in the repo or release packages. The `cleanMediaFolder()` script removes any stale unminified vendor files on install/update. --- ## Related -- [WORKFLOW_STANDARDS](WORKFLOW_STANDARDS) -- CI/CD workflow conventions -- [ARCHITECTURE](ARCHITECTURE) -- Platform scripts architecture +- [WIKI_STANDARDS](WIKI_STANDARDS) -- repo file requirements +- [WORKFLOW_STANDARDS](WORKFLOW_STANDARDS) -- CI/CD conventions + +--- + +*Repo: [moko-platform](https://git.mokoconsulting.tech/MokoConsulting/moko-platform) · [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home)* + +| Revision | Date | Author | Description | +|---|---|---|---| +| 1.0 | 2026-05-09 | Moko Consulting | Initial minification standards | +| 2.0 | 2026-05-10 | Moko Consulting | Added MokoOnyx runtime minification, vendor policy, .gitignore requirement | diff --git a/moko-platform/WIKI_STANDARDS.md b/moko-platform/WIKI_STANDARDS.md index 081a7a0..91c57ac 100644 --- a/moko-platform/WIKI_STANDARDS.md +++ b/moko-platform/WIKI_STANDARDS.md @@ -22,15 +22,11 @@ Brief description of what this page covers. ## Section 1 Content... -## Section 2 -Content... - --- ## Related - [Other Page](Other-Page) -- description -- [External Link](https://...) -- description --- @@ -38,7 +34,7 @@ Content... | Revision | Date | Author | Description | |---|---|---|---| -| 1.0 | YYYY-MM-DD | Author | Initial version | +| 1.0 | YYYY-MM-DD | Moko Consulting | Initial version | ``` ### Required elements @@ -48,8 +44,8 @@ Content... | Navigation link | First line | `[← Back to Home](Home)` | | H1 title | After nav | Page title matching the wiki page name | | Description | After title | 1-2 sentence summary | -| Horizontal rules | Between major sections | `---` separators for visual clarity | -| Related section | Before footer | Links to related pages and external resources | +| Horizontal rules | Between major sections | `---` separators | +| Related section | Before footer | Links to related pages | | Metadata footer | Last lines | Repo link, MokoStandards link, revision table | --- @@ -68,71 +64,40 @@ Every repo wiki must have a Home page with: | Related wikis | Recommended | Links to related project wikis | | MokoStandards backlink | Yes | Link to moko-platform wiki Home | -### Info table format - -```markdown -| Field | Value | -|---|---| -| **Type** | MCP Server / Joomla Template / Joomla Plugin / etc. | -| **Language** | PHP / TypeScript / Bash | -| **License** | GPL-3.0-or-later | -| **Platform** | [Gitea](repo-url) · [GitHub](mirror-url) | -``` - --- ## Content Guidelines ### Formatting -| Rule | Example | +| Rule | Description | |---|---| -| Use tables for structured data | Not bullet lists for key-value pairs | -| Use code blocks for commands | `` `make build` `` or fenced blocks | -| Use headers for sections | H2 for major sections, H3 for subsections | -| Use horizontal rules between sections | `---` | -| No emojis in headers | Use plain text | -| Em dashes | Use `--` not unicode `—` | +| Tables for structured data | Not bullet lists for key-value pairs | +| Code blocks with language | ` ```bash `, ` ```json `, ` ```php ` | +| Headers for sections | H2 for major, H3 for subsections | +| Horizontal rules | `---` between major sections | +| No emojis in headers | Plain text only | +| Em dashes | Use `--` not unicode | ### Writing style -- **Concise** -- lead with the answer, not the explanation -- **Scannable** -- headers, tables, and short paragraphs -- **Accurate** -- built from actual source code, not assumptions -- **Actionable** -- include commands, file paths, and examples +- **Concise** -- lead with the answer +- **Scannable** -- headers, tables, short paragraphs +- **Accurate** -- built from source code, not assumptions +- **Actionable** -- include commands, file paths, examples - **Current** -- update when code changes -### Code blocks - -Always specify the language: - -````markdown -```bash -make build -``` - -```json -{"key": "value"} -``` - -```php -$app = Factory::getApplication('site'); -``` -```` - --- ## Page Categories -Organize wiki pages into these standard categories on the Home page: - | Category | Content | |---|---| -| **Guides** | Step-by-step tutorials (Installation, Configuration, Getting Started) | -| **Reference** | Technical reference (API, Tools, CSS Variables, Endpoints) | -| **Operations** | Operational procedures (Backup, Restore, Monitoring, Troubleshooting) | -| **Architecture** | System design (Architecture, How It Works, Data Flow) | -| **Development** | Contributing (Development, Release Process, Testing) | +| **Guides** | Installation, Configuration, Getting Started | +| **Reference** | API, Tools, CSS Variables, Endpoints | +| **Operations** | Backup, Restore, Monitoring, Troubleshooting | +| **Architecture** | System design, How It Works, Data Flow | +| **Development** | Contributing, Release Process, Testing | --- @@ -140,8 +105,8 @@ Organize wiki pages into these standard categories on the Home page: | Type | Format | Example | |---|---|---| -| Guide pages | Title case, hyphenated | `Installation`, `Getting-Started` | -| Reference pages | UPPER_CASE for standards | `WIKI_STANDARDS`, `MINIFICATION` | +| Guide pages | Title case | `Installation`, `Getting-Started` | +| Reference pages | UPPER_CASE | `WIKI_STANDARDS`, `MINIFICATION` | | Technical pages | Title case | `Architecture`, `Configuration` | | Compound names | Hyphenated | `Custom-Themes`, `Backup-Recovery` | @@ -149,13 +114,7 @@ Organize wiki pages into these standard categories on the Home page: ## Metadata Footer -Every page ends with a metadata footer containing: - -1. **Repo link** -- link to the source repository -2. **MokoStandards link** -- link to the central standards wiki -3. **Revision history table** -- tracks changes to the page - -### Format +Every page ends with: ```markdown --- @@ -165,45 +124,106 @@ Every page ends with a metadata footer containing: | Revision | Date | Author | Description | |---|---|---|---| | 1.0 | 2026-05-09 | Moko Consulting | Initial version | -| 1.1 | 2026-05-10 | Moko Consulting | Added troubleshooting section | ``` -### Rules - -- Increment minor version for content updates (1.0 → 1.1) -- Increment major version for restructuring (1.x → 2.0) -- Author is always "Moko Consulting" for org work -- Date is ISO format (YYYY-MM-DD) - --- -## Wiki Health Requirements +## Required Repository Files -The `check_wiki_health.php` validation checks: +Per the repo health check (`check_repo_health.php`), every repo must have: -| Check | Requirement | +### Required (positive points) + +| File | Points | Purpose | +|---|---|---| +| `README.md` | 8 | Project overview (mirrors wiki Home) | +| `LICENSE` | 8 | GPL-3.0-or-later | +| `CHANGELOG.md` | 5 | Release history with [Unreleased] section | +| `CLAUDE.md` | 5 | Claude Code context (project overview, commands, architecture, rules) | +| `CONTRIBUTING.md` | 4 | Contribution guidelines | +| `SECURITY.md` | 4 | Security policy | +| `.gitignore` | 3 | Must include: `.claude/`, `TODO.md`, `*.min.css`, `*.min.js` | +| `Makefile` | 3 | Build targets (minify, build, release) | + +### Disallowed (flagged if present) + +| File | Reason | |---|---| -| Home page exists | Required | -| MokoStandards backlink | Required on Home page | -| Page count | At least 1 (Home) | -| Navigation links | `[← Back to Home](Home)` on all non-Home pages | -| Metadata footer | Repo link + revision table on all pages | +| `TODO.md` | Use issue tracker, not committed files | +| `.claude/` | Local workspace config | +| `.mcp.json` | Local MCP config | +| `renovate.json` | Removed from ecosystem | +| `profile.ps1` | Local PowerShell profile | +| `vendor/` | Install via composer, don't commit | +| `node_modules/` | Install via npm, don't commit | +| `.env` / `credentials.json` | Secrets never committed | + +### Manifest + +Every repo must have `.gitea/.moko-platform` XML manifest with: +- Identity (name, org, description, license) +- Governance (platform type, standards version) +- Build (language, package type, entry point) + +--- + +## CLAUDE.md Standard + +Every repo must have a `CLAUDE.md` that provides context to Claude Code: + +```markdown +# CLAUDE.md + +This file provides guidance to Claude Code when working with this repository. + +## Project Overview +**RepoName** -- description + +| Field | Value | +|---|---| +| **Platform** | joomla / dolibarr / mcp-server / client / template / generic | +| **Language** | PHP / TypeScript / Shell | +| **Default branch** | main or dev | +| **Wiki** | [Wiki link](wiki-url) | +| **Standards** | [MokoStandards](moko-platform-wiki-url) | + +## Common Commands +(make targets, npm scripts, composer commands) + +## Architecture +(key directories and files for this platform type) + +## Rules +- Never commit .claude/, .mcp.json, TODO.md, *.min.css/js +- Attribution: Authored-by: Moko Consulting +- Branch strategy: dev → main +- Standards: MokoStandards +``` + +--- + +## Repo Health Check + +The `check_repo_health.php` script validates repos against these standards: + +| Category | Points | Checks | +|---|---|---| +| Required Files | 40 | README, LICENSE, CHANGELOG, CONTRIBUTING, SECURITY, CLAUDE.md, .gitignore, Makefile | +| Manifest & Config | 20 | .moko-platform, workflows, README quality, .gitignore content, CLAUDE.md quality | +| Documentation | 15 | No docs/ (wiki-first), CHANGELOG [Unreleased] | +| Disallowed | 10 | No TODO.md, vendor/, node_modules/, .claude/, .mcp.json, renovate.json, profile.ps1 | +| Workflows | 15 | repo-health, sync-roadmap-wiki, CI/deploy | +| Security | 20 | SECURITY.md, scanning workflow, no renovate.json, no secrets | +| Rulesets | 15 | Main protected, dev branch, branch protections | +| Deployment | 10 | Deploy workflow, build system | + +Threshold: 70% to pass. --- ## GitHub Mirror -All wikis are backed up daily to [mokoconsulting-tech/wiki](https://github.com/mokoconsulting-tech/wiki) on GitHub via `sync-wikis-to-github.sh` (runs daily at 5am UTC). - -Structure: -``` -wiki/ - README.md (auto-generated index) - moko-platform/ (30+ pages) - MokoOnyx/ (9 pages) - monitor-mcp/ (6 pages) - ... -``` +All wikis are backed up daily to [mokoconsulting-tech/wiki](https://github.com/mokoconsulting-tech/wiki) on GitHub via `sync-wikis-to-github.sh` (runs daily at 5am UTC). Auto-discovers all repos with wikis across all orgs. --- @@ -219,4 +239,5 @@ wiki/ | Revision | Date | Author | Description | |---|---|---|---| -| 1.0 | 2026-05-09 | Moko Consulting | Initial wiki standards document | +| 1.0 | 2026-05-09 | Moko Consulting | Initial wiki standards | +| 2.0 | 2026-05-10 | Moko Consulting | Added CLAUDE.md standard, repo health check details, required/disallowed files |