diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ecfdfa..39b944d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,11 +119,11 @@ jobs: # Documentation test -f README.md || test -f README.adoc || (echo "Missing README.md or README.adoc" && exit 1) - test -f CONTRIBUTING.md || (echo "Missing CONTRIBUTING.md" && exit 1) + test -f CONTRIBUTING.adoc || (echo "Missing CONTRIBUTING.adoc" && exit 1) test -f CODE_OF_CONDUCT.md || (echo "Missing CODE_OF_CONDUCT.md" && exit 1) test -f SECURITY.md || (echo "Missing SECURITY.md" && exit 1) test -f MAINTAINERS.adoc || (echo "Missing MAINTAINERS.adoc" && exit 1) - test -f CHANGELOG.md || (echo "Missing CHANGELOG.md" && exit 1) + test -f CHANGELOG.adoc || (echo "Missing CHANGELOG.adoc" && exit 1) test -f CLAUDE.md || (echo "Missing CLAUDE.md" && exit 1) # Licenses diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e53b1d3..cc7b8a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -99,11 +99,11 @@ rsr-compliance: # Documentation test -f ../README.adoc || (echo "Missing README.adoc" && exit 1) - test -f ../CONTRIBUTING.md || (echo "Missing CONTRIBUTING.md" && exit 1) + test -f ../CONTRIBUTING.adoc || (echo "Missing CONTRIBUTING.adoc" && exit 1) test -f ../CODE_OF_CONDUCT.md || (echo "Missing CODE_OF_CONDUCT.md" && exit 1) test -f ../SECURITY.md || (echo "Missing SECURITY.md" && exit 1) test -f ../MAINTAINERS.adoc || (echo "Missing MAINTAINERS.adoc" && exit 1) - test -f ../CHANGELOG.md || (echo "Missing CHANGELOG.md" && exit 1) + test -f ../CHANGELOG.adoc || (echo "Missing CHANGELOG.adoc" && exit 1) # Licenses test -f ../LICENSES/MPL-2.0.txt || (echo "Missing LICENSES/MPL-2.0.txt" && exit 1) diff --git a/.machine_readable/TRUST.contractile b/.machine_readable/TRUST.contractile index d9b5ed2..32a3f60 100644 --- a/.machine_readable/TRUST.contractile +++ b/.machine_readable/TRUST.contractile @@ -20,7 +20,7 @@ ; ; Scope: ; TRUST governs AI agent behaviour only. It does not affect human -; contributors — humans follow CONTRIBUTING.md and GOVERNANCE.adoc. +; contributors — humans follow CONTRIBUTING.adoc and GOVERNANCE.adoc. ; ; Relationship to other contractiles: ; - MUST: Trust never overrides MUST. Even at maximal trust, MUST diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index c1dd36a..8d5e431 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -63,7 +63,7 @@ Policy enforcement contracts (k9, dust, lust, must, trust). - `MAINTAINERS` - Machine-readable contact list - `SUPPORT` - Support channels - `SECURITY.md` - Technical security policy -- `CONTRIBUTING.md` - Technical contribution manual +- `CONTRIBUTING.adoc` - Technical contribution manual - `CODE_OF_CONDUCT.md` - Conduct rules ### Agent Instructions: `.machine_readable/agent_instructions/` ONLY diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 50f5b0a..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,217 +0,0 @@ -# Changelog - -All notable changes to the Nextgen Languages Evangeliser project (formerly *ReScript Evangeliser*) will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -### Added -- Migration to **Nextgen Languages Evangeliser** — multi-target pattern catalogue -- AffineScript added as flagship target (successor to ReScript as the teaching subject) -- Roadmap with 6 migration phases (see `ROADMAP.adoc`) -- Zig formalised as canonical FFI layer; V banned outside V-ecosystem work -- ReScript source files (Types.res, Glyphs.res, Narrative.res, Patterns.res) -- Deno configuration (deno.json) and build scripts -- Mustfile.epx deployment contract -- Nickel configuration (config.ncl) -- Makefile blocker workflow (enforce Justfile usage) -- npm/bun blocker workflow (enforce Deno usage) -- SPDX license headers on all ReScript source files - -### Changed -- **BREAKING**: Migrated from TypeScript to ReScript (Hyperpolymath language policy) -- **BREAKING**: Migrated from npm to Deno (Hyperpolymath language policy) -- Updated Justfile to use Deno tasks instead of npm scripts -- Updated README.adoc to reflect ReScript/Deno stack -- Updated CLAUDE.md with new language policy and structure -- Updated .gitignore for ReScript and Deno artifacts - -### Removed -- TypeScript source files (migrated to ReScript) -- extension/ directory (old VS Code extension scaffolding) -- npm package.json (replaced with deno.json) -- tsconfig.json, eslint configuration (TypeScript tooling) -- TS_CONVERSION_NEEDED.md (no longer needed) - -### Deprecated -- N/A (initial release) - -### Removed -- N/A (initial release) - -### Fixed -- N/A (initial release) - -### Security -- Implemented input validation for all user code -- Content Security Policy for webviews -- Resource limits (file size, parsing timeout, memory) -- No network dependencies (offline-first security model) -- Supply chain security (minimal dependencies, lockfile) -- RFC 9116 compliant security.txt - -## [0.1.0] - 2024-11-22 - -### Added -- Initial alpha release -- Core extension functionality -- 10 foundational patterns (Phase 1 complete): - 1. Null safety checks → Option types - 2. Async/await → Promise types - 3. Try/catch → Result types - 4. Array.map/filter/reduce → Pipe operator - 5. Ternary conditionals → Pattern matching - 6. Object destructuring → Record patterns - 7. Default parameters → Option.getOr - 8. Array.reduce → Recursive patterns - 9. Template literals → String interpolation - 10. Arrow functions → ReScript functions -- RAW view (side-by-side comparison with narratives) -- GLYPHED view (symbol-annotated code) -- Basic UI shells for FOLDED and WYSIWYG views -- 11 core glyphs (🔄🎯🛡️➡️🌿📦🔗💎⏳✅💡) -- Pattern detection via regex (Phase 1) and AST (Phase 2) -- VS Code extension scaffolding -- TypeScript strict mode configuration -- ESLint and testing infrastructure -- Initial documentation - -### Performance -- Pattern detection: 50-100ms (target: <300ms) ✅ -- Memory usage: ~20MB (target: <100MB) ✅ -- UI response: 10-20ms (target: <50ms) ✅ - -### Documentation -- README with quick start guide -- CLAUDE.md with project context -- Pattern library documentation -- Quick start guide -- Project overview -- Status tracking document - -## Version History - -### Version Numbering - -We use **Semantic Versioning** (SemVer): - -- **MAJOR** (0.x.x): Breaking changes to public API or extension behavior -- **MINOR** (x.1.x): New features, backwards-compatible -- **PATCH** (x.x.1): Bug fixes, backwards-compatible - -### Pre-1.0 Status - -This project is currently **pre-1.0** (alpha/beta): - -- **0.x.x**: API and behavior may change between minor versions -- **1.0.0**: First stable release, API stability guaranteed -- **Target**: Q2 2025 for 1.0.0 release - -### Release Cycle - -- **Major releases**: Every 6-12 months (post-1.0) -- **Minor releases**: Every 1-2 months -- **Patch releases**: As needed for critical bugs -- **Security releases**: Immediate (out-of-band) - -## Migration Guides - -### Upgrading to 0.1.0 - -This is the initial release, no migration needed! - -### Future Upgrades - -Migration guides will be provided for breaking changes: - -- **0.1.x → 0.2.x**: [Coming soon] -- **0.x.x → 1.0.0**: [Coming soon] - -## Deprecated Features - -### Currently Deprecated - -*None yet - this is a new project!* - -### Deprecation Policy - -- **Notice Period**: 3 months minimum before removal -- **Migration Path**: Always provided for deprecated features -- **Documentation**: Clearly marked in docs and code -- **Warnings**: Runtime warnings in VS Code (if applicable) - -## Breaking Changes - -### 0.x.x Series - -Breaking changes may occur in minor versions during pre-1.0 development. We will: - -- Clearly document all breaking changes -- Provide migration instructions -- Offer support in GitHub Discussions - -### Post-1.0 - -Breaking changes will only occur in major version bumps. - -## Security Updates - -Security updates are released **immediately** and out-of-band from regular releases. - -See [SECURITY.md](SECURITY.md) for: -- Security update timeline -- Vulnerability reporting process -- Supported versions - -## Contributing to Changelog - -When contributing, please update this file: - -1. Add your changes under `[Unreleased]` -2. Choose appropriate section (Added, Changed, Fixed, etc.) -3. Write clear, user-focused descriptions -4. Link to relevant issues/PRs when applicable - -Example: -```markdown -### Added -- New pattern for object spread operator ([#123](https://github.com/...)) -- Support for TypeScript decorators ([#456](https://github.com/...)) -``` - -## Changelog Standards - -We follow these standards: - -- **User-focused**: Describe impact on users, not implementation -- **Concise**: One line per change when possible -- **Links**: Include links to issues/PRs for details -- **Grouped**: Group related changes together -- **Emoji-free**: Keep changelog text-only (readability) -- **Date format**: ISO 8601 (YYYY-MM-DD) - -## Acknowledgments - -Thank you to all contributors who help make each release possible! - -See [humans.txt](.well-known/humans.txt) for contributor recognition. - ---- - -**How to stay updated:** - -- Watch this repository for releases -- Subscribe to GitHub notifications -- Follow announcements in GitHub Discussions -- Check the [Releases page](https://github.com/Hyperpolymath/nextgen-languages-evangeliser/releases) - ---- - -**Questions about a release?** - -Ask in [GitHub Discussions](https://github.com/Hyperpolymath/nextgen-languages-evangeliser/discussions) or open an issue. - -[Unreleased]: https://github.com/Hyperpolymath/nextgen-languages-evangeliser/compare/v0.1.0...HEAD -[0.1.0]: https://github.com/Hyperpolymath/nextgen-languages-evangeliser/releases/tag/v0.1.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d8926b9..adeb620 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -209,7 +209,7 @@ This Code of Conduct is a **living document** and may be updated based on commun - Announced to the community - Open for discussion before finalization -- Versioned and tracked in [CHANGELOG.md](CHANGELOG.md) +- Versioned and tracked in [CHANGELOG.adoc](CHANGELOG.adoc) **Last Updated**: 2024-11-22 **Version**: 1.0 diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index eb045d6..c160882 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -1,20 +1,132 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 -= Contributing Guide += Contributing to Nextgen Languages Evangeliser +:toc: macro -== Getting Started +Thank you for your interest in contributing! 🎉 -1. Fork the repository -2. Create a feature branch from `main` -3. Sign off commits (`git commit -s`) -4. Submit a pull request +This project is *Duolingo / Rosetta Stone for programming languages* — a +language-_comprehension and transfer_ engine that *classifies* cross-language +correspondences so learning transfers from a language you know to one you don't. +It is *not* an IDE, a linter, a universal translator, or a "fix your JavaScript" +tool. Canonical design: link:docs/theory/CORRESPONDENCE-MODEL.adoc[docs/theory/CORRESPONDENCE-MODEL.adoc]. -== Commit Guidelines +We follow the *Compassionate Code Contribution Pledge (CCCP)* and the +*Tri-Perimeter Contribution Framework (TPCF) — Perimeter 3* (see +link:docs/TPCF.adoc[docs/TPCF.adoc]). -* Conventional commits: `type(scope): description` -* Sign all commits (DCO required) -* Atomic, focused commits +toc::[] -== License +== Philosophy: no shame, transfer-first -Contributions licensed under project license. +Our contribution process mirrors our teaching voice — *celebrate / minimise / +better / safety / example*: +. *Celebrate* every contribution, however small. +. *Minimise* — guide gently, never shame. +. *Better* — improve collaboratively. +. *Safety* — keep the data valid and the invariants honest. +. *Example* — show, don't lecture. + +== The main way to contribute: author a cartridge + +The engine is language-agnostic. The community authors *cartridges* — per-language +packs of correspondence _facts_ (data, not code). This is the highest-value, +lowest-barrier contribution. + +A cartridge entry is a *Transition*: a Concept shown through a Form in language A +and a Form in language B, classified by its *CorrespondenceKind* and its *residue* +(what is lost, added, or inverted on the crossing): + +* *cognate* — transfer directly +* *false-friend* — flag the trap (surface matches, intention diverges) +* *antonym* — remap the intuition (related but inverted) +* *alien-realization* — bridge with effort (same goal, foreign machinery) +* *novel* — teach de novo (no prior anchor) +* *vanished* — un-learn / re-route (the habit is gone here) + +=== Steps + +. Read link:docs/theory/CORRESPONDENCE-MODEL.adoc[docs/theory/CORRESPONDENCE-MODEL.adoc]. +. Add or extend a `*.cartridge.json` under `cartridges/`, following + `cartridges/correspondence-cartridge.schema.json`. +. Classify each Transition's kind + residue + per-stratum verdicts, and write the + no-shame narrative. +. Validate: `just validate-cartridges` and `just test`. +. Open a pull request. + +The worked exemplar is +link:cartridges/reference/worked-examples.cartridge.json[cartridges/reference/worked-examples.cartridge.json] +— one correspondence per kind. + +== Development setup + +The runtime surface is *Deno + cartridge data* — no compile step, no Node, no npm. + +=== Prerequisites + +* https://deno.land[Deno] (latest stable) — the only required tool +* https://github.com/casey/just[just] — task runner +* Git +* _Optional, for the engine spine:_ Idris2 (ABI typecheck), Zig (FFI). The + AffineScript host is the future host; its compiler is not yet released. + +=== Common tasks + +[source,bash] +---- +just gui # browser multi-pane correspondence workspace (primary surface) +just test # cartridge invariant tests +just validate-cartridges # schema-validate the cartridges +just build # validate cartridge data (no compile step) +deno run --allow-read bin/evangeliser.js --help # offline CLI +---- + +== Contribution areas + +* *Cartridges* (most welcome) — correspondence facts for any language pair. +* *Engine / interface* (`src/interface/**`, `gui/**`, `bin/`) — reviewed + contributions; discuss architectural changes in an issue first. +* *Engine spine* — the Idris2 ABI (`src/interface/Abi/`), Zig FFI mirror + (`src/interface/ffi/`), AffineScript host binding (`src/interface/host/`). +* *Documentation* — guides, examples, translations. +* *Accessibility* — the workspace targets the Hyperpolymath Accessibility Standard + (Level A → AA): keyboard-only, ≥4.5:1 contrast, ARIA, reduced-motion, + plain-language and glyph layers. + +== Language policy + +Per the Hyperpolymath Standard: *Deno* (not npm/bun), *Justfile* (not Makefile), +*Zig* for FFI, *Idris2* for ABI/proofs, *AffineScript* as the future host. +*TypeScript, Node.js, Python, Go are banned.* ReScript is a legacy _target_ +language only (the ReScript host was removed) — never reintroduce `.res` host code. +See link:CLAUDE.md[CLAUDE.md] and link:.claude/CLAUDE.md[.claude/CLAUDE.md] for the +full policy and JavaScript-glue exemptions. + +== Commits & pull requests + +* *Conventional Commits*: `type(scope): description` (`feat`, `fix`, `docs`, + `refactor`, `test`, `chore`, …). +* *Sign off* every commit (DCO): `git commit -s`. +* Keep commits atomic and focused; describe the change clearly in the PR. +* CI runs the cartridge tests, schema validation, the `panic-attack` gate, and the + governance/policy checks. + +== Security + +Never commit secrets. Report vulnerabilities privately — see +link:SECURITY.md[SECURITY.md]. + +== Code of Conduct + +This project follows the *Compassionate Code Contribution Pledge* — see +link:CODE_OF_CONDUCT.md[CODE_OF_CONDUCT.md]. In short: never shame developers, +celebrate existing knowledge, assume good intent, foster psychological safety. + +== Licence + +By contributing, you agree that your contributions are licensed under the project +licence — see link:LICENSE[LICENSE]. Code is *MPL-2.0*; documentation is +*CC-BY-SA-4.0*. You retain copyright of your contributions. + +[.text-center] +*Thank you for contributing!* Remember the motto: _Learn — to love it!_ 💙 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 0cba703..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,130 +0,0 @@ - -# Contributing to Nextgen Languages Evangeliser - -Thank you for your interest in contributing! 🎉 - -This project is **Duolingo / Rosetta Stone for programming languages** — a -language-*comprehension and transfer* engine that **classifies** cross-language -correspondences so learning transfers from a language you know to one you don't. -It is **not** an IDE, a linter, a universal translator, or a "fix your -JavaScript" tool. Canonical design: [`docs/theory/CORRESPONDENCE-MODEL.adoc`](docs/theory/CORRESPONDENCE-MODEL.adoc). - -We follow the **Compassionate Code Contribution Pledge (CCCP)** and the -**Tri-Perimeter Contribution Framework (TPCF) — Perimeter 3** (see -[`docs/TPCF.adoc`](docs/TPCF.adoc)). - -## Philosophy: no shame, transfer-first - -Our contribution process mirrors our teaching voice — **celebrate / minimise / -better / safety / example**: - -1. **Celebrate** every contribution, however small. -2. **Minimise** — guide gently, never shame. -3. **Better** — improve collaboratively. -4. **Safety** — keep the data valid and the invariants honest. -5. **Example** — show, don't lecture. - -## The main way to contribute: author a cartridge - -The engine is language-agnostic. The community authors **cartridges** — -per-language packs of correspondence *facts* (data, not code). This is the -highest-value, lowest-barrier contribution. - -A cartridge entry is a **Transition**: a Concept shown through a Form in language -A and a Form in language B, classified by its **CorrespondenceKind** and its -**residue** (what is lost, added, or inverted on the crossing): - -- **cognate** — transfer directly -- **false-friend** — flag the trap (surface matches, intention diverges) -- **antonym** — remap the intuition (related but inverted) -- **alien-realization** — bridge with effort (same goal, foreign machinery) -- **novel** — teach de novo (no prior anchor) -- **vanished** — un-learn / re-route (the habit is gone here) - -### Steps - -1. Read [`docs/theory/CORRESPONDENCE-MODEL.adoc`](docs/theory/CORRESPONDENCE-MODEL.adoc). -2. Add or extend a `*.cartridge.json` under `cartridges/`, following - `cartridges/correspondence-cartridge.schema.json`. -3. Classify each Transition's kind + residue + per-stratum verdicts, and write - the no-shame narrative. -4. Validate: `just validate-cartridges` and `just test`. -5. Open a pull request. - -The worked exemplar is -[`cartridges/reference/worked-examples.cartridge.json`](cartridges/reference/worked-examples.cartridge.json) -— one correspondence per kind. - -## Development setup - -The runtime surface is **Deno + cartridge data** — no compile step, no Node, no -npm. - -### Prerequisites - -- [Deno](https://deno.land) (latest stable) — the only required tool -- [just](https://github.com/casey/just) — task runner -- Git -- _Optional, for the engine spine:_ Idris2 (ABI typecheck), Zig (FFI). The - AffineScript host is the future host; its compiler is not yet released. - -### Common tasks - -```bash -just gui # browser multi-pane correspondence workspace (primary surface) -just test # cartridge invariant tests -just validate-cartridges # schema-validate the cartridges -just build # validate cartridge data (no compile step) -deno run --allow-read bin/evangeliser.js --help # offline CLI -``` - -## Contribution areas - -- **Cartridges** (most welcome) — correspondence facts for any language pair. -- **Engine / interface** (`src/interface/**`, `gui/**`, `bin/`) — reviewed - contributions; discuss architectural changes in an issue first. -- **Engine spine** — the Idris2 ABI (`src/interface/Abi/`), Zig FFI mirror - (`src/interface/ffi/`), AffineScript host binding (`src/interface/host/`). -- **Documentation** — guides, examples, translations. -- **Accessibility** — the workspace targets the Hyperpolymath Accessibility - Standard (Level A → AA): keyboard-only, ≥4.5:1 contrast, ARIA, reduced-motion, - plain-language and glyph layers. - -## Language policy - -Per the Hyperpolymath Standard: **Deno** (not npm/bun), **Justfile** (not -Makefile), **Zig** for FFI, **Idris2** for ABI/proofs, **AffineScript** as the -future host. **TypeScript, Node.js, Python, Go are banned.** ReScript is a legacy -*target* language only (the ReScript host was removed) — never reintroduce `.res` -host code. See [`CLAUDE.md`](CLAUDE.md) and [`.claude/CLAUDE.md`](.claude/CLAUDE.md) -for the full policy and JavaScript-glue exemptions. - -## Commits & pull requests - -- **Conventional Commits**: `type(scope): description` (`feat`, `fix`, `docs`, - `refactor`, `test`, `chore`, …). -- **Sign off** every commit (DCO): `git commit -s`. -- Keep commits atomic and focused; describe the change clearly in the PR. -- CI runs the cartridge tests, schema validation, the `panic-attack` gate, and - the governance/policy checks. - -## Security - -Never commit secrets. Report vulnerabilities privately — see -[`SECURITY.md`](SECURITY.md). - -## Code of Conduct - -This project follows the **Compassionate Code Contribution Pledge** — see -[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md). In short: never shame developers, -celebrate existing knowledge, assume good intent, foster psychological safety. - -## License - -By contributing, you agree that your contributions are licensed under the -project licence — see [`LICENSE`](LICENSE). You retain copyright of your -contributions. - ---- - -**Thank you for contributing!** Remember the motto: *Learn — to love it!* 💙 diff --git a/HANDOFF.adoc b/HANDOFF.adoc index 20770ff..c6b8440 100644 --- a/HANDOFF.adoc +++ b/HANDOFF.adoc @@ -49,10 +49,9 @@ deno run --allow-read bin/evangeliser.js --kind false-friend # offline CLI (JTV is the canonical alien-realization / novel exemplar). . Begin the *AffineScript host application* against the Idris2 ABI / Zig FFI seams (needs the AffineScript compiler). -. Owner-only follow-up (flagged, not done): the `CONTRIBUTING.md` / `CHANGELOG.md` - `.md`-vs-`.adoc` format choice (these GitHub-required files have clean `.adoc` - twins; pick one per file). The licence-label drift is *resolved* per owner - direction — see the Licensing note below. +. Docs are AsciiDoc: `CONTRIBUTING` and `CHANGELOG` are now `.adoc` (the `.md` + duplicates were retired per owner direction). The licence-label drift is also + *resolved* — see the Licensing note below. == Guardrails (non-negotiable) diff --git a/Justfile b/Justfile index 85d0e7f..8584502 100644 --- a/Justfile +++ b/Justfile @@ -109,11 +109,11 @@ validate-structure: validate-docs: @echo "📚 Checking documentation..." @test -f README.adoc || (echo "❌ Missing README.adoc" && exit 1) - @test -f CONTRIBUTING.md || (echo "❌ Missing CONTRIBUTING.md" && exit 1) + @test -f CONTRIBUTING.adoc || (echo "❌ Missing CONTRIBUTING.adoc" && exit 1) @test -f CODE_OF_CONDUCT.md || (echo "❌ Missing CODE_OF_CONDUCT.md" && exit 1) @test -f SECURITY.md || (echo "❌ Missing SECURITY.md" && exit 1) @test -f MAINTAINERS.adoc || (echo "❌ Missing MAINTAINERS.adoc" && exit 1) - @test -f CHANGELOG.md || (echo "❌ Missing CHANGELOG.md" && exit 1) + @test -f CHANGELOG.adoc || (echo "❌ Missing CHANGELOG.adoc" && exit 1) @test -f CLAUDE.md || (echo "❌ Missing CLAUDE.md" && exit 1) @echo "✅ Documentation complete" diff --git a/README.adoc b/README.adoc index 1753fe0..01e5081 100644 --- a/README.adoc +++ b/README.adoc @@ -246,17 +246,17 @@ See link:docs/RSR_COMPLIANCE.adoc[RSR_COMPLIANCE.adoc] for full details. == Documentation * link:docs/theory/CORRESPONDENCE-MODEL.adoc[CORRESPONDENCE-MODEL.adoc] - Canonical design spec -* link:CONTRIBUTING.md[CONTRIBUTING.md] - How to contribute (incl. cartridge authoring) +* link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] - How to contribute (incl. cartridge authoring) * link:CODE_OF_CONDUCT.md[CODE_OF_CONDUCT.md] - Community guidelines * link:SECURITY.md[SECURITY.md] - Security policies -* link:CHANGELOG.md[CHANGELOG.md] - Version history +* link:CHANGELOG.adoc[CHANGELOG.adoc] - Version history * link:docs/RSR_COMPLIANCE.adoc[RSR_COMPLIANCE.adoc] - RSR framework compliance * link:docs/TPCF.adoc[TPCF.adoc] - Contribution framework * link:ROADMAP.adoc[ROADMAP.adoc] - Re-point sequence & milestones == Contributing -We welcome contributions! See link:CONTRIBUTING.md[CONTRIBUTING.md] for: +We welcome contributions! See link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] for: * Code of Conduct * Development setup diff --git a/SECURITY.md b/SECURITY.md index e8dd1d2..25baac0 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -212,7 +212,7 @@ When contributing code: - [ ] Input validation for all user data - [ ] Resource limits respected -See [CONTRIBUTING.md](CONTRIBUTING.md) for full guidelines. +See [CONTRIBUTING.adoc](CONTRIBUTING.adoc) for full guidelines. ## 🏆 Security Compliance diff --git a/docs/RSR_COMPLIANCE.adoc b/docs/RSR_COMPLIANCE.adoc index 5cf308b..59ae1cb 100644 --- a/docs/RSR_COMPLIANCE.adoc +++ b/docs/RSR_COMPLIANCE.adoc @@ -34,7 +34,7 @@ toc::[] == 4. Complete documentation -* `README.adoc`, `EXPLAINME.adoc`, `ROADMAP.adoc`, `CONTRIBUTING.md`, +* `README.adoc`, `EXPLAINME.adoc`, `ROADMAP.adoc`, `CONTRIBUTING.adoc`, `CODE_OF_CONDUCT.md`, `SECURITY.md`, `MAINTAINERS.adoc`, `CHANGELOG`, `CLAUDE.md`, and the canonical design spec `docs/theory/CORRESPONDENCE-MODEL.adoc`.