feat: metadata CLI tools and MCP extraction #256

Open
jmiller wants to merge 5 commits from feature/metadata-cli into main
Owner

Summary\n\n- Rename manifest_* CLI tools → metadata_* with backward-compatible wrappers\n- Add --set field=value support to metadata_read.php for updating metadata XML fields\n- Auto-migrate manifest.xmlmetadata.xml on first read (copy + delete old)\n- Add manifest_integrity.phpmetadata_integrity.php for org-wide validation\n- Extract all MCP servers from monorepo to standalone A:/MCP/ directories\n- Publish all 9 MCP servers to npm and Gitea package registry\n- Update changelog for MCP extraction and npm publishing\n\n## Changes\n\n| File | Change |\n|------|--------|\n| cli/metadata_read.php | Read + set metadata fields, auto-migrate manifest→metadata |\n| cli/metadata_detect.php | Detect display_name, target_version, php_minimum |\n| cli/metadata_integrity.php | New — org-wide metadata validation (564 lines) |\n| cli/metadata_element.php | Renamed from manifest_element |\n| cli/metadata_licensing.php | Renamed from manifest_licensing |\n| cli/manifest_*.php | Now backward-compat wrappers to metadata_* |\n| .mokogitea/metadata.xml | New canonical name (replaces manifest.xml) |\n| templates/repos/joomla/* | MokoSuite references in Makefile and composer.json |\n| CHANGELOG.md | MCP extraction, npm publishing, manifest→metadata rename |\n\n## Test Plan\n\n- [ ] php cli/metadata_read.php --path . --all reads fields correctly\n- [ ] php cli/metadata_read.php --path . --set platform=php updates XML\n- [ ] php cli/manifest_read.php --path . --all still works via wrapper\n- [ ] Auto-migration: repo with manifest.xml gets migrated to metadata.xml on read\n- [ ] --set rejects unknown field names

## Summary\n\n- Rename `manifest_*` CLI tools → `metadata_*` with backward-compatible wrappers\n- Add `--set field=value` support to `metadata_read.php` for updating metadata XML fields\n- Auto-migrate `manifest.xml` → `metadata.xml` on first read (copy + delete old)\n- Add `manifest_integrity.php` → `metadata_integrity.php` for org-wide validation\n- Extract all MCP servers from monorepo to standalone `A:/MCP/` directories\n- Publish all 9 MCP servers to npm and Gitea package registry\n- Update changelog for MCP extraction and npm publishing\n\n## Changes\n\n| File | Change |\n|------|--------|\n| `cli/metadata_read.php` | Read + set metadata fields, auto-migrate manifest→metadata |\n| `cli/metadata_detect.php` | Detect display_name, target_version, php_minimum |\n| `cli/metadata_integrity.php` | New — org-wide metadata validation (564 lines) |\n| `cli/metadata_element.php` | Renamed from manifest_element |\n| `cli/metadata_licensing.php` | Renamed from manifest_licensing |\n| `cli/manifest_*.php` | Now backward-compat wrappers to metadata_* |\n| `.mokogitea/metadata.xml` | New canonical name (replaces manifest.xml) |\n| `templates/repos/joomla/*` | MokoSuite references in Makefile and composer.json |\n| `CHANGELOG.md` | MCP extraction, npm publishing, manifest→metadata rename |\n\n## Test Plan\n\n- [ ] `php cli/metadata_read.php --path . --all` reads fields correctly\n- [ ] `php cli/metadata_read.php --path . --set platform=php` updates XML\n- [ ] `php cli/manifest_read.php --path . --all` still works via wrapper\n- [ ] Auto-migration: repo with manifest.xml gets migrated to metadata.xml on read\n- [ ] `--set` rejects unknown field names
jmiller changed target branch from dev to main 2026-06-11 23:27:04 +00:00
jmiller added 5 commits 2026-06-11 23:27:04 +00:00
- manifest_detect.php: add display_name, target_version, php_minimum detection
- manifest_integrity.php: new org-wide manifest validation tool (564 lines)
- templates: update Joomla Makefile and composer.json with MokoSuite references
MCP servers extracted to standalone repos, published to npm and
Gitea registry, manifest CLI tools consolidated.
- manifest_read.php → metadata_read.php (+ wrapper)
- manifest_detect.php → metadata_detect.php (+ wrapper)
- manifest_element.php → metadata_element.php (+ wrapper)
- manifest_integrity.php → metadata_integrity.php (+ wrapper)
- manifest_licensing.php → metadata_licensing.php (+ wrapper)
- .mokogitea/manifest.xml → .mokogitea/metadata.xml

Old manifest_* files now require() the new metadata_* counterparts
for backward compatibility with existing workflows and scripts.
feat: add --set support and auto-migration to metadata_read.php
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
a00cbf7d92
- --set field=value (comma-separated) to update metadata XML fields
- FIELD_MAP defines all first-class fields with XML section/element paths
- Validates field names and refuses unknown fields
- Auto-migrates manifest.xml → metadata.xml on first read (copies + deletes old)
- Legacy .mokoplatform format remains read-only with migration warning
This pull request has changes conflicting with the target branch.
  • .mokogitea/workflows/issue-branch.yml
  • CHANGELOG.md
  • README.md
  • cli/branch_rename.php
  • cli/bulk_workflow_push.php
  • cli/bulk_workflow_trigger.php
  • cli/client_dashboard.php
  • cli/client_inventory.php
  • cli/client_provision.php
  • cli/grafana_dashboard.php
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/metadata-cli:feature/metadata-cli
git checkout feature/metadata-cli
Sign in to join this conversation.
No Reviewers
No labels
Priority -
Type -
Status
Priority
Type
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/mokoplatform#256