Skip to content

Commit 6d01607

Browse files
Claude/add academic proofs g3z zu (#10)
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent 2fbe3c9 commit 6d01607

10 files changed

Lines changed: 1200 additions & 119 deletions

File tree

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*.scm text eol=lf
1919
*.ncl text eol=lf
2020
*.nix text eol=lf
21+
*.anv text eol=lf linguist-language=Anvomidav
2122

2223
# Docs
2324
*.md text eol=lf diff=markdown
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3+
"name": "Anvomidav",
4+
"scopeName": "source.anv",
5+
"fileTypes": ["anv"],
6+
"patterns": [
7+
{ "include": "#comments" },
8+
{ "include": "#keywords" },
9+
{ "include": "#elements" },
10+
{ "include": "#skating" },
11+
{ "include": "#literals" },
12+
{ "include": "#operators" }
13+
],
14+
"repository": {
15+
"comments": {
16+
"patterns": [
17+
{
18+
"name": "comment.line.documentation.anv",
19+
"match": "///.*$"
20+
},
21+
{
22+
"name": "comment.line.anv",
23+
"match": "//.*$"
24+
}
25+
]
26+
},
27+
"keywords": {
28+
"patterns": [
29+
{
30+
"name": "keyword.control.anv",
31+
"match": "\\b(program|segment|sequence|import|fn|let|in|if|then|else|at|duration|beat)\\b"
32+
},
33+
{
34+
"name": "keyword.other.segment-kind.anv",
35+
"match": "\\b(short|free|pattern|rhythm|exhibition)\\b"
36+
}
37+
]
38+
},
39+
"elements": {
40+
"patterns": [
41+
{
42+
"name": "keyword.element.anv",
43+
"match": "\\b(jump|spin|step|lift|throw|twist|death_spiral|choreographic)\\b"
44+
}
45+
]
46+
},
47+
"skating": {
48+
"patterns": [
49+
{
50+
"name": "constant.language.rotation.anv",
51+
"match": "\\b(single|double|triple|quad)\\b"
52+
},
53+
{
54+
"name": "constant.language.jump.anv",
55+
"match": "\\b(axel|lutz|flip|loop|salchow|toe_loop|euler)\\b"
56+
},
57+
{
58+
"name": "constant.language.spin.anv",
59+
"match": "\\b(upright|sit|camel|layback|biellmann)\\b"
60+
},
61+
{
62+
"name": "constant.language.step.anv",
63+
"match": "\\b(straight|circular|serpentine|diagonal|midline)\\b"
64+
},
65+
{
66+
"name": "constant.language.level.anv",
67+
"match": "\\b(B|L1|L2|L3|L4)\\b"
68+
},
69+
{
70+
"name": "constant.language.lift-group.anv",
71+
"match": "\\b(Gr1|Gr2|Gr3|Gr4|Gr5)\\b"
72+
},
73+
{
74+
"name": "constant.language.edge.anv",
75+
"match": "\\b(LFO|LFI|LBO|LBI|RFO|RFI|RBO|RBI)\\b"
76+
},
77+
{
78+
"name": "constant.language.choreo.anv",
79+
"match": "\\b(spiral|spread|ina|hydroblading|pivot)\\b"
80+
}
81+
]
82+
},
83+
"literals": {
84+
"patterns": [
85+
{
86+
"name": "constant.numeric.time.anv",
87+
"match": "\\b[0-9]+:[0-9]+(:[0-9]+)?\\b"
88+
},
89+
{
90+
"name": "constant.numeric.anv",
91+
"match": "\\b[0-9]+(\\.[0-9]+)?\\b"
92+
},
93+
{
94+
"name": "string.quoted.double.anv",
95+
"begin": "\"",
96+
"end": "\"",
97+
"patterns": [
98+
{
99+
"name": "constant.character.escape.anv",
100+
"match": "\\\\."
101+
}
102+
]
103+
},
104+
{
105+
"name": "constant.language.boolean.anv",
106+
"match": "\\b(true|false)\\b"
107+
}
108+
]
109+
},
110+
"operators": {
111+
"patterns": [
112+
{
113+
"name": "keyword.operator.anv",
114+
"match": "(->|=>|::|\\+|-|\\*|/|%|==|!=|<=|>=|<|>|&&|\\|\\||!)"
115+
},
116+
{
117+
"name": "punctuation.anv",
118+
"match": "[{}()\\[\\]:;,@]"
119+
}
120+
]
121+
}
122+
}
123+
}

