@relipa/ai-flow-kit 0.0.4-beta.3 → 0.0.5-beta.0

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 (39) hide show
  1. package/README.md +10 -4
  2. package/bin/aiflow.js +77 -7
  3. package/custom/templates/laravel.md +15 -15
  4. package/custom/templates/nestjs.md +72 -72
  5. package/custom/templates/nextjs.md +14 -14
  6. package/custom/templates/nodejs-express.md +73 -73
  7. package/custom/templates/python-django.md +71 -71
  8. package/custom/templates/python-fastapi.md +54 -54
  9. package/custom/templates/reactjs.md +492 -492
  10. package/custom/templates/shared/gate-workflow.md +88 -75
  11. package/custom/templates/spring-boot.md +523 -523
  12. package/custom/templates/tools/claude.md +13 -0
  13. package/custom/templates/tools/copilot.md +12 -8
  14. package/custom/templates/tools/cursor.md +12 -8
  15. package/custom/templates/tools/gemini.md +12 -8
  16. package/custom/templates/tools/generic.md +17 -12
  17. package/custom/templates/vue-nuxt.md +14 -14
  18. package/{AIFLOW.md → docs/AIFLOW.md} +5 -0
  19. package/{CHANGELOG.md → docs/CHANGELOG.md} +41 -5
  20. package/{IMPLEMENTATION_SUMMARY.md → docs/IMPLEMENTATION_SUMMARY.md} +21 -39
  21. package/{QUICK_START.md → docs/QUICK_START.md} +8 -8
  22. package/docs/ai-integration.md +53 -53
  23. package/docs/architecture.md +4 -5
  24. package/docs/cli-reference.md +97 -27
  25. package/docs/developer-overview.md +126 -126
  26. package/docs/troubleshooting.md +15 -0
  27. package/package.json +6 -11
  28. package/scripts/guide.js +16 -0
  29. package/scripts/hooks/session-start.js +5 -1
  30. package/scripts/init.js +518 -460
  31. package/scripts/telemetry/cli.js +249 -0
  32. package/scripts/telemetry/config.js +94 -0
  33. package/scripts/telemetry/crypto.js +20 -0
  34. package/scripts/telemetry/flush.js +159 -0
  35. package/scripts/telemetry/record.js +138 -0
  36. package/scripts/use.js +594 -594
  37. package/upstream/skills/using-superpowers/SKILL.md +14 -0
  38. package/CONTRIBUTING.md +0 -388
  39. package/upstream/tests/brainstorm-server/package-lock.json +0 -36
@@ -30,6 +30,7 @@ aiflow init --framework laravel --adapter jira
30
30
  **Options:**
31
31
  - `-f, --framework <type>` — Framework template (laravel, nextjs, vue-nuxt)
32
32
  - `-a, --adapter <type>` — MCP adapter (jira, backlog, google-sheets)
33
+ - `-e, --env <types>` — AI tools to configure (cursor, gemini, copilot)
33
34
 
34
35
  **What it does:**
35
36
  1. Creates `.claude/skills/` with all available skills
@@ -76,6 +77,9 @@ aiflow use 1.0.0
76
77
  - `-m, --manual` — Manual context entry
77
78
  - `-f, --file <path>` — Load from JSON file
78
79
  - `-s, --save <name>` — Save as named context
80
+ - `--with-comments` — Include all ticket comments
81
+ - `--comments-last <n>` — Only fetch last N comments
82
+ - `--comments-from <n>` — Fetch comments starting from comment N
79
83
 
80
84
  **What it does:**
81
85
  1. Fetches context from MCP adapter (if applicable)
@@ -123,7 +127,6 @@ aiflow prompt --list
123
127
  - `<type>` — Prompt type (bug-fix, feature, investigation, refactor, impact, docs)
124
128
  - `-l, --list` — List available prompt types
125
129
  - `-o, --output <file>` — Save to file instead of printing
126
- - `-c, --copy` — Copy to clipboard
127
130
  - `--lang <lang>` — Language (english, vietnamese)
128
131
  - `--detail <level>` — Detail level (minimal, standard, comprehensive)
129
132
 
@@ -258,12 +261,11 @@ Update to the latest version.
258
261
  # Update to latest
259
262
  aiflow update
260
263
 
