@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.
Files changed (53) hide show
  1. package/CHANGELOG.md +38 -215
  2. package/LICENSE +1 -1
  3. package/PRIVACY.md +10 -10
  4. package/README.md +35 -39
  5. package/USAGE.md +27 -50
  6. package/examples/.cursorrules +9 -9
  7. package/examples/instructions/.claude/instructions.md +65 -77
  8. package/examples/instructions/.cursorrules +9 -9
  9. package/examples/instructions/.windsurfrules +9 -9
  10. package/examples/instructions/VOODOCS_INSTRUCTIONS.md +62 -74
  11. package/examples/math_example.py +1 -1
  12. package/examples/phase2_test.py +1 -1
  13. package/examples/test_function_invariants.py +1 -1
  14. package/lib/cli/__init__.py +3 -3
  15. package/lib/cli/benchmark.py +3 -3
  16. package/lib/cli/context.py +1 -1
  17. package/lib/cli/fix.py +1 -1
  18. package/lib/cli/generate.py +1 -1
  19. package/lib/cli/init.py +10 -10
  20. package/lib/cli/instruct.py +1 -1
  21. package/lib/cli/validate.py +3 -3
  22. package/lib/darkarts/annotations/DARKARTS_SYMBOLS.md +95 -110
  23. package/lib/darkarts/annotations/TRANSFORMATION_EXAMPLES.md +27 -29
  24. package/lib/darkarts/annotations/parser.py +215 -36
  25. package/lib/darkarts/cli_darkarts.py +5 -5
  26. package/lib/darkarts/context/ai_instructions.py +12 -12
  27. package/lib/darkarts/context/ai_integrations.py +16 -16
  28. package/lib/darkarts/context/commands.py +4 -4
  29. package/lib/darkarts/context/errors.py +1 -1
  30. package/lib/darkarts/context/models.py +1 -1
  31. package/lib/darkarts/context/ui.py +4 -4
  32. package/lib/darkarts/context/yaml_utils.py +3 -3
  33. package/lib/darkarts/core/loader.py +1 -1
  34. package/lib/darkarts/exceptions.py +3 -3
  35. package/lib/darkarts/parsers/typescript/dist/parser.d.ts +16 -0
  36. package/lib/darkarts/parsers/typescript/dist/parser.d.ts.map +1 -1
  37. package/lib/darkarts/parsers/typescript/dist/parser.js +64 -0
  38. package/lib/darkarts/parsers/typescript/dist/parser.js.map +1 -1
  39. package/lib/darkarts/parsers/typescript/src/parser.ts +68 -0
  40. package/lib/darkarts/plugins/voodocs/ai_native_plugin.py +1 -1
  41. package/lib/darkarts/plugins/voodocs/annotation_validator.py +2 -2
  42. package/lib/darkarts/plugins/voodocs/documentation_generator.py +3 -3
  43. package/lib/darkarts/plugins/voodocs/html_exporter.py +4 -4
  44. package/lib/darkarts/plugins/voodocs/instruction_generator.py +10 -10
  45. package/lib/darkarts/plugins/voodocs/pdf_exporter.py +1 -1
  46. package/lib/darkarts/plugins/voodocs/test_generator.py +1 -1
  47. package/lib/darkarts/telemetry.py +5 -5
  48. package/lib/darkarts/validation/README.md +3 -6
  49. package/package.json +1 -1
  50. package/requirements.txt +2 -2
  51. package/templates/ci/github-actions.yml +64 -64
  52. package/templates/ci/pre-commit-hook.sh +4 -4
  53. package/voodocs_cli.py +1 -1
@@ -1,17 +1,16 @@
1
- # Voodocs Instructions for Generic AI Assistant
1
+ # VooDocs Instructions for Generic AI Assistant
2
2
 
3
- **Project**: Voodocs Example Project
4
- **Generated**: Automatically by Voodocs
3
+ **Project**: VooDocs Example Project
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
- 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.
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
-
15
14
  - Document in AI's native language (mathematical notation)
16
15
  - Automatic generation of comprehensive tests
17
16
  - Property-based testing with Hypothesis
@@ -23,7 +22,7 @@ As an AI coding assistant, you should add `@voodocs` annotations to **every sign
23
22
 
24
23
  ## Core Principles
25
24
 
26
- When writing code with Voodocs annotations, follow these principles:
25
+ When writing code with VooDocs annotations, follow these principles:
27
26
 