CONTRIBUTING.md

Lines changed: 104 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,134 @@
1+
# Contributing to Anvomidav
2+
3+
Thank you for your interest in contributing to Anvomidav, the domain-specific language for figure skating choreography.
4+
5+
## Language Policy
6+
7+
This project follows the Hyperpolymath Standard for language selection:
8+
9+
| Allowed | Use Case |
10+
|---------|----------|
11+
| **Rust** | Core implementation, CLI, libraries |
12+
| **ReScript** | Future web UI components |
13+
| **Deno** | JavaScript runtime (if needed) |
14+
15+
**Not Permitted:** TypeScript, Node.js, Go, Python (except SaltStack).
16+
17+
## Development Setup
18+
19+
### Prerequisites
20+
21+
- Rust 1.75+ (stable)
22+
- Cargo
23+
24+
### Building
25+
26+
```bash
127
# Clone the repository
2-
git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git
3-
cd {{REPO}}
28+
git clone https://github.com/hyperpolymath/anvomidav.git
29+
cd anvomidav
430

5-
# Using Nix (recommended for reproducibility)
6-
nix develop
31+
# Build all crates
32+
cargo build --workspace
733

8-
# Or using toolbox/distrobox
9-
toolbox create {{REPO}}-dev
10-
toolbox enter {{REPO}}-dev
11-
# Install dependencies manually
34+
# Run tests
35+
cargo test --workspace
1236

13-
# Verify setup
14-
just check # or: cargo check / mix compile / etc.
15-
just test # Run test suite
37+
# Run clippy
38+
cargo clippy --workspace
1639
```
1740

18-
### Repository Structure
41+
### Project Structure
42+
1943
```
20-
{{REPO}}/
21-
├── src/ # Source code (Perimeter 1-2)
22-
├── lib/ # Library code (Perimeter 1-2)
23-
├── extensions/ # Extensions (Perimeter 2)
24-
├── plugins/ # Plugins (Perimeter 2)
25-
├── tools/ # Tooling (Perimeter 2)
26-
├── docs/ # Documentation (Perimeter 3)
27-
│ ├── architecture/ # ADRs, specs (Perimeter 2)
28-
│ └── proposals/ # RFCs (Perimeter 3)
29-
├── examples/ # Examples (Perimeter 3)
30-
├── spec/ # Spec tests (Perimeter 3)
31-
├── tests/ # Test suite (Perimeter 2-3)
32-
├── .well-known/ # Protocol files (Perimeter 1-3)
33-
├── .github/ # GitHub config (Perimeter 1)
34-
│ ├── ISSUE_TEMPLATE/
35-
│ └── workflows/
36-
├── CHANGELOG.md
37-
├── CODE_OF_CONDUCT.md
38-
├── CONTRIBUTING.md # This file
39-
├── GOVERNANCE.md
40-
├── LICENSE
41-
├── MAINTAINERS.md
42-
├── README.adoc
43-
├── SECURITY.md
44-
├── flake.nix # Nix flake (Perimeter 1)
45-
└── justfile # Task runner (Perimeter 1)
44+
anvomidav/
45+
├── crates/
46+
│ ├── anv-core/ # Core types and utilities
47+
│ ├── anv-syntax/ # Lexer and parser
48+
│ ├── anv-types/ # Type checking
49+
│ ├── anv-semantics/ # ISU rule validation
50+
│ ├── anv-ir/ # Intermediate representation
51+
│ ├── anv-viz/ # SVG visualization
52+
│ └── anv-cli/ # Command-line interface
53+
├── examples/ # Example .anv programs
54+
└── docs/ # Documentation
4655
```
4756

