chore: cascade main → dev (db487fd) [skip ci]
#5
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
MokoStandards Repository Manifest
|
||||
Auto-generated by cleanup script.
|
||||
See: https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home
|
||||
-->
|
||||
<moko-platform xmlns="https://standards.mokoconsulting.tech/moko-platform/1.0" schema-version="1.0">
|
||||
<identity>
|
||||
<name>joomla-api-mcp</name>
|
||||
<org>MokoConsulting</org>
|
||||
<description>MCP server for Joomla Web Services API operations</description>
|
||||
<license spdx="GPL-3.0-or-later">GNU General Public License v3</license>
|
||||
</identity>
|
||||
<governance>
|
||||
<platform>nodejs</platform>
|
||||
<standards-version>04.07.00</standards-version>
|
||||
<standards-source>https://git.mokoconsulting.tech/MokoConsulting/moko-platform</standards-source>
|
||||
<last-synced>2026-05-10T19:51:10+00:00</last-synced>
|
||||
</governance>
|
||||
<build>
|
||||
<language>TypeScript</language>
|
||||
<package-type>mcp-server</package-type>
|
||||
<entry-point>src/</entry-point>
|
||||
</build>
|
||||
</moko-platform>
|
||||
@@ -1,78 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
MokoStandards Repository Manifest
|
||||
Auto-generated by MokoStandards bulk sync.
|
||||
Manual edits to <governance> and <last-synced> may be overwritten.
|
||||
See: docs/standards/mokostandards-file-spec.md
|
||||
-->
|
||||
<mokostandards xmlns="https://standards.mokoconsulting.tech/mokostandards/1.0" schema-version="1.0">
|
||||
<identity>
|
||||
<name>joomla-api-mcp</name>
|
||||
<org>MokoConsulting</org>
|
||||
<description>MCP server for Joomla Web Services API operations</description>
|
||||
<license spdx="GPL-3.0-or-later">GNU General Public License v3</license>
|
||||
</identity>
|
||||
<governance>
|
||||
<platform>mcp-server</platform>
|
||||
<standards-version>04.07.00</standards-version>
|
||||
<standards-source>https://git.mokoconsulting.tech/MokoConsulting/MokoStandards</standards-source>
|
||||
<last-synced>2026-05-07T19:13:00+00:00</last-synced>
|
||||
</governance>
|
||||
<build>
|
||||
<language>TypeScript</language>
|
||||
<package-type>mcp-server</package-type>
|
||||
</build>
|
||||
<deploy>
|
||||
<target name="dev">
|
||||
<host>${{ secrets.DEV_HOST }}</host>
|
||||
<path>${{ secrets.DEV_PATH }}</path>
|
||||
<method>sftp</method>
|
||||
<branch>dev/**</branch>
|
||||
<src-dir>src/</src-dir>
|
||||
</target>
|
||||
<target name="demo">
|
||||
<host>${{ secrets.DEMO_HOST }}</host>
|
||||
<path>${{ secrets.DEMO_PATH }}</path>
|
||||
<method>sftp</method>
|
||||
<branch>main</branch>
|
||||
<src-dir>src/</src-dir>
|
||||
</target>
|
||||
</deploy>
|
||||
<scripts>
|
||||
<script name="lint" phase="lint">
|
||||
<command>make lint</command>
|
||||
<description>Lint via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="validate" phase="validate">
|
||||
<command>make validate</command>
|
||||
<description>Validate via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="test" phase="test">
|
||||
<command>make test</command>
|
||||
<description>Test via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="clean" phase="build">
|
||||
<command>make clean</command>
|
||||
<description>Clean via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="build" phase="build">
|
||||
<command>make build</command>
|
||||
<description>Build via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="package" phase="build">
|
||||
<command>make package</command>
|
||||
<description>Package via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
<script name="release" phase="release">
|
||||
<command>make release</command>
|
||||
<description>Release via make</description>
|
||||
<runner>make</runner>
|
||||
</script>
|
||||
</scripts>
|
||||
</mokostandards>
|
||||
@@ -15,6 +15,10 @@ on:
|
||||
branches: [main]
|
||||
paths: ['src/**', 'package.json', 'tsconfig.json']
|
||||
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -12,6 +12,10 @@ on:
|
||||
- cron: '0 9 * * 1' # Every Monday at 9am UTC
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-sdk:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -13,6 +13,10 @@ on:
|
||||
paths: ['src/index.ts']
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
inventory:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# Enforces branch merge policy:
|
||||
# feature/* → dev only
|
||||
# fix/* → dev only
|
||||
# hotfix/* → dev or main (emergency)
|
||||
# dev → main only
|
||||
# alpha/* → dev only
|
||||
# beta/* → dev only
|
||||
# rc/* → main only
|
||||
|
||||
name: Branch Policy Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened, edited]
|
||||
|
||||
jobs:
|
||||
check-target:
|
||||
name: Verify merge target
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check branch policy
|
||||
run: |
|
||||
HEAD="${{ github.head_ref }}"
|
||||
BASE="${{ github.base_ref }}"
|
||||
|
||||
echo "PR: ${HEAD} → ${BASE}"
|
||||
|
||||
ALLOWED=true
|
||||
REASON=""
|
||||
|
||||
case "$HEAD" in
|
||||
feature/*|feat/*)
|
||||
if [ "$BASE" != "dev" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Feature branches must target 'dev', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
fix/*|bugfix/*)
|
||||
if [ "$BASE" != "dev" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Fix branches must target 'dev', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
hotfix/*)
|
||||
if [ "$BASE" != "dev" ] && [ "$BASE" != "main" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Hotfix branches can only target 'dev' or 'main', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
alpha/*|beta/*)
|
||||
if [ "$BASE" != "dev" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Pre-release branches must target 'dev', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
rc/*)
|
||||
if [ "$BASE" != "main" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Release candidate branches must target 'main', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
dev)
|
||||
if [ "$BASE" != "main" ]; then
|
||||
ALLOWED=false
|
||||
REASON="Dev branch can only merge into 'main', not '${BASE}'"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$ALLOWED" = false ]; then
|
||||
echo "::error::${REASON}"
|
||||
echo ""
|
||||
echo "## Branch Policy Violation" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "${REASON}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Allowed merge paths:" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`feature/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`fix/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`hotfix/*\` → \`dev\` or \`main\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`dev\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`rc/*\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Branch policy: OK (${HEAD} → ${BASE})"
|
||||
echo "## Branch Policy: Passed" >> $GITHUB_STEP_SUMMARY
|
||||
@@ -0,0 +1,41 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code when working with this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
**joomla-api-mcp** -- MCP server for Joomla Web Services API operations
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| **Platform** | mcp-server |
|
||||
| **Language** | TypeScript |
|
||||
| **Default branch** | main |
|
||||
| **License** | GPL-3.0-or-later |
|
||||
| **Wiki** | [joomla-api-mcp Wiki](https://git.mokoconsulting.tech/MokoConsulting/joomla-api-mcp/wiki) |
|
||||
| **Standards** | [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home) |
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
npm install # Install dependencies
|
||||
npm run build # Compile TypeScript
|
||||
npm run dev # Development mode
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
This is an MCP (Model Context Protocol) server. Key files:
|
||||
- `src/index.ts` -- server entry point and tool registration
|
||||
- `src/config.ts` -- configuration loading
|
||||
- `src/tools/` -- individual tool implementations
|
||||
- `dist/` -- compiled output (gitignored)
|
||||
|
||||
## Rules
|
||||
|
||||
- **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
|
||||
- **Standards**: this repo follows [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home)
|
||||
-142
@@ -1,142 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) 2026 [Organization Name] <contact@example.com>
|
||||
|
||||
This file is part of [Project Name].
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
# [Project Name] Roadmap
|
||||
|
||||
## Scope and Intent
|
||||
|
||||
This document defines the roadmap for [Project Name] starting with version **[X.Y.Z]**. It establishes the sequencing, intent, and maturity expectations for deliverables governed by this project.
|
||||
|
||||
This roadmap is forward-looking by design. Completed work prior to the current baseline version is considered foundational and is intentionally excluded. This file tracks **current and future-state development only**.
|
||||
|
||||
## Version [X.Y.Z] — [Phase Name] ✅ COMPLETED / 🔄 IN PROGRESS / 📋 PLANNED
|
||||
|
||||
Focus: [Brief description of this version's primary focus]
|
||||
|
||||
### Completed Deliverables
|
||||
|
||||
* ✅ **[Category Name]**
|
||||
* ✅ [Specific deliverable or feature]
|
||||
* ✅ [Specific deliverable or feature]
|
||||
* ✅ **[Category Name]**
|
||||
* ✅ [Specific deliverable or feature]
|
||||
|
||||
### In Progress
|
||||
|
||||
* 🔄 [Item currently being worked on]
|
||||
* 🔄 [Item currently being worked on]
|
||||
|
||||
### Planned Deliverables
|
||||
|
||||
* [Future planned item]
|
||||
* [Future planned item]
|
||||
|
||||
### Achieved Outcomes
|
||||
|
||||
* ✅ [Measurable outcome or benefit]
|
||||
* ✅ [Measurable outcome or benefit]
|
||||
* 🔄 [Partially achieved outcome]
|
||||
|
||||
## Version [X.Y+1.Z] — [Next Phase Name]
|
||||
|
||||
Focus: [Brief description of next version's primary focus]
|
||||
|
||||
### In-Scope Deliverables
|
||||
|
||||
* [Deliverable for next version]
|
||||
* [Deliverable for next version]
|
||||
|
||||
### Outcomes
|
||||
|
||||
* [Expected outcome or benefit]
|
||||
* [Expected outcome or benefit]
|
||||
|
||||
## Version [X.Y+2.Z] — [Future Phase Name]
|
||||
|
||||
Focus: [Brief description of future version's primary focus]
|
||||
|
||||
### Planned Deliverables
|
||||
|
||||
* [Future deliverable]
|
||||
* [Future deliverable]
|
||||
|
||||
### Outcomes
|
||||
|
||||
* [Expected outcome]
|
||||
* [Expected outcome]
|
||||
|
||||
## Version [X.Y+3.Z] and Beyond — [Long-term Vision]
|
||||
|
||||
Focus: [Long-term strategic direction]
|
||||
|
||||
### Forward-Looking Initiatives
|
||||
|
||||
* [Strategic initiative]
|
||||
* [Strategic initiative]
|
||||
|
||||
### Outcomes
|
||||
|
||||
* [Long-term goal]
|
||||
* [Long-term goal]
|
||||
|
||||
---
|
||||
|
||||
This roadmap is intentionally conservative and additive. New versions extend prior guarantees without breaking existing contracts.
|
||||
|
||||
## Guidelines for Version Planning
|
||||
|
||||
### Version Numbering
|
||||
|
||||
Use semantic versioning for clarity:
|
||||
- **Major versions** (X.0.0): Breaking changes, major architectural shifts
|
||||
- **Minor versions** (X.Y.0): New features, significant enhancements
|
||||
- **Patch versions** (X.Y.Z): Bug fixes, minor improvements
|
||||
|
||||
### Planning Horizon
|
||||
|
||||
- **Current Version**: Actively being delivered
|
||||
- **Next 2-3 Versions**: Clearly defined with specific deliverables
|
||||
- **Future Versions**: High-level themes and strategic direction
|
||||
|
||||
### Status Indicators
|
||||
|
||||
- ✅ **COMPLETED**: Delivered and validated
|
||||
- 🔄 **IN PROGRESS**: Active development underway
|
||||
- 📋 **PLANNED**: Scheduled but not yet started
|
||||
- ⏸️ **PAUSED**: Temporarily on hold
|
||||
- ❌ **CANCELLED**: No longer pursuing
|
||||
|
||||
## Metadata
|
||||
|
||||
```
|
||||
Owner: [Owner Name/Role]
|
||||
Reviewers: [Reviewer Names/Roles]
|
||||
Status: Active
|
||||
Last Updated: [YYYY-MM-DD]
|
||||
Next Review: [YYYY-MM-DD]
|
||||
```
|
||||
|
||||
## Revision History
|
||||
|
||||
| Date | Version | Author | Notes |
|
||||
| ---------- | -------- | -------------- | ------------------------------- |
|
||||
| YYYY-MM-DD | X.Y.Z | [Author Name] | [Description of changes] |
|
||||
| YYYY-MM-DD | X.Y.Z | [Author Name] | [Description of changes] |
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:recommended",
|
||||
"schedule:weekly",
|
||||
":disableDependencyDashboard"
|
||||
],
|
||||
"labels": ["dependencies"],
|
||||
"automerge": false,
|
||||
"platformAutomerge": false,
|
||||
"rangeStrategy": "bump",
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": ["patch"],
|
||||
"automerge": true
|
||||
},
|
||||
{
|
||||
"matchManagers": ["composer"],
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"matchManagers": ["npm"],
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user