28
27
  1. **Annotate as you code** - Add `@voodocs` annotations immediately when creating functions/classes
29
28
  2. **Be precise** - Use mathematical notation for exact specifications
@@ -62,33 +61,33 @@ class ClassName:
62
61
 
63
62
  ### For Functions/Methods
64
63
 
65
- | Field | Required | Description | Example |
66
- | ----------------------- | ----------- | --------------------------------------------- | -------------------------------------------------------------- |
67
- | `preconditions` | Recommended | Conditions that must be true before execution | `["x > 0", "user is authenticated"]` |
68
- | `postconditions` | Recommended | Conditions guaranteed after execution | `["result > 0", "database updated"]` |
69
- | `complexity` | Recommended | Time/space complexity | `"O(n log n)"` or `"O(n)"` |
70
- | `invariants` | Optional | Properties that remain unchanged | `["∀ x: x ∈ original_set ⇒ x ∈ result_set"]` |
71
- | `error_cases` | Optional | Error conditions and exceptions | `["x < 0 → ValueError", "file not found → FileNotFoundError"]` |
72
- | `side_effects` | Optional | External changes made | `["Writes to database", "Sends email"]` |
73
- | `security_implications` | Optional | Security considerations | `["Requires admin role", "Rate limited"]` |
74
- | `assumptions` | Optional | Environmental assumptions | `["Database is available", "Network is stable"]` |
64
+ | Field | Required | Description | Example |
65
+ |-------|----------|-------------|---------|
66
+ | `preconditions` | Recommended | Conditions that must be true before execution | `["x > 0", "user is authenticated"]` |
67
+ | `postconditions` | Recommended | Conditions guaranteed after execution | `["result > 0", "database updated"]` |
68
+ | `complexity` | Recommended | Time/space complexity | `"O(n log n)"` or `"O(n)"` |
69
+ | `invariants` | Optional | Properties that remain unchanged | `["∀ x: x ∈ original_set ⇒ x ∈ result_set"]` |
70
+ | `error_cases` | Optional | Error conditions and exceptions | `["x < 0 → ValueError", "file not found → FileNotFoundError"]` |
71
+ | `side_effects` | Optional | External changes made | `["Writes to database", "Sends email"]` |
72
+ | `security_implications` | Optional | Security considerations | `["Requires admin role", "Rate limited"]` |
73
+ | `assumptions` | Optional | Environmental assumptions | `["Database is available", "Network is stable"]` |
75
74
 
76
75
  ### For Classes
77
76
 
78
- | Field | Description | Example |
79
- | ------------------- | --------------------------- | -------------------------------------------------- |
80
- | `class_invariants` | Properties that always hold | `["∀ item ∈ queue: item.status ∈ VALID_STATUSES"]` |
81
- | `state_transitions` | Valid state changes | `["IDLE → PROCESSING", "PROCESSING → COMPLETE"]` |
82
- | `thread_safety` | Concurrency safety | `"Thread-safe with mutex"` or `"Not thread-safe"` |
77
+ | Field | Description | Example |
78
+ |-------|-------------|---------|
79
+ | `class_invariants` | Properties that always hold | `["∀ item ∈ queue: item.status ∈ VALID_STATUSES"]` |
80
+ | `state_transitions` | Valid state changes | `["IDLE → PROCESSING", "PROCESSING → COMPLETE"]` |
81
+ | `thread_safety` | Concurrency safety | `"Thread-safe with mutex"` or `"Not thread-safe"` |
83
82
 
84
83
  ### For Modules
85
84
 
86
- | Field | Description | Example |
87
- | ---------------- | ----------------------------- | --------------------------------------------- |
88
- | `module_purpose` | High-level module description | `"User authentication and authorization"` |
89
- | `dependencies` | External dependencies | `["@supabase/supabase-js", "bcrypt"]` |
90
- | `assumptions` | Module-level assumptions | `["Database schema v2.0", "Redis available"]` |
91
- | `security_model` | Overall security approach | `"Defense in depth - fails closed"` |
85
+ | Field | Description | Example |
86
+ |-------|-------------|---------|
87
+ | `module_purpose` | High-level module description | `"User authentication and authorization"` |
88
+ | `dependencies` | External dependencies | `["@supabase/supabase-js", "bcrypt"]` |
89
+ | `assumptions` | Module-level assumptions | `["Database schema v2.0", "Redis available"]` |
90
+ | `security_model` | Overall security approach | `"Defense in depth - fails closed"` |
92
91
 
