chore: sync workflows, scripts, and configurations from MokoStandards

This commit is contained in:
Moko Standards Bot
2026-01-30 02:15:07 +00:00
parent 2436054ae6
commit 0f2c0c1166
16 changed files with 5064 additions and 28 deletions

View File

@@ -0,0 +1,595 @@
<?xml version="1.0" encoding="UTF-8"?>
<repository-structure xmlns="http://mokoconsulting.com/schemas/repository-structure"
version="1.0"
schema-version="1.0">
<metadata>
<name>Default Repository Structure</name>
<description>Default repository structure applicable to all repository types with minimal requirements</description>
<repository-type>library</repository-type>
<platform>multi-platform</platform>
<last-updated>2026-01-16T00:00:00Z</last-updated>
<maintainer>Moko Consulting</maintainer>
</metadata>
<structure>
<!-- Root level files -->
<root-files>
<file extension="md">
<name>README.md</name>
<description>Project overview and documentation</description>
<requirement-status>required</requirement-status>
<audience>general</audience>
<source>
<path>templates/docs/required</path>
<filename>template-README.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>README.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/required/template-README.md</template>
</file>
<file extension="">
<name>LICENSE</name>
<description>License file (GPL-3.0-or-later)</description>
<requirement-status>required</requirement-status>
<audience>general</audience>
<source>
<path>templates/licenses</path>
<filename>GPL-3.0</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>LICENSE</filename>
<create-path>false</create-path>
</destination>
<template>templates/licenses/GPL-3.0</template>
</file>
<file extension="md">
<name>CHANGELOG.md</name>
<description>Version history and changes</description>
<requirement-status>required</requirement-status>
<audience>general</audience>
<source>
<path>templates/docs/required</path>
<filename>template-CHANGELOG.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>CHANGELOG.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/required/template-CHANGELOG.md</template>
</file>
<file extension="md">
<name>CONTRIBUTING.md</name>
<description>Contribution guidelines</description>
<requirement-status>required</requirement-status>
<audience>contributor</audience>
<source>
<path>templates/docs/required</path>
<filename>template-CONTRIBUTING.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>CONTRIBUTING.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/required/template-CONTRIBUTING.md</template>
</file>
<file extension="md">
<name>SECURITY.md</name>
<description>Security policy and vulnerability reporting</description>
<requirement-status>required</requirement-status>
<audience>general</audience>
<source>
<path>templates/docs/required</path>
<filename>template-SECURITY.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>SECURITY.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/required/template-SECURITY.md</template>
</file>
<file extension="md">
<name>CODE_OF_CONDUCT.md</name>
<description>Community code of conduct</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<audience>contributor</audience>
<source>
<path>templates/docs/extra</path>
<filename>template-CODE_OF_CONDUCT.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>CODE_OF_CONDUCT.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/extra/template-CODE_OF_CONDUCT.md</template>
</file>
<file extension="md">
<name>ROADMAP.md</name>
<description>Project roadmap with version goals and milestones</description>
<requirement-status>suggested</requirement-status>
<audience>general</audience>
<source>
<path>templates/docs/extra</path>
<filename>template-ROADMAP.md</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>ROADMAP.md</filename>
<create-path>false</create-path>
</destination>
<template>templates/docs/extra/template-ROADMAP.md</template>
</file>
<file extension="gitignore">
<name>.gitignore</name>
<description>Git ignore patterns</description>
<requirement-status>required</requirement-status>
<always-overwrite>false</always-overwrite>
<audience>developer</audience>
</file>
<file extension="gitattributes">
<name>.gitattributes</name>
<description>Git attributes configuration</description>
<requirement-status>required</requirement-status>
<audience>developer</audience>
</file>
<file extension="editorconfig">
<name>.editorconfig</name>
<description>Editor configuration for consistent coding style</description>
<requirement-status>required</requirement-status>
<always-overwrite>false</always-overwrite>
<audience>developer</audience>
</file>
<file>
<name>Makefile</name>
<description>Build automation</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<audience>developer</audience>
<source>
<path>templates/makefiles</path>
<filename>Makefile.generic.template</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>Makefile</filename>
<create-path>false</create-path>
</destination>
<template>templates/makefiles/Makefile.generic.template</template>
</file>
</root-files>
<!-- Directory structure -->
<directories>
<!-- Documentation directory -->
<directory path="docs">
<name>docs</name>
<description>Documentation directory</description>
<requirement-status>required</requirement-status>
<purpose>Contains comprehensive project documentation</purpose>
<files>
<file extension="md">
<name>index.md</name>
<description>Documentation index</description>
<requirement-status>suggested</requirement-status>
<template>templates/docs/index.md</template>
</file>
<file extension="md">
<name>INSTALLATION.md</name>
<description>Installation and setup instructions</description>
<requirement-status>required</requirement-status>
<audience>general</audience>
<source>
<path>templates/docs/required</path>
<filename>template-INSTALLATION.md</filename>
<type>template</type>
</source>
<destination>
<path>docs</path>
<filename>INSTALLATION.md</filename>
<create-path>true</create-path>
</destination>
<template>templates/docs/required/template-INSTALLATION.md</template>
</file>
<file extension="md">
<name>API.md</name>
<description>API documentation</description>
<requirement-status>suggested</requirement-status>
</file>
<file extension="md">
<name>ARCHITECTURE.md</name>
<description>Architecture documentation</description>
<requirement-status>suggested</requirement-status>
</file>
</files>
</directory>
<!-- Scripts directory -->
<directory path="scripts">
<name>scripts</name>
<description>Build and automation scripts</description>
<requirement-status>required</requirement-status>
<purpose>Contains scripts for building, testing, and deploying</purpose>
<files>
<file extension="sh">
<name>validate_structure.sh</name>
<description>Repository structure validation script</description>
<requirement-status>suggested</requirement-status>
<template>templates/scripts/validate/structure.sh</template>
</file>
<file extension="xml">
<name>MokoStandards.override.xml</name>
<description>MokoStandards sync override configuration</description>
<requirement-status>optional</requirement-status>
<always-overwrite>false</always-overwrite>
</file>
</files>
</directory>
<!-- Source directory -->
<directory path="src">
<name>src</name>
<description>Source code directory</description>
<requirement-status>required</requirement-status>
<purpose>Contains application source code</purpose>
</directory>
<!-- Tests directory -->
<directory path="tests">
<name>tests</name>
<description>Test files</description>
<requirement-status>suggested</requirement-status>
<purpose>Contains unit tests, integration tests, and test fixtures</purpose>
<subdirectories>
<directory path="tests/unit">
<name>unit</name>
<description>Unit tests</description>
<requirement-status>suggested</requirement-status>
</directory>
<directory path="tests/integration">
<name>integration</name>
<description>Integration tests</description>
<requirement-status>optional</requirement-status>
</directory>
</subdirectories>
</directory>
<!-- .github directory -->
<directory path=".github">
<name>.github</name>
<description>GitHub-specific configuration</description>
<requirement-status>required</requirement-status>
<purpose>Contains GitHub Actions workflows, issue templates, etc.</purpose>
<subdirectories>
<directory path=".github/workflows">
<name>workflows</name>
<description>GitHub Actions workflows</description>
<requirement-status>required</requirement-status>
<files>
<file extension="yml">
<name>ci.yml</name>
<description>Continuous integration workflow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>ci.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>ci.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/ci.yml.template</template>
</file>
<file extension="yml">
<name>test.yml</name>
<description>Comprehensive testing workflow</description>
<requirement-status>optional</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>test.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>test.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/test.yml.template</template>
</file>
<file extension="yml">
<name>code-quality.yml</name>
<description>Code quality and linting workflow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>code-quality.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>code-quality.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/code-quality.yml.template</template>
</file>
<file extension="yml">
<name>codeql-analysis.yml</name>
<description>CodeQL security analysis workflow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>codeql-analysis.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>codeql-analysis.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/codeql-analysis.yml.template</template>
</file>
<file extension="yml">
<name>deploy.yml</name>
<description>Deployment workflow</description>
<requirement-status>optional</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>deploy.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>deploy.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/deploy.yml.template</template>
</file>
<file extension="yml">
<name>repo-health.yml</name>
<description>Repository health monitoring</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>templates/workflows/generic</path>
<filename>repo_health.yml.template</filename>
<type>template</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>repo-health.yml</filename>
<create-path>true</create-path>
</destination>
<template>templates/workflows/generic/repo_health.yml.template</template>
</file>
<file extension="yml">
<name>release-cycle.yml</name>
<description>Release management workflow with automated release flow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>.github/workflows</path>
<filename>release-cycle.yml</filename>
<type>copy</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>release-cycle.yml</filename>
<create-path>true</create-path>
</destination>
<template>.github/workflows/release-cycle.yml</template>
</file>
<file extension="yml">
<name>standards-compliance.yml</name>
<description>MokoStandards compliance validation</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<source>
<path>.github/workflows</path>
<filename>standards-compliance.yml</filename>
<type>copy</type>
</source>
<destination>
<path>.github/workflows</path>
<filename>standards-compliance.yml</filename>
<create-path>true</create-path>
</destination>
<template>.github/workflows/standards-compliance.yml</template>
</file>
</files>
</directory>
</subdirectories>
</directory>
<!-- Not-allowed directories (generated/build artifacts) -->
<directory path="node_modules">
<name>node_modules</name>
<description>Node.js dependencies (generated)</description>
<requirement-status>not-allowed</requirement-status>
<purpose>Generated directory that should not be committed</purpose>
</directory>
<directory path="vendor">
<name>vendor</name>
<description>PHP dependencies (generated)</description>
<requirement-status>not-allowed</requirement-status>
<purpose>Generated directory that should not be committed</purpose>
</directory>
<directory path="build">
<name>build</name>
<description>Build artifacts (generated)</description>
<requirement-status>not-allowed</requirement-status>
<purpose>Generated directory that should not be committed</purpose>
</directory>
<directory path="dist">
<name>dist</name>
<description>Distribution files (generated)</description>
<requirement-status>not-allowed</requirement-status>
<purpose>Generated directory that should not be committed</purpose>
</directory>
</directories>
<!-- Repository Requirements -->
<repository-requirements>
<!-- Required Secrets -->
<secrets>
<secret>
<name>GITHUB_TOKEN</name>
<description>GitHub API token (automatically provided)</description>
<required>true</required>
<scope>repository</scope>
<used-in>GitHub Actions workflows</used-in>
</secret>
<secret>
<name>CODECOV_TOKEN</name>
<description>Codecov upload token for code coverage reporting</description>
<required>false</required>
<scope>repository</scope>
<used-in>CI workflow code coverage step</used-in>
</secret>
</secrets>
<!-- Required Variables -->
<variables>
<variable>
<name>NODE_VERSION</name>
<description>Node.js version for CI/CD</description>
<default-value>18</default-value>
<required>false</required>
<scope>repository</scope>
</variable>
<variable>
<name>PYTHON_VERSION</name>
<description>Python version for CI/CD</description>
<default-value>3.9</default-value>
<required>false</required>
<scope>repository</scope>
</variable>
</variables>
<!-- Branch Protections -->
<branch-protections>
<branch-protection>
<branch-pattern>main</branch-pattern>
<require-pull-request>true</require-pull-request>
<required-approvals>1</required-approvals>
<require-code-owner-review>false</require-code-owner-review>
<dismiss-stale-reviews>true</dismiss-stale-reviews>
<require-status-checks>true</require-status-checks>
<required-status-checks>
<check>ci</check>
<check>code-quality</check>
</required-status-checks>
<enforce-admins>false</enforce-admins>
<restrict-pushes>true</restrict-pushes>
</branch-protection>
<branch-protection>
<branch-pattern>master</branch-pattern>
<require-pull-request>true</require-pull-request>
<required-approvals>1</required-approvals>
<require-code-owner-review>false</require-code-owner-review>
<dismiss-stale-reviews>true</dismiss-stale-reviews>
<require-status-checks>true</require-status-checks>
<required-status-checks>
<check>ci</check>
</required-status-checks>
<enforce-admins>false</enforce-admins>
<restrict-pushes>true</restrict-pushes>
</branch-protection>
</branch-protections>
<!-- Repository Settings -->
<repository-settings>
<has-issues>true</has-issues>
<has-projects>true</has-projects>
<has-wiki>false</has-wiki>
<has-discussions>false</has-discussions>
<allow-merge-commit>true</allow-merge-commit>
<allow-squash-merge>true</allow-squash-merge>
<allow-rebase-merge>false</allow-rebase-merge>
<delete-branch-on-merge>true</delete-branch-on-merge>
<allow-auto-merge>false</allow-auto-merge>
</repository-settings>
<!-- Required Labels -->
<labels>
<label>
<name>bug</name>
<color>d73a4a</color>
<description>Something isn't working</description>
</label>
<label>
<name>enhancement</name>
<color>a2eeef</color>
<description>New feature or request</description>
</label>
<label>
<name>documentation</name>
<color>0075ca</color>
<description>Improvements or additions to documentation</description>
</label>
<label>
<name>security</name>
<color>ee0701</color>
<description>Security vulnerability or concern</description>
</label>
</labels>
</repository-requirements>
</structure>
</repository-structure>