@mokoconsulting/mcp-mokosuite 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +19 -0
- package/.gitattributes +94 -0
- package/.gitmessage +9 -0
- package/.mokogit/ISSUE_TEMPLATE/adr.md +110 -0
- package/.mokogit/ISSUE_TEMPLATE/bug_report.md +48 -0
- package/.mokogit/ISSUE_TEMPLATE/config.yml +18 -0
- package/.mokogit/ISSUE_TEMPLATE/documentation.md +52 -0
- package/.mokogit/ISSUE_TEMPLATE/feature_request.md +51 -0
- package/.mokogit/ISSUE_TEMPLATE/mcp_api_integration.md +48 -0
- package/.mokogit/ISSUE_TEMPLATE/mcp_connection_issue.md +69 -0
- package/.mokogit/ISSUE_TEMPLATE/mcp_tool_request.md +50 -0
- package/.mokogit/ISSUE_TEMPLATE/question.md +82 -0
- package/.mokogit/ISSUE_TEMPLATE/rfc.md +126 -0
- package/.mokogit/ISSUE_TEMPLATE/security.md +51 -0
- package/.mokogit/ISSUE_TEMPLATE/version.md +24 -0
- package/.mokogit/actions/resolve-source-dir/action.yml +108 -0
- package/.mokogit/workflows/auto-assign.yml +76 -0
- package/.mokogit/workflows/auto-bump.yml +78 -0
- package/.mokogit/workflows/auto-dev-issue.yml +207 -0
- package/.mokogit/workflows/auto-release.yml +596 -0
- package/.mokogit/workflows/branch-cleanup.yml +60 -0
- package/.mokogit/workflows/cascade-dev.yml +198 -0
- package/.mokogit/workflows/changelog-validation.yml +101 -0
- package/.mokogit/workflows/ci-generic.yml +203 -0
- package/.mokogit/workflows/ci-issue-reporter.yml +75 -0
- package/.mokogit/workflows/cleanup.yml +87 -0
- package/.mokogit/workflows/gitleaks.yml +94 -0
- package/.mokogit/workflows/issue-branch.yml +81 -0
- package/.mokogit/workflows/notify.yml +73 -0
- package/.mokogit/workflows/npm-build-test.yml +83 -0
- package/.mokogit/workflows/npm-publish.yml +126 -0
- package/.mokogit/workflows/npm-sdk-check.yml +110 -0
- package/.mokogit/workflows/npm-tool-inventory.yml +80 -0
- package/.mokogit/workflows/pr-branch-check.yml +90 -0
- package/.mokogit/workflows/pr-check.yml +565 -0
- package/.mokogit/workflows/pre-release.yml +413 -0
- package/.mokogit/workflows/push-notify.yml +43 -0
- package/.mokogit/workflows/rc-revert.yml +72 -0
- package/.mokogit/workflows/repo-health.yml +700 -0
- package/.mokogit/workflows/repository-cleanup.yml +525 -0
- package/.mokogit/workflows/standards-compliance.yml +2507 -0
- package/.mokogit/workflows/sync-version-on-merge.yml +130 -0
- package/.mokogit/workflows/version-set.yml +131 -0
- package/CHANGELOG.md +18 -0
- package/CLAUDE.md +52 -0
- package/CODE_OF_CONDUCT.md +70 -0
- package/CONTRIBUTING.md +161 -0
- package/LICENSE +696 -0
- package/Makefile +70 -0
- package/README.md +83 -0
- package/SECURITY.md +34 -0
- package/config.example.json +21 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.js +124 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +53 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +181 -0
- package/dist/signing.d.ts +14 -0
- package/dist/signing.js +62 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.js +16 -0
- package/docs/API.md +63 -0
- package/docs/ARCHITECTURE.md +73 -0
- package/docs/INSTALLATION.md +102 -0
- package/docs/index.md +12 -0
- package/package.json +35 -0
- package/src/client.ts +142 -0
- package/src/config.ts +63 -0
- package/src/index.ts +336 -0
- package/src/signing.ts +67 -0
- package/src/types.ts +63 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
2
|
+
#
|
|
3
|
+
# This file is part of a Moko Consulting project.
|
|
4
|
+
#
|
|
5
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
6
|
+
#
|
|
7
|
+
# FILE INFORMATION
|
|
8
|
+
# DEFGROUP: GitHub.Workflow
|
|
9
|
+
# INGROUP: MokoStandards.Automation
|
|
10
|
+
# REPO: https://github.com/mokoconsulting-tech/MokoStandards
|
|
11
|
+
# PATH: /templates/workflows/shared/sync-version-on-merge.yml.template
|
|
12
|
+
# VERSION: 04.06.00
|
|
13
|
+
# BRIEF: Auto-bump patch version on every push to main and propagate to all file headers
|
|
14
|
+
# NOTE: Synced via bulk-repo-sync to .mokogit/workflows/sync-version-on-merge.yml in all governed repos.
|
|
15
|
+
# README.md is the single source of truth for the repository version.
|
|
16
|
+
|
|
17
|
+
name: "Universal: Sync Version on Merge"
|
|
18
|
+
|
|
19
|
+
on:
|
|
20
|
+
push:
|
|
21
|
+
branches:
|
|
22
|
+
- main
|
|
23
|
+
- master
|
|
24
|
+
workflow_dispatch:
|
|
25
|
+
inputs:
|
|
26
|
+
dry_run:
|
|
27
|
+
description: 'Dry run (preview only, no commit)'
|
|
28
|
+
type: boolean
|
|
29
|
+
default: false
|
|
30
|
+
|
|
31
|
+
permissions:
|
|
32
|
+
contents: write
|
|
33
|
+
issues: write
|
|
34
|
+
|
|
35
|
+
env:
|
|
36
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
37
|
+
|
|
38
|
+
jobs:
|
|
39
|
+
sync-version:
|
|
40
|
+
name: Propagate README version
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout repository
|
|
45
|
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
46
|
+
with:
|
|
47
|
+
token: ${{ secrets.GH_TOKEN || github.token }}
|
|
48
|
+
fetch-depth: 0
|
|
49
|
+
|
|
50
|
+
- name: Setup MokoStandards tools
|
|
51
|
+
run: |
|
|
52
|
+
# Use pre-installed mokoplatform on runner host (symlink /opt/mokoplatform -> /opt/moko-platform)
|
|
53
|
+
if [ -d /opt/mokoplatform/api/cli ] && [ -f /opt/mokoplatform/vendor/autoload.php ]; then
|
|
54
|
+
ln -sf /opt/mokoplatform /tmp/mokostandards
|
|
55
|
+
echo "Using pre-installed /opt/mokoplatform"
|
|
56
|
+
elif [ -d /opt/moko-platform/api/cli ]; then
|
|
57
|
+
ln -sf /opt/moko-platform /tmp/mokostandards
|
|
58
|
+
echo "Using pre-installed /opt/moko-platform"
|
|
59
|
+
else
|
|
60
|
+
echo "::warning::MokoStandards tools not found on runner - skipping"
|
|
61
|
+
echo "MOKO_SKIP=true" >> "$GITHUB_ENV"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
- name: Auto-bump patch version
|
|
65
|
+
if: ${{ github.event_name == 'push' && github.actor != 'github-actions[bot]' }}
|
|
66
|
+
run: |
|
|
67
|
+
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -q '^README\.md$'; then
|
|
68
|
+
echo "README.md changed in this push — skipping auto-bump"
|
|
69
|
+
exit 0
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
RESULT=$(php /tmp/mokostandards/api/cli/version_bump.php --path .) || {
|
|
73
|
+
echo "⚠️ Could not bump version — skipping"
|
|
74
|
+
exit 0
|
|
75
|
+
}
|
|
76
|
+
echo "Auto-bumping patch: $RESULT"
|
|
77
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
78
|
+
git config --local user.name "github-actions[bot]"
|
|
79
|
+
git add README.md
|
|
80
|
+
git commit -m "chore(version): auto-bump patch ${RESULT} [skip ci]" \
|
|
81
|
+
--author="github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
|
|
82
|
+
git push
|
|
83
|
+
|
|
84
|
+
- name: Extract version from README.md
|
|
85
|
+
id: readme_version
|
|
86
|
+
run: |
|
|
87
|
+
git pull --ff-only 2>/dev/null || true
|
|
88
|
+
VERSION=$(php /tmp/mokostandards/api/cli/version_read.php --path . 2>/dev/null)
|
|
89
|
+
if [ -z "$VERSION" ]; then
|
|
90
|
+
echo "⚠️ No VERSION in README.md — skipping propagation"
|
|
91
|
+
echo "skip=true" >> $GITHUB_OUTPUT
|
|
92
|
+
exit 0
|
|
93
|
+
fi
|
|
94
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
95
|
+
echo "skip=false" >> $GITHUB_OUTPUT
|
|
96
|
+
echo "✅ README.md version: $VERSION"
|
|
97
|
+
|
|
98
|
+
- name: Run version sync
|
|
99
|
+
if: ${{ steps.readme_version.outputs.skip != 'true' && inputs.dry_run != true }}
|
|
100
|
+
run: |
|
|
101
|
+
php /tmp/mokostandards/api/maintenance/update_version_from_readme.php \
|
|
102
|
+
--path . \
|
|
103
|
+
--create-issue \
|
|
104
|
+
--repo "${{ github.repository }}"
|
|
105
|
+
env:
|
|
106
|
+
GH_TOKEN: ${{ secrets.GH_TOKEN || github.token }}
|
|
107
|
+
|
|
108
|
+
- name: Commit updated files
|
|
109
|
+
if: ${{ steps.readme_version.outputs.skip != 'true' && inputs.dry_run != true }}
|
|
110
|
+
run: |
|
|
111
|
+
git pull --ff-only 2>/dev/null || true
|
|
112
|
+
if git diff --quiet; then
|
|
113
|
+
echo "ℹ️ No version changes needed — already up to date"
|
|
114
|
+
exit 0
|
|
115
|
+
fi
|
|
116
|
+
VERSION="${{ steps.readme_version.outputs.version }}"
|
|
117
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
118
|
+
git config --local user.name "github-actions[bot]"
|
|
119
|
+
git add -A
|
|
120
|
+
git commit -m "chore(version): sync badges and headers to ${VERSION} [skip ci]" \
|
|
121
|
+
--author="github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
|
|
122
|
+
git push
|
|
123
|
+
|
|
124
|
+
- name: Summary
|
|
125
|
+
run: |
|
|
126
|
+
VERSION="${{ steps.readme_version.outputs.version }}"
|
|
127
|
+
echo "## 📦 Version Sync — ${VERSION}" >> $GITHUB_STEP_SUMMARY
|
|
128
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
129
|
+
echo "**Source:** \`README.md\` FILE INFORMATION block" >> $GITHUB_STEP_SUMMARY
|
|
130
|
+
echo "**Version:** \`${VERSION}\`" >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
|
+
#
|
|
5
|
+
# FILE INFORMATION
|
|
6
|
+
# DEFGROUP: MokoGIT.Workflow.Template
|
|
7
|
+
# INGROUP: MokoCLI.CI
|
|
8
|
+
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Joomla
|
|
9
|
+
# PATH: /.mokogit/workflows/version-set.yml
|
|
10
|
+
# VERSION: 01.00.00
|
|
11
|
+
# BRIEF: Set or reset the extension version across all version-bearing files
|
|
12
|
+
|
|
13
|
+
name: "Joomla: Set Version"
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
workflow_dispatch:
|
|
17
|
+
inputs:
|
|
18
|
+
version:
|
|
19
|
+
description: "Version number (e.g. 01.00.00)"
|
|
20
|
+
required: true
|
|
21
|
+
type: string
|
|
22
|
+
branch:
|
|
23
|
+
description: "Branch to update (default: current)"
|
|
24
|
+
required: false
|
|
25
|
+
type: string
|
|
26
|
+
|
|
27
|
+
permissions:
|
|
28
|
+
contents: write
|
|
29
|
+
|
|
30
|
+
env:
|
|
31
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
32
|
+
|
|
33
|
+
jobs:
|
|
34
|
+
set-version:
|
|
35
|
+
name: Set Version to ${{ inputs.version }}
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
if: ${{ !startsWith(github.event.repository.name, 'Template-') }}
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Validate version format
|
|
41
|
+
run: |
|
|
42
|
+
VERSION="${{ inputs.version }}"
|
|
43
|
+
if ! echo "$VERSION" | grep -qP '^\d{2}\.\d{2}\.\d{2}$'; then
|
|
44
|
+
echo "::error::Invalid version format '${VERSION}' — expected XX.YY.ZZ (e.g. 01.00.00)"
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
|
|
48
|
+
|
|
49
|
+
- name: Checkout
|
|
50
|
+
uses: actions/checkout@v4
|
|
51
|
+
with:
|
|
52
|
+
token: ${{ secrets.MOKOGIT_TOKEN || github.token }}
|
|
53
|
+
ref: ${{ inputs.branch || github.ref }}
|
|
54
|
+
fetch-depth: 1
|
|
55
|
+
|
|
56
|
+
- name: Update manifest version
|
|
57
|
+
run: |
|
|
58
|
+
MANIFEST=""
|
|
59
|
+
for XML_FILE in $(find . -maxdepth 3 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do
|
|
60
|
+
if grep -q "<extension" "$XML_FILE" 2>/dev/null; then
|
|
61
|
+
MANIFEST="$XML_FILE"
|
|
62
|
+
break
|
|
63
|
+
fi
|
|
64
|
+
done
|
|
65
|
+
|
|
66
|
+
if [ -z "$MANIFEST" ]; then
|
|
67
|
+
echo "::warning::No Joomla extension manifest found — skipping manifest update"
|
|
68
|
+
else
|
|
69
|
+
OLD_VER=$(grep -oP '<version>\K[^<]+' "$MANIFEST" | head -1)
|
|
70
|
+
sed -i "s|<version>${OLD_VER}</version>|<version>${VERSION}</version>|" "$MANIFEST"
|
|
71
|
+
echo "Manifest: ${OLD_VER} → ${VERSION} (${MANIFEST})"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
- name: Update README.md version
|
|
75
|
+
run: |
|
|
76
|
+
if [ -f "README.md" ]; then
|
|
77
|
+
if grep -qP '^\s*VERSION:\s*\d' README.md; then
|
|
78
|
+
sed -i -E "s/(VERSION:\s*)[0-9]{2}\.[0-9]{2}\.[0-9]{2}/\1${VERSION}/" README.md
|
|
79
|
+
echo "README.md version updated to ${VERSION}"
|
|
80
|
+
else
|
|
81
|
+
echo "::warning::No VERSION line found in README.md — skipping"
|
|
82
|
+
fi
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
- name: Update CHANGELOG.md
|
|
86
|
+
run: |
|
|
87
|
+
if [ -f "CHANGELOG.md" ]; then
|
|
88
|
+
DATE=$(date +%Y-%m-%d)
|
|
89
|
+
# Check if this version already has an entry
|
|
90
|
+
if grep -q "^\#\# \[${VERSION}\]" CHANGELOG.md; then
|
|
91
|
+
echo "CHANGELOG.md already has entry for ${VERSION} — skipping"
|
|
92
|
+
else
|
|
93
|
+
# Insert new version entry after [Unreleased] or at the top after header
|
|
94
|
+
if grep -q '^\#\# \[Unreleased\]' CHANGELOG.md; then
|
|
95
|
+
sed -i "/^\#\# \[Unreleased\]/a\\\\n## [${VERSION}] --- ${DATE}" CHANGELOG.md
|
|
96
|
+
else
|
|
97
|
+
sed -i "/^\# Changelog/a\\\\n## [Unreleased]\n\n## [${VERSION}] --- ${DATE}" CHANGELOG.md
|
|
98
|
+
fi
|
|
99
|
+
echo "CHANGELOG.md: added entry for ${VERSION}"
|
|
100
|
+
fi
|
|
101
|
+
else
|
|
102
|
+
echo "::warning::No CHANGELOG.md found — skipping"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
- name: Update FILE INFORMATION blocks
|
|
106
|
+
run: |
|
|
107
|
+
# Update VERSION in file header blocks (# VERSION: XX.YY.ZZ)
|
|
108
|
+
find . -maxdepth 1 -type f \( -name "*.yml" -o -name "*.yaml" -o -name "*.php" -o -name "*.md" \) \
|
|
109
|
+
-not -path "./.git/*" -not -path "./vendor/*" -print0 2>/dev/null | \
|
|
110
|
+
while IFS= read -r -d '' FILE; do
|
|
111
|
+
if head -20 "$FILE" | grep -qP '^\s*#?\s*VERSION:\s*\d{2}\.\d{2}\.\d{2}'; then
|
|
112
|
+
sed -i -E "s/(#?\s*VERSION:\s*)[0-9]{2}\.[0-9]{2}\.[0-9]{2}/\1${VERSION}/" "$FILE"
|
|
113
|
+
echo "Updated FILE INFORMATION VERSION in ${FILE}"
|
|
114
|
+
fi
|
|
115
|
+
done
|
|
116
|
+
|
|
117
|
+
- name: Commit and push
|
|
118
|
+
run: |
|
|
119
|
+
git config user.name "Moko Consulting [bot]"
|
|
120
|
+
git config user.email "hello@mokoconsulting.tech"
|
|
121
|
+
git add -A
|
|
122
|
+
if git diff --cached --quiet; then
|
|
123
|
+
echo "No version changes detected — nothing to commit"
|
|
124
|
+
else
|
|
125
|
+
git commit -m "chore: set version to ${VERSION} [skip bump]
|
|
126
|
+
|
|
127
|
+
Authored-by: Moko Consulting"
|
|
128
|
+
git push
|
|
129
|
+
echo "### Version Set" >> $GITHUB_STEP_SUMMARY
|
|
130
|
+
echo "Version updated to \`${VERSION}\` on branch \`${GITHUB_REF_NAME}\`" >> $GITHUB_STEP_SUMMARY
|
|
131
|
+
fi
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Branding: Git -> MokoGIT in workflow DEFGROUP tags, committer identity (git-actions[bot] -> mokogit-actions[bot]), and platform prose. Functional tokens (GIT_TOKEN/GITHUB_TOKEN, GIT_ACTIONS_*, vars.GITEA_*, git.mokoconsulting.tech) preserved.
|
|
7
|
+
|
|
8
|
+
### Removed
|
|
9
|
+
- CI: stripped GitHub-only workflows (DEFGROUP GitHub.Workflow), which do not run on MokoGIT Actions: auto-dev-issue.yml changelog-validation.yml standards-compliance.yml sync-version-on-merge.yml.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Migrated all workflow and template paths from `.github/` to `.mokogit/`
|
|
13
|
+
- Template source paths updated: `templates/git/` to `templates/mokogit/`
|
|
14
|
+
- HCL definition files removed -- Template repos are now the canonical source
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- CI: gate build/CI/release/version workflows so they skip template repos; smart-gate the sync workflows to run only on Template-* repos; normalize mokocli/MokoCLI refs and drop the stale mokoconsulting-tech org slug.
|
|
18
|
+
- `branch-cleanup.yml`: auto-delete merged feature branches after PR merge
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code when working with this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
**Template-MCP** -- Template repository for creating MokoStandards-compliant MCP API servers
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| **Platform** | mcp-server |
|
|
12
|
+
| **Language** | TypeScript |
|
|
13
|
+
| **Default branch** | main |
|
|
14
|
+
| **License** | GPL-3.0-or-later |
|
|
15
|
+
| **Wiki** | [Template-MCP Wiki](https://git.mokoconsulting.tech/MokoConsulting/Template-MCP/wiki) |
|
|
16
|
+
| **Standards** | [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoCLI/wiki/Home) |
|
|
17
|
+
|
|
18
|
+
## Common Commands
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
make build # Build the project
|
|
22
|
+
make lint # Run linters
|
|
23
|
+
make validate # Validate structure
|
|
24
|
+
make release # Full release pipeline
|
|
25
|
+
make minify # Minify CSS/JS assets
|
|
26
|
+
make clean # Clean build artifacts
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install # Install dependencies
|
|
31
|
+
npm run build # Compile TypeScript
|
|
32
|
+
npm run dev # Development mode
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Architecture
|
|
36
|
+
|
|
37
|
+
This is an MCP (Model Context Protocol) server. Key files:
|
|
38
|
+
- `src/index.ts` -- server entry point and tool registration
|
|
39
|
+
- `src/config.ts` -- configuration loading
|
|
40
|
+
- `src/tools/` -- individual tool implementations
|
|
41
|
+
- `dist/` -- compiled output (gitignored)
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
|
46
|
+
|
|
47
|
+
- **Never commit** `.claude/`, `.gemini/`, `.mcp.json`, `TODO.md`, or `*.min.css`/`*.min.js`
|
|
48
|
+
- **Attribution**: use `Authored-by: Moko Consulting` in commits
|
|
49
|
+
- **Branch strategy**: develop on `dev`, merge to `main` for release
|
|
50
|
+
- **Minification**: handled at build time (CI) and runtime (MokoMinifyHelper for Joomla templates)
|
|
51
|
+
- **Wiki**: documentation lives in the MokoGIT wiki, not in `docs/` files
|
|
52
|
+
- **Standards**: this repo follows [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoCLI/wiki/Home)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
2
|
+
|
|
3
|
+
This file is part of a Moko Consulting project.
|
|
4
|
+
|
|
5
|
+
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
6
|
+
|
|
7
|
+
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.
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
You should have received a copy of the GNU General Public License (./LICENSE).
|
|
12
|
+
|
|
13
|
+
# FILE INFORMATION
|
|
14
|
+
DEFGROUP:
|
|
15
|
+
INGROUP: Project.Documentation
|
|
16
|
+
REPO: MokoConsulting/Template-MCP
|
|
17
|
+
VERSION: 00.00.01
|
|
18
|
+
PATH: ./CODE_OF_CONDUCT.md
|
|
19
|
+
BRIEF: Contributor Covenant Code of Conduct version 1.3.0
|
|
20
|
+
-->
|
|
21
|
+
|
|
22
|
+
# Contributor Covenant Code of Conduct
|
|
23
|
+
|
|
24
|
+
## Our Pledge
|
|
25
|
+
|
|
26
|
+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
27
|
+
|
|
28
|
+
## Our Standards
|
|
29
|
+
|
|
30
|
+
Examples of behavior that contributes to creating a positive environment include:
|
|
31
|
+
|
|
32
|
+
* Using welcoming and inclusive language
|
|
33
|
+
* Being respectful of differing viewpoints and experiences
|
|
34
|
+
* Gracefully accepting constructive criticism
|
|
35
|
+
* Focusing on what is best for the community
|
|
36
|
+
* Showing empathy towards other community members
|
|
37
|
+
|
|
38
|
+
Examples of unacceptable behavior by participants include:
|
|
39
|
+
|
|
40
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
|
41
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
42
|
+
* Public or private harassment
|
|
43
|
+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
|
44
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
45
|
+
|
|
46
|
+
## Our Responsibilities
|
|
47
|
+
|
|
48
|
+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
|
49
|
+
|
|
50
|
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
|
51
|
+
|
|
52
|
+
## Scope
|
|
53
|
+
|
|
54
|
+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
|
55
|
+
|
|
56
|
+
## Enforcement
|
|
57
|
+
|
|
58
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@mokoconsulting.tech. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
59
|
+
|
|
60
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
|
61
|
+
|
|
62
|
+
## Attribution
|
|
63
|
+
|
|
64
|
+
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.3.0, available at [http://contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/)
|
|
65
|
+
|
|
66
|
+
## Revision History
|
|
67
|
+
|
|
68
|
+
| Date | Version | Author | Notes |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| 2026-01-16 | 1.3.0 | Copilot | Contributor Covenant v1.3.0 |
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
2
|
+
|
|
3
|
+
This file is part of a Moko Consulting project.
|
|
4
|
+
|
|
5
|
+
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
6
|
+
|
|
7
|
+
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.
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
You should have received a copy of the GNU General Public License (./LICENSE).
|
|
12
|
+
|
|
13
|
+
# FILE INFORMATION
|
|
14
|
+
DEFGROUP:
|
|
15
|
+
INGROUP: Project.Documentation
|
|
16
|
+
REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-MCP
|
|
17
|
+
VERSION: 00.00.01
|
|
18
|
+
PATH: ./CONTRIBUTING.md
|
|
19
|
+
BRIEF: Contribution guidelines for the project
|
|
20
|
+
-->
|
|
21
|
+
|
|
22
|
+
# Contributing to Template-MCP
|
|
23
|
+
|
|
24
|
+
We appreciate your interest in contributing to this project! This document provides guidelines for contributing.
|
|
25
|
+
|
|
26
|
+
## Table of Contents
|
|
27
|
+
|
|
28
|
+
- [Code of Conduct](#code-of-conduct)
|
|
29
|
+
- [Getting Started](#getting-started)
|
|
30
|
+
- [How to Contribute](#how-to-contribute)
|
|
31
|
+
- [Development Workflow](#development-workflow)
|
|
32
|
+
- [Commit Messages](#commit-messages)
|
|
33
|
+
- [Pull Request Process](#pull-request-process)
|
|
34
|
+
|
|
35
|
+
## Code of Conduct
|
|
36
|
+
|
|
37
|
+
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to hello@mokoconsulting.tech.
|
|
38
|
+
|
|
39
|
+
## Getting Started
|
|
40
|
+
|
|
41
|
+
1. Fork the repository
|
|
42
|
+
2. Clone your fork locally
|
|
43
|
+
3. Set up the development environment
|
|
44
|
+
4. Create a new branch for your work
|
|
45
|
+
|
|
46
|
+
## How to Contribute
|
|
47
|
+
|
|
48
|
+
### Reporting Bugs
|
|
49
|
+
|
|
50
|
+
- Use the GitHub issue tracker
|
|
51
|
+
- Describe the bug clearly with steps to reproduce
|
|
52
|
+
- Include relevant logs, screenshots, or error messages
|
|
53
|
+
- Specify your environment (OS, version, etc.)
|
|
54
|
+
|
|
55
|
+
### Suggesting Enhancements
|
|
56
|
+
|
|
57
|
+
- Use the GitHub issue tracker
|
|
58
|
+
- Clearly describe the enhancement and its benefits
|
|
59
|
+
- Provide examples of how it would work
|
|
60
|
+
|
|
61
|
+
### Contributing Code
|
|
62
|
+
|
|
63
|
+
- Pick an issue or create one
|
|
64
|
+
- Fork the repository and create a branch
|
|
65
|
+
- Make your changes following the project conventions
|
|
66
|
+
- Write or update tests as needed
|
|
67
|
+
- Submit a pull request
|
|
68
|
+
|
|
69
|
+
## Development Workflow
|
|
70
|
+
|
|
71
|
+
1. Ensure your fork is up to date with the main repository
|
|
72
|
+
2. Create a feature branch from `main`
|
|
73
|
+
3. Make your changes
|
|
74
|
+
4. Test your changes thoroughly
|
|
75
|
+
5. Commit your changes with clear messages
|
|
76
|
+
6. Push to your fork
|
|
77
|
+
7. Create a pull request
|
|
78
|
+
|
|
79
|
+
## Commit Messages
|
|
80
|
+
|
|
81
|
+
Follow the conventional commit format:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
<type>(<scope>): <subject>
|
|
85
|
+
|
|
86
|
+
<body>
|
|
87
|
+
|
|
88
|
+
<footer>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `ci`, `build`, `perf`, `revert`
|
|
92
|
+
|
|
93
|
+
Example:
|
|
94
|
+
```
|
|
95
|
+
feat(docs): add contributing guidelines
|
|
96
|
+
|
|
97
|
+
Add comprehensive contributing guidelines to help new contributors
|
|
98
|
+
understand the development workflow and coding standards.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Pull Request Process
|
|
102
|
+
|
|
103
|
+
1. Update documentation for any new features
|
|
104
|
+
2. Follow the project's coding style and conventions
|
|
105
|
+
3. Ensure all tests pass
|
|
106
|
+
4. Update the CHANGELOG.md with your changes
|
|
107
|
+
5. Request review from maintainers
|
|
108
|
+
6. Address any feedback promptly
|
|
109
|
+
7. Once approved, your PR will be merged
|
|
110
|
+
|
|
111
|
+
## Style Guidelines
|
|
112
|
+
|
|
113
|
+
- Follow the `.editorconfig` settings
|
|
114
|
+
- Use tabs for indentation (width: 2 spaces)
|
|
115
|
+
- Ensure files end with a newline
|
|
116
|
+
- Use LF line endings (except for Windows-specific files)
|
|
117
|
+
- Trim trailing whitespace (except in Markdown)
|
|
118
|
+
|
|
119
|
+
## Questions?
|
|
120
|
+
|
|
121
|
+
If you have questions about contributing, feel free to open an issue or contact the maintainers.
|
|
122
|
+
|
|
123
|
+
## Revision History
|
|
124
|
+
|
|
125
|
+
| Date | Version | Author | Notes |
|
|
126
|
+
| --- | --- | --- | --- |
|
|
127
|
+
| 2026-01-16 | 0.1.0 | Copilot | Initial contributing guidelines |
|
|
128
|
+
|
|
129
|
+
## Infrastructure Standards
|
|
130
|
+
|
|
131
|
+
All repositories in the MokoConsulting org follow these conventions:
|
|
132
|
+
|
|
133
|
+
### Release Tags
|
|
134
|
+
|
|
135
|
+
Every repo maintains 5 standard release channel tags:
|
|
136
|
+
|
|
137
|
+
- `development` - Active development builds
|
|
138
|
+
- `alpha` - Early internal testing
|
|
139
|
+
- `beta` - Broader testing / client UAT
|
|
140
|
+
- `release-candidate` - Final QA before production
|
|
141
|
+
- `stable` - Production release
|
|
142
|
+
|
|
143
|
+
### Branch Protection
|
|
144
|
+
|
|
145
|
+
- `main` is protected; only `jmiller` can push directly
|
|
146
|
+
- All other contributors must use pull requests
|
|
147
|
+
- PRs are automatically reviewed by Claude Code
|
|
148
|
+
|
|
149
|
+
### CI/CD
|
|
150
|
+
|
|
151
|
+
- MokoGIT Actions runs all CI workflows
|
|
152
|
+
- GitHub Actions are disabled on mirrored repos
|
|
153
|
+
- Workflows live in both `.github/workflows/` and `.gitea/workflows/`
|
|
154
|
+
|
|
155
|
+
### Update Servers (Joomla)
|
|
156
|
+
|
|
157
|
+
In manifest `<updateservers>`, MokoGIT must be priority 1, GitHub priority 2.
|
|
158
|
+
|
|
159
|
+
### Secrets
|
|
160
|
+
|
|
161
|
+
All repos have `GA_TOKEN` and `GH_TOKEN` as Actions secrets for API access.
|