93
92
  ## DarkArts Language Guide
94
93
 
@@ -96,49 +95,49 @@ DarkArts is a mathematical notation language for precise specifications. Use the
96
95
 
97
96
  ### Logical Operators
98
97
 
99
- | Symbol | Meaning | Example |
100
- | ------ | -------------- | ------------------------------ |
101
- | `∧` | AND | `x > 0 ∧ y > 0` |
102
- | `∨` | OR | `x = 0 ∨ y = 0` |
103
- | `¬` | NOT | `¬(x < 0)` |
104
- | `⇒` | IMPLIES | `x > 0 ⇒ result > 0` |
105
- | `⇔` | IF AND ONLY IF | `result = true ⇔ user.isAdmin` |
98
+ | Symbol | Meaning | Example |
99
+ |--------|---------|---------|
100
+ | `∧` | AND | `x > 0 ∧ y > 0` |
101
+ | `∨` | OR | `x = 0 ∨ y = 0` |
102
+ | `¬` | NOT | `¬(x < 0)` |
103
+ | `⇒` | IMPLIES | `x > 0 ⇒ result > 0` |
104
+ | `⇔` | IF AND ONLY IF | `result = true ⇔ user.isAdmin` |
106
105
 
107
106
  ### Quantifiers
108
107
 
109
- | Symbol | Meaning | Example |
110
- | ------ | ------------ | ------------------------- |
111
- | `∀` | FOR ALL | `∀ x ∈ items: x > 0` |
112
- | `∃` | THERE EXISTS | `∃ x ∈ items: x = target` |
108
+ | Symbol | Meaning | Example |
109
+ |--------|---------|---------|
110
+ | `∀` | FOR ALL | `∀ x ∈ items: x > 0` |
111
+ | `∃` | THERE EXISTS | `∃ x ∈ items: x = target` |
113
112
 
114
113
  ### Set Operations
115
114
 
116
- | Symbol | Meaning | Example |
117
- | ------ | --------------- | ---------------------- |
118
- | `∈` | IN / ELEMENT OF | `x ∈ valid_values` |
119
- | `∉` | NOT IN | `x ∉ blacklist` |
120
- | `⊆` | SUBSET OF | `result ⊆ input` |
121
- | `∪` | UNION | `result = set1 ∪ set2` |
122
- | `∩` | INTERSECTION | `common = set1 ∩ set2` |
115
+ | Symbol | Meaning | Example |
116
+ |--------|---------|---------|
117
+ | `∈` | IN / ELEMENT OF | `x ∈ valid_values` |
118
+ | `∉` | NOT IN | `x ∉ blacklist` |
119
+ | `⊆` | SUBSET OF | `result ⊆ input` |
120
+ | `∪` | UNION | `result = set1 ∪ set2` |
121
+ | `∩` | INTERSECTION | `common = set1 ∩ set2` |
123
122
 
124
123
  ### Comparisons
125
124
 
126
- | Symbol | Meaning | Example |
127
- | ------ | --------------------- | ------------------- |
128
- | `≥` | GREATER THAN OR EQUAL | `x ≥ 0` |
129
- | `≤` | LESS THAN OR EQUAL | `x ≤ 100` |
130
- | `≠` | NOT EQUAL | `x ≠ 0` |
131
- | `≈` | APPROXIMATELY EQUAL | `result ≈ expected` |
125
+ | Symbol | Meaning | Example |
126
+ |--------|---------|---------|
127
+ | `≥` | GREATER THAN OR EQUAL | `x ≥ 0` |
128
+ | `≤` | LESS THAN OR EQUAL | `x ≤ 100` |
129
+ | `≠` | NOT EQUAL | `x ≠ 0` |
130
+ | `≈` | APPROXIMATELY EQUAL | `result ≈ expected` |
132
131
 
133
132
  ### Number Sets
134
133
 
135
- | Symbol | Meaning | Example |
136
- | ------ | ------------------------------ | ------- |
137
- | `ℕ` | Natural numbers (0, 1, 2, ...) | `n ∈ ℕ` |
138
- | `ℤ` | Integers (..., -1, 0, 1, ...) | `x ∈ ℤ` |
139
- | `ℝ` | Real numbers | `x ∈ ℝ` |
134
+ | Symbol | Meaning | Example |
135
+ |--------|---------|---------|
136
+ | `ℕ` | Natural numbers (0, 1, 2, ...) | `n ∈ ℕ` |
137
+ | `ℤ` | Integers (..., -1, 0, 1, ...) | `x ∈ ℤ` |
138
+ | `ℝ` | Real numbers | `x ∈ ℝ` |
140
139
 