48-
---
57+
## Making Changes
4958

50-
## How to Contribute
59+
### Code Style
5160

52-
### Reporting Bugs
61+
- Follow Rust conventions (run `cargo fmt`)
62+
- No warnings allowed (run `cargo clippy`)
63+
- All public APIs must be documented
64+
- SPDX license headers on all source files:
65+
```rust
66+
// SPDX-FileCopyrightText: 2025 hyperpolymath
67+
// SPDX-License-Identifier: MIT OR AGPL-3.0-or-later
68+
```
5369

54-
**Before reporting**:
55-
1. Search existing issues
56-
2. Check if it's already fixed in `{{MAIN_BRANCH}}`
57-
3. Determine which perimeter the bug affects
70+
### Testing
5871

59-
**When reporting**:
72+
- Write tests for new functionality
73+
- Ensure all tests pass: `cargo test --workspace`
74+
- Add integration tests for CLI changes
6075

61-
Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include:
76+
### Commit Messages
6277

63-
- Clear, descriptive title
64-
- Environment details (OS, versions, toolchain)
65-
- Steps to reproduce
66-
- Expected vs actual behaviour
67-
- Logs, screenshots, or minimal reproduction
78+
Use clear, descriptive commit messages:
6879

69-
### Suggesting Features
80+
```
81+
Add pairs skating element validation
7082
71-
**Before suggesting**:
72-
1. Check the [roadmap](ROADMAP.md) if available
73-
2. Search existing issues and discussions
74-
3. Consider which perimeter the feature belongs to
83+
- Implement lift group validation
84+
- Add throw jump ISU limits
85+
- Update tests for pairs short program
86+
```
7587

76-
**When suggesting**:
88+
## Pull Request Process
7789

78-
Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include:
90+
1. Fork the repository
91+
2. Create a feature branch (`git checkout -b feature/my-feature`)
92+
3. Make your changes
93+
4. Run tests and clippy
94+
5. Commit with clear messages
95+
6. Push to your fork
96+
7. Open a Pull Request
7997

80-
- Problem statement (what pain point does this solve?)
81-
- Proposed solution
82-
- Alternatives considered
83-
- Which perimeter this affects
98+
### PR Checklist
8499

85-
### Your First Contribution
100+
- [ ] All tests pass
101+
- [ ] No clippy warnings
102+
- [ ] Code is formatted (`cargo fmt`)
103+
- [ ] Documentation updated (if applicable)
104+
- [ ] CHANGELOG updated (for user-facing changes)
86105

87-
Look for issues labelled:
106+
## Areas for Contribution
88107

89-
- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks
90-
- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed
91-
- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements
92-
- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope
108+
### Good First Issues
93109

94-
---
110+
- Add more example programs for different disciplines
111+
- Improve error messages
112+
- Add test cases for edge cases
95113

96-
## Development Workflow
114+
### Intermediate
97115

98-
### Branch Naming
99-
```
100-
docs/short-description # Documentation (P3)
101-
test/what-added # Test additions (P3)
102-
feat/short-description # New features (P2)
103-
fix/issue-number-description # Bug fixes (P2)
104-
refactor/what-changed # Code improvements (P2)
105-
security/what-fixed # Security fixes (P1-2)
106-
```
116+
- Implement additional choreographic elements
117+
- Enhance SVG visualizations
118+
- Add more ISU rule validations
107119

108-
### Commit Messages
120+
### Advanced
109121

110-
We follow [Conventional Commits](https://www.conventionalcommits.org/):
111-
```
112-
<type>(<scope>): <description>
122+
- Tree-sitter grammar for editor support
123+
- LSP server implementation
124+
- Animation/timeline export
125+
126+
## Getting Help
127+
128+
- Open an issue for questions
129+
- Check existing issues before creating new ones
130+
- Use discussions for general questions
113131

114-
[optional body]
132+
## License
115133

116-
[optional footer]
134+
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT OR AGPL-3.0-or-later).

0 commit comments

Comments
 (0)