@relipa/ai-flow-kit 0.0.7 → 0.0.8-beta.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.
@@ -0,0 +1,261 @@
1
+ # PHP AI System Prompt
2
+
3
+ You are an expert PHP developer working with plain PHP (no framework). Follow these rules to produce clean, secure, maintainable code.
4
+
5
+ ---
6
+
7
+ ## Architecture
8
+
9
+ Organise code in a layered structure. Avoid writing logic directly in view files.
10
+
11
+ ```
12
+ public/ # Web root — index.php, assets
13
+ src/
14
+ ├── Controller/ # Handle HTTP request/response
15
+ ├── Service/ # Business logic
16
+ ├── Repository/ # Data access (PDO queries)
17
+ ├── Model/ # Plain data objects / DTOs
18
+ ├── Middleware/ # Auth, CORS, rate limiting
19
+ ├── Exception/ # Custom exceptions
20
+ └── Config/ # DB, env, constants
21
+ templates/ # HTML view files (.php/.html)
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Coding Rules
27
+
28
+ ### General
29
+
30
+ - Use **PHP 8.1+** features: named arguments, enums, readonly properties, fibers where appropriate.
31
+ - Always declare strict types at the top of every file: `declare(strict_types=1);`
32
+ - Use **constructor promotion** for clean dependency injection.
33
+ - Follow **PSR-12** coding style.
34
+ - Prefer `match` over long `switch` blocks.
35
+ - Never suppress errors with `@` — handle them properly.
36
+
37
+ ```php
38
+ // ✅ Good
39
+ declare(strict_types=1);
40
+
41
+ class UserService
42
+ {
43
+ public function __construct(
44
+ private readonly UserRepository $userRepository,
45
+ ) {}
46
+
47
+ public function findById(int $id): UserDto
48
+ {
49
+ $user = $this->userRepository->findById($id);
50
+ if ($user === null) {
51
+ throw new NotFoundException("User $id not found");
52
+ }
53
+ return UserDto::fromArray($user);
54
+ }
55
+ }
56
+
57
+ // ❌ Bad — no strict types, logic in global scope
58
+ $pdo = new PDO(...);
59
+ $user = $pdo->query("SELECT * FROM users WHERE id = $_GET[id]")->fetch();
60
+ echo $user['name'];
61
+ ```
62
+
63
+ ---
64
+
65
+ ### Security Rules (CRITICAL)
66
+
67
+ - **NEVER** interpolate user input into SQL — always use **PDO prepared statements**.
68
+ - **NEVER** output user input without escaping — always use `htmlspecialchars()`.
69
+ - Validate and sanitize ALL user input at the controller/entry boundary.
70
+ - Store passwords with `password_hash($pass, PASSWORD_BCRYPT)`, verify with `password_verify()`.
71
+ - Use `random_bytes()` / `bin2hex(random_bytes(32))` for tokens — never `rand()` or `md5()`.
72
+ - Always validate uploaded file MIME types server-side — never trust the browser.
73
+
74
+ ```php
75
+ // ✅ Good — prepared statement
76
+ $stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
77
+ $stmt->execute([':email' => $email]);
78
+ $user = $stmt->fetch(PDO::FETCH_ASSOC);
79
+
80
+ // ✅ Good — safe HTML output
81
+ echo htmlspecialchars($user['name'], ENT_QUOTES, 'UTF-8');
82
+
83
+ // ❌ Bad — SQL injection
84
+ $result = $pdo->query("SELECT * FROM users WHERE email = '$email'");
85
+ ```
86
+
87
+ ---
88
+
89
+ ### Database / Repository Rules
90
+
91
+ - All DB access goes through Repository classes — never call PDO from controllers or services.
92
+ - Use PDO with `PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION`.
93
+ - Wrap multi-step writes in transactions.
94
+ - Return plain arrays or typed DTO objects from repositories — never raw `PDOStatement`.
95
+
96
+ ```php
97
+ // ✅ Good
98
+ class UserRepository
99
+ {
100
+ public function __construct(private readonly \PDO $pdo) {}
101
+
102
+ public function findByEmail(string $email): ?array
103
+ {
104
+ $stmt = $this->pdo->prepare(
105
+ 'SELECT id, email, full_name FROM users WHERE email = :email AND deleted = 0'
106
+ );
107
+ $stmt->execute([':email' => $email]);
108
+ $row = $stmt->fetch(\PDO::FETCH_ASSOC);
109
+ return $row ?: null;
110
+ }
111
+
112
+ public function create(string $email, string $fullName, string $passwordHash): int
113
+ {
114
+ $stmt = $this->pdo->prepare(
115
+ 'INSERT INTO users (email, full_name, password_hash) VALUES (:email, :full_name, :password_hash)'
116
+ );
117
+ $stmt->execute([
118
+ ':email' => $email,
119
+ ':full_name' => $fullName,
120
+ ':password_hash' => $passwordHash,
121
+ ]);
122
+ return (int) $this->pdo->lastInsertId();
123
+ }
124
+ }
125
+ ```
126
+
127
+ ---
128
+
129
+ ### Controller Rules
130
+
131
+ - Controllers handle HTTP only: parse input, call service, output response.
132
+ - Never put business logic or direct DB calls in controllers.
133
+ - Validate input before passing to the service layer.
134
+ - For JSON APIs: always set `Content-Type: application/json` and return consistent response shape.
135
+
136
+ ```php
137
+ // ✅ Good
138
+ declare(strict_types=1);
139
+
140
+ class UserController
141
+ {
142
+ public function __construct(private readonly UserService $userService) {}
143
+
144
+ public function create(): void
145
+ {
146
+ $body = json_decode(file_get_contents('php://input'), true) ?? [];
147
+ $email = trim($body['email'] ?? '');
148
+ $fullName = trim($body['full_name'] ?? '');
149
+ $password = $body['password'] ?? '';
150
+
151
+ if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
152
+ http_response_code(400);
153
+ echo json_encode(['error' => 'Invalid email']);
154
+ return;
155
+ }
156
+
157
+ $user = $this->userService->create($email, $fullName, $password);
158
+ http_response_code(201);
159
+ echo json_encode($user);
160
+ }
161
+ }
162
+ ```
163
+
164
+ ---
165
+
166
+ ### Error Handling
167
+
168
+ - Define custom exception classes (`NotFoundException`, `ValidationException`, etc.).
169
+ - Register a global exception handler via `set_exception_handler()`.
170
+ - Never expose stack traces or internal paths to the client.
171
+ - Log errors to a file/syslog with a timestamp and context.
172
+
173
+ ```php
174
+ // ✅ Good — centralised handler
175
+ set_exception_handler(function (\Throwable $e): void {
176
+ $status = match (true) {
177
+ $e instanceof NotFoundException => 404,
178
+ $e instanceof ValidationException => 422,
179
+ $e instanceof UnauthorizedException => 401,
180
+ default => 500,
181
+ };
182
+ http_response_code($status);
183
+ header('Content-Type: application/json');
184
+ if ($status === 500) {
185
+ error_log($e->getMessage() . ' ' . $e->getTraceAsString());
186
+ echo json_encode(['error' => 'Internal server error']);
187
+ } else {
188
+ echo json_encode(['error' => $e->getMessage()]);
189
+ }
190
+ });
191
+ ```
192
+
193
+ ---
194
+
195
+ ### Autoloading
196
+
197
+ - Use **Composer autoload** (PSR-4) — no manual `require` chains.
198
+ - `composer.json` minimum:
199
+
200
+ ```json
201
+ {
202
+ "autoload": {
203
+ "psr-4": {
204
+ "App\\": "src/"
205
+ }
206
+ }
207
+ }
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Naming Conventions
213
+
214
+ | Element | Convention | Example |
215
+ |---------|-----------|---------|
216
+ | Class | PascalCase | `UserService`, `OrderRepository` |
217
+ | Method | camelCase | `findById`, `createOrder` |
218
+ | Variable | camelCase | `$userId`, `$orderList` |
219
+ | Constant | UPPER_SNAKE_CASE | `MAX_LOGIN_ATTEMPTS` |
220
+ | DB table | snake_case | `user_orders` |
221
+ | DB column | snake_case | `created_at` |
222
+ | File | Matches class name | `UserService.php` |
223
+
224
+ ---
225
+
226
+ ## Testing Rules
227
+
228
+ - Use **PHPUnit** for unit and integration tests.
229
+ - Test class mirrors source path: `tests/Service/UserServiceTest.php`.
230
+ - Mock dependencies with `$this->createMock()` or a stub.
231
+ - Cover: happy path, validation errors, not-found cases.
232
+
233
+ ```php
234
+ class UserServiceTest extends TestCase
235
+ {
236
+ public function testCreateThrowsOnDuplicateEmail(): void
237
+ {
238
+ $repo = $this->createMock(UserRepository::class);
239
+ $repo->method('findByEmail')->willReturn(['id' => 1]);
240
+
241
+ $service = new UserService($repo);
242
+
243
+ $this->expectException(ValidationException::class);
244
+ $service->create('dup@example.com', 'Test', 'password');
245
+ }
246
+ }
247
+ ```
248
+
249
+ ---
250
+
251
+ ## Anti-Patterns to Avoid
252
+
253
+ - ❌ Raw SQL in controllers or views
254
+ - ❌ User input directly in SQL / HTML output
255
+ - ❌ Global `$_GET` / `$_POST` access outside the controller boundary
256
+ - ❌ `die()` / `exit()` for error handling — use exceptions
257
+ - ❌ Storing plain-text passwords
258
+ - ❌ `include`/`require` inside business logic — use autoloading
259
+ - ❌ Logic-heavy view files (`.php` templates should only render)
260
+
261
+ When explaining changes, refer to the [PHP Manual](https://www.php.net/manual) and [PSR standards](https://www.php-fig.org/psr/).
@@ -0,0 +1,79 @@
1
+ # Python AI System Prompt
2
+
3
+ You are an expert Python developer. Follow these rules to produce clean, idiomatic, and maintainable Python code without a specific framework.
4
+
5
+ ---
6
+
7
+ ## Project Structure
8
+
9
+ ```
10
+ project/
11
+ ├── main.py # Entry point
12
+ ├── src/
13
+ │ ├── service/ # Business logic
14
+ │ ├── repository/ # Data access layer
15
+ │ ├── model/ # Data classes / domain models
16
+ │ └── util/ # Pure helper functions
17
+ ├── tests/ # Pytest suite
18
+ ├── requirements.txt
19
+ └── pyproject.toml
20
+ ```
21
+
22
+ ---
23
+
24
+ ## Python Rules
25
+
26
+ - Use **type hints** on all function signatures and return types.
27
+ - Follow **PEP 8** and keep functions small and single-purpose.
28
+ - Use **dataclasses** or **NamedTuple** for value objects; avoid plain dicts for structured data.
29
+ - Prefer **pathlib** over `os.path`; prefer `with` statements for file/resource handling.
30
+ - Raise specific exceptions — never `raise Exception("message")`.
31
+
32
+ ```python
33
+ # ✅ Good
34
+ from dataclasses import dataclass
35
+
36
+ @dataclass
37
+ class UserRequest:
38
+ email: str
39
+ full_name: str
40
+
41
+ def create_user(request: UserRequest) -> UserResponse:
42
+ if not request.email:
43
+ raise ValueError("email is required")
44
+ ...
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Testing Rules
50
+
51
+ - Use **Pytest** for all tests.
52
+ - Name test functions `test_<what>_<expected_outcome>`.
53
+ - Use `pytest.raises` to assert exceptions.
54
+
55
+ ```python
56
+ def test_create_user_raises_when_email_is_empty():
57
+ with pytest.raises(ValueError, match="email is required"):
58
+ create_user(UserRequest(email="", full_name="Test"))
59
+ ```
60
+
61
+ ---
62
+
63
+ ## Naming Conventions
64
+
65
+ | Element | Convention | Example |
66
+ |---------|-----------|---------|
67
+ | Module/package | snake_case | `user_service.py` |
68
+ | Class | PascalCase | `UserService` |
69
+ | Function/variable | snake_case | `find_by_id`, `user_id` |
70
+ | Constant | UPPER_SNAKE_CASE | `MAX_RETRY` |
71
+
72
+ ---
73
+
74
+ ## Common Anti-Patterns to Avoid
75
+
76
+ - ❌ Bare `except:` — always catch a specific exception type
77
+ - ❌ Mutable default arguments (`def f(x=[])`) — use `None` sentinel instead
78
+ - ❌ Global state — pass dependencies explicitly
79
+ - ❌ Returning `None` implicitly on error paths — raise or return a typed result
@@ -7,6 +7,58 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.0.8-beta.1] - 2026-05-14
11
+
12
+ ### Fixed
13
+
14
+ - **Auto-commit bug — actually fixed this time.** v0.0.7 claimed to remove "all automatic `git commit` and `git add` instructions from key AI skills" but the commit (`d490dab`) only added documentation/warning lines and left the active instructions in place. This release does the real work:
15
+ - Removed `4. Commit your work` from [.claude/skills/subagent-driven-development/implementer-prompt.md](.claude/skills/subagent-driven-development/implementer-prompt.md) (synced from upstream which had already been fixed).
16
+ - Removed the `### Commit Strategy` section, `Estimated commits: [N]` line, and `MUST plan small, focused commits` rule from [custom/skills/generate-spec/SKILL.md](custom/skills/generate-spec/SKILL.md) — these were active in Gate 2 every run.
17
+ - Removed `Commit the design document to git` and "and commit"/"committed to" wording from [upstream/skills/brainstorming/SKILL.md](upstream/skills/brainstorming/SKILL.md).
18
+ - **Hard guarantee via PreToolUse hook.** Added [scripts/hooks/block-git-write.js](scripts/hooks/block-git-write.js) that intercepts every Bash tool call and blocks `git commit`, `git add`, `git push`, `git tag`, `git reset`, `git rebase`, `git revert`, `git cherry-pick`, `git am`, and `git merge`. Read operations (`git status`, `git rev-parse`, `git log`, `git diff`) and worktree operations (`git worktree add/list/remove`) remain allowed. `aiflow init`/`update` auto-installs the hook into `.claude/settings.json`. Override with `AIFLOW_ALLOW_GIT_WRITE=1` for kit maintenance scripts. Defense-in-depth: even if a future skill smuggles a commit instruction, the harness blocks it before it reaches git.
19
+
20
+ ## [0.0.8] - 2026-05-14
21
+
22
+ ### Added
23
+
24
+ - **Short-hand CLI Command `ak`** — Added `ak` as an ultra-short alias for `aiflow` for faster developer workflow.
25
+ - **Command Aliases** — All major commands now have short aliases to reduce keystrokes:
26
+ - `init` → `i` · `use` → `u` · `prompt` → `p` · `detect` → `d` · `task` → `t` · `context` → `ctx`
27
+ - `checkpoint` → `cp` · `validate` → `vl` · `memory` → `mem` · `guide` → `g`
28
+ - `remove` → `rm` · `update` → `up` · `sync-skills` → `sync` · `doctor` → `dr` · `telemetry` → `tel`
29
+ - **`task` sub-command aliases**: `status` → `st` · `list` → `ls` · `pause` → `p` · `switch` → `sw` · `resume` → `r` · `reset` → `rst` · `remove` → `rm` · `next` → `n`
30
+ - **`memory` sub-command aliases**: `save` → `s` · `get` → `g` · `list` → `ls` · `search` → `sr` · `delete` → `d` · `clear` → `cl`
31
+ - **New short options**:
32
+ - `-v` short flag for `--version` at root (works alongside legacy `-V`)
33
+ - `init --fw <types>` — long alias for `--framework`
34
+ - `use -F/--fast`, `-U/--full`
35
+ - `prompt -L/--lang`, `-d/--detail`
36
+ - `validate -x/--fix`
37
+ - `context -l/--load`
38
+ - `checkpoint -g/--gate`, `-s/--step`, `-n/--tokens`
39
+ - `guide -f/--flow`, `-c/--commands`
40
+ - `remove -g/--global`
41
+ - `update -f/--force`
42
+ - **Enhanced Comment Loading Options** — Added granular control for fetching ticket comments in `ak use`:
43
+ - `-c` or `--coms` — Quick alias to load all comments.
44
+ - `--cid <id>` — Load a specific comment by its ID.
45
+ - `--clast <n>` — Load only the last N comments.
46
+ - `--cfrom <id>` — Load comments starting from a specific ID.
47
+ - `--cto <id>` — Load comments up to a specific ID.
48
+ - **Deprecation Warning** — Added a friendly suggestion to use `ak` when the legacy `aiflow` command is invoked, preparing for future deprecation.
49
+
50
+ ### Fixed
51
+
52
+ - **Backlog Comment Pagination** — Fixed a critical bug where comments were not loading due to an invalid `offset` parameter in the Backlog API. Switched to `minId`-based pagination to ensure reliable and complete comment fetching.
53
+ - **Robust Comment Filtering** — Centralized comment filtering logic to effectively exclude metadata-only comments (changelogs) and focus on actual discussions.
54
+
55
+ ### Changed
56
+
57
+ - **CLI Consistency** — Updated all command-line help descriptions and internal mappings to support the new shortened flags while maintaining backward compatibility with legacy long-form options.
58
+ - **Documentation Alignment** — Updated all guides (QUICK_START, cli-reference) to reflect `ak` command and new short aliases.
59
+
60
+ ---
61
+
10
62
  ## [0.0.7] - 2026-05-08
11
63
 
12
64
  ### Added
@@ -209,7 +261,7 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
209
261
  ## How to upgrade
210
262
 
211
263
  ```bash
212
- npm install -g ai-flow-kit@latest
264
+ npm install -g @relipa/ai-flow-kit@latest
213
265
  aiflow --version
214
266
  ```
215
267
 
@@ -7,16 +7,16 @@
7
7
  ## Installation
8
8
 
9
9
  ```bash
10
- npm install -g ai-flow-kit
10
+ npm install -g @relipa/ai-flow-kit
11
11
 
12
12
  # Beta version (recommend for newest features)
13
- npm install -g ai-flow-kit@beta
13
+ npm install -g @relipa/ai-flow-kit@beta
14
14
 
15
15
  # Verification
16
- aiflow --version
16
+ aiflow --version # or short: aiflow -v
17
17
 
18
18
  # Uninstall
19
- npm uninstall -g ai-flow-kit
19
+ npm uninstall -g @relipa/ai-flow-kit
20
20
  ```
21
21
 
22
22
  ---
@@ -68,13 +68,13 @@ aiflow doctor
68
68
  aiflow use PROJ-33
69
69
 
70
70
  # Load with comments (recommended for bug-fix)
71
- aiflow use PROJ-33 --with-comments
71
+ aiflow use PROJ-33 -c
72
72
 
73
73
  # Load from Backlog URL
74
74
  aiflow use https://mycompany.backlog.com/view/PROJ-33
75
75
 
76
76
  # Load newest 5 comments
77
- aiflow use PROJ-33 --comments-last 5
77
+ aiflow use PROJ-33 --clast 5
78
78
 
79
79
  # Manual input (no Backlog/Jira)
80
80
  aiflow use --manual
@@ -356,62 +356,69 @@ claude # AI auto-starts: map dependencies → ass
356
356
 
357
357
  ## All Commands
358
358
 
359
+ > **Tip:** All commands support a short alias. Use `ak` instead of `aiflow` and the alias instead of the full command name (e.g. `ak t st` = `ak task status`).
360
+
359
361
  ```bash
360
362
  # Setup
361
- aiflow init --framework nestjs --adapter backlog
362
- aiflow init --framework spring-boot --with-rtk # RTK: bash output compression (60–90%)
363
- # aiflow init --framework spring-boot --with-gitnexus # GitNexus: waits for index to complete
364
- # aiflow init --framework spring-boot --with-gitnexus --no-wait # GitNexus: index in background
365
- aiflow init --no-rtk # skip RTK setup
366
- aiflow doctor # health check
367
- aiflow guide # multi-tool guide
368
- aiflow sync-skills # manually sync AI instruction files
363
+ ak init --framework nestjs --adapter backlog # (ak i -f nestjs -a backlog)
364
+ ak init --fw spring-boot --with-rtk # --fw alias for --framework, RTK: bash compression (60–90%)
365
+ ak init --no-rtk # skip RTK setup
366
+ ak dr # health check (ak doctor)
367
+ ak g # multi-tool guide (ak guide)
368
+ ak g -f # architecture diagram (ak guide --flow)
369
+ ak g -c # command reference (ak guide --commands)
370
+ ak sync # sync aiflow instruction files (ak sync-skills)
369
371
 
370
372
  # Per task
371
- aiflow use PROJ-33 # load context (Fast Mode, default)
372
- aiflow use PROJ-33 --full # load context (Full Mode)
373
- aiflow use --file task.md # load from local text/json file
374
- aiflow use PROJ-33 --with-comments # load with comments
375
- aiflow use PROJ-33 --comments-last 5 # newest 5 comments
376
- aiflow use --manual # manual input
377
- aiflow prompt bug-fix # generate prompt
378
- aiflow prompt feature --output p.md # save prompt to file
379
- aiflow prompt --list # list all prompt types
373
+ ak use PROJ-33 # load context (Fast Mode, default) — alias: ak u PROJ-33
374
+ ak use PROJ-33 -F # Fast Mode explicit (--fast)
375
+ ak use PROJ-33 -U # Full Mode (--full)
376
+ ak use -f task.md # load from local file (--file)
377
+ ak use PROJ-33 -c # load with all comments (--coms)
378
+ ak use PROJ-33 --clast 5 # newest 5 comments
379
+ ak use -m # manual input (--manual)
380
+ ak p bug-fix # generate prompt (ak prompt)
381
+ ak p feature -o p.md # save prompt to file (--output)
382
+ ak p -L vietnamese # Vietnamese prompt (--lang)
383
+ ak p -l # list prompt types (--list)
380
384
 
381
385
  # Task management
382
- aiflow task status # show active and pending tasks
383
- aiflow task list # list all saved tasks
384
- aiflow task pause # pause current task
385
- aiflow task switch PROJ-99 # switch to another task
386
- aiflow task resume PROJ-33 # resume a paused task
387
- aiflow task reset PROJ-33 # reset to Gate 1 (keeps context)
388
- aiflow task remove PROJ-33 # permanently delete all task data
386
+ ak t st # show active and pending tasks (ak task status)
387
+ ak t ls # list all saved tasks (ak task list)
388
+ ak t p # pause current task (ak task pause)
389
+ ak t p -n "waiting for PM" # pause with note (--note)
390
+ ak t sw PROJ-99 # switch to another task (ak task switch)
391
+ ak t r PROJ-33 # resume a paused task (ak task resume)
392
+ ak t rst PROJ-33 # reset to Gate 1 (ak task reset)
393
+ ak t rm PROJ-33 # permanently delete task data (ak task remove)
394
+ ak t n # approve gate & prep next session (ak task next)
389
395
 
390
396
  # Context management
391
- aiflow context show # view active context
392
- aiflow context list # list saved contexts
393
- aiflow context save my-snapshot # save named snapshot
394
- aiflow context load my-snapshot # load named snapshot
395
- aiflow context clear # clear active context
397
+ ak ctx show # view active context (ak context show)
398
+ ak ctx list # list saved contexts
399
+ ak ctx save my-snapshot # save named snapshot
400
+ ak ctx -l my-snapshot # load named snapshot (--load)
401
+ ak ctx clear # clear active context
396
402
 
397
403
  # Team knowledge
398
- aiflow memory save "key" "value" # save knowledge
399
- aiflow memory get "key" # retrieve
400
- aiflow memory search "keyword" # search
401
- aiflow memory list # list all
404
+ ak mem s "key" "value" # save knowledge (ak memory save)
405
+ ak mem g "key" # retrieve (ak memory get)
406
+ ak mem sr "keyword" # search (ak memory search)
407
+ ak mem ls # list all (ak memory list)
408
+ ak mem d "key" # delete (ak memory delete)
409
+ ak mem cl # clear all (ak memory clear)
402
410
 
403
411
  # Utilities
404
- aiflow validate src/File.java # validate code
405
- aiflow detect "description" # detect task type
406
- aiflow guide # full quickstart guide
407
- aiflow guide --flow # architecture diagram
408
- aiflow guide --commands # command reference
412
+ ak vl src/File.java # validate code (ak validate)
413
+ ak vl src/File.java -x # validate and auto-fix (--fix)
414
+ ak d "description" # detect task type (ak detect)
409
415
 
410
416
  # Maintenance
411
- aiflow remove # remove from project
412
- aiflow remove --global # uninstall globally (npm uninstall -g)
413
- aiflow remove --version 1.0.0 # remove cached version from .aiflow/
414
- npm uninstall -g ai-flow-kit # standard npm uninstall
417
+ ak rm # remove from project (ak remove)
418
+ ak rm -g # uninstall globally (--global)
419
+ ak up # update to latest (ak update)
420
+ ak up -f # force update (--force)
421
+ npm uninstall -g @relipa/ai-flow-kit # standard npm uninstall
415
422
  ```
416
423
 
417
424
  ---
@@ -438,7 +445,7 @@ Access docs after install:
438
445
  ```bash
439
446
  # Docs are in the package directory
440
447
  npm root -g # find global packages directory
441
- # → <path>/ai-flow-kit/AIFLOW.md, QUICK_START.md, etc.
448
+ # → <path>/@relipa/ai-flow-kit/AIFLOW.md, QUICK_START.md, etc.
442
449
 
443
450
  # Or use the built-in guide
444
451
  aiflow guide
@@ -450,7 +457,7 @@ aiflow guide
450
457
 
451
458
  **`aiflow` not found:**
452
459
  ```bash
453
- npm install -g ai-flow-kit
460
+ npm install -g @relipa/ai-flow-kit
454
461
  ```
455
462
 
456
463
  **Incorrect credentials:**