PureXML/docs/rules/README.md

1.7 KiB

PureXML Rules

Load these rules before changing code:

  • code-style.md
  • namespacing.md
  • cross-platform.md
  • testing.md
  • verification.md
  • commits.md
  • research-first.md

Project-specific overrides:

  • PureXML uses a root Package.swift.
  • Sources live directly under Sources.
  • Tests live in Tests (test target PureXMLTests).
  • Package.swift must keep dependencies: [].
  • Public API must live under the PureXML namespace tree.
  • The package must build on macOS, Linux, Windows, and WASI.
  • Validation coverage gates: docs/validation-coverage-registry.txt (public types), docs/validation-field-registry.txt (document/subject fields), enforced by scripts/check-validation-coverage.sh and scripts/check-validation-fields.sh.

The broader rule files are retained for detailed guidance. When they include generic examples, apply the PureXML-specific overrides above.

Canonical Swift rules are vendored at docs/rules/rules-swift/ and mirrored from /Volumes/Code/DeveloperExt/public/rules-swift (especially validation-rules.md, parsing-rules.md, and the core/ spine). Prefer that vendored source when root docs/rules/ copies are missing or have drifted, but do not let its generic Tiledown examples weaken PureXML's root-package, dependency-free, Windows, and WASI requirements. PureXML's committed .swiftlint.yml and .swiftformat are the coherent project tuning of that canon: they adopt its opt-in rule set and shared formatter directives, keep stricter safety (force_unwrapping/force_try/force_cast = error), and resolve the canon's --commas always vs default-trailing_comma mismatch by mandating trailing commas in both tools.