@voodocs/cli 2.2.1 → 2.2.2
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 +38 -215
- package/LICENSE +1 -1
- package/PRIVACY.md +10 -10
- package/README.md +35 -39
- package/USAGE.md +27 -50
- package/examples/.cursorrules +9 -9
- package/examples/instructions/.claude/instructions.md +65 -77
- package/examples/instructions/.cursorrules +9 -9
- package/examples/instructions/.windsurfrules +9 -9
- package/examples/instructions/VOODOCS_INSTRUCTIONS.md +62 -74
- 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 +1 -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 +95 -110
- package/lib/darkarts/annotations/TRANSFORMATION_EXAMPLES.md +27 -29
- package/lib/darkarts/annotations/parser.py +215 -36
- 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/exceptions.py +3 -3
- package/lib/darkarts/parsers/typescript/dist/parser.d.ts +16 -0
- package/lib/darkarts/parsers/typescript/dist/parser.d.ts.map +1 -1
- package/lib/darkarts/parsers/typescript/dist/parser.js +64 -0
- package/lib/darkarts/parsers/typescript/dist/parser.js.map +1 -1
- package/lib/darkarts/parsers/typescript/src/parser.ts +68 -0
- 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 +3 -6
- package/package.json +1 -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,7 +37,6 @@ voodocs init
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
This will:
|
|
40
|
-
|
|
41
40
|
- Create `.voodocs.json` configuration
|
|
42
41
|
- Generate AI instructions for your coding assistant
|
|
43
42
|
- Create example annotated files
|
|
@@ -96,34 +95,34 @@ def authenticate_user(user_id: str, password: str) -> Optional[str]:
|
|
|
96
95
|
|
|
97
96
|
### Module-Level Annotations
|
|
98
97
|
|
|
99
|
-
| Symbol | Field
|
|
100
|
-
|
|
101
|
-
| ⊢
|
|
102
|
-
| ∂
|
|
103
|
-
| ⚠
|
|
98
|
+
| Symbol | Field | Description | Example |
|
|
99
|
+
|--------|-------|-------------|---------|
|
|
100
|
+
| ⊢ | module_purpose | What this module does | `⊢{User authentication service}` |
|
|
101
|
+
| ∂ | dependencies | External dependencies | `∂{bcrypt, jsonwebtoken}` |
|
|
102
|
+
| ⚠ | assumptions | Preconditions for module | `⚠{Database is initialized}` |
|
|
104
103
|
|
|
105
104
|
### Function-Level Annotations
|
|
106
105
|
|
|
107
|
-
| Symbol | Field
|
|
108
|
-
|
|
109
|
-
| ⊳
|
|
110
|
-
| ⊲
|
|
111
|
-
| ⊨
|
|
112
|
-
| ⚡
|
|
113
|
-
| 🔒
|
|
106
|
+
| Symbol | Field | Description | Example |
|
|
107
|
+
|--------|-------|-------------|---------|
|
|
108
|
+
| ⊳ | preconditions | Input requirements | `⊳{userId must be a valid UUID}` |
|
|
109
|
+
| ⊲ | postconditions | Output guarantees | `⊲{Returns user object ∨ null}` |
|
|
110
|
+
| ⊨ | invariants | Conditions that always hold | `⊨{Does ¬ modify database}` |
|
|
111
|
+
| ⚡ | complexity | Time/space complexity | `⚡{O(n log n)}` |
|
|
112
|
+
| 🔒 | security | Security implications | `🔒{Password hashed with bcrypt}` |
|
|
114
113
|
|
|
115
114
|
### Logic Operators
|
|
116
115
|
|
|
117
|
-
| Symbol | Meaning
|
|
118
|
-
|
|
119
|
-
| ∧
|
|
120
|
-
| ∨
|
|
121
|
-
| ¬
|
|
122
|
-
| ∈
|
|
123
|
-
| ∃
|
|
124
|
-
| ∀
|
|
125
|
-
| ⇒
|
|
126
|
-
| ⇔
|
|
116
|
+
| Symbol | Meaning | Example |
|
|
117
|
+
|--------|---------|---------|
|
|
118
|
+
| ∧ | and | `x > 0 ∧ y > 0` |
|
|
119
|
+
| ∨ | or | `Returns user ∨ null` |
|
|
120
|
+
| ¬ | not | `¬ empty string` |
|
|
121
|
+
| ∈ | in/element of | `user ∈ database` |
|
|
122
|
+
| ∃ | exists | `∃ user: user.id = userId` |
|
|
123
|
+
| ∀ | for all | `∀ item ∈ array: item ≠ null` |
|
|
124
|
+
| ⇒ | implies | `x > 0 ⇒ result > 0` |
|
|
125
|
+
| ⇔ | if and only if | `valid ⇔ checksum matches` |
|
|
127
126
|
|
|
128
127
|
---
|
|
129
128
|
|
|
@@ -131,7 +130,7 @@ def authenticate_user(user_id: str, password: str) -> Optional[str]:
|
|
|
131
130
|
|
|
132
131
|
### `voodocs init`
|
|
133
132
|
|
|
134
|
-
Initialize
|
|
133
|
+
Initialize VooDocs in your project with an interactive wizard:
|
|
135
134
|
|
|
136
135
|
```bash
|
|
137
136
|
voodocs init # Interactive setup
|
|
@@ -198,7 +197,7 @@ voodocs benchmark ./src --html # HTML report
|
|
|
198
197
|
|
|
199
198
|
## Configuration
|
|
200
199
|
|
|
201
|
-
The `.voodocs.json` file configures
|
|
200
|
+
The `.voodocs.json` file configures VooDocs for your project:
|
|
202
201
|
|
|
203
202
|
```json
|
|
204
203
|
{
|
|
@@ -207,7 +206,11 @@ The `.voodocs.json` file configures Voodocs for your project:
|
|
|
207
206
|
"format": "darkarts",
|
|
208
207
|
"repository": "https://github.com/user/my-project",
|
|
209
208
|
"private": true,
|
|
210
|
-
"exclude": [
|
|
209
|
+
"exclude": [
|
|
210
|
+
"node_modules",
|
|
211
|
+
"dist",
|
|
212
|
+
"build"
|
|
213
|
+
]
|
|
211
214
|
}
|
|
212
215
|
```
|
|
213
216
|
|
|
@@ -215,7 +218,7 @@ The `.voodocs.json` file configures Voodocs for your project:
|
|
|
215
218
|
|
|
216
219
|
## CI/CD Integration
|
|
217
220
|
|
|
218
|
-
Add
|
|
221
|
+
Add VooDocs validation to your CI pipeline:
|
|
219
222
|
|
|
220
223
|
```yaml
|
|
221
224
|
# .github/workflows/validate.yml
|
|
@@ -228,7 +231,7 @@ jobs:
|
|
|
228
231
|
- uses: actions/checkout@v3
|
|
229
232
|
- uses: actions/setup-node@v3
|
|
230
233
|
with:
|
|
231
|
-
node-version:
|
|
234
|
+
node-version: '18'
|
|
232
235
|
- run: npm install -g @voodocs/cli
|
|
233
236
|
- run: voodocs validate ./src --strict --recursive
|
|
234
237
|
```
|
|
@@ -238,13 +241,10 @@ jobs:
|
|
|
238
241
|
## Why Symbolic Format?
|
|
239
242
|
|
|
240
243
|
### 1. **Concise**
|
|
241
|
-
|
|
242
244
|
```
|
|
243
245
|
⊳{userId ∈ database ∧ password ≥8 chars}
|
|
244
246
|
```
|
|
245
|
-
|
|
246
247
|
vs.
|
|
247
|
-
|
|
248
248
|
```
|
|
249
249
|
preconditions: [
|
|
250
250
|
"userId must exist in database",
|
|
@@ -253,19 +253,15 @@ preconditions: [
|
|
|
253
253
|
```
|
|
254
254
|
|
|
255
255
|
### 2. **Precise**
|
|
256
|
-
|
|
257
256
|
Mathematical notation eliminates ambiguity
|
|
258
257
|
|
|
259
258
|
### 3. **AI-Optimized**
|
|
260
|
-
|
|
261
259
|
Fewer tokens = lower costs for AI processing
|
|
262
260
|
|
|
263
261
|
### 4. **Language-Independent**
|
|
264
|
-
|
|
265
262
|
Symbols transcend language barriers
|
|
266
263
|
|
|
267
264
|
### 5. **Unique**
|
|
268
|
-
|
|
269
265
|
Patent-pending innovation (VDA-004)
|
|
270
266
|
|
|
271
267
|
---
|
|
@@ -307,4 +303,4 @@ Commercial License - See [LICENSE](LICENSE) for details.
|
|
|
307
303
|
|
|
308
304
|
---
|
|
309
305
|
|
|
310
|
-
**
|
|
306
|
+
**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,20 +46,16 @@ This will make the `voodocs` command available in your terminal.
|
|
|
46
46
|
|
|
47
47
|
## Quick Start
|
|
48
48
|
|
|
49
|
-
1. **Initialize
|
|
50
|
-
|
|
49
|
+
1. **Initialize VooDocs** in your project:
|
|
51
50
|
```bash
|
|
52
51
|
voodocs init
|
|
53
52
|
```
|
|
54
|
-
|
|
55
53
|
This will create a `.voodocs/config.json` file.
|
|
56
54
|
|
|
57
55
|
2. **Generate AI Instructions** for your coding assistant:
|
|
58
|
-
|
|
59
56
|
```bash
|
|
60
57
|
voodocs instruct
|
|
61
58
|
```
|
|
62
|
-
|
|
63
59
|
This creates a `VOODOCS_INSTRUCTIONS.md` file. Provide this to your AI assistant (e.g., add to `.cursorrules`).
|
|
64
60
|
|
|
65
61
|
3. **Start Coding** with `@voodocs` annotations. Your AI assistant will help you write them.
|
|
@@ -76,16 +72,14 @@ This will make the `voodocs` command available in your terminal.
|
|
|
76
72
|
|
|
77
73
|
### `init`
|
|
78
74
|
|
|
79
|
-
Initialize
|
|
75
|
+
Initialize VooDocs in a project. Creates a `.voodocs/config.json` file.
|
|
80
76
|
|
|
81
77
|
**Usage**:
|
|
82
|
-
|
|
83
78
|
```bash
|
|
84
79
|
voodocs init [--project-name <name>] [--language <lang>]
|
|
85
80
|
```
|
|
86
81
|
|
|
87
82
|
**Arguments**:
|
|
88
|
-
|
|
89
83
|
- `--project-name`: The name of the project (defaults to current directory name).
|
|
90
84
|
- `--language`: The primary language of the project (`python`, `typescript`, `javascript`).
|
|
91
85
|
|
|
@@ -96,13 +90,11 @@ If arguments are not provided, `init` will run in interactive mode.
|
|
|
96
90
|
Generate AI assistant instructions.
|
|
97
91
|
|
|
98
92
|
**Usage**:
|
|
99
|
-
|
|
100
93
|
```bash
|
|
101
94
|
voodocs instruct [--assistant <name>] [--output <file>]
|
|
102
95
|
```
|
|
103
96
|
|
|
104
97
|
**Arguments**:
|
|
105
|
-
|
|
106
98
|
- `--assistant`: The AI assistant to generate instructions for (`cursor`, `claude`, `copilot`, `windsurf`, `generic`).
|
|
107
99
|
- `--output`: The output file path (defaults to `.cursorrules`, `.claude/instructions.md`, etc.).
|
|
108
100
|
|
|
@@ -111,13 +103,11 @@ voodocs instruct [--assistant <name>] [--output <file>]
|
|
|
111
103
|
Generate docs, tests, and API specs from annotations.
|
|
112
104
|
|
|
113
105
|
**Usage**:
|
|
114
|
-
|
|
115
106
|
```bash
|
|
116
107
|
voodocs generate <path> [--output <dir>] [--docs-only] [--tests-only] [--api-only] [--verbose]
|
|
117
108
|
```
|
|
118
109
|
|
|
119
110
|
**Arguments**:
|
|
120
|
-
|
|
121
111
|
- `<path>`: The path to the source code to process.
|
|
122
112
|
- `--output`: The output directory (defaults to `./voodocs-output`).
|
|
123
113
|
- `--docs-only`: Generate only documentation.
|
|
@@ -130,13 +120,11 @@ voodocs generate <path> [--output <dir>] [--docs-only] [--tests-only] [--api-onl
|
|
|
130
120
|
Show project status and statistics.
|
|
131
121
|
|
|
132
122
|
**Usage**:
|
|
133
|
-
|
|
134
123
|
```bash
|
|
135
124
|
voodocs status [<path>]
|
|
136
125
|
```
|
|
137
126
|
|
|
138
127
|
**Output**:
|
|
139
|
-
|
|
140
128
|
- Annotation coverage percentage
|
|
141
129
|
- Quality score (0-100)
|
|
142
130
|
- Breakdown of annotated vs. unannotated functions/classes
|
|
@@ -146,13 +134,11 @@ voodocs status [<path>]
|
|
|
146
134
|
Watch files and automatically regenerate documentation on changes.
|
|
147
135
|
|
|
148
136
|
**Usage**:
|
|
149
|
-
|
|
150
137
|
```bash
|
|
151
138
|
voodocs watch <path> [--interval <seconds>]
|
|
152
139
|
```
|
|
153
140
|
|
|
154
141
|
**Arguments**:
|
|
155
|
-
|
|
156
142
|
- `<path>`: The path to watch for changes.
|
|
157
143
|
- `--interval`: The watch interval in seconds (defaults to 2).
|
|
158
144
|
|
|
@@ -161,13 +147,11 @@ voodocs watch <path> [--interval <seconds>]
|
|
|
161
147
|
Validate annotation quality and correctness.
|
|
162
148
|
|
|
163
149
|
**Usage**:
|
|
164
|
-
|
|
165
150
|
```bash
|
|
166
151
|
voodocs validate <path> [--strict] [--format <fmt>]
|
|
167
152
|
```
|
|
168
153
|
|
|
169
154
|
**Arguments**:
|
|
170
|
-
|
|
171
155
|
- `<path>`: The path to validate.
|
|
172
156
|
- `--strict`: Treat warnings as errors.
|
|
173
157
|
- `--format`: Output format (`text` or `json`).
|
|
@@ -177,13 +161,11 @@ voodocs validate <path> [--strict] [--format <fmt>]
|
|
|
177
161
|
Check annotation coverage and quality (for CI/CD).
|
|
178
162
|
|
|
179
163
|
**Usage**:
|
|
180
|
-
|
|
181
164
|
```bash
|
|
182
165
|
voodocs check <path> [--min-coverage <pct>] [--min-quality <pct>]
|
|
183
166
|
```
|
|
184
167
|
|
|
185
168
|
**Arguments**:
|
|
186
|
-
|
|
187
169
|
- `<path>`: The path to check.
|
|
188
170
|
- `--min-coverage`: The minimum required annotation coverage (0-100).
|
|
189
171
|
- `--min-quality`: The minimum required quality score (0-100).
|
|
@@ -195,13 +177,11 @@ Exits with code 1 if checks fail.
|
|
|
195
177
|
Export documentation to different formats.
|
|
196
178
|
|
|
197
179
|
**Usage**:
|
|
198
|
-
|
|
199
180
|
```bash
|
|
200
181
|
voodocs export <file> --format <fmt> [--output <file>]
|
|
201
182
|
```
|
|
202
183
|
|
|
203
184
|
**Arguments**:
|
|
204
|
-
|
|
205
185
|
- `<file>`: The Markdown documentation file to export.
|
|
206
186
|
- `--format`: The export format (`html` or `pdf`).
|
|
207
187
|
- `--output`: The output file path.
|
|
@@ -210,7 +190,7 @@ voodocs export <file> --format <fmt> [--output <file>]
|
|
|
210
190
|
|
|
211
191
|
## Configuration
|
|
212
192
|
|
|
213
|
-
|
|
193
|
+
VooDocs is configured via the `.voodocs/config.json` file. The following options are available:
|
|
214
194
|
|
|
215
195
|
```json
|
|
216
196
|
{
|
|
@@ -220,7 +200,10 @@ Voodocs is configured via the `.voodocs/config.json` file. The following options
|
|
|
220
200
|
"output_dir": "./voodocs-output",
|
|
221
201
|
"test_framework": "pytest",
|
|
222
202
|
"api_format": "openapi",
|
|
223
|
-
"exclude_patterns": [
|
|
203
|
+
"exclude_patterns": [
|
|
204
|
+
"**/test_*.py",
|
|
205
|
+
"**/node_modules/**"
|
|
206
|
+
],
|
|
224
207
|
"include_patterns": [],
|
|
225
208
|
"annotation_coverage_threshold": 50
|
|
226
209
|
}
|
|
@@ -233,7 +216,6 @@ Voodocs is configured via the `.voodocs/config.json` file. The following options
|
|
|
233
216
|
### Annotation Syntax
|
|
234
217
|
|
|
235
218
|
**Python**:
|
|
236
|
-
|
|
237
219
|
```python
|
|
238
220
|
def my_function(x):
|
|
239
221
|
"""
|
|
@@ -245,7 +227,6 @@ def my_function(x):
|
|
|
245
227
|
```
|
|
246
228
|
|
|
247
229
|
**TypeScript/JavaScript**:
|
|
248
|
-
|
|
249
230
|
```typescript
|
|
250
231
|
/**
|
|
251
232
|
* @voodocs
|
|
@@ -259,20 +240,20 @@ function myFunction(x: number): number {
|
|
|
259
240
|
|
|
260
241
|
### Annotation Fields
|
|
261
242
|
|
|
262
|
-
| Field
|
|
263
|
-
|
|
264
|
-
| `module_purpose`
|
|
265
|
-
| `dependencies`
|
|
266
|
-
| `assumptions`
|
|
267
|
-
| `preconditions`
|
|
268
|
-
| `postconditions`
|
|
269
|
-
| `invariants`
|
|
270
|
-
| `complexity`
|
|
271
|
-
| `error_cases`
|
|
272
|
-
| `security_model`
|
|
273
|
-
| `thread_safety`
|
|
274
|
-
| `state_transitions` | How the state of a class changes.
|
|
275
|
-
| `examples`
|
|
243
|
+
| Field | Description |
|
|
244
|
+
|---|---|
|
|
245
|
+
| `module_purpose` | High-level purpose of the module. |
|
|
246
|
+
| `dependencies` | Key dependencies of the module. |
|
|
247
|
+
| `assumptions` | Assumptions made by the module. |
|
|
248
|
+
| `preconditions` | Conditions that must be true before a function is called. |
|
|
249
|
+
| `postconditions` | Conditions that must be true after a function returns. |
|
|
250
|
+
| `invariants` | Properties that remain unchanged throughout execution. For functions: conditions that hold during execution. For classes: use `class_invariants` for object state constraints. |
|
|
251
|
+
| `complexity` | Time and space complexity of an algorithm. |
|
|
252
|
+
| `error_cases` | How the function behaves in error scenarios. |
|
|
253
|
+
| `security_model` | Security implications and threat model. |
|
|
254
|
+
| `thread_safety` | Thread safety guarantees. |
|
|
255
|
+
| `state_transitions` | How the state of a class changes. |
|
|
256
|
+
| `examples` | Example usage of the function. |
|
|
276
257
|
|
|
277
258
|
### DarkArts Language
|
|
278
259
|
|
|
@@ -290,7 +271,6 @@ The DarkArts language is a formal notation used in annotations. It includes:
|
|
|
290
271
|
### Function with Invariants
|
|
291
272
|
|
|
292
273
|
**Python**:
|
|
293
|
-
|
|
294
274
|
```python
|
|
295
275
|
def transfer_funds(from_account, to_account, amount):
|
|
296
276
|
"""@voodocs
|
|
@@ -317,7 +297,6 @@ def transfer_funds(from_account, to_account, amount):
|
|
|
317
297
|
### Class with Invariants
|
|
318
298
|
|
|
319
299
|
**Python**:
|
|
320
|
-
|
|
321
300
|
```python
|
|
322
301
|
class BankAccount:
|
|
323
302
|
"""@voodocs
|
|
@@ -326,7 +305,7 @@ class BankAccount:
|
|
|
326
305
|
"account_id is unique and immutable"
|
|
327
306
|
]
|
|
328
307
|
"""
|
|
329
|
-
|
|
308
|
+
|
|
330
309
|
def deposit(self, amount):
|
|
331
310
|
"""@voodocs
|
|
332
311
|
preconditions: ["amount > 0"]
|
|
@@ -348,9 +327,8 @@ See the `examples/` directory for more complete examples in Python and TypeScrip
|
|
|
348
327
|
Use the `voodocs check` command in your CI/CD pipeline to enforce documentation standards.
|
|
349
328
|
|
|
350
329
|
**GitHub Actions Example**:
|
|
351
|
-
|
|
352
330
|
```yaml
|
|
353
|
-
name:
|
|
331
|
+
name: VooDocs Check
|
|
354
332
|
|
|
355
333
|
on: [push, pull_request]
|
|
356
334
|
|
|
@@ -375,9 +353,8 @@ jobs:
|
|
|
375
353
|
|
|
376
354
|
**Problem**: TypeScript parser not working.
|
|
377
355
|
**Solution**: The TypeScript parser is built automatically on `postinstall`. If it fails, you can build it manually:
|
|
378
|
-
|
|
379
356
|
```bash
|
|
380
|
-
# Navigate to the
|
|
357
|
+
# Navigate to the VooDocs installation directory
|
|
381
358
|
cd $(npm root -g)/@voodocs/cli
|
|
382
359
|
|
|
383
360
|
# 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.
|