261
- # Keep old version
262
- aiflow update --keep-old
264
+ # Force update even if already latest
265
+ aiflow update --force
263
266
  ```
264
267
 
265
268
  **Options:**
266
- - `--keep-old` — Don't delete previous version
267
269
  - `--force` — Force update even if already latest
268
270
 
269
271
  **What it does:**
@@ -296,12 +298,11 @@ Health check for your setup.
296
298
  # Run health check
297
299
  aiflow doctor
298
300
 
299
- # Fix issues automatically
300
- aiflow doctor --fix
301
+ # Run with verbose output
302
+ aiflow doctor --verbose
301
303
  ```
302
304
 
303
305
  **Options:**
304
- - `--fix` — Attempt to fix found issues
305
306
  - `-v, --verbose` — Show detailed checks
306
307
 
307
308
  **What it does:**
@@ -367,61 +368,130 @@ Issues found: 2 warnings, 1 error
367
368
  Suggestions: Add test case, rename variable
368
369
  ```
369
370
 
371
+ ## telemetry
372
+
373
+ Manage usage telemetry.
374
+
375
+ ```bash
376
+ # View current status, buffer size, last flush
377
+ aiflow telemetry status
378
+
379
+ # Interactive setup (URL, secret, email)
380
+ aiflow telemetry enable
381
+
382
+ # Disable tracking (config retained)
383
+ aiflow telemetry disable
384
+
385
+ # Force-send buffered events now
386
+ aiflow telemetry flush
387
+ ```
388
+
389
+ **Sub-commands:**
390
+ - `status` — View current status, buffer size, last flush time
391
+ - `enable` — Interactive setup (Apps Script URL, team secret, email)
392
+ - `disable` — Disable tracking; configuration is retained
393
+ - `flush` — Force-send all buffered events immediately
394
+
395
+ ---
396
+
370
397
  ## memory
371
398
 
372
399
  Manage team knowledge and context memory.
373
400
 
374
401
  ```bash
375
402
  # Save knowledge
376
- aiflow memory --save "Laravel validation pattern" "Use FormRequest..."
403
+ aiflow memory save "payment-flow" "Process: 1. Validate amount, 2. Call Stripe API, 3. Update DB"
377
404
 
378
405
  # Retrieve knowledge
379
- aiflow memory --get "Laravel validation pattern"
406
+ aiflow memory get "payment-flow"
380
407
 
381
408
  # List all memories
382
- aiflow memory --list
409
+ aiflow memory list
383
410
 
384
411
  # Delete memory
385
- aiflow memory --delete "old-memory"
412
+ aiflow memory delete "old-memory"
386
413
 
387
414
  # Search memories
388
- aiflow memory --search "validation"
415
+ aiflow memory search "validation"
416
+
417
+ # Clear all memories
418
+ aiflow memory clear
389
419
  ```
390
420
 
391
- **Options:**
392
- - `-s, --save <key> <value>` — Save memory
393
- - `-g, --get <key>` — Retrieve memory
394
- - `-l, --list` — List all memories
395
- - `-d, --delete <key>` — Delete memory
396
- - `--search <query>` — Search memories
397
- - `--auto-load` — Auto-load relevant memories
421
+ **Sub-commands:**
422
+ - `save <key> <value>` — Save a note
423
+ - `get <key>` — Read a note
424
+ - `list` — List all notes
425
+ - `search <query>` — Search notes
426
+ - `delete <key>` — Delete a note
427
+ - `clear`Clear all notes
398
428
 
399
429
  **What it does:**
400
430
  1. Stores team knowledge in `.aiflow/memory/`
401
- 2. Auto-loads relevant memory for current task
402
- 3. Makes knowledge discoverable across team
431
+ 2. Makes knowledge discoverable across the team
403
432
 
404
433
  **Example:**
405
434
  ```bash
406
- $ aiflow memory --save "payment-flow" "Process: 1. Validate amount, 2. Call Stripe API, 3. Update DB"
435
+ $ aiflow memory save "payment-flow" "Process: 1. Validate amount, 2. Call Stripe API, 3. Update DB"
407
436
  ✓ Saved: payment-flow
408
437
 
409
- $ aiflow memory --search "payment"
438
+ $ aiflow memory search "payment"
410
439
  Found 3 memories matching "payment":
411
440
  1. payment-flow
412
441
  2. payment-error-handling
