diff --git a/.github/workflows/workflow-linter.yml b/.github/workflows/workflow-linter.yml index 8cb3e7f..9020f9a 100644 --- a/.github/workflows/workflow-linter.yml +++ b/.github/workflows/workflow-linter.yml @@ -36,7 +36,7 @@ jobs: fi done if [ $failed -eq 1 ]; then - echo "Add '# SPDX-License-Identifier: AGPL-3.0-or-later' as first line" + echo "Add '# SPDX-License-Identifier: PMPL-1.0-or-later' as first line" exit 1 fi echo "All workflows have SPDX headers" diff --git a/.machine_readable/ECOSYSTEM.a2ml b/.machine_readable/ECOSYSTEM.a2ml index ea9d4c2..430c38c 100644 --- a/.machine_readable/ECOSYSTEM.a2ml +++ b/.machine_readable/ECOSYSTEM.a2ml @@ -1,14 +1,10 @@ -# Anvomidav Ecosystem Manifest (A2ML) -@ecosystem { version: "0.1.0", last-updated: "2026-03-03" } +# SPDX-License-Identifier: PMPL-1.0-or-later +# ECOSYSTEM.a2ml β€” Ecosystem position +# Converted from ECOSYSTEM.scm on 2026-03-15 -@project: -name: "anvomidav" -purpose: "Standardize figure skating notation" -role: "specialized-dsl" -@end +[metadata] +project = "anvomidav" +ecosystem = "hyperpolymath" -@attestation: -originalBytes: [Attested by Gemini CLI] -signature: PLACEHOLDER-ED25519-SIGNATURE -timestamp: 2026-03-03T12:00:00Z -@end +[position] +type = "component" diff --git a/.machine_readable/ECOSYSTEM.scm b/.machine_readable/ECOSYSTEM.scm deleted file mode 100644 index 5176c9a..0000000 --- a/.machine_readable/ECOSYSTEM.scm +++ /dev/null @@ -1,20 +0,0 @@ -;; SPDX-License-Identifier: PMPL-1.0-or-later -;; ECOSYSTEM.scm - Ecosystem position for anvomidav -;; Media-Type: application/vnd.ecosystem+scm - -(ecosystem - (version "1.0") - (name "anvomidav") - (type "") - (purpose "") - - (position-in-ecosystem - (category "") - (subcategory "") - (unique-value ())) - - (related-projects ()) - - (what-this-is ()) - - (what-this-is-not ())) diff --git a/.machine_readable/META.a2ml b/.machine_readable/META.a2ml index 9528fbf..e202cf1 100644 --- a/.machine_readable/META.a2ml +++ b/.machine_readable/META.a2ml @@ -1,14 +1,9 @@ -# Anvomidav Meta Manifest (A2ML) -@meta { version: "0.1.0", last-updated: "2026-03-03" } +# SPDX-License-Identifier: PMPL-1.0-or-later +# META.a2ml β€” Project meta-information +# Converted from META.scm on 2026-03-15 -@project-info: -type: "dsl" -languages: ["rust", "julia", "typescript", "deno", "bash"] -license: "PMPL-1.0-or-later" -@end - -@attestation: -originalBytes: [Attested by Gemini CLI] -signature: PLACEHOLDER-ED25519-SIGNATURE -timestamp: 2026-03-03T12:00:00Z -@end +[metadata] +project = "anvomidav" +author = "Jonathan D.A. Jewell " +license = "PMPL-1.0-or-later" +standard = "RSR 2026" diff --git a/.machine_readable/META.scm b/.machine_readable/META.scm deleted file mode 100644 index bdfe42c..0000000 --- a/.machine_readable/META.scm +++ /dev/null @@ -1,17 +0,0 @@ -;; SPDX-License-Identifier: PMPL-1.0-or-later -;; META.scm - Meta-level information for anvomidav -;; Media-Type: application/meta+scheme - -(meta - (architecture-decisions ()) - - (development-practices - (code-style ()) - (security - (principle "Defense in depth")) - (testing ()) - (versioning "SemVer") - (documentation "AsciiDoc") - (branching "main for stable")) - - (design-rationale ())) diff --git a/.machine_readable/STATE.a2ml b/.machine_readable/STATE.a2ml index 04ba572..4cb619f 100644 --- a/.machine_readable/STATE.a2ml +++ b/.machine_readable/STATE.a2ml @@ -1,16 +1,14 @@ -# Anvomidav State Manifest (A2ML) -@state { version: "1.0.0", last-updated: "2026-03-03", status: "active" } +# SPDX-License-Identifier: PMPL-1.0-or-later +# STATE.a2ml β€” Project state checkpoint +# Converted from STATE.scm on 2026-03-15 -@project-context: -name: "Anvomidav" -tagline: "DSL for figure skating choreography notation" -repo: "github.com/hyperpolymath/anvomidav" -completion-percentage: 100 -phase: "production-ready" -@end +[metadata] +project = "anvomidav" +version = "0.1.0" +last-updated = "2026-03-15" +status = "active" -@attestation: -originalBytes: [Attested by Gemini CLI] -signature: PLACEHOLDER-ED25519-SIGNATURE -timestamp: 2026-03-03T12:00:00Z -@end +[project-context] +name = "anvomidav" +completion-percentage = 0 +phase = "In development" diff --git a/.machine_readable/STATE.scm b/.machine_readable/STATE.scm deleted file mode 100644 index 1461ff5..0000000 --- a/.machine_readable/STATE.scm +++ /dev/null @@ -1,81 +0,0 @@ -;; SPDX-License-Identifier: PMPL-1.0-or-later -;; STATE.scm - Project state for anvomidav -;; Media-Type: application/vnd.state+scm - -(state - (metadata - (version "1.0.0") - (schema-version "1.0") - (created "2026-01-03") - (updated "2026-02-07") - (project "anvomidav") - (repo "github.com/hyperpolymath/anvomidav")) - - (project-context - (name "Anvomidav") - (tagline "Domain-specific language for figure skating choreography notation") - (tech-stack ("Rust" "Julia" "TypeScript" "Chumsky" "Tower-LSP"))) - - (current-position - (phase "production-ready") - (overall-completion 100) - (components - ((lexer (status "complete") (completion 100) (implementation "logos")) - (parser (status "complete") (completion 100) (implementation "chumsky")) - (type-checker (status "complete") (completion 100) (loc 1200)) - (semantics (status "complete") (completion 100) (loc 800)) - (ir (status "complete") (completion 100) (loc 2400)) - (visualization (status "complete") (completion 100) (loc 696) (features ("rink-svg" "timeline-svg"))) - (lsp-server (status "complete") (completion 100) (loc 600)) - (debugger (status "complete") (completion 100) (loc 270)) - (cli (status "complete") (completion 100) (loc 400)) - (package-manager (status "complete") (completion 100) (language "Julia") (loc 359)) - (vscode-extension (status "complete") (completion 100)))) - (working-features - ("Lexical analysis with logos" - "Recursive descent parsing with chumsky" - "ISU notation support" - "Type checking and semantic analysis" - "IR with timeline and choreography representations" - "SVG rink diagram generation" - "SVG timeline chart generation" - "LSP server with diagnostics and completion" - "Interactive REPL-based debugger" - "CLI with run/check/visualize commands" - "Julia-based package manager" - "VSCode extension with syntax highlighting"))) - - (route-to-mvp - (milestones - ((phase-1 (name "Frontend") (status "complete") (completion-date "2025-12-31")) - (phase-2 (name "Type System") (status "complete") (completion-date "2026-01-15")) - (phase-3 (name "IR and Lowering") (status "complete") (completion-date "2026-01-20")) - (phase-4 (name "Visualization") (status "complete") (completion-date "2026-01-25")) - (phase-5 (name "Tooling") (status "complete") (completion-date "2026-02-07"))))) - - (blockers-and-issues - (critical) - (high) - (medium) - (low)) - - (critical-next-actions - (immediate) - (this-week ("Performance benchmarking" "Documentation expansion")) - (this-month ("Package registry deployment" "Tutorial videos"))) - - (session-history - ((session - (date "2026-02-07") - (accomplishments - ("πŸŽ‰ ACHIEVED 100% PRODUCTION-READY STATUS!" - "Added interactive debugger (anv-debug) - 270 lines" - "Created Julia package manager (AnvomidavPkg.jl) - 359 lines" - "Added VSCode extension with LSP integration" - "All 3 binaries built successfully: anv, anv-lsp, anv-debug" - "Total LOC: 16,618 Rust + 359 Julia" - "Complete toolchain: lexer, parser, type-checker, semantics, IR, visualization, LSP, debugger, CLI, package manager" - "Visualization complete with rink SVG and timeline SVG renderers" - "Updated author attribution and license to PMPL-1.0-or-later" - "Updated STATE.scm to reflect 100% completion" - "All 5 phases complete: Frontend, Type System, IR, Visualization, Tooling"))))) diff --git a/AI.a2ml b/0-AI-MANIFEST.a2ml similarity index 100% rename from AI.a2ml rename to 0-AI-MANIFEST.a2ml diff --git a/ABI-FFI-README.md b/ABI-FFI-README.md index 08d35da..e6a32bb 100644 --- a/ABI-FFI-README.md +++ b/ABI-FFI-README.md @@ -374,7 +374,7 @@ When modifying the ABI/FFI: ## License -{{LICENSE}} +PMPL-1.0-or-later ## See Also diff --git a/AI.djot b/AI.djot deleted file mode 100644 index 2176310..0000000 --- a/AI.djot +++ /dev/null @@ -1,100 +0,0 @@ -# AI Assistant Specification - -## Machine-Readable Artefacts - -The `.machine_readable/` directory contains structured metadata required for automated reasoning and project introspection. - -- `STATE.scm`: Current project state, milestones, and progress. -- `META.scm`: Architecture decisions, development methodology, and rationale. -- `ECOSYSTEM.scm`: Ecosystem placement, upstream/downstream relationships, and interoperability. -- `AGENTIC.scm`: AI agent interaction patterns, affordances, and constraints. -- `NEUROSYM.scm`: Neurosymbolic integration configuration and hybrid reasoning settings. -- `PLAYBOOK.scm`: Operational runbook, workflows, and incident procedures. - -Additional artefact: - -- `AI.djot`: AI Assistant behavioural and operational instructions. - -## Repository Roots - -- Local repository root: `/var/mnt/eclipse/repos` -- Remote mapping: `https://github.com/hyperpolymath/` -- Repository names are lowercase; dots (`.`) are replaced with hyphens (`-`). -- If a repository is missing locally, check the remote and synchronize before proceeding. - -## AI CLI Standards - -- Include `ai-cli-crash-capture/` and `contractiles/` from this template in all new repositories. -- Mirror all 6SCM files into `.machine_readable/6scm/`. -- Before generating code, inspect `/var/mnt/eclipse/repos/proven` for the current Idris β€œunbreakable” library status. -- If the project depends on the unbreakable Idris library, add an *Idris Inside* badge to the repository. -- When new bindings are required, create them under `/var/mnt/eclipse/repos/proven` using the naming pattern `idris2-zig-`. -- If new code implies additional unbreakable Idris modules, add them to `/var/mnt/eclipse/repos/proven` and update binders across all supported languages. - -## Language Policy - -### Allowed Languages and Tools - -| Language/Tool | Use Case | Notes | -|---------------|----------|-------| -| ReScript | Application code | Type-safe, compiles to JS | -| Deno | Runtime and package management | Replaces Node/npm/bun | -| Rust | Systems, performance-critical, WASM | Preferred for CLI tools | -| Tauri 2.0+ | Mobile apps (iOS/Android) | Rust backend + web UI | -| Dioxus | Mobile apps (native UI) | Pure Rust, React-like | -| Gleam | Backend services | BEAM or JS targets | -| Bash/POSIX Shell | Automation scripts | Keep minimal | -| JavaScript | Only where ReScript cannot | MCP glue, Deno APIs | -| Nickel | Configuration | Complex config logic | -| Guile Scheme | Metadata/state files | For all `.scm` artefacts | -| Julia | Batch/data processing | Per RSR | -| OCaml | AffineScript compiler | Language-specific | -| Ada | Safety-critical systems | Where required | - -### Banned Languages and Tools - -| Banned | Replacement | -|--------|-------------| -| TypeScript | ReScript | -| Node.js | Deno | -| npm | Deno | -| Bun | Deno | -| pnpm/yarn | Deno | -| Go | Rust | -| Python | Julia / Rust / ReScript | -| Java/Kotlin | Rust / Tauri / Dioxus | -| Swift | Tauri / Dioxus | -| React Native | Tauri / Dioxus | -| Flutter/Dart | Tauri / Dioxus | - -## Mobile Development Policy - -A strict Rust-first approach applies. - -- Use **Tauri 2.0+** for web UI (ReScript) + Rust backend. -- Use **Dioxus** for pure Rust native UI. - -Both are FOSS with independent governance. - -## Enforcement Rules - -- Do not create new TypeScript files; convert existing TS to ReScript. -- Do not use `package.json` for runtime dependencies; use `deno.json` imports. -- Do not include `node_modules` in production; Deno handles dependency caching. -- Do not use Go; use Rust. -- Do not use Python; use Julia (data/batch), Rust (systems), or ReScript (apps). -- Do not use Kotlin/Swift; use Tauri 2.0+ or Dioxus for mobile. - -## Package Management - -- Primary: Guix (`guix.scm`) -- Fallback: Nix (`flake.nix`) -- JavaScript dependencies: Deno (`deno.json` imports) - -## Security Requirements - -- Do not use MD5 or SHA-1; use SHA-256 or stronger. -- Use HTTPS only. -- Do not hardcode secrets. -- Pin all dependencies by SHA. -- Include SPDX license headers in all files. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b98b134..4aec38a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -5,13 +5,13 @@ TEMPLATE INSTRUCTIONS (delete this block before publishing) ============================================================================ Replace all anvomidav values: - {{PROJECT_NAME}} - Your project name - {{OWNER}} - GitHub/GitLab username or org - {{REPO}} - Repository name - jonathan.jewell@open.ac.uk - Email for conduct reports + Anvomidav - Your project name + hyperpolymath - GitHub/GitLab username or org + anvomidav - Repository name + j.d.a.jewell@open.ac.uk - Email for conduct reports Maintainer Team - Name of conduct team/committee 48 hours - Initial response SLA (e.g., 48 hours) - {{CURRENT_YEAR}} - Current year + 2026 - Current year Review and customise: - Adjust enforcement ladder for your community size @@ -22,7 +22,7 @@ Review and customise: ## Our Pledge -We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. +We as members, contributors, and leaders pledge to make participation in Anvomidav a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. @@ -136,7 +136,7 @@ If you experience or witness unacceptable behaviour, or have any other concerns, | Method | Details | Best For | |--------|---------|----------| -| **Email** | jonathan.jewell@open.ac.uk | Detailed reports, sensitive matters | +| **Email** | j.d.a.jewell@open.ac.uk | Detailed reports, sensitive matters | | **Private Message** | Contact any maintainer directly | Quick questions, minor issues | | **Anonymous Form** | [Link to form if available] | When you need anonymity | @@ -231,7 +231,7 @@ For contributors with elevated access (Perimeter 2 or 1): If you believe an enforcement decision was made in error: 1. **Wait 7 days** after the decision (cooling-off period) -2. **Email** jonathan.jewell@open.ac.uk with subject line "Appeal: [Original Report ID]" +2. **Email** j.d.a.jewell@open.ac.uk with subject line "Appeal: [Original Report ID]" 3. **Explain** why you believe the decision should be reconsidered 4. **Provide** any new information not previously available @@ -310,8 +310,8 @@ We thank these communities for their leadership in creating welcoming spaces. If you have questions about this Code of Conduct: -- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions) -- Email jonathan.jewell@open.ac.uk (for private questions) +- Open a [Discussion](https://github.com/hyperpolymath/anvomidav/discussions) (for general questions) +- Email j.d.a.jewell@open.ac.uk (for private questions) - Contact any maintainer directly --- @@ -324,4 +324,4 @@ We're all here because we care about this project. Let's make it a place where e --- -Last updated: {{CURRENT_YEAR}} Β· Based on Contributor Covenant 2.1 +Last updated: 2026 Β· Based on Contributor Covenant 2.1 diff --git a/COMPLETE-2026-02-07.md b/COMPLETE-2026-02-07.md index 72879ce..a2a7f1d 100644 --- a/COMPLETE-2026-02-07.md +++ b/COMPLETE-2026-02-07.md @@ -286,7 +286,7 @@ code --install-extension anvomidav-vscode-1.0.0.vsix ## Author -Jonathan D.A. Jewell +Jonathan D.A. Jewell ## License diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc deleted file mode 100644 index 0f2c78c..0000000 --- a/CONTRIBUTING.adoc +++ /dev/null @@ -1,241 +0,0 @@ -// SPDX-License-Identifier: PMPL-1.0-or-later -// SPDX-FileCopyrightText: 2024-2025 hyperpolymath - -= Contributing to Anvomidav -:toc: macro -:toclevels: 2 - -**Thank you for your interest in contributing to Anvomidav!** This is the first programming language for figure skating choreographers, and we welcome contributions from both software engineers and domain experts. - -toc::[] - -== Priority Areas - -We're actively seeking contributors in these areas: - -=== Figure Skating Domain Expertise -* **ISU Rules Validation** β€” Help verify our implementation of Technical Panel guidelines -* **Element Taxonomy** β€” Suggest refinements to jump, spin, lift, and step definitions -* **Competition Requirements** β€” Ensure segment rules match current ISU regulations -* **Choreographic Patterns** β€” Contribute example programs from real competitions - -=== Compiler Engineering -* **Optimization Passes** β€” Work on IR layer and code generation -* **Parser Improvements** β€” Better error recovery and incremental parsing -* **Type System** β€” Enhance type inference and checking -* **Performance** β€” Profile and optimize compilation speed - -=== Visualization & Tooling -* **2D Rink Diagrams** β€” SVG export of element paths -* **LSP Server** β€” Autocomplete, hover docs, diagnostics -* **Editor Plugins** β€” VS Code, Helix, Neovim, Zed extensions -* **Tree-sitter Grammar** β€” Syntax highlighting for all editors - -=== Documentation -* **Tutorials** β€” Getting started guides for choreographers -* **API Reference** β€” Document language constructs and stdlib -* **Example Programs** β€” Competition programs, practice sequences, training drills -* **Video Walkthroughs** β€” Screen recordings of language features - -== Getting Started - -=== Prerequisites - -* Rust 1.75+ (`rustup` recommended) -* Git for version control -* Familiarity with Cargo workspace projects - -=== Building from Source - -[source,bash] ----- -# Clone the repository -git clone https://github.com/hyperpolymath/anvomidav.git -cd anvomidav - -# Build all crates -cargo build --release - -# Run tests (90+ tests) -cargo test - -# Install CLI locally -cargo install --path crates/anv-cli ----- - -=== Running Tests - -[source,bash] ----- -# Run all tests -cargo test - -# Run tests for specific crate -cargo test -p anv-syntax -cargo test -p anv-semantics - -# Run with output -cargo test -- --nocapture - -# Run specific test -cargo test test_parse_jump_element ----- - -== Code Style - -=== Rust Formatting - -* Use `cargo fmt` before committing (enforced in CI) -* Use `cargo clippy` to catch common mistakes -* Follow Rust API Guidelines: https://rust-lang.github.io/api-guidelines/ - -=== Naming Conventions - -* **Types**: `PascalCase` (e.g., `JumpElement`, `SpinPosition`) -* **Functions**: `snake_case` (e.g., `parse_element`, `validate_segment`) -* **Constants**: `SCREAMING_SNAKE_CASE` (e.g., `MAX_JUMPS_SHORT`) -* **Modules**: `snake_case` (e.g., `anv_syntax`, `anv_semantics`) - -=== Documentation - -* Add doc comments (`///`) for public APIs -* Include examples in doc comments where helpful -* Reference ISU rules in comments for domain logic - -[source,rust] ----- -/// Validates a jump element against ISU Technical Panel guidelines. -/// -/// # ISU Rules -/// - Short Program: Maximum 3 jump elements -/// - Free Skate: Maximum 7 jump elements -/// -/// # Example -/// ``` -/// let jump = JumpElement::new(Rotation::Triple, JumpKind::Axel); -/// validator.validate_jump(&jump)?; -/// ``` -pub fn validate_jump(&self, jump: &JumpElement) -> Result<(), SemanticError> { - // implementation -} ----- - -== Commit Guidelines - -=== Conventional Commits - -Use conventional commit format: `type(scope): description` - -**Types:** -* `feat`: New feature -* `fix`: Bug fix -* `docs`: Documentation changes -* `test`: Test additions or fixes -* `refactor`: Code refactoring -* `perf`: Performance improvements -* `chore`: Build/tooling changes - -**Scopes:** -* `core`: anv-core crate -* `syntax`: anv-syntax crate (lexer/parser) -* `types`: anv-types crate -* `semantics`: anv-semantics crate (ISU rules) -* `cli`: anv-cli crate - -**Examples:** -[source] ----- -feat(semantics): add ice dance pattern validation -fix(parser): handle missing semicolons in sequences -docs(readme): update installation instructions -test(syntax): add tests for pairs elements ----- - -=== Developer Certificate of Origin (DCO) - -* Sign all commits: `git commit -s` -* This adds `Signed-off-by: Your Name ` -* Certifies you have rights to submit the contribution - -=== Pull Request Process - -1. **Fork** the repository -2. **Create a feature branch** from `main` -3. **Make your changes** with clear, focused commits -4. **Add tests** for new functionality -5. **Run tests** locally (`cargo test`) -6. **Format code** (`cargo fmt`) -7. **Check lints** (`cargo clippy`) -8. **Push** to your fork -9. **Open a Pull Request** with description of changes - -== Testing Requirements - -=== For New Features - -* Add unit tests in the same file (in `#[cfg(test)] mod tests`) -* Add integration tests in `tests/` directory if cross-crate -* Ensure all tests pass: `cargo test` - -=== For Bug Fixes - -* Add a test that reproduces the bug -* Verify the test fails before your fix -* Verify the test passes after your fix - -=== Test Coverage Goals - -| Crate | Target Coverage | -|-------|----------------| -| anv-core | 80%+ | -| anv-syntax | 85%+ (critical parsing logic) | -| anv-types | 75%+ | -| anv-semantics | 90%+ (ISU rules must be correct) | -| anv-cli | 60%+ (integration tests) | - -== ISU Rules Contributions - -If contributing ISU rule validations: - -1. **Reference the official ISU Communication** (e.g., ISU Communication 2500) -2. **Add a comment** with the rule number and description -3. **Add tests** with valid and invalid programs -4. **Include helpful error hints** for rule violations - -Example: - -[source,rust] ----- -// ISU Communication 2500, Singles & Pair Skating 2024-2025 -// Short Program: Maximum 3 jump elements -if jump_count > 3 { - return Err(SemanticError::TooManyElements { - span, - element_type: "jump".to_string(), - found: jump_count, - max: 3, - }); -} ----- - -== Communication - -* **GitHub Issues**: Bug reports, feature requests -* **GitHub Discussions**: Questions, ideas, design discussions -* **Pull Requests**: Code contributions - -== Code of Conduct - -* Be respectful and inclusive -* Welcome newcomers to figure skating and/or programming -* Assume good intentions -* Focus on what's best for the community - -== License - -All contributions are licensed under **PMPL-1.0-or-later**. By contributing, you agree to license your work under these terms. - -== Questions? - -If you're unsure about anything, please open a GitHub Discussion or comment on an existing issue. We're happy to help! - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89e4e00..0d2f6c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,13 @@ # Clone the repository -git clone https://github.com/{{OWNER}}/{{REPO}}.git -cd {{REPO}} +git clone https://github.com/hyperpolymath/anvomidav.git +cd anvomidav # Using Nix (recommended for reproducibility) nix develop # Or using toolbox/distrobox -toolbox create {{REPO}}-dev -toolbox enter {{REPO}}-dev +toolbox create anvomidav-dev +toolbox enter anvomidav-dev # Install dependencies manually # Verify setup @@ -17,7 +17,7 @@ just test # Run test suite ### Repository Structure ``` -{{REPO}}/ +anvomidav/ β”œβ”€β”€ src/ # Source code (Perimeter 1-2) β”œβ”€β”€ lib/ # Library code (Perimeter 1-2) β”œβ”€β”€ extensions/ # Extensions (Perimeter 2) @@ -86,10 +86,10 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an Look for issues labelled: -- [`good first issue`](https://github.com/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) β€” Simple Perimeter 3 tasks -- [`help wanted`](https://github.com/{{OWNER}}/{{REPO}}/labels/help%20wanted) β€” Community help needed -- [`documentation`](https://github.com/{{OWNER}}/{{REPO}}/labels/documentation) β€” Docs improvements -- [`perimeter-3`](https://github.com/{{OWNER}}/{{REPO}}/labels/perimeter-3) β€” Community sandbox scope +- [`good first issue`](https://github.com/hyperpolymath/anvomidav/labels/good%20first%20issue) β€” Simple Perimeter 3 tasks +- [`help wanted`](https://github.com/hyperpolymath/anvomidav/labels/help%20wanted) β€” Community help needed +- [`documentation`](https://github.com/hyperpolymath/anvomidav/labels/documentation) β€” Docs improvements +- [`perimeter-3`](https://github.com/hyperpolymath/anvomidav/labels/perimeter-3) β€” Community sandbox scope --- diff --git a/Cargo.toml b/Cargo.toml index 9e34930..1d749cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ members = [ version = "1.0.0" edition = "2021" rust-version = "1.75" -authors = ["Jonathan D.A. Jewell "] +authors = ["Jonathan D.A. Jewell "] license = "PMPL-1.0-or-later" repository = "https://github.com/hyperpolymath/anvomidav" keywords = ["figure-skating", "choreography", "dsl", "notation"] diff --git a/SECURITY.md b/SECURITY.md index 5e1e740..ee8719d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -5,14 +5,14 @@ TEMPLATE INSTRUCTIONS (delete this block before publishing) ============================================================================ Replace all anvomidav values with your information: - {{PROJECT_NAME}} - Your project name - {{OWNER}} - GitHub username or org (e.g., hyperpolymath) - {{REPO}} - Repository name - {{SECURITY_EMAIL}} - Security contact email - {{PGP_FINGERPRINT}} - Your PGP key fingerprint (40 chars, no spaces) + Anvomidav - Your project name + hyperpolymath - GitHub username or org (e.g., hyperpolymath) + anvomidav - Repository name + 6759885+hyperpolymath@users.noreply.github.com - Security contact email + [PGP fingerprint not set] - Your PGP key fingerprint (40 chars, no spaces) {{PGP_KEY_URL}} - URL to your public PGP key {{WEBSITE}} - Your website/domain - {{CURRENT_YEAR}} - Current year for copyright + 2026 - Current year for copyright Optional: Remove sections that don't apply (e.g., PGP if you don't use it) ============================================================================ @@ -40,7 +40,7 @@ We take security seriously. We appreciate your efforts to responsibly disclose v The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature: -1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) +1. Navigate to [Report a Vulnerability](https://github.com/hyperpolymath/anvomidav/security/advisories/new) 2. Click **"Report a vulnerability"** 3. Complete the form with as much detail as possible 4. Submit β€” we'll receive a private notification @@ -58,19 +58,19 @@ If you cannot use GitHub Security Advisories, you may email us directly: | | | |---|---| -| **Email** | {{SECURITY_EMAIL}} | +| **Email** | 6759885+hyperpolymath@users.noreply.github.com | | **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) | -| **Fingerprint** | `{{PGP_FINGERPRINT}}` | +| **Fingerprint** | `[PGP fingerprint not set]` | ```bash # Import our PGP key curl -sSL {{PGP_KEY_URL}} | gpg --import # Verify fingerprint -gpg --fingerprint {{SECURITY_EMAIL}} +gpg --fingerprint 6759885+hyperpolymath@users.noreply.github.com # Encrypt your report -gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt +gpg --armor --encrypt --recipient 6759885+hyperpolymath@users.noreply.github.com report.txt ``` > **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media. @@ -203,7 +203,7 @@ If we cannot reach agreement on disclosure timing, we default to 90 days from yo The following are within scope for security research: -- This repository (`{{OWNER}}/{{REPO}}`) and all its code +- This repository (`hyperpolymath/anvomidav`) and all its code - Official releases and packages published from this repository - Documentation that could lead to security issues - Build and deployment configurations in this repository @@ -322,7 +322,7 @@ Recognition includes: To stay informed about security updates: - **Watch this repository**: Click "Watch" β†’ "Custom" β†’ Select "Security alerts" -- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) +- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/hyperpolymath/anvomidav/security/advisories) - **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md) ### Update Policy @@ -348,7 +348,7 @@ To stay informed about security updates: ## Security Best Practices -When using {{PROJECT_NAME}}, we recommend: +When using Anvomidav, we recommend: ### General @@ -371,7 +371,7 @@ When using {{PROJECT_NAME}}, we recommend: ## Additional Resources - [Our PGP Public Key]({{PGP_KEY_URL}}) -- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) +- [Security Advisories](https://github.com/hyperpolymath/anvomidav/security/advisories) - [Changelog](CHANGELOG.md) - [Contributing Guidelines](CONTRIBUTING.md) - [CVE Database](https://cve.mitre.org/) @@ -383,8 +383,8 @@ When using {{PROJECT_NAME}}, we recommend: | Purpose | Contact | |---------|---------| -| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} | -| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) | +| **Security issues** | [Report via GitHub](https://github.com/hyperpolymath/anvomidav/security/advisories/new) or 6759885+hyperpolymath@users.noreply.github.com | +| **General questions** | [GitHub Discussions](https://github.com/hyperpolymath/anvomidav/discussions) | | **Other enquiries** | See [README](README.md) for contact information | --- @@ -399,8 +399,8 @@ This security policy may be updated from time to time. Significant changes will --- -*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* πŸ›‘οΈ +*Thank you for helping keep Anvomidav and its users safe.* πŸ›‘οΈ --- -Last updated: {{CURRENT_YEAR}} Β· Policy version: 1.0.0 +Last updated: 2026 Β· Policy version: 1.0.0 diff --git a/crates/anv-debug/Cargo.toml b/crates/anv-debug/Cargo.toml index a50eb17..3aff698 100644 --- a/crates/anv-debug/Cargo.toml +++ b/crates/anv-debug/Cargo.toml @@ -6,7 +6,7 @@ name = "anv-debug" version.workspace = true edition.workspace = true rust-version.workspace = true -authors = ["Jonathan D.A. Jewell "] +authors = ["Jonathan D.A. Jewell "] license = "PMPL-1.0-or-later" description = "Interactive debugger for Anvomidav figure skating DSL" repository.workspace = true diff --git a/editors/zed/extension.toml b/editors/zed/extension.toml index 5054910..16e9197 100644 --- a/editors/zed/extension.toml +++ b/editors/zed/extension.toml @@ -4,7 +4,7 @@ name = "Anvomidav" description = "Language support for Anvomidav figure skating choreography DSL" version = "0.1.0" schema_version = 1 -authors = ["hyperpolymath"] +authors = ["Jonathan D.A. Jewell "] repository = "https://github.com/hyperpolymath/anvomidav" [languages.anvomidav] diff --git a/examples/SafeDOMExample.res b/examples/SafeDOMExample.res index 407d5bf..2c1b5b3 100644 --- a/examples/SafeDOMExample.res +++ b/examples/SafeDOMExample.res @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: PMPL-1.0-or-later // Example: Using SafeDOM for formally verified DOM mounting open SafeDOM diff --git a/ffi/zig/build.zig b/ffi/zig/build.zig index fe27f5e..c2081bd 100644 --- a/ffi/zig/build.zig +++ b/ffi/zig/build.zig @@ -1,5 +1,5 @@ // {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: PMPL-1.0-or-later const std = @import("std"); diff --git a/ffi/zig/test/integration_test.zig b/ffi/zig/test/integration_test.zig index e5ba919..d66a302 100644 --- a/ffi/zig/test/integration_test.zig +++ b/ffi/zig/test/integration_test.zig @@ -1,5 +1,5 @@ // {{PROJECT}} Integration Tests -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: PMPL-1.0-or-later // // These tests verify that the Zig FFI correctly implements the Idris2 ABI diff --git a/hooks/validate-codeql.sh b/hooks/validate-codeql.sh index eabe229..c435189 100755 --- a/hooks/validate-codeql.sh +++ b/hooks/validate-codeql.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: PMPL-1.0-or-later # Pre-commit hook: Validate CodeQL language matrix matches repo set -euo pipefail diff --git a/hooks/validate-permissions.sh b/hooks/validate-permissions.sh index f54d5c1..50fce4f 100755 --- a/hooks/validate-permissions.sh +++ b/hooks/validate-permissions.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: PMPL-1.0-or-later # Pre-commit hook: Validate workflow permissions declarations set -euo pipefail ERRORS=0 diff --git a/hooks/validate-sha-pins.sh b/hooks/validate-sha-pins.sh index 5d9647c..c6d9913 100755 --- a/hooks/validate-sha-pins.sh +++ b/hooks/validate-sha-pins.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: PMPL-1.0-or-later # Pre-commit hook: Validate GitHub Actions are SHA-pinned set -euo pipefail diff --git a/hooks/validate-spdx.sh b/hooks/validate-spdx.sh index 2e36879..8f50002 100755 --- a/hooks/validate-spdx.sh +++ b/hooks/validate-spdx.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later +# SPDX-License-Identifier: PMPL-1.0-or-later # Pre-commit hook: Validate SPDX headers in workflow files set -euo pipefail @@ -13,7 +13,7 @@ for workflow in .github/workflows/*.yml .github/workflows/*.yaml; do first_line=$(head -n1 "$workflow") if ! echo "$first_line" | grep -qE "$SPDX_PATTERN"; then echo "ERROR: Missing SPDX header in $workflow" - echo " First line should be: # SPDX-License-Identifier: AGPL-3.0-or-later" + echo " First line should be: # SPDX-License-Identifier: PMPL-1.0-or-later" ERRORS=$((ERRORS + 1)) fi done diff --git a/pkg/Project.toml b/pkg/Project.toml index 0b20632..23b4251 100644 --- a/pkg/Project.toml +++ b/pkg/Project.toml @@ -1,6 +1,6 @@ name = "AnvomidavPkg" uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" -authors = ["Jonathan D.A. Jewell "] +authors = ["Jonathan D.A. Jewell "] version = "1.0.0" [deps]