feat: manifest-schema.xsd — XSD schema for .mokogitea/manifest.xml
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Platform: moko-platform CI / Gate 5: Template Integrity (push) Blocked by required conditions
Platform: moko-platform CI / CI Summary (push) Blocked by required conditions
Generic: Repo Health / Release configuration (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 47s

Authored-by: Moko Consulting
This commit is contained in:
2026-05-26 19:27:57 +00:00
parent a7df4d49b9
commit f8c28f055b
+125
View File
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
SPDX-License-Identifier: GPL-3.0-or-later
MokoStandards Manifest Schema v1.0
Defines the structure of .mokogitea/manifest.xml
Validate: xmllint - -schema definitions/manifest-schema.xsd .mokogitea/manifest.xml
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:moko="https://standards.mokoconsulting.tech/moko-platform/1.0"
targetNamespace="https://standards.mokoconsulting.tech/moko-platform/1.0"
elementFormDefault="qualified">
<!-- Root element -->
<xs:element name="moko-platform">
<xs:complexType>
<xs:sequence>
<xs:element name="identity" type="moko:identityType"/>
<xs:element name="governance" type="moko:governanceType"/>
<xs:element name="build" type="moko:buildType"/>
<xs:element name="deploy" type="moko:deployType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="schema-version" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- Identity block -->
<xs:complexType name="identityType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="org" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="version" type="moko:versionType"/>
<xs:element name="license" type="moko:licenseType"/>
</xs:sequence>
</xs:complexType>
<!-- Version format: XX.YY.ZZ -->
<xs:simpleType name="versionType">
<xs:restriction base="xs:string">
<xs:pattern value="\d{2}\.\d{2}\.\d{2}"/>
</xs:restriction>
</xs:simpleType>
<!-- License with SPDX attribute -->
<xs:complexType name="licenseType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="spdx" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- Governance block -->
<xs:complexType name="governanceType">
<xs:sequence>
<xs:element name="platform" type="moko:platformType"/>
<xs:element name="standards-version" type="moko:versionType"/>
<xs:element name="standards-source" type="xs:anyURI"/>
<xs:element name="last-synced" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- Allowed platform values -->
<xs:simpleType name="platformType">
<xs:restriction base="xs:string">
<xs:enumeration value="joomla"/>
<xs:enumeration value="dolibarr"/>
<xs:enumeration value="go"/>
<xs:enumeration value="node"/>
<xs:enumeration value="rust"/>
<xs:enumeration value="python"/>
<xs:enumeration value="generic"/>
</xs:restriction>
</xs:simpleType>
<!-- Build block -->
<xs:complexType name="buildType">
<xs:sequence>
<xs:element name="language" type="moko:languageType"/>
<xs:element name="package-type" type="moko:packageType"/>
<xs:element name="entry-point" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<!-- Allowed languages -->
<xs:simpleType name="languageType">
<xs:restriction base="xs:string">
<xs:enumeration value="PHP"/>
<xs:enumeration value="Go"/>
<xs:enumeration value="JavaScript"/>
<xs:enumeration value="TypeScript"/>
<xs:enumeration value="Rust"/>
<xs:enumeration value="Python"/>
<xs:enumeration value="HCL"/>
<xs:enumeration value="Shell"/>
</xs:restriction>
</xs:simpleType>
<!-- Allowed package types -->
<xs:simpleType name="packageType">
<xs:restriction base="xs:string">
<xs:enumeration value="joomla-extension"/>
<xs:enumeration value="dolibarr"/>
<xs:enumeration value="application"/>
<xs:enumeration value="library"/>
<xs:enumeration value="mcp-server"/>
<xs:enumeration value="generic"/>
</xs:restriction>
</xs:simpleType>
<!-- Deploy block (optional) -->
<xs:complexType name="deployType">
<xs:sequence>
<xs:element name="source-dir" type="xs:string" minOccurs="0"/>
<xs:element name="remote-subdir" type="xs:string" minOccurs="0"/>
<xs:element name="excludes" type="xs:string" minOccurs="0"/>
<xs:element name="dev-host" type="xs:string" minOccurs="0"/>
<xs:element name="demo-host" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>