413
442
  3. payment-tests
414
443
  ```
415
444
 
445
+ ## guide
446
+
447
+ Show quickstart guide.
448
+
449
+ ```bash
450
+ # Full guide
451
+ aiflow guide
452
+
453
+ # Architecture & flow only
454
+ aiflow guide --flow
455
+
456
+ # Command reference only
457
+ aiflow guide --commands
458
+ ```
459
+
460
+ **Options:**
461
+ - `--flow` — Show architecture & flow diagram only
462
+ - `--commands` — Show command reference only
463
+
464
+ ---
465
+
466
+ ## gate (AI workflow logging)
467
+
468
+ Called automatically by AI during gate workflow — not intended for manual use.
469
+
470
+ ```bash
471
+ # Log gate N started
472
+ aiflow gate <n> start --ticket <id>
473
+
474
+ # Log gate N approved
475
+ aiflow gate <n> approved --ticket <id>
476
+ ```
477
+
478
+ **Arguments:**
479
+ - `<n>` — Gate number (1-5)
480
+ - `<action>` — `start` or `approved`
481
+
482
+ **Options:**
483
+ - `--ticket <id>` — Ticket ID associated with the gate transition
484
+ - `--ai-tool <tool>` — AI tool that triggered the gate (e.g. claude, cursor, gemini)
485
+
486
+ ---
487
+
416
488
  ## Global Options
417
489
 
418
490
  These work with any command:
419
491
 
420
492
  ```bash