141
- **Tip**: You can use plain English too! Voodocs understands both mathematical notation and natural language. Mix them for clarity.
140
+ **Tip**: You can use plain English too! VooDocs understands both mathematical notation and natural language. Mix them for clarity.
142
141
 
143
142
  ## Examples
144
143
 
@@ -168,7 +167,7 @@ def calculate_discount(price: float, discount_percent: float) -> float:
168
167
  raise ValueError("Price must be positive")
169
168
  if not 0 <= discount_percent <= 100:
170
169
  raise ValueError("Discount must be between 0 and 100")
171
-
170
+
172
171
  return price * (1 - discount_percent / 100)
173
172
  ```
174
173
 
@@ -220,12 +219,12 @@ class BankAccount:
220
219
  ]
221
220
  thread_safety: "Thread-safe with account-level mutex"
222
221
  """
223
-
222
+
224
223
  def __init__(self, account_id: str):
225
224
  self.balance = 0.0
226
225
  self.transactions = []
227
226
  self.status = "PENDING"
228
-
227
+
229
228
  def deposit(self, amount: float) -> bool:
230
229
  """@voodocs
231
230
  preconditions: [
@@ -315,7 +314,7 @@ complexity: "O(1)"
315
314
  """
316
315
  ```
317
316
 
318
- Voodocs generates:
317
+ VooDocs generates:
319
318
 
320
319
  ```python
321
320
  # Generated test
@@ -333,7 +332,6 @@ def test_property_based_add(x, y):
333
332
  ### 1. Be Specific with Preconditions
334
333
 
335
334
  **Good:**
336
-
337
335
  ```python
