39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# 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.
|