@voodocs/cli 2.1.3 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +215 -38
- package/LICENSE +1 -1
- package/PRIVACY.md +10 -10
- package/README.md +39 -35
- package/USAGE.md +50 -27
- package/examples/.cursorrules +9 -9
- package/examples/instructions/.claude/instructions.md +77 -65
- package/examples/instructions/.cursorrules +9 -9
- package/examples/instructions/.windsurfrules +9 -9
- package/examples/instructions/VOODOCS_INSTRUCTIONS.md +74 -62
- package/examples/math_example.py +1 -1
- package/examples/phase2_test.py +1 -1
- package/examples/test_function_invariants.py +1 -1
- package/lib/cli/__init__.py +3 -3
- package/lib/cli/benchmark.py +3 -3
- package/lib/cli/context.py +1 -1
- package/lib/cli/fix.py +1 -1
- package/lib/cli/generate.py +60 -1
- package/lib/cli/init.py +10 -10
- package/lib/cli/instruct.py +1 -1
- package/lib/cli/validate.py +3 -3
- package/lib/darkarts/annotations/DARKARTS_SYMBOLS.md +110 -95
- package/lib/darkarts/annotations/TRANSFORMATION_EXAMPLES.md +29 -27
- package/lib/darkarts/annotations/parser.py +1 -1
- package/lib/darkarts/cli_darkarts.py +5 -5
- package/lib/darkarts/context/ai_instructions.py +12 -12
- package/lib/darkarts/context/ai_integrations.py +16 -16
- package/lib/darkarts/context/commands.py +4 -4
- package/lib/darkarts/context/errors.py +1 -1
- package/lib/darkarts/context/models.py +1 -1
- package/lib/darkarts/context/ui.py +4 -4
- package/lib/darkarts/context/yaml_utils.py +3 -3
- package/lib/darkarts/core/loader.py +1 -1
- package/lib/darkarts/documentation/__init__.py +10 -0
- package/lib/darkarts/documentation/categorizer.py +137 -0
- package/lib/darkarts/documentation/consolidator.py +303 -0
- package/lib/darkarts/exceptions.py +3 -3
- package/lib/darkarts/plugins/voodocs/ai_native_plugin.py +1 -1
- package/lib/darkarts/plugins/voodocs/annotation_validator.py +2 -2
- package/lib/darkarts/plugins/voodocs/documentation_generator.py +3 -3
- package/lib/darkarts/plugins/voodocs/html_exporter.py +4 -4
- package/lib/darkarts/plugins/voodocs/instruction_generator.py +10 -10
- package/lib/darkarts/plugins/voodocs/pdf_exporter.py +1 -1
- package/lib/darkarts/plugins/voodocs/test_generator.py +1 -1
- package/lib/darkarts/telemetry.py +5 -5
- package/lib/darkarts/validation/README.md +6 -3
- package/package.json +2 -1
- package/requirements.txt +2 -2
- package/templates/ci/github-actions.yml +64 -64
- package/templates/ci/pre-commit-hook.sh +4 -4
- package/voodocs_cli.py +1 -1
package/LICENSE
CHANGED
package/PRIVACY.md
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Voodocs Privacy Policy
|
|
2
2
|
|
|
3
3
|
**Last updated:** 2025-12-19
|
|
4
4
|
|
|
5
|
-
This Privacy Policy explains how
|
|
5
|
+
This Privacy Policy explains how Voodocs collects, uses, and discloses information about you. This policy applies when you use the Voodocs command-line interface (CLI) and its related services.
|
|
6
6
|
|
|
7
7
|
## 1. Information We Collect
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Voodocs is designed with privacy as a core principle. We collect minimal, anonymous information to help us improve the product and understand how it is used.
|
|
10
10
|
|
|
11
11
|
### Anonymous Telemetry
|
|
12
12
|
|
|
13
|
-
By default,
|
|
13
|
+
By default, Voodocs collects anonymous telemetry data about CLI usage. This data is not linked to your identity and does not include any personal information or code content.
|
|
14
14
|
|
|
15
15
|
We collect the following anonymous data:
|
|
16
16
|
|
|
17
|
-
- **Command Usage**: Which
|
|
17
|
+
- **Command Usage**: Which Voodocs commands are executed (e.g., `init`, `generate`).
|
|
18
18
|
- **Success/Failure Rates**: Whether commands succeed or fail.
|
|
19
19
|
- **Performance Metrics**: Command execution duration.
|
|
20
20
|
- **Error Information**: The type of error if a command fails (e.g., `ParserError`).
|
|
21
21
|
- **Project Metadata**: The programming language of the project (e.g., `python`, `typescript`).
|
|
22
22
|
- **Usage Statistics**: Number of files processed, number of annotations found.
|
|
23
|
-
- **Environment Information**: Operating system,
|
|
23
|
+
- **Environment Information**: Operating system, Voodocs version, Python version, Node.js version.
|
|
24
24
|
- **Anonymous Session ID**: A randomly generated UUID to group events from a single CLI session. This ID is not tied to you or your machine and resets periodically.
|
|
25
25
|
|
|
26
26
|
### What We DO NOT Collect
|
|
27
27
|
|
|
28
|
-
We are developers ourselves and we respect your privacy.
|
|
28
|
+
We are developers ourselves and we respect your privacy. Voodocs **never** collects:
|
|
29
29
|
|
|
30
30
|
- **Personally Identifiable Information (PII)**: Your name, email, IP address, or any other personal data.
|
|
31
31
|
- **Code or Source Files**: The content of your source code, annotations, or generated documentation.
|
|
@@ -37,16 +37,16 @@ We are developers ourselves and we respect your privacy. VooDocs **never** colle
|
|
|
37
37
|
|
|
38
38
|
We use the anonymous telemetry data we collect to:
|
|
39
39
|
|
|
40
|
-
- **Improve
|
|
40
|
+
- **Improve Voodocs**: Understand which features are most popular and where users encounter problems.
|
|
41
41
|
- **Enhance Performance**: Identify and fix performance bottlenecks.
|
|
42
42
|
- **Prioritize Features**: Make data-driven decisions about what to build next.
|
|
43
|
-
- **Track Adoption**: Measure the overall growth and adoption of
|
|
43
|
+
- **Track Adoption**: Measure the overall growth and adoption of Voodocs.
|
|
44
44
|
|
|
45
45
|
## 3. Data Storage and Security
|
|
46
46
|
|
|
47
47
|
- **Data Storage**: Anonymous telemetry data is stored in a secure Supabase database.
|
|
48
48
|
- **Data Retention**: We retain anonymous telemetry data for a maximum of 90 days.
|
|
49
|
-
- **Access Control**: Access to the telemetry data is strictly limited to authorized
|
|
49
|
+
- **Access Control**: Access to the telemetry data is strictly limited to authorized Voodocs personnel.
|
|
50
50
|
|
|
51
51
|
## 4. Your Choices
|
|
52
52
|
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Voodocs - AI-Native Symbolic Documentation
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@voodocs/cli)
|
|
4
4
|
[](https://voodocs.com/terms)
|
|
5
5
|
[](https://voodocs.com/support)
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Voodocs** is the world's first AI-native symbolic documentation system. Using mathematical notation and semantic validation, it creates documentation that's both human-readable and optimized for AI consumption.
|
|
8
8
|
|
|
9
|
-
## What Makes
|
|
9
|
+
## What Makes Voodocs Unique?
|
|
10
10
|
|
|
11
11
|
✅ **Symbolic Language** - Mathematical Unicode symbols (⊢, ∂, ⚠, ⊳, ⊲, ⊨, ⚡, 🔒) for concise, precise documentation
|
|
12
12
|
✅ **Semantic Validation** - Verifies that your documentation matches your code
|
|
@@ -37,6 +37,7 @@ voodocs init
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
This will:
|
|
40
|
+
|
|
40
41
|
- Create `.voodocs.json` configuration
|
|
41
42
|
- Generate AI instructions for your coding assistant
|
|
42
43
|
- Create example annotated files
|
|
@@ -95,34 +96,34 @@ def authenticate_user(user_id: str, password: str) -> Optional[str]:
|
|
|
95
96
|
|
|
96
97
|
### Module-Level Annotations
|
|
97
98
|
|
|
98
|
-
| Symbol | Field
|
|
99
|
-
|
|
100
|
-
| ⊢
|
|
101
|
-
| ∂
|
|
102
|
-
| ⚠
|
|
99
|
+
| Symbol | Field | Description | Example |
|
|
100
|
+
| ------ | -------------- | ------------------------ | -------------------------------- |
|
|
101
|
+
| ⊢ | module_purpose | What this module does | `⊢{User authentication service}` |
|
|
102
|
+
| ∂ | dependencies | External dependencies | `∂{bcrypt, jsonwebtoken}` |
|
|
103
|
+
| ⚠ | assumptions | Preconditions for module | `⚠{Database is initialized}` |
|
|
103
104
|
|
|
104
105
|
### Function-Level Annotations
|
|
105
106
|
|
|
106
|
-
| Symbol | Field
|
|
107
|
-
|
|
108
|
-
| ⊳
|
|
109
|
-
| ⊲
|
|
110
|
-
| ⊨
|
|
111
|
-
| ⚡
|
|
112
|
-
| 🔒
|
|
107
|
+
| Symbol | Field | Description | Example |
|
|
108
|
+
| ------ | -------------- | --------------------------- | --------------------------------- |
|
|
109
|
+
| ⊳ | preconditions | Input requirements | `⊳{userId must be a valid UUID}` |
|
|
110
|
+
| ⊲ | postconditions | Output guarantees | `⊲{Returns user object ∨ null}` |
|
|
111
|
+
| ⊨ | invariants | Conditions that always hold | `⊨{Does ¬ modify database}` |
|
|
112
|
+
| ⚡ | complexity | Time/space complexity | `⚡{O(n log n)}` |
|
|
113
|
+
| 🔒 | security | Security implications | `🔒{Password hashed with bcrypt}` |
|
|
113
114
|
|
|
114
115
|
### Logic Operators
|
|
115
116
|
|
|
116
|
-
| Symbol | Meaning
|
|
117
|
-
|
|
118
|
-
| ∧
|
|
119
|
-
| ∨
|
|
120
|
-
| ¬
|
|
121
|
-
| ∈
|
|
122
|
-
| ∃
|
|
123
|
-
| ∀
|
|
124
|
-
| ⇒
|
|
125
|
-
| ⇔
|
|
117
|
+
| Symbol | Meaning | Example |
|
|
118
|
+
| ------ | -------------- | ----------------------------- |
|
|
119
|
+
| ∧ | and | `x > 0 ∧ y > 0` |
|
|
120
|
+
| ∨ | or | `Returns user ∨ null` |
|
|
121
|
+
| ¬ | not | `¬ empty string` |
|
|
122
|
+
| ∈ | in/element of | `user ∈ database` |
|
|
123
|
+
| ∃ | exists | `∃ user: user.id = userId` |
|
|
124
|
+
| ∀ | for all | `∀ item ∈ array: item ≠ null` |
|
|
125
|
+
| ⇒ | implies | `x > 0 ⇒ result > 0` |
|
|
126
|
+
| ⇔ | if and only if | `valid ⇔ checksum matches` |
|
|
126
127
|
|
|
127
128
|
---
|
|
128
129
|
|
|
@@ -130,7 +131,7 @@ def authenticate_user(user_id: str, password: str) -> Optional[str]:
|
|
|
130
131
|
|
|
131
132
|
### `voodocs init`
|
|
132
133
|
|
|
133
|
-
Initialize
|
|
134
|
+
Initialize Voodocs in your project with an interactive wizard:
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
137
|
voodocs init # Interactive setup
|
|
@@ -197,7 +198,7 @@ voodocs benchmark ./src --html # HTML report
|
|
|
197
198
|
|
|
198
199
|
## Configuration
|
|
199
200
|
|
|
200
|
-
The `.voodocs.json` file configures
|
|
201
|
+
The `.voodocs.json` file configures Voodocs for your project:
|
|
201
202
|
|
|
202
203
|
```json
|
|
203
204
|
{
|
|
@@ -206,11 +207,7 @@ The `.voodocs.json` file configures VooDocs for your project:
|
|
|
206
207
|
"format": "darkarts",
|
|
207
208
|
"repository": "https://github.com/user/my-project",
|
|
208
209
|
"private": true,
|
|
209
|
-
"exclude": [
|
|
210
|
-
"node_modules",
|
|
211
|
-
"dist",
|
|
212
|
-
"build"
|
|
213
|
-
]
|
|
210
|
+
"exclude": ["node_modules", "dist", "build"]
|
|
214
211
|
}
|
|
215
212
|
```
|
|
216
213
|
|
|
@@ -218,7 +215,7 @@ The `.voodocs.json` file configures VooDocs for your project:
|
|
|
218
215
|
|
|
219
216
|
## CI/CD Integration
|
|
220
217
|
|
|
221
|
-
Add
|
|
218
|
+
Add Voodocs validation to your CI pipeline:
|
|
222
219
|
|
|
223
220
|
```yaml
|
|
224
221
|
# .github/workflows/validate.yml
|
|
@@ -231,7 +228,7 @@ jobs:
|
|
|
231
228
|
- uses: actions/checkout@v3
|
|
232
229
|
- uses: actions/setup-node@v3
|
|
233
230
|
with:
|
|
234
|
-
node-version:
|
|
231
|
+
node-version: "18"
|
|
235
232
|
- run: npm install -g @voodocs/cli
|
|
236
233
|
- run: voodocs validate ./src --strict --recursive
|
|
237
234
|
```
|
|
@@ -241,10 +238,13 @@ jobs:
|
|
|
241
238
|
## Why Symbolic Format?
|
|
242
239
|
|
|
243
240
|
### 1. **Concise**
|
|
241
|
+
|
|
244
242
|
```
|
|
245
243
|
⊳{userId ∈ database ∧ password ≥8 chars}
|
|
246
244
|
```
|
|
245
|
+
|
|
247
246
|
vs.
|
|
247
|
+
|
|
248
248
|
```
|
|
249
249
|
preconditions: [
|
|
250
250
|
"userId must exist in database",
|
|
@@ -253,15 +253,19 @@ preconditions: [
|
|
|
253
253
|
```
|
|
254
254
|
|
|
255
255
|
### 2. **Precise**
|
|
256
|
+
|
|
256
257
|
Mathematical notation eliminates ambiguity
|
|
257
258
|
|
|
258
259
|
### 3. **AI-Optimized**
|
|
260
|
+
|
|
259
261
|
Fewer tokens = lower costs for AI processing
|
|
260
262
|
|
|
261
263
|
### 4. **Language-Independent**
|
|
264
|
+
|
|
262
265
|
Symbols transcend language barriers
|
|
263
266
|
|
|
264
267
|
### 5. **Unique**
|
|
268
|
+
|
|
265
269
|
Patent-pending innovation (VDA-004)
|
|
266
270
|
|
|
267
271
|
---
|
|
@@ -303,4 +307,4 @@ Commercial License - See [LICENSE](LICENSE) for details.
|
|
|
303
307
|
|
|
304
308
|
---
|
|
305
309
|
|
|
306
|
-
**
|
|
310
|
+
**Voodocs** - The world's first AI-native symbolic documentation system.
|
package/USAGE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Voodocs Usage Guide
|
|
2
2
|
|
|
3
3
|
**Version**: v0.1.0
|
|
4
4
|
|
|
5
|
-
This guide provides a comprehensive overview of
|
|
5
|
+
This guide provides a comprehensive overview of Voodocs, its commands, and best practices for using it in your projects.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -34,7 +34,7 @@ This guide provides a comprehensive overview of VooDocs, its commands, and best
|
|
|
34
34
|
|
|
35
35
|
## Installation
|
|
36
36
|
|
|
37
|
-
Install the
|
|
37
|
+
Install the Voodocs CLI globally using `npm` or `pnpm`:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
npm install -g @voodocs/cli
|
|
@@ -46,16 +46,20 @@ This will make the `voodocs` command available in your terminal.
|
|
|
46
46
|
|
|
47
47
|
## Quick Start
|
|
48
48
|
|
|
49
|
-
1. **Initialize
|
|
49
|
+
1. **Initialize Voodocs** in your project:
|
|
50
|
+
|
|
50
51
|
```bash
|
|
51
52
|
voodocs init
|
|
52
53
|
```
|
|
54
|
+
|
|
53
55
|
This will create a `.voodocs/config.json` file.
|
|
54
56
|
|
|
55
57
|
2. **Generate AI Instructions** for your coding assistant:
|
|
58
|
+
|
|
56
59
|
```bash
|
|
57
60
|
voodocs instruct
|
|
58
61
|
```
|
|
62
|
+
|
|
59
63
|
This creates a `VOODOCS_INSTRUCTIONS.md` file. Provide this to your AI assistant (e.g., add to `.cursorrules`).
|
|
60
64
|
|
|
61
65
|
3. **Start Coding** with `@voodocs` annotations. Your AI assistant will help you write them.
|
|
@@ -72,14 +76,16 @@ This will make the `voodocs` command available in your terminal.
|
|
|
72
76
|
|
|
73
77
|
### `init`
|
|
74
78
|
|
|
75
|
-
Initialize
|
|
79
|
+
Initialize Voodocs in a project. Creates a `.voodocs/config.json` file.
|
|
76
80
|
|
|
77
81
|
**Usage**:
|
|
82
|
+
|
|
78
83
|
```bash
|
|
79
84
|
voodocs init [--project-name <name>] [--language <lang>]
|
|
80
85
|
```
|
|
81
86
|
|
|
82
87
|
**Arguments**:
|
|
88
|
+
|
|
83
89
|
- `--project-name`: The name of the project (defaults to current directory name).
|
|
84
90
|
- `--language`: The primary language of the project (`python`, `typescript`, `javascript`).
|
|
85
91
|
|
|
@@ -90,11 +96,13 @@ If arguments are not provided, `init` will run in interactive mode.
|
|
|
90
96
|
Generate AI assistant instructions.
|
|
91
97
|
|
|
92
98
|
**Usage**:
|
|
99
|
+
|
|
93
100
|
```bash
|
|
94
101
|
voodocs instruct [--assistant <name>] [--output <file>]
|
|
95
102
|
```
|
|
96
103
|
|
|
97
104
|
**Arguments**:
|
|
105
|
+
|
|
98
106
|
- `--assistant`: The AI assistant to generate instructions for (`cursor`, `claude`, `copilot`, `windsurf`, `generic`).
|
|
99
107
|
- `--output`: The output file path (defaults to `.cursorrules`, `.claude/instructions.md`, etc.).
|
|
100
108
|
|
|
@@ -103,11 +111,13 @@ voodocs instruct [--assistant <name>] [--output <file>]
|
|
|
103
111
|
Generate docs, tests, and API specs from annotations.
|
|
104
112
|
|
|
105
113
|
**Usage**:
|
|
114
|
+
|
|
106
115
|
```bash
|
|
107
116
|
voodocs generate <path> [--output <dir>] [--docs-only] [--tests-only] [--api-only] [--verbose]
|
|
108
117
|
```
|
|
109
118
|
|
|
110
119
|
**Arguments**:
|
|
120
|
+
|
|
111
121
|
- `<path>`: The path to the source code to process.
|
|
112
122
|
- `--output`: The output directory (defaults to `./voodocs-output`).
|
|
113
123
|
- `--docs-only`: Generate only documentation.
|
|
@@ -120,11 +130,13 @@ voodocs generate <path> [--output <dir>] [--docs-only] [--tests-only] [--api-onl
|
|
|
120
130
|
Show project status and statistics.
|
|
121
131
|
|
|
122
132
|
**Usage**:
|
|
133
|
+
|
|
123
134
|
```bash
|
|
124
135
|
voodocs status [<path>]
|
|
125
136
|
```
|
|
126
137
|
|
|
127
138
|
**Output**:
|
|
139
|
+
|
|
128
140
|
- Annotation coverage percentage
|
|
129
141
|
- Quality score (0-100)
|
|
130
142
|
- Breakdown of annotated vs. unannotated functions/classes
|
|
@@ -134,11 +146,13 @@ voodocs status [<path>]
|
|
|
134
146
|
Watch files and automatically regenerate documentation on changes.
|
|
135
147
|
|
|
136
148
|
**Usage**:
|
|
149
|
+
|
|
137
150
|
```bash
|
|
138
151
|
voodocs watch <path> [--interval <seconds>]
|
|
139
152
|
```
|
|
140
153
|
|
|
141
154
|
**Arguments**:
|
|
155
|
+
|
|
142
156
|
- `<path>`: The path to watch for changes.
|
|
143
157
|
- `--interval`: The watch interval in seconds (defaults to 2).
|
|
144
158
|
|
|
@@ -147,11 +161,13 @@ voodocs watch <path> [--interval <seconds>]
|
|
|
147
161
|
Validate annotation quality and correctness.
|
|
148
162
|
|
|
149
163
|
**Usage**:
|
|
164
|
+
|
|
150
165
|
```bash
|
|
151
166
|
voodocs validate <path> [--strict] [--format <fmt>]
|
|
152
167
|
```
|
|
153
168
|
|
|
154
169
|
**Arguments**:
|
|
170
|
+
|
|
155
171
|
- `<path>`: The path to validate.
|
|
156
172
|
- `--strict`: Treat warnings as errors.
|
|
157
173
|
- `--format`: Output format (`text` or `json`).
|
|
@@ -161,11 +177,13 @@ voodocs validate <path> [--strict] [--format <fmt>]
|
|
|
161
177
|
Check annotation coverage and quality (for CI/CD).
|
|
162
178
|
|
|
163
179
|
**Usage**:
|
|
180
|
+
|
|
164
181
|
```bash
|
|
165
182
|
voodocs check <path> [--min-coverage <pct>] [--min-quality <pct>]
|
|
166
183
|
```
|
|
167
184
|
|
|
168
185
|
**Arguments**:
|
|
186
|
+
|
|
169
187
|
- `<path>`: The path to check.
|
|
170
188
|
- `--min-coverage`: The minimum required annotation coverage (0-100).
|
|
171
189
|
- `--min-quality`: The minimum required quality score (0-100).
|
|
@@ -177,11 +195,13 @@ Exits with code 1 if checks fail.
|
|
|
177
195
|
Export documentation to different formats.
|
|
178
196
|
|
|
179
197
|
**Usage**:
|
|
198
|
+
|
|
180
199
|
```bash
|
|
181
200
|
voodocs export <file> --format <fmt> [--output <file>]
|
|
182
201
|
```
|
|
183
202
|
|
|
184
203
|
**Arguments**:
|
|
204
|
+
|
|
185
205
|
- `<file>`: The Markdown documentation file to export.
|
|
186
206
|
- `--format`: The export format (`html` or `pdf`).
|
|
187
207
|
- `--output`: The output file path.
|
|
@@ -190,7 +210,7 @@ voodocs export <file> --format <fmt> [--output <file>]
|
|
|
190
210
|
|
|
191
211
|
## Configuration
|
|
192
212
|
|
|
193
|
-
|
|
213
|
+
Voodocs is configured via the `.voodocs/config.json` file. The following options are available:
|
|
194
214
|
|
|
195
215
|
```json
|
|
196
216
|
{
|
|
@@ -200,10 +220,7 @@ VooDocs is configured via the `.voodocs/config.json` file. The following options
|
|
|
200
220
|
"output_dir": "./voodocs-output",
|
|
201
221
|
"test_framework": "pytest",
|
|
202
222
|
"api_format": "openapi",
|
|
203
|
-
"exclude_patterns": [
|
|
204
|
-
"**/test_*.py",
|
|
205
|
-
"**/node_modules/**"
|
|
206
|
-
],
|
|
223
|
+
"exclude_patterns": ["**/test_*.py", "**/node_modules/**"],
|
|
207
224
|
"include_patterns": [],
|
|
208
225
|
"annotation_coverage_threshold": 50
|
|
209
226
|
}
|
|
@@ -216,6 +233,7 @@ VooDocs is configured via the `.voodocs/config.json` file. The following options
|
|
|
216
233
|
### Annotation Syntax
|
|
217
234
|
|
|
218
235
|
**Python**:
|
|
236
|
+
|
|
219
237
|
```python
|
|
220
238
|
def my_function(x):
|
|
221
239
|
"""
|
|
@@ -227,6 +245,7 @@ def my_function(x):
|
|
|
227
245
|
```
|
|
228
246
|
|
|
229
247
|
**TypeScript/JavaScript**:
|
|
248
|
+
|
|
230
249
|
```typescript
|
|
231
250
|
/**
|
|
232
251
|
* @voodocs
|
|
@@ -240,20 +259,20 @@ function myFunction(x: number): number {
|
|
|
240
259
|
|
|
241
260
|
### Annotation Fields
|
|
242
261
|
|
|
243
|
-
| Field
|
|
244
|
-
|
|
245
|
-
| `module_purpose`
|
|
246
|
-
| `dependencies`
|
|
247
|
-
| `assumptions`
|
|
248
|
-
| `preconditions`
|
|
249
|
-
| `postconditions`
|
|
250
|
-
| `invariants`
|
|
251
|
-
| `complexity`
|
|
252
|
-
| `error_cases`
|
|
253
|
-
| `security_model`
|
|
254
|
-
| `thread_safety`
|
|
255
|
-
| `state_transitions` | How the state of a class changes.
|
|
256
|
-
| `examples`
|
|
262
|
+
| Field | Description |
|
|
263
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
264
|
+
| `module_purpose` | High-level purpose of the module. |
|
|
265
|
+
| `dependencies` | Key dependencies of the module. |
|
|
266
|
+
| `assumptions` | Assumptions made by the module. |
|
|
267
|
+
| `preconditions` | Conditions that must be true before a function is called. |
|
|
268
|
+
| `postconditions` | Conditions that must be true after a function returns. |
|
|
269
|
+
| `invariants` | Properties that remain unchanged throughout execution. For functions: conditions that hold during execution. For classes: use `class_invariants` for object state constraints. |
|
|
270
|
+
| `complexity` | Time and space complexity of an algorithm. |
|
|
271
|
+
| `error_cases` | How the function behaves in error scenarios. |
|
|
272
|
+
| `security_model` | Security implications and threat model. |
|
|
273
|
+
| `thread_safety` | Thread safety guarantees. |
|
|
274
|
+
| `state_transitions` | How the state of a class changes. |
|
|
275
|
+
| `examples` | Example usage of the function. |
|
|
257
276
|
|
|
258
277
|
### DarkArts Language
|
|
259
278
|
|
|
@@ -271,6 +290,7 @@ The DarkArts language is a formal notation used in annotations. It includes:
|
|
|
271
290
|
### Function with Invariants
|
|
272
291
|
|
|
273
292
|
**Python**:
|
|
293
|
+
|
|
274
294
|
```python
|
|
275
295
|
def transfer_funds(from_account, to_account, amount):
|
|
276
296
|
"""@voodocs
|
|
@@ -297,6 +317,7 @@ def transfer_funds(from_account, to_account, amount):
|
|
|
297
317
|
### Class with Invariants
|
|
298
318
|
|
|
299
319
|
**Python**:
|
|
320
|
+
|
|
300
321
|
```python
|
|
301
322
|
class BankAccount:
|
|
302
323
|
"""@voodocs
|
|
@@ -305,7 +326,7 @@ class BankAccount:
|
|
|
305
326
|
"account_id is unique and immutable"
|
|
306
327
|
]
|
|
307
328
|
"""
|
|
308
|
-
|
|
329
|
+
|
|
309
330
|
def deposit(self, amount):
|
|
310
331
|
"""@voodocs
|
|
311
332
|
preconditions: ["amount > 0"]
|
|
@@ -327,8 +348,9 @@ See the `examples/` directory for more complete examples in Python and TypeScrip
|
|
|
327
348
|
Use the `voodocs check` command in your CI/CD pipeline to enforce documentation standards.
|
|
328
349
|
|
|
329
350
|
**GitHub Actions Example**:
|
|
351
|
+
|
|
330
352
|
```yaml
|
|
331
|
-
name:
|
|
353
|
+
name: Voodocs Check
|
|
332
354
|
|
|
333
355
|
on: [push, pull_request]
|
|
334
356
|
|
|
@@ -353,8 +375,9 @@ jobs:
|
|
|
353
375
|
|
|
354
376
|
**Problem**: TypeScript parser not working.
|
|
355
377
|
**Solution**: The TypeScript parser is built automatically on `postinstall`. If it fails, you can build it manually:
|
|
378
|
+
|
|
356
379
|
```bash
|
|
357
|
-
# Navigate to the
|
|
380
|
+
# Navigate to the Voodocs installation directory
|
|
358
381
|
cd $(npm root -g)/@voodocs/cli
|
|
359
382
|
|
|
360
383
|
# Build the parser
|
package/examples/.cursorrules
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Voodocs Instructions for Cursor
|
|
2
2
|
|
|
3
|
-
**Project**:
|
|
4
|
-
**Generated**: Automatically by
|
|
3
|
+
**Project**: Voodocs Demo
|
|
4
|
+
**Generated**: Automatically by Voodocs
|
|
5
5
|
**Purpose**: Guide AI assistants to document code using @voodocs annotations
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Overview
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Voodocs is an AI-native documentation system that allows you to document code in **DarkArts language** - a mathematical and logical notation that AI naturally understands. Your annotations will be automatically translated into human-readable documentation, property-based tests, and API specifications.
|
|
12
12
|
|
|
13
13
|
**Key Benefits:**
|
|
14
14
|
- Document in AI's native language (mathematical notation)
|
|
@@ -22,7 +22,7 @@ As an AI coding assistant, you should add `@voodocs` annotations to **every sign
|
|
|
22
22
|
|
|
23
23
|
## Core Principles
|
|
24
24
|
|
|
25
|
-
When writing code with
|
|
25
|
+
When writing code with Voodocs annotations, follow these principles:
|
|
26
26
|
|
|
27
27
|
1. **Annotate as you code** - Add `@voodocs` annotations immediately when creating functions/classes
|
|
28
28
|
2. **Be precise** - Use mathematical notation for exact specifications
|
|
@@ -137,7 +137,7 @@ DarkArts is a mathematical notation language for precise specifications. Use the
|
|
|
137
137
|
| `ℤ` | Integers (..., -1, 0, 1, ...) | `x ∈ ℤ` |
|
|
138
138
|
| `ℝ` | Real numbers | `x ∈ ℝ` |
|
|
139
139
|
|
|
140
|
-
**Tip**: You can use plain English too!
|
|
140
|
+
**Tip**: You can use plain English too! Voodocs understands both mathematical notation and natural language. Mix them for clarity.
|
|
141
141
|
|
|
142
142
|
## Examples
|
|
143
143
|
|
|
@@ -314,7 +314,7 @@ complexity: "O(1)"
|
|
|
314
314
|
"""
|
|
315
315
|
```
|
|
316
316
|
|
|
317
|
-
|
|
317
|
+
Voodocs generates:
|
|
318
318
|
|
|
319
319
|
```python
|
|
320
320
|
# Generated test
|
|
@@ -369,7 +369,7 @@ complexity: "O(n log n)"
|
|
|
369
369
|
|
|
370
370
|
**Also Good:**
|
|
371
371
|
```python
|
|
372
|
-
complexity: "O(n)" #
|
|
372
|
+
complexity: "O(n)" # Voodocs infers space as O(1)
|
|
373
373
|
```
|
|
374
374
|
|
|
375
375
|
### 4. Document Security Implications
|
|
@@ -434,4 +434,4 @@ side_effects: ["Does stuff"] # Too vague
|
|
|
434
434
|
|
|
435
435
|
By documenting in DarkArts language, you're not just writing comments - you're creating a **formal specification** that generates tests, documentation, and API specs automatically.
|
|
436
436
|
|
|
437
|
-
**Generated by
|
|
437
|
+
**Generated by Voodocs** - AI-native documentation for modern development.
|