421
- aiflow <command> --version # Show version
422
- aiflow <command> --verbose # Verbose output
423
- aiflow <command> --debug # Debug mode
424
- aiflow <command> --config <file> # Use custom config file
493
+ aiflow --version # Show installed version
494
+ aiflow <command> --help # Show help for a command
425
495
  ```
426
496
 
427
497
  ## Exit Codes
@@ -1,126 +1,126 @@
1
- # AI Flow Kit — Developer Rollout Guide
2
-
3
- Welcome to the **AI Flow Kit**! This guide is designed to get you up and running with our standardized AI development workflow.
4
-
5
- ## 1. What is AI Flow Kit?
6
-
7
- It's a "Zero-Config" framework for AI-assisted development. It automatically:
8
- - Pulls ticket context (requirements, comments) from Backlog/Jira.
9
- - Orchestrates a **5-Gate Workflow** (Analyze → Plan → Code → Review → PR).
10
- - Enforces team coding standards and architecture rules.
11
- - Synchronizes state across different AI tools (Claude, Cursor, Gemini).
12
-
13
- ---
14
-
15
- ## 2. Prerequisites
16
-
17
- Before starting, ensure you have:
18
- 1. **Node.js** (v18 or higher).
19
- 2. **AI Tool(s)**:
20
- - **Claude Code CLI** (Recommended for analysis and heavy tasks).
21
- - **Cursor AI** (Recommended for coding and UI work).
22
- - **Gemini CLI** or **GitHub Copilot** (Alternative options).
23
-
24
- ---
25
-
26
- ## 3. Installation
27
-
28
- Run this command to install the CLI tool globally:
29
-
30
- ```bash
31
- # Stable version
32
- npm install -g @relipa/ai-flow-kit
33
-
34
- # Beta version (recommend for newest features)
35
- npm install -g @relipa/ai-flow-kit@beta
36
-
37
- # Verification
38
- aiflow --version
39
-
40
- # Uninstall
41
- npm uninstall -g @relipa/ai-flow-kit
42
-
43
- ---
44
-
45
- ## 4. First-time Setup
46
-
47
- In your project root, run:
48
-
49
- ```bash
50
- aiflow init --framework [your-framework] --adapter [backlog/jira]
51
- ```
52
- *Example: `aiflow init --framework nestjs --adapter backlog`*
53
-
54
- **What this does:**
55
- 1. Verifies your API keys.
56
- 2. Creates instruction files: `CLAUDE.md`, `.cursorrules`, `GEMINI.md`.
57
- 3. Installs "Superpowers" skills.
58
-
59
- ---
60
-
61
- ## 5. Daily Task Workflow (The 5 Gates)
62
-
63
- ### Step 1: Start a Task
64
- Load the ticket context from your issue tracker:
65
- ```bash
66
- aiflow use PROJ-33
67
- ```
68
-
69
- ### Step 2: Open your AI Tool
70
- - **Claude Code**: Type `claude`. The AI will automatically start **Gate 1**.
71
- - **Cursor**: Just start chatting with Cursor. It will detect the active ticket and start analyzing.
72
-
73
- ### Step 3: Follow the Gates
74
- The AI *must* pass each gate in order. You act as the **Reviewer**.
75
-
76
- 1. **⛩️ Gate 1: Requirement Analysis**
77
- - AI reads code + ticket.
78
- - AI outputs `plan/PROJ-33/requirement.md`.
79
- - **Your Action**: Read the doc. If OK, type `APPROVED`.
80
-
81
- 2. **⛩️ Gate 2: Implementation Plan**
82
- - AI creates a step-by-step TDD plan.
83
- - **Your Action**: Type `APPROVED` to start coding.
84
-
85
- 3. **⛩️ Gate 3: Coding (TDD)**
86
- - AI writes tests first, then code.
87
- - **Your Action**: Monitor.
88
-
89
- 4. **⛩️ Gate 4: Self-Review**
90
- - AI verifies tests and checks a review-checklist.
91
- - **Your Action**: Review the final diff. If OK, type `APPROVED`.
92
-
93
- 5. **⛩️ Gate 5: Pull Request**
94
- - AI helps you write a detailed PR description.
95
- - **Your Action**: Create the PR and ask for a peer review.
96
-
97
- ---
98
-
99
- ## 6. Switching AI Tools Mid-Task
100
-
101
- You can switch tools at any time because the "brain" (the State) is stored in your project files.
102
-
103
- **Example Scenario:**
104
- 1. Use **Claude Code CLI** for **Gate 1** (Analysis) because it's great at exploring many files.
105
- 2. Once you type `APPROVED`, close Claude.
106
- 3. Open **Cursor** for **Gate 3** (Coding) to take advantage of its excellent editor integration. Cursor will see you've already finished the analysis and will continue from the plan.
107
-
108
- ---
109
-
110
- ## 7. Best Practices
111
-
112
- - **One question at a time**: If the AI asks 5 questions, answer them one by one or ignore the irrelevant ones.
113
- - **Small commits**: Let the AI commit frequently (default behavior).
114
- - **Be the Pilot**: The AI is your co-pilot. If its solution looks over-engineered, tell it: *"Simplify this by using [X] pattern"*.
115
-
116
- ---
117
-
118
- ## 8. Troubleshooting
119
-
120
- - **AI is stuck**: Type `reset context` or use `aiflow doctor` to check setup.
121
- - **Credentials fail**: Re-run `aiflow init --adapter backlog` to update keys.
122
- - **Rules not followed**: Remind the AI: *"Follow the rules in CLAUDE.md"*.
123
-
124
- ---
125
-
126
- **Happy Coding!** สำหรับรายละเอียดเชิงลึก โปรดดู [AIFLOW.md](../AIFLOW.md).
1
+ # AI Flow Kit — Developer Rollout Guide
2
+
3
+ Welcome to the **AI Flow Kit**! This guide is designed to get you up and running with our standardized AI development workflow.
4
+
5
+ ## 1. What is AI Flow Kit?
6
+
7
+ It's a "Zero-Config" framework for AI-assisted development. It automatically:
8
+ - Pulls ticket context (requirements, comments) from Backlog/Jira.
9
+ - Orchestrates a **5-Gate Workflow** (Analyze → Plan → Code → Review → PR).
10
+ - Enforces team coding standards and architecture rules.
11
+ - Synchronizes state across different AI tools (Claude, Cursor, Gemini).
12
+
13
+ ---
14
+
15
+ ## 2. Prerequisites
16
+
17
+ Before starting, ensure you have:
18
+ 1. **Node.js** (v18 or higher).
19
+ 2. **AI Tool(s)**:
20
+ - **Claude Code CLI** (Recommended for analysis and heavy tasks).
21
+ - **Cursor AI** (Recommended for coding and UI work).
22
+ - **Gemini CLI** or **GitHub Copilot** (Alternative options).
23
+
24
+ ---
25
+
26
+ ## 3. Installation
27
+
28
+ Run this command to install the CLI tool globally:
29
+
30
+ ```bash
31
+ # Stable version
32
+ npm install -g @relipa/ai-flow-kit
33
+
34
+ # Beta version (recommend for newest features)
35
+ npm install -g @relipa/ai-flow-kit@beta
36
+
37
+ # Verification
38
+ aiflow --version
39
+
40
+ # Uninstall
41
+ npm uninstall -g @relipa/ai-flow-kit
42
+
43
+ ---
44
+
45
+ ## 4. First-time Setup
46
+
47
+ In your project root, run:
48
+
49
+ ```bash
50
+ aiflow init --framework [your-framework] --adapter [backlog/jira]
51
+ ```
52
+ *Example: `aiflow init --framework nestjs --adapter backlog`*
53
+
54
+ **What this does:**
55
+ 1. Verifies your API keys.
56
+ 2. Creates instruction files: `CLAUDE.md`, `.cursorrules`, `GEMINI.md`.
57
+ 3. Installs "Superpowers" skills.
58
+
59
+ ---
60
+
61
+ ## 5. Daily Task Workflow (The 5 Gates)
62
+
63
+ ### Step 1: Start a Task
64
+ Load the ticket context from your issue tracker:
65
+ ```bash
66
+ aiflow use PROJ-33
67
+ ```
68
+
69
+ ### Step 2: Open your AI Tool
70
+ - **Claude Code**: Type `claude`. The AI will automatically start **Gate 1**.
71
+ - **Cursor**: Just start chatting with Cursor. It will detect the active ticket and start analyzing.
72
+
73
+ ### Step 3: Follow the Gates
74
+ The AI *must* pass each gate in order. You act as the **Reviewer**.
75
+
76
+ 1. **⛩️ Gate 1: Requirement Analysis**
77
+ - AI reads code + ticket.
78
+ - AI outputs `plan/PROJ-33/requirement.md`.
79
+ - **Your Action**: Read the doc. If OK, type `APPROVED`.
80
+
81
+ 2. **⛩️ Gate 2: Implementation Plan**
82
+ - AI creates a step-by-step TDD plan.
83
+ - **Your Action**: Type `APPROVED` to start coding.
84
+
85
+ 3. **⛩️ Gate 3: Coding (TDD)**
86
+ - AI writes tests first, then code.
87
+ - **Your Action**: Monitor.
88
+
89
+ 4. **⛩️ Gate 4: Self-Review**
90
+ - AI verifies tests and checks a review-checklist.
91
+ - **Your Action**: Review the final diff. If OK, type `APPROVED`.
92
+
93
+ 5. **⛩️ Gate 5: Pull Request**
94
+ - AI helps you write a detailed PR description.
95
+ - **Your Action**: Create the PR and ask for a peer review.
96
+
97
+ ---
98
+
99
+ ## 6. Switching AI Tools Mid-Task
100
+
101
+ You can switch tools at any time because the "brain" (the State) is stored in your project files.
102
+
103
+ **Example Scenario:**
104
+ 1. Use **Claude Code CLI** for **Gate 1** (Analysis) because it's great at exploring many files.
105
+ 2. Once you type `APPROVED`, close Claude.
106
+ 3. Open **Cursor** for **Gate 3** (Coding) to take advantage of its excellent editor integration. Cursor will see you've already finished the analysis and will continue from the plan.
107
+
108
+ ---
109
+
110
+ ## 7. Best Practices
111
+
112
+ - **One question at a time**: If the AI asks 5 questions, answer them one by one or ignore the irrelevant ones.
113
+ - **Small commits**: Let the AI commit frequently (default behavior).
114
+ - **Be the Pilot**: The AI is your co-pilot. If its solution looks over-engineered, tell it: *"Simplify this by using [X] pattern"*.
115
+
116
+ ---
117
+
118
+ ## 8. Troubleshooting
119
+
120
+ - **AI is stuck**: Type `reset context` or use `aiflow doctor` to check setup.
121
+ - **Credentials fail**: Re-run `aiflow init --adapter backlog` to update keys.
122
+ - **Rules not followed**: Remind the AI: *"Follow the rules in CLAUDE.md"*.
123
+
124
+ ---
125
+
126
+ **Happy Coding!** สำหรับรายละเอียดเชิงลึก โปรดดู [AIFLOW.md](../AIFLOW.md).
@@ -545,6 +545,21 @@ cat CLAUDE.md | grep -i "rule"
545
545
  - Close and reopen
546
546
  - Run `aiflow doctor` to verify setup
547
547
 
548
+ ## Telemetry Tracking
549
+
550
+ ### "Telemetry connection test failed"
551
+
552
+ **Verify Apps Script settings:**
553
+ - Ensure the Apps Script Web App is deployed and accessible.
554
+ - Ensure the `TEAM_SECRET` is exactly correct without trailing spaces.
555
+
556
+ **Bypass / Opt-out locally:**
557
+ If you don't want telemetry tracked on a specific repo, or the upload is failing constantly:
558
+ ```bash
559
+ touch .aiflow/no-telemetry
560
+ # CLI will automatically ignore logging for this repo.
561
+ ```
562
+
548
563
  ---
549
564
 
550
565
  ## Getting More Help
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relipa/ai-flow-kit",
3
- "version": "0.0.4-beta.3",
3
+ "version": "0.0.5-beta.0",
4
4
  "description": "All-in-one AI Flow Kit for team development with Claude AI - skills, templates, and MCP adapters",
5
5
  "author": "Relipa AI Team",
6
6
  "publishConfig": {
@@ -14,19 +14,14 @@
14
14
  "aiflow": "./bin/aiflow.js"
15
15
  },
16
16
  "files": [
17
+ "README.md",
17
18
  "bin",
18
19
  "custom",
19
20
  "scripts",
20
21
  "upstream",
21
22
  "docs",
22
23
  "package.json",
23
- "index.js",
24
- "README.md",
25
- "QUICK_START.md",
26
- "AIFLOW.md",
27
- "CONTRIBUTING.md",
28
- "IMPLEMENTATION_SUMMARY.md",
29
- "CHANGELOG.md"
24
+ "index.js"
30
25
  ],
31
26
  "keywords": [
32
27
  "ai",
@@ -39,7 +34,7 @@
39
34
  "productivity"
40
35
  ],
41
36
  "engines": {
42
- "node": ">=14.0.0",
37
+ "node": ">=16.0.0",
43
38
  "npm": ">=6.0.0"
44
39
  },
45
40
  "scripts": {
@@ -51,9 +46,9 @@
51
46
  "publish:stable": "npm publish"
52
47
  },
53
48
  "dependencies": {
54
- "@inquirer/prompts": "^8.3.2",
49
+ "@inquirer/prompts": "^3.0.0",
55
50
  "chalk": "^4.1.2",
56
- "commander": "^14.0.3",
51
+ "commander": "^11.0.0",
57
52
  "fs-extra": "^11.3.4",
58
53
  "semver": "^7.7.4"
59
54
  },
package/scripts/guide.js CHANGED
@@ -210,6 +210,22 @@ function showCommands() {
210
210
  ['aiflow validate <file>', '-r strict', 'Report all warnings'],
211
211
  ]
212
212
  },
213
+ {
214
+ group: 'Telemetry',
215
+ items: [
216
+ ['aiflow telemetry status', '', 'View telemetry status'],
217
+ ['aiflow telemetry enable', '', 'Enable usage tracking'],
218
+ ['aiflow telemetry disable', '', 'Disable usage tracking'],
219
+ ['aiflow telemetry flush', '', 'Force-send buffered events now'],
220
+ ]
221
+ },
222
+ {
223
+ group: 'AI Workflow Integration',
224
+ items: [
225
+ ['aiflow gate <n> start', '--ticket <id>', 'Log gate N started (AI calls this)'],
226
+ ['aiflow gate <n> approved', '--ticket <id>', 'Log gate N approved (AI calls this)'],
227
+ ]
228
+ },
213
229
  {
214
230
  group: 'Help',
215
231
  items: [
@@ -9,6 +9,10 @@
9
9
 
10
10
  const fs = require('fs');
11
11
  const path = require('path');
12
+ const { record } = require('../telemetry/record');
13
+
14
+ // Record session start telemetry
15
+ record('session.start');
12
16
 
13
17
  // This script lives at .claude/hooks/session-start.js
14
18
  // Project root is 3 levels up
@@ -138,4 +142,4 @@ function buildContextPrompt(ctx) {
138
142
  lines.push('</ACTIVE_TASK>');
139
143
 
140
144
  return lines.join('\n');
141
- }
145
+ }