338
336
  preconditions: [
339
337
  "amount > 0",
@@ -343,7 +341,6 @@ preconditions: [
343
341
  ```
344
342
 
345
343
  **Avoid:**
346
-
347
344
  ```python
348
345
  preconditions: ["valid input"] # Too vague
349
346
  ```
@@ -351,7 +348,6 @@ preconditions: ["valid input"] # Too vague
351
348
  ### 2. Use Mathematical Notation for Precision
352
349
 
353
350
  **Good:**
354
-
355
351
  ```python
356
352
  postconditions: [
357
353
  "∀ x ∈ result: x ∈ input", # All results are from input
@@ -360,7 +356,6 @@ postconditions: [
360
356
  ```
361
357
 
362
358
  **Avoid:**
363
-
364
359
  ```python
365
360
  postconditions: ["returns filtered list"] # Imprecise
366
361
  ```
@@ -368,21 +363,18 @@ postconditions: ["returns filtered list"] # Imprecise
368
363
  ### 3. Always Specify Complexity
369
364
 
370
365
  **Good:**
371
-
372
366
  ```python
373
367
  complexity: "O(n log n)"
374
368
  ```
375
369
 
376
370
  **Also Good:**
377
-
378
371
  ```python
379
- complexity: "O(n)" # Voodocs infers space as O(1)
372
+ complexity: "O(n)" # VooDocs infers space as O(1)
380
373
  ```
381
374
 
382
375
  ### 4. Document Security Implications
383
376
 
384
377
  **Good:**
385
-
386
378
  ```python
387
379
  security_implications: [
388
380
  "Requires admin role",
@@ -394,7 +386,6 @@ security_implications: [
394
386
  ### 5. Specify Error Cases
395
387
 
396
388
  **Good:**
397
-
398
389
  ```python
399
390
  error_cases: [
400
391
  "amount <= 0 → ValueError",
@@ -406,7 +397,6 @@ error_cases: [
406
397
  ### 6. Use Invariants for Loops and Recursion
407
398
 
408
399
  **Good:**
409
-
410
400
  ```python
411
401
  invariants: [
412
402
  "∀ iteration: 0 <= i < len(arr)",
@@ -417,7 +407,6 @@ invariants: [
417
407
  ### 7. Document Side Effects
418
408
 
419
409
  **Good:**
420
-
421
410
  ```python
422
411
  side_effects: [
423
412
  "Writes to database",
@@ -427,7 +416,6 @@ side_effects: [
427
416
  ```
428
417
 
429
418
  **Avoid:**
430
-
431
419
  ```python
432
420
  side_effects: ["Does stuff"] # Too vague
433
421
  ```
@@ -446,4 +434,4 @@ side_effects: ["Does stuff"] # Too vague
446
434
 
447
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.
448
436
 
449
- **Generated by Voodocs** - AI-native documentation for modern development.
437
+ **Generated by VooDocs** - AI-native documentation for modern development.
@@ -1,5 +1,5 @@
1
1
  """
2
- Example module demonstrating Voodocs annotations and generated tests.
2
+ Example module demonstrating VooDocs annotations and generated tests.
3
3
  """
4
4
 
5
5
  def add_positive(x: int, y: int) -> int:
@@ -1,5 +1,5 @@
1
1
  """
2
- Test file for Voodocs Phase 2 improvements.
2
+ Test file for VooDocs Phase 2 improvements.
3
3
  """
4
4
 
5
5
  def fully_annotated_function(a: int, b: int) -> int:
@@ -1,5 +1,5 @@
1
1
  """
2
- Example demonstrating function-level invariants in Voodocs.
2
+ Example demonstrating function-level invariants in VooDocs.
3
3
 
4
4
  This file shows how to use invariants at the function level to document
5
5
  properties that must hold throughout the function's execution.
@@ -8,9 +8,9 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Main entry point
11
+ VooDocs CLI - Main entry point
12
12
 
13
- This module provides the command-line interface for Voodocs.
13
+ This module provides the command-line interface for VooDocs.
14
14
  """
15
15
 
16
16
  import click
@@ -24,7 +24,7 @@ __version__ = "2.1.3"
24
24
  @click.pass_context
25
25
  def cli(ctx):
26
26
  """
27
- Voodocs - AI-Native Symbolic Documentation System
27
+ VooDocs - AI-Native Symbolic Documentation System
28
28
 
29
29
  Generate and validate @darkarts symbolic annotations in your codebase.
30
30
 
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Benchmark Command
11
+ VooDocs CLI - Benchmark Command
12
12
 
13
13
  Runs performance benchmarks to validate complexity claims in @darkarts annotations.
14
14
  """
@@ -222,7 +222,7 @@ def _generate_html_report(results: Dict[str, Any]) -> str:
222
222
  html = f"""<!DOCTYPE html>
223
223
  <html>
224
224
  <head>
225
- <title>Voodocs Benchmark Report</title>
225
+ <title>VooDocs Benchmark Report</title>
226
226
  <style>
227
227
  body {{ font-family: Arial, sans-serif; margin: 40px; background: #f5f5f5; }}
228
228
  .container {{ max-width: 1200px; margin: 0 auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }}
@@ -242,7 +242,7 @@ def _generate_html_report(results: Dict[str, Any]) -> str:
242
242
  </head>
243
243
  <body>
244
244
  <div class="container">
245
- <h1>📊 Voodocs Benchmark Report</h1>
245
+ <h1>📊 VooDocs Benchmark Report</h1>
246
246
 
247
247
  <div class="summary">
248
248
  <div class="metric">
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Context Command
11
+ VooDocs CLI - Context Command
12
12
 
13
13
  Manages AI context files generated from @darkarts annotations.
14
14
  """
package/lib/cli/fix.py CHANGED
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Fix Command
11
+ VooDocs CLI - Fix Command
12
12
 
13
13
  Automatically fixes validation issues in @darkarts annotations.
14
14
  """
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Generate Command
11
+ VooDocs CLI - Generate Command
12
12
 
13
13
  Generates documentation from @darkarts annotations.
14
14
  """
package/lib/cli/init.py CHANGED
@@ -8,9 +8,9 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs Init Command
11
+ VooDocs Init Command
12
12
 
13
- Interactive wizard to initialize or upgrade a project with Voodocs.
13
+ Interactive wizard to initialize or upgrade a project with VooDocs.
14
14
  Re-runnable to add missing features after upgrades.
15
15
  """
16
16
 
@@ -35,7 +35,7 @@ from typing import Optional, Dict, Any
35
35
  )
36
36
  def init(non_interactive, upgrade):
37
37
  """
38
- Initialize or upgrade a project with Voodocs.
38
+ Initialize or upgrade a project with VooDocs.
39
39
 
40
40
  This interactive wizard will:
41
41
  - Set up your project configuration
@@ -70,14 +70,14 @@ def init(non_interactive, upgrade):
70
70
  click.echo()
71
71
  if is_upgrade:
72
72
  click.echo(click.style('╔══════════════════════════════════════════╗', fg='yellow', bold=True))
73
- click.echo(click.style('║ 🔄 Voodocs Upgrade Wizard ║', fg='yellow', bold=True))
73
+ click.echo(click.style('║ 🔄 VooDocs Upgrade Wizard ║', fg='yellow', bold=True))
74
74
  click.echo(click.style('╚══════════════════════════════════════════╝', fg='yellow', bold=True))
75
75
  click.echo()
76
76
  click.echo(click.style('Existing configuration detected!', fg='yellow'))
77
77
  click.echo('This wizard will help you add any missing features.')
78
78
  else:
79
79
  click.echo(click.style('╔══════════════════════════════════════════╗', fg='cyan', bold=True))
80
- click.echo(click.style('║ 🎉 Welcome to Voodocs Setup Wizard ║', fg='cyan', bold=True))
80
+ click.echo(click.style('║ 🎉 Welcome to VooDocs Setup Wizard ║', fg='cyan', bold=True))
81
81
  click.echo(click.style('╚══════════════════════════════════════════╝', fg='cyan', bold=True))
82
82
  click.echo()
83
83
 
@@ -361,11 +361,11 @@ def init(non_interactive, upgrade):
361
361
  click.echo()
362
362
  if is_upgrade:
363
363
  click.echo(click.style('╔══════════════════════════════════════════╗', fg='green', bold=True))
364
- click.echo(click.style('║ ✅ Voodocs Upgrade Complete! ║', fg='green', bold=True))
364
+ click.echo(click.style('║ ✅ VooDocs Upgrade Complete! ║', fg='green', bold=True))
365
365
  click.echo(click.style('╚══════════════════════════════════════════╝', fg='green', bold=True))
366
366
  else:
367
367
  click.echo(click.style('╔══════════════════════════════════════════╗', fg='green', bold=True))
368
- click.echo(click.style('║ 🎉 Voodocs Setup Complete! ║', fg='green', bold=True))
368
+ click.echo(click.style('║ 🎉 VooDocs Setup Complete! ║', fg='green', bold=True))
369
369
  click.echo(click.style('╚══════════════════════════════════════════╝', fg='green', bold=True))
370
370
  click.echo()
371
371
  click.echo(click.style('Next steps:', fg='cyan', bold=True))
@@ -532,7 +532,7 @@ def _add_to_gitignore(cwd: Path, entry: str):
532
532
 
533
533
  if content and not content.endswith('\n'):
534
534
  content += '\n'
535
- content += f'\n# Voodocs\n{entry}\n'
535
+ content += f'\n# VooDocs\n{entry}\n'
536
536
 
537
537
  gitignore.write_text(content)
538
538
 
@@ -648,10 +648,10 @@ def _install_git_hooks(cwd: Path):
648
648
  pre_commit_hook = hooks_dir / 'pre-commit'
649
649
 
650
650
  hook_content = '''#!/bin/sh
651
- # Voodocs auto-update hook
651
+ # VooDocs auto-update hook
652
652
  # Updates context files before commit
653
653
 
654
- echo "🔄 Updating Voodocs context..."
654
+ echo "🔄 Updating VooDocs context..."
655
655
  voodocs generate --quiet 2>&1 || true
656
656
  git add context/
657
657
 
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs Instruct Command
11
+ VooDocs Instruct Command
12
12
 
13
13
  Generate AI-specific instructions for writing @darkarts annotations.
14
14
  """
@@ -8,7 +8,7 @@
8
8
  """
9
9
 
10
10
  """
11
- Voodocs CLI - Validate Command
11
+ VooDocs CLI - Validate Command
12
12
 
13
13
  Validates @darkarts annotations in Python files.
14
14
  """
@@ -309,7 +309,7 @@ def display_html_results(
309
309
  <!DOCTYPE html>
310
310
  <html>
311
311
  <head>
312
- <title>Voodocs Validation Report</title>
312
+ <title>VooDocs Validation Report</title>
313
313
  <style>
314
314
  body { font-family: Arial, sans-serif; margin: 20px; }
315
315
  h1 { color: #333; }
@@ -319,7 +319,7 @@ def display_html_results(
319
319
  </style>
320
320
  </head>
321
321
  <body>
322
- <h1>Voodocs Validation Report</h1>
322
+ <h1>VooDocs Validation Report</h1>
323
323
 
324
324
  <h2>Semantic Validation</h2>
325
325
  """