/ CONTRIBUTING.adoc
CONTRIBUTING.adoc
 1  // SPDX-License-Identifier: AGPL-3.0-or-later
 2  = Contributing to BetLang Playground
 3  
 4  == Getting Started
 5  
 6  1. Fork the repository
 7  2. Create a feature branch from `main`
 8  3. Sign off commits (`git commit -s`)
 9  4. Submit a pull request
10  
11  == Development Setup
12  
13  [source,bash]
14  ----
15  # Clone and enter directory
16  git clone https://github.com/hyperpolymath/betlang-playground.git
17  cd betlang-playground
18  
19  # Install dependencies (Deno required per RSR)
20  deno task dev
21  
22  # Run tests
23  just test
24  
25  # Run ternary logic demo
26  just ternary-demo
27  ----
28  
29  == Commit Guidelines
30  
31  * Conventional commits: `type(scope): description`
32  * Sign all commits (DCO required)
33  * Atomic, focused commits
34  
35  == Code Style
36  
37  * ReScript for application logic (per RSR Language Policy)
38  * Deno for runtime (not Node/npm/bun per RSR)
39  * Descriptive variable names
40  * Comprehensive type annotations for ternary values
41  
42  == Ternary Logic Guidelines
43  
44  When working with ternary logic:
45  
46  * Use proper truth table semantics
47  * Document unknown value propagation
48  * Test all combinations of T/F/U values
49  * Handle uncertainty explicitly
50  
51  == Probabilistic Programming Guidelines
52  
53  When implementing probabilistic features:
54  
55  * Use cryptographically secure randomness where needed
56  * Test numerical stability of probability calculations
57  * Document probability distributions used
58  * Handle edge cases (0, 1, NaN)
59  
60  == Testing
61  
62  [source,bash]
63  ----
64  # Run all tests
65  just test
66  
67  # Run ternary logic tests
68  deno test test/ternary_test.ts
69  
70  # Run probability tests
71  deno test test/probability_test.ts
72  ----
73  
74  == License
75  
76  Contributions licensed under AGPL-3.0-or-later.