kctl-react 0.8.3__tar.gz → 0.9.0__tar.gz
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.
- {kctl_react-0.8.3 → kctl_react-0.9.0}/PKG-INFO +1 -1
- {kctl_react-0.8.3 → kctl_react-0.9.0}/pyproject.toml +4 -1
- kctl_react-0.9.0/skills/react-admin/SKILL.md +570 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/__init__.py +1 -1
- kctl_react-0.9.0/src/kctl_react/_register.py +85 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/cli.py +3 -68
- kctl_react-0.9.0/src/kctl_react/commands/cap/__init__.py +60 -0
- kctl_react-0.9.0/src/kctl_react/commands/cap/_helpers.py +286 -0
- kctl_react-0.9.0/src/kctl_react/commands/cap/devices.py +367 -0
- kctl_react-0.9.0/src/kctl_react/commands/cap/environment.py +270 -0
- kctl_react-0.9.0/src/kctl_react/commands/cap/lifecycle.py +234 -0
- kctl_react-0.9.0/src/kctl_react/commands/cap/signing.py +121 -0
- kctl_react-0.9.0/src/kctl_react/commands/doctor_cmd.py +94 -0
- kctl_react-0.9.0/src/kctl_react/commands/ui_audit/__init__.py +25 -0
- kctl_react-0.9.0/src/kctl_react/commands/ui_audit/antipatterns.py +400 -0
- kctl_react-0.8.3/src/kctl_react/commands/ui_audit.py → kctl_react-0.9.0/src/kctl_react/commands/ui_audit/theming.py +63 -444
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_cap.py +2 -2
- kctl_react-0.9.0/tests/test_doctor_ai_summary.py +20 -0
- kctl_react-0.8.3/src/kctl_react/commands/cap.py +0 -1465
- {kctl_react-0.8.3 → kctl_react-0.9.0}/.gitignore +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/README.md +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/.gitignore +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/README.md +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/fixtures/auth.ts +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/package.json +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/playwright.config.ts +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/e2e/tests/smoke/connectivity.spec.ts +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/skills/react-dev/SKILL.md +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/__main__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/a11y.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/affected.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/apps.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/build.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/bundle_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/clean.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/codegen.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/compliance.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/config_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/dashboard.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/deploy.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/deps.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/dev.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/docker_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/doctor.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/e2e.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/env.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/i18n.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/lint.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/maintenance.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/monitor_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/observe.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/packages.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/perf.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/pipeline.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/pwa.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/scaffold.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/security.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/skill_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/state.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/commands/test_cmd.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/analyzers.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/callbacks.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/endpoints.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/envelope.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/naming.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/params.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/requests.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/checks/types.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/hooks.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/matcher.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_check/schema.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/checks/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/checks/auth.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/checks/reachable.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/checks/response.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/checks/timing.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/client.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/api_health/sampler.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/api.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/codegen.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/darkmode.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/errors.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/features.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/i18n_check.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/imports.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/navigation.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/practices.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/providers.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/pwa.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/responsive.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/scripts.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/shadcn.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/structure.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/testing.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/theme.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/ui_standard.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/checks/vite.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/engine.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/exceptions_map.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/__init__.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/codegen_fix.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/i18n_fix.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/imports_fix.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/structure_fix.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/fixes/theme_fix.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/compliance/models.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/config.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/discovery.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/exceptions.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/git.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/history.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/output.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/plugins.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/core/runner.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/src/kctl_react/py.typed +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/conftest.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_analyzers.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_api_check.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_api_health.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_commands.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_compliance.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_config.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_exceptions.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_output.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_pipeline.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_runner.py +0 -0
- {kctl_react-0.8.3 → kctl_react-0.9.0}/tests/test_standard.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "kctl-react"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.9.0"
|
|
8
8
|
description = "Kodemeio React CLI — manage the kodemeio-react monorepo"
|
|
9
9
|
requires-python = ">=3.12"
|
|
10
10
|
dependencies = [
|
|
@@ -43,3 +43,6 @@ line-length = 120
|
|
|
43
43
|
[tool.mypy]
|
|
44
44
|
python_version = "3.12"
|
|
45
45
|
strict = true
|
|
46
|
+
|
|
47
|
+
[tool.kctl-conform]
|
|
48
|
+
exempt = ["LAYOUT-006"] # monorepo/git/fs tool, no remote client
|
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-admin
|
|
3
|
+
description: >
|
|
4
|
+
React PWA monorepo management via kctl-react CLI (38 groups, ~179 commands). MUST use for ANY kctl-react operation. See SKILL.md ## Triggers for keywords.
|
|
5
|
+
Auto-generated: 2026-05-22
|
|
6
|
+
registry_hash: 72e20bc3438e
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# react-admin — kctl-react CLI Reference
|
|
10
|
+
|
|
11
|
+
> Auto-generated from `kctl-react` command registry. Do not edit manually.
|
|
12
|
+
> To regenerate: `kctl-react skill generate`
|
|
13
|
+
> To add custom content: edit `SKILL.extra.md` in the same directory.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
**CLI:** `kctl-react`
|
|
18
|
+
**Command groups:** 38
|
|
19
|
+
**Total commands:** ~179
|
|
20
|
+
**Install:** `cd cli && uv tool install --editable .`
|
|
21
|
+
|
|
22
|
+
## Global Options
|
|
23
|
+
|
|
24
|
+
| Flag | Description |
|
|
25
|
+
|------|-------------|
|
|
26
|
+
| `--json` | JSON output |
|
|
27
|
+
| `--quiet`, `-q` | Suppress info messages |
|
|
28
|
+
| `--format`, `-f` | Output format: pretty/json/csv/yaml |
|
|
29
|
+
| `--no-header` | Omit CSV header row |
|
|
30
|
+
| `--profile`, `-p` | Config profile name |
|
|
31
|
+
| `--version`, `-V` | Show version |
|
|
32
|
+
|
|
33
|
+
## Quick Discovery (for AI agents)
|
|
34
|
+
|
|
35
|
+
**DO NOT GUESS command paths or flag names.** Before invoking `kctl-react <group> <verb> ...`, use these AI-facing affordances:
|
|
36
|
+
|
|
37
|
+
1. **Find a command by keyword** — substring filter, returns sorted leaf paths:
|
|
38
|
+
```bash
|
|
39
|
+
kctl-react commands list --filter <keyword>
|
|
40
|
+
```
|
|
41
|
+
Example: `kctl-react commands list --filter database` → all database-related commands in one call.
|
|
42
|
+
|
|
43
|
+
2. **Inspect flags before invoking** — full param schema with
|
|
44
|
+
opts/defaults/required/choices/help:
|
|
45
|
+
```bash
|
|
46
|
+
kctl-react commands tree --json | jq '.. | objects | select(.name == "<verb>") | .params'
|
|
47
|
+
```
|
|
48
|
+
Reading the `params` array tells you exact flag names (`--lang`), short aliases (`-l`), defaults, required-vs-optional, and choices — eliminating the `No such option '--xxx'` failure mode.
|
|
49
|
+
|
|
50
|
+
3. **Preview destructive operations without executing** — `--explain` is supported on selected write commands:
|
|
51
|
+
```bash
|
|
52
|
+
kctl-react <group> <verb> <args> --explain
|
|
53
|
+
```
|
|
54
|
+
Prints the planned action and exits 0. If `--explain` errors with "no such option", that command does not support it — fall back to verifying via `commands tree` schema inspection before running for real.
|
|
55
|
+
|
|
56
|
+
4. **Errors are user-facing one-liners**, not Python tracebacks. A failed invocation shows `❌ <ErrorClass>: <message>` on stderr (or `{"error": ..., "message": ...}` JSON if `--json` was passed). Read the message — it usually tells you exactly what's missing.
|
|
57
|
+
|
|
58
|
+
## Triggers
|
|
59
|
+
|
|
60
|
+
Auto-invoke this skill when the user references any of these keywords:
|
|
61
|
+
|
|
62
|
+
"a11y", "affected", "affected-gate", "anti-patterns", "api-check", "api-health", "apps", "audit", "budget", "build", "bundle", "cache", "cache-clear", "cache-list", "cap", "check", "chunks", "clean", "cleanup", "codegen", "commands", "compare", "completions", "compliance", "component", "components", "config", "consistency", "consumers", "conventions", "count", "count-test-files", "coverage", "current", "dashboard", "deploy", "deps", "deps-license", "deps-sync", "dev", "devices", "diff", "discover", "docker", "docs", "doctor", "down", "dr-status", "drift", "duplicates", "e2e", "emulator", "endpoints", "env", "errors", "fonts", "form", "format", "gate", "generate", "graph", "headers", "health", "health-report", "history", "hook", "hooks-audit", "i18n", "image-size", "images", "impact", "info", "init", "install", "installed", "interpolation", "invalidation-map", "kctl-react", "keystore", "launch"
|
|
63
|
+
|
|
64
|
+
## Command Reference
|
|
65
|
+
|
|
66
|
+
### `kctl-react a11y`
|
|
67
|
+
|
|
68
|
+
Accessibility auditing (WCAG 2.1).
|
|
69
|
+
|
|
70
|
+
| Command | Description |
|
|
71
|
+
|---------|-------------|
|
|
72
|
+
| `a11y audit <app_name> [--url]` | Run axe-core accessibility audit. |
|
|
73
|
+
| `a11y report <app_name>` | Full WCAG 2.1 AA compliance report. |
|
|
74
|
+
| `a11y violations <app_name> [--severity]` | List accessibility violations filtered by severity. |
|
|
75
|
+
|
|
76
|
+
### `kctl-react affected`
|
|
77
|
+
|
|
78
|
+
Git-aware change detection and targeted operations.
|
|
79
|
+
|
|
80
|
+
| Command | Description |
|
|
81
|
+
|---------|-------------|
|
|
82
|
+
| `affected build [--base]` | Build only affected apps. |
|
|
83
|
+
| `affected lint [--base]` | Lint only affected apps. |
|
|
84
|
+
| `affected test [--base] [--coverage]` | Run tests only for affected apps. |
|
|
85
|
+
|
|
86
|
+
### `kctl-react apps`
|
|
87
|
+
|
|
88
|
+
App inventory, status, and health checks.
|
|
89
|
+
|
|
90
|
+
| Command | Description |
|
|
91
|
+
|---------|-------------|
|
|
92
|
+
| `apps clean [--app_name] [--all_]` | Clean dist, .turbo, and coverage directories. |
|
|
93
|
+
| `apps dashboard [--watch] [--interval]` | Show monorepo overview dashboard. |
|
|
94
|
+
| `apps doctor` | Run comprehensive monorepo health checks. |
|
|
95
|
+
| `apps health [--app_name] [--watch] [--interval]` | Check health of running dev servers. |
|
|
96
|
+
| `apps info` | Show quick project info: version, root, profile, node/pnpm versions. |
|
|
97
|
+
| `apps list` | List all apps with ports and package names. |
|
|
98
|
+
| `apps ports` | Show port assignments for all apps. |
|
|
99
|
+
| `apps status [--app_name]` | Check status of app(s): directory exists, package.json, env file, dist. |
|
|
100
|
+
|
|
101
|
+
**Examples:**
|
|
102
|
+
```bash
|
|
103
|
+
kctl-react apps clean # Clean all apps
|
|
104
|
+
kctl-react apps clean sfa # Clean SFA only
|
|
105
|
+
kctl-react apps clean --all # Clean + remove node_modules
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### `kctl-react build`
|
|
109
|
+
|
|
110
|
+
Production builds and bundle analysis.
|
|
111
|
+
|
|
112
|
+
| Command | Description |
|
|
113
|
+
|---------|-------------|
|
|
114
|
+
| `build bundle <app_name> [--top]` | Show treemap-style bundle composition for a built app. |
|
|
115
|
+
| `build chunks <app_name>` | Show chunk breakdown for a built app. |
|
|
116
|
+
| `build compare [--app_name]` | Compare current bundle sizes against last recorded snapshot. |
|
|
117
|
+
| `build history` | Show build size history over time. |
|
|
118
|
+
| `build size [--app_name]` | Show bundle sizes for built app(s). |
|
|
119
|
+
|
|
120
|
+
### `kctl-react bundle`
|
|
121
|
+
|
|
122
|
+
Advanced bundle analysis.
|
|
123
|
+
|
|
124
|
+
| Command | Description |
|
|
125
|
+
|---------|-------------|
|
|
126
|
+
| `bundle budget <app_name> [--max_js]` | Check bundle sizes against budgets. |
|
|
127
|
+
| `bundle compare <app_name>` | Compare current build against saved snapshot. |
|
|
128
|
+
| `bundle duplicates` | Detect packages bundled at different versions across apps. |
|
|
129
|
+
| `bundle impact <app_name> [--top]` | Show which chunks contribute most to bundle size. |
|
|
130
|
+
| `bundle treeshake <app_name>` | Detect imports that may prevent tree-shaking. |
|
|
131
|
+
|
|
132
|
+
### `kctl-react cap`
|
|
133
|
+
|
|
134
|
+
Capacitor native app management (Android/iOS).
|
|
135
|
+
|
|
136
|
+
| Command | Description |
|
|
137
|
+
|---------|-------------|
|
|
138
|
+
| `cap add <app_name> <platform>` | Add a native platform (android/ios) to an app. |
|
|
139
|
+
| `cap build <app_name> <platform> [--release]` | Build native artifact (APK/AAB for Android, IPA for iOS). |
|
|
140
|
+
| `cap dev <app_name> <platform>` | Start Vite dev server with live-reload on a native device. |
|
|
141
|
+
| `cap devices` | List connected Android devices and emulators via ADB. |
|
|
142
|
+
| `cap doctor [--app_name] [--platform]` | Comprehensive Capacitor build environment validation. |
|
|
143
|
+
| `cap emulator [--start] [--create]` | List, create, or start Android emulators. |
|
|
144
|
+
| `cap init <app_name> [--app_id]` | Initialize Capacitor for an app (creates capacitor.config.ts). |
|
|
145
|
+
| `cap install <app_name> [--device] [--build_type]` | Install APK on a connected device or emulator. |
|
|
146
|
+
| `cap keystore <app_name> [--alias] [--validity]` | Generate a signing keystore for release builds. |
|
|
147
|
+
| `cap launch <app_name> [--device]` | Launch the app on a connected device or emulator. |
|
|
148
|
+
| `cap logs <app_name> [--device] [--clear]` | Show live logcat output filtered to the app (Ctrl+C to stop). |
|
|
149
|
+
| `cap open <app_name> <platform>` | Open native project in Android Studio or Xcode. |
|
|
150
|
+
| `cap run <app_name> <platform> [--target]` | Build, sync, and deploy to a device or emulator. |
|
|
151
|
+
| `cap status` | Show Capacitor status for all apps. |
|
|
152
|
+
| `cap sync <app_name> [--platform] [--skip_build]` | Build web assets and sync to native platforms. |
|
|
153
|
+
|
|
154
|
+
### `kctl-react clean`
|
|
155
|
+
|
|
156
|
+
Clean build artifacts and caches.
|
|
157
|
+
|
|
158
|
+
| Command | Description |
|
|
159
|
+
|---------|-------------|
|
|
160
|
+
| `clean run [--app_name] [--all_]` | Clean dist, .turbo, and coverage directories. |
|
|
161
|
+
|
|
162
|
+
**Examples:**
|
|
163
|
+
```bash
|
|
164
|
+
kctl-react clean run # Clean all apps
|
|
165
|
+
kctl-react clean run sfa # Clean SFA only
|
|
166
|
+
kctl-react clean run --all # Clean + remove node_modules
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### `kctl-react codegen`
|
|
170
|
+
|
|
171
|
+
OpenAPI schema fetch and type generation.
|
|
172
|
+
|
|
173
|
+
| Command | Description |
|
|
174
|
+
|---------|-------------|
|
|
175
|
+
| `codegen diff <app_name>` | Show what types changed after regenerating OpenAPI types. |
|
|
176
|
+
| `codegen drift <app_name>` | Detect stale type references. |
|
|
177
|
+
| `codegen endpoints <app_name>` | List API endpoints from the app's generated types. |
|
|
178
|
+
| `codegen schema-health <app_name>` | Check OpenAPI codegen health for an app. |
|
|
179
|
+
| `codegen status` | Show codegen setup status for each app. |
|
|
180
|
+
| `codegen verify <app_name>` | Verify generated types are properly wired. |
|
|
181
|
+
|
|
182
|
+
### `kctl-react commands`
|
|
183
|
+
|
|
184
|
+
Machine-readable command discovery (for AI agents).
|
|
185
|
+
|
|
186
|
+
| Command | Description |
|
|
187
|
+
|---------|-------------|
|
|
188
|
+
| `commands list [--json_flag] [--filter_substr]` | List all leaf commands as 'group verb' strings. |
|
|
189
|
+
| `commands tree [--json_flag]` | Dump the full command tree as JSON. |
|
|
190
|
+
|
|
191
|
+
### `kctl-react completions`
|
|
192
|
+
|
|
193
|
+
Generate or install shell completions.
|
|
194
|
+
|
|
195
|
+
Usage: `kctl-react completions [--shell] [--install]`
|
|
196
|
+
|
|
197
|
+
### `kctl-react compliance`
|
|
198
|
+
|
|
199
|
+
Audit app compliance, auto-fix violations, and generate fix prompts.
|
|
200
|
+
|
|
201
|
+
| Command | Description |
|
|
202
|
+
|---------|-------------|
|
|
203
|
+
| `compliance api-check [--app_name] [--all_apps] [--offline] [--categories] [--min_score]` | Check frontend API hooks against OpenAPI schema. |
|
|
204
|
+
| `compliance api-health [--app_name] [--all_apps] [--url] [--timeout] [--token] [--categories] [--min_score]` | Run live health checks against backend API endpoints. |
|
|
205
|
+
| `compliance audit [--app_name] [--all_apps] [--min_score] [--categories]` | Run compliance audit on one or all apps. |
|
|
206
|
+
| `compliance fix [--app_name] [--all_apps] [--dry_run] [--categories]` | Apply auto-fixes for compliance violations. |
|
|
207
|
+
| `compliance prompt [--app_name] [--all_apps] [--output_file] [--categories]` | Generate markdown fix prompts for AI or human review. |
|
|
208
|
+
|
|
209
|
+
**Examples:**
|
|
210
|
+
```bash
|
|
211
|
+
kctl-react compliance api-check sfa
|
|
212
|
+
kctl-react compliance api-check --all
|
|
213
|
+
kctl-react compliance api-check sfa --offline
|
|
214
|
+
kctl-react compliance api-check sfa --categories endpoints,types
|
|
215
|
+
kctl-react compliance api-check --all --min-score 80
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### `kctl-react config`
|
|
219
|
+
|
|
220
|
+
Manage CLI configuration and profiles.
|
|
221
|
+
|
|
222
|
+
| Command | Description |
|
|
223
|
+
|---------|-------------|
|
|
224
|
+
| `config add <name> [--root] [--api_url] [--odoo_url] [--odoo_db] [--set_default]` | Add or update a profile's React monorepo connection. |
|
|
225
|
+
| `config current` | Show the active profile and project root. |
|
|
226
|
+
| `config init [--root] [--api_url] [--name]` | Initialize CLI configuration (interactive if no flags given). |
|
|
227
|
+
| `config profiles` | List all profiles. |
|
|
228
|
+
| `config remove <name> [--force] [--service_only]` | Remove a profile or just its React config. |
|
|
229
|
+
| `config set <key> <value>` | Set a configuration value. |
|
|
230
|
+
| `config show` | Show full configuration. |
|
|
231
|
+
| `config test` | Verify configuration is valid. |
|
|
232
|
+
| `config use <name>` | Switch the default profile. |
|
|
233
|
+
|
|
234
|
+
### `kctl-react dashboard`
|
|
235
|
+
|
|
236
|
+
Monorepo overview dashboard.
|
|
237
|
+
|
|
238
|
+
| Command | Description |
|
|
239
|
+
|---------|-------------|
|
|
240
|
+
| `dashboard show [--watch] [--interval]` | Show monorepo overview dashboard. |
|
|
241
|
+
|
|
242
|
+
### `kctl-react deploy`
|
|
243
|
+
|
|
244
|
+
Docker Compose deployment management.
|
|
245
|
+
|
|
246
|
+
| Command | Description |
|
|
247
|
+
|---------|-------------|
|
|
248
|
+
| `deploy build <app_name>` | Build and deploy an app via Docker Compose. |
|
|
249
|
+
| `deploy down <app_name> [--force]` | Stop a deployed app. |
|
|
250
|
+
| `deploy images` | Show Docker images for all apps. |
|
|
251
|
+
| `deploy logs <app_name> [--follow]` | Show logs for a deployed app. |
|
|
252
|
+
| `deploy ps` | Show all running containers for kodemeio apps. |
|
|
253
|
+
| `deploy readiness` | Show deployment readiness status per app. |
|
|
254
|
+
| `deploy status <app_name>` | Show container status for a deployed app. |
|
|
255
|
+
|
|
256
|
+
### `kctl-react deps`
|
|
257
|
+
|
|
258
|
+
Dependency management and analysis.
|
|
259
|
+
|
|
260
|
+
| Command | Description |
|
|
261
|
+
|---------|-------------|
|
|
262
|
+
| `deps audit` | Run security audit on dependencies. |
|
|
263
|
+
| `deps duplicates` | Find packages with inconsistent versions across workspaces. |
|
|
264
|
+
| `deps graph` | Show internal package dependency graph. |
|
|
265
|
+
| `deps health` | Run dependency health checks and produce an overall score. |
|
|
266
|
+
| `deps list` | List all workspace packages. |
|
|
267
|
+
| `deps outdated [--app_name]` | Check for outdated dependencies. |
|
|
268
|
+
| `deps size` | Show node_modules disk usage. |
|
|
269
|
+
| `deps stack [--category]` | Show full external dependency inventory across the monorepo. |
|
|
270
|
+
| `deps sync [--fix]` | Check and fix version inconsistencies across ALL external dependencies. |
|
|
271
|
+
| `deps upgrade [--category] [--major] [--dry_run]` | Smart dependency upgrade — show outdated deps with context and apply upgrades. |
|
|
272
|
+
| `deps why <package>` | Show which apps depend on a specific package. |
|
|
273
|
+
|
|
274
|
+
**Examples:**
|
|
275
|
+
```bash
|
|
276
|
+
kctl-react deps upgrade # Show upgrade plan
|
|
277
|
+
kctl-react deps upgrade --category build # Only build tools
|
|
278
|
+
kctl-react deps upgrade --major # Include major bumps
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### `kctl-react dev`
|
|
282
|
+
|
|
283
|
+
Dev server management.
|
|
284
|
+
|
|
285
|
+
| Command | Description |
|
|
286
|
+
|---------|-------------|
|
|
287
|
+
| `dev list` | List available apps and their dev ports. |
|
|
288
|
+
| `dev logs <app_name>` | Show build output / dev logs for an app (re-runs dev with output). |
|
|
289
|
+
| `dev start [--app_name]` | Start dev server(s) via Turbo. |
|
|
290
|
+
|
|
291
|
+
**Examples:**
|
|
292
|
+
```bash
|
|
293
|
+
kctl-react dev start sfa # Start SFA only
|
|
294
|
+
kctl-react dev start # Start all apps
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### `kctl-react docker`
|
|
298
|
+
|
|
299
|
+
Docker container management.
|
|
300
|
+
|
|
301
|
+
| Command | Description |
|
|
302
|
+
|---------|-------------|
|
|
303
|
+
| `docker image-size` | Show Docker image sizes. |
|
|
304
|
+
| `docker logs [--service] [--tail]` | Stream container logs. |
|
|
305
|
+
| `docker ps` | List running containers. |
|
|
306
|
+
| `docker restart <service>` | Restart a container. |
|
|
307
|
+
|
|
308
|
+
### `kctl-react doctor`
|
|
309
|
+
|
|
310
|
+
Monorepo health checks.
|
|
311
|
+
|
|
312
|
+
| Command | Description |
|
|
313
|
+
|---------|-------------|
|
|
314
|
+
| `doctor check` | Run comprehensive monorepo health checks. |
|
|
315
|
+
|
|
316
|
+
### `kctl-react e2e`
|
|
317
|
+
|
|
318
|
+
E2E testing and screenshots via Playwright.
|
|
319
|
+
|
|
320
|
+
| Command | Description |
|
|
321
|
+
|---------|-------------|
|
|
322
|
+
| `e2e discover [--dry_run] [--json_output]` | Auto-discover app configs and regenerate e2e/app-registry.ts. |
|
|
323
|
+
| `e2e install` | Install Playwright browsers (chromium). |
|
|
324
|
+
| `e2e list [--app_name]` | List all discovered E2E tests. |
|
|
325
|
+
| `e2e report` | Open Playwright HTML test report. |
|
|
326
|
+
| `e2e screenshots [--app_name] [--mobile] [--desktop]` | Capture screenshots of all app pages via Playwright. |
|
|
327
|
+
| `e2e test [--app_name] [--headed] [--ui] [--shared_only] [--debug] [--screenshots] [--video] [--mobile] [--grep] [--api_only] [--pages_only]` | Run Playwright E2E tests. |
|
|
328
|
+
|
|
329
|
+
**Examples:**
|
|
330
|
+
```bash
|
|
331
|
+
kctl-react e2e discover # Regenerate registry
|
|
332
|
+
kctl-react e2e discover --dry-run # Preview changes
|
|
333
|
+
kctl-react e2e discover --json # Output as JSON
|
|
334
|
+
kctl-react e2e install
|
|
335
|
+
kctl-react e2e list # List all tests
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### `kctl-react env`
|
|
339
|
+
|
|
340
|
+
Environment variable management.
|
|
341
|
+
|
|
342
|
+
| Command | Description |
|
|
343
|
+
|---------|-------------|
|
|
344
|
+
| `env diff <app1> <app2>` | Compare .env files between two apps. |
|
|
345
|
+
| `env show <app_name>` | Show environment variables for an app. |
|
|
346
|
+
| `env validate [--app_name]` | Validate .env files exist and have required keys. |
|
|
347
|
+
|
|
348
|
+
### `kctl-react i18n`
|
|
349
|
+
|
|
350
|
+
Translation management (react-i18next).
|
|
351
|
+
|
|
352
|
+
| Command | Description |
|
|
353
|
+
|---------|-------------|
|
|
354
|
+
| `i18n coverage [--app_name] [--all_apps]` | Translation coverage — compare en.json vs id.json. |
|
|
355
|
+
| `i18n diff <app_name> [--base]` | Show keys added/removed between git refs. |
|
|
356
|
+
| `i18n interpolation <app_name>` | Check {{var}} placeholder consistency between en.json and id.json. |
|
|
357
|
+
| `i18n missing <app_name>` | List keys in en.json but not in id.json. |
|
|
358
|
+
| `i18n sort <app_name>` | Sort translation JSON keys alphabetically. |
|
|
359
|
+
| `i18n sync-stub <app_name>` | Generate stub entries in id.json for keys missing from en.json. |
|
|
360
|
+
| `i18n unused <app_name>` | Find translation keys not referenced in source code. |
|
|
361
|
+
| `i18n validate <app_name>` | Validate all translation JSON files for syntax and required keys. |
|
|
362
|
+
|
|
363
|
+
### `kctl-react info`
|
|
364
|
+
|
|
365
|
+
Show monorepo summary: apps, packages, and CLI version.
|
|
366
|
+
|
|
367
|
+
### `kctl-react lint`
|
|
368
|
+
|
|
369
|
+
Lint, type-check, and format code.
|
|
370
|
+
|
|
371
|
+
| Command | Description |
|
|
372
|
+
|---------|-------------|
|
|
373
|
+
| `lint conventions <app_name>` | Check project conventions for an app. |
|
|
374
|
+
| `lint format [--check]` | Run Prettier on the codebase. |
|
|
375
|
+
| `lint strict-check` | Verify all apps have TypeScript strict mode enabled. |
|
|
376
|
+
| `lint tsconfig-audit` | Audit tsconfig.json settings for consistency across all apps. |
|
|
377
|
+
|
|
378
|
+
**Examples:**
|
|
379
|
+
```bash
|
|
380
|
+
kctl-react lint conventions sfa
|
|
381
|
+
kctl-react lint strict-check
|
|
382
|
+
kctl-react --json lint strict-check
|
|
383
|
+
kctl-react lint tsconfig-audit
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### `kctl-react maintenance`
|
|
387
|
+
|
|
388
|
+
Maintenance utilities for the React monorepo.
|
|
389
|
+
|
|
390
|
+
| Command | Description |
|
|
391
|
+
|---------|-------------|
|
|
392
|
+
| `maintenance cleanup [--dry_run]` | Remove build artifacts (dist/, .turbo/, coverage/, node_modules/.cache). |
|
|
393
|
+
| `maintenance count-test-files` | Count test files (.test.ts / .test.tsx) per app. |
|
|
394
|
+
| `maintenance deps-sync [--exclude]` | Check dependency version consistency across all apps and packages. |
|
|
395
|
+
| `maintenance dr-status` | Check deployment readiness: Dockerfile, docker-compose, and .env files. |
|
|
396
|
+
| `maintenance health-report` | Show per-app health: test file count, codegen status, and dist presence. |
|
|
397
|
+
|
|
398
|
+
### `kctl-react monitor`
|
|
399
|
+
|
|
400
|
+
Production monitoring.
|
|
401
|
+
|
|
402
|
+
| Command | Description |
|
|
403
|
+
|---------|-------------|
|
|
404
|
+
| `monitor health <app_name> [--url]` | HTTP health check against deployed app. |
|
|
405
|
+
| `monitor ssl <domain>` | Check SSL certificate. |
|
|
406
|
+
|
|
407
|
+
### `kctl-react observe`
|
|
408
|
+
|
|
409
|
+
Error tracking and observability.
|
|
410
|
+
|
|
411
|
+
| Command | Description |
|
|
412
|
+
|---------|-------------|
|
|
413
|
+
| `observe errors [--app_name]` | Show error trends. |
|
|
414
|
+
| `observe sentry [--app_name]` | Show recent Sentry issues. |
|
|
415
|
+
| `observe uptime [--app_name]` | Show Gatus uptime status. |
|
|
416
|
+
|
|
417
|
+
### `kctl-react packages`
|
|
418
|
+
|
|
419
|
+
Shared package inspection and management.
|
|
420
|
+
|
|
421
|
+
| Command | Description |
|
|
422
|
+
|---------|-------------|
|
|
423
|
+
| `packages consumers <package_name>` | Show which apps use a specific shared package. |
|
|
424
|
+
| `packages list` | List all shared packages with versions and descriptions. |
|
|
425
|
+
| `packages size` | Show source size of each shared package. |
|
|
426
|
+
|
|
427
|
+
### `kctl-react perf`
|
|
428
|
+
|
|
429
|
+
Performance profiling and bundle analysis.
|
|
430
|
+
|
|
431
|
+
| Command | Description |
|
|
432
|
+
|---------|-------------|
|
|
433
|
+
| `perf bundle <app_name> [--budget_kb]` | Report bundle size breakdown for a built app (reads dist/assets/). |
|
|
434
|
+
| `perf fonts <app_name>` | Check font loading strategy (preload, self-hosted, font-display, woff2). |
|
|
435
|
+
| `perf history <app_name> [--limit]` | Show Lighthouse score and build size trends over time. |
|
|
436
|
+
| `perf images <app_name> [--max_size]` | Audit image assets in public/ and src/assets/ directories. |
|
|
437
|
+
| `perf lighthouse <app_name> [--budget] [--url]` | Run Lighthouse CI and compare against performance budget. |
|
|
438
|
+
| `perf pwa [--app_name]` | Check PWA readiness for each app. |
|
|
439
|
+
| `perf vitals <app_name>` | Check Core Web Vitals readiness (code splitting, lazy images, SVGs, scripts). |
|
|
440
|
+
|
|
441
|
+
### `kctl-react pipeline`
|
|
442
|
+
|
|
443
|
+
CI/CD pipeline gates, affected builds, and releases.
|
|
444
|
+
|
|
445
|
+
| Command | Description |
|
|
446
|
+
|---------|-------------|
|
|
447
|
+
| `pipeline affected-gate [--base] [--strict]` | Run gate only for apps affected by git changes. |
|
|
448
|
+
| `pipeline gate [--app_name] [--strict] [--skip_build]` | Run full CI gate: lint → type-check → test → audit → build. |
|
|
449
|
+
| `pipeline release <app_name> [--tag] [--push]` | Build Docker image for an app and optionally push to GHCR. |
|
|
450
|
+
|
|
451
|
+
### `kctl-react pwa`
|
|
452
|
+
|
|
453
|
+
PWA and Service Worker management (Vite apps).
|
|
454
|
+
|
|
455
|
+
| Command | Description |
|
|
456
|
+
|---------|-------------|
|
|
457
|
+
| `pwa cache-clear <app_name>` | Clear built service worker files. |
|
|
458
|
+
| `pwa cache-list <app_name>` | List precached URLs from service worker manifest. |
|
|
459
|
+
| `pwa manifest-validate <app_name>` | Validate web app manifest against PWA requirements. |
|
|
460
|
+
| `pwa offline-report <app_name>` | Analyze offline support coverage. |
|
|
461
|
+
| `pwa status <app_name>` | Show PWA status — service worker version, precache count, manifest. |
|
|
462
|
+
| `pwa sw-info <app_name>` | Show vite-plugin-pwa configuration. |
|
|
463
|
+
|
|
464
|
+
### `kctl-react scaffold`
|
|
465
|
+
|
|
466
|
+
Scaffold new apps, pages, hooks, and components.
|
|
467
|
+
|
|
468
|
+
| Command | Description |
|
|
469
|
+
|---------|-------------|
|
|
470
|
+
| `scaffold component <app_name> <name>` | Scaffold a new component. |
|
|
471
|
+
| `scaffold form <app_name> <name>` | Scaffold a react-hook-form + zod form component. |
|
|
472
|
+
| `scaffold hook <app_name> <resource>` | Scaffold a TanStack Query API hook. |
|
|
473
|
+
| `scaffold page <app_name> <name>` | Scaffold a new page component. |
|
|
474
|
+
| `scaffold test <app_name> <name>` | Scaffold a vitest test file. |
|
|
475
|
+
|
|
476
|
+
### `kctl-react security`
|
|
477
|
+
|
|
478
|
+
Security scanning and compliance checks.
|
|
479
|
+
|
|
480
|
+
| Command | Description |
|
|
481
|
+
|---------|-------------|
|
|
482
|
+
| `security audit [--app_name] [--detail]` | Run pnpm audit — show vulnerabilities with severity, CVEs, and fix commands. |
|
|
483
|
+
| `security deps-license [--app_name] [--check]` | Check license compliance across dependencies. |
|
|
484
|
+
| `security headers <app_name> [--url]` | Check security headers on a running app. |
|
|
485
|
+
| `security licenses [--app_name] [--check]` | Check license compliance across dependencies. |
|
|
486
|
+
| `security report [--app_name] [--strict]` | Run all security checks and produce an aggregated report. |
|
|
487
|
+
| `security scan [--app_name]` | Combined security scan: dependency audit + secret detection. |
|
|
488
|
+
| `security secrets [--app_name]` | Scan source code for hardcoded API keys, tokens, and passwords. |
|
|
489
|
+
|
|
490
|
+
### `kctl-react self-update`
|
|
491
|
+
|
|
492
|
+
Check for updates and upgrade kctl-react.
|
|
493
|
+
|
|
494
|
+
### `kctl-react skill`
|
|
495
|
+
|
|
496
|
+
Claude Code skill management.
|
|
497
|
+
|
|
498
|
+
| Command | Description |
|
|
499
|
+
|---------|-------------|
|
|
500
|
+
| `skill generate [--output] [--install]` | Auto-generate SKILL.md from CLI command registry. |
|
|
501
|
+
|
|
502
|
+
### `kctl-react state`
|
|
503
|
+
|
|
504
|
+
TanStack Query static analysis (query keys, hooks audit, invalidation map).
|
|
505
|
+
|
|
506
|
+
| Command | Description |
|
|
507
|
+
|---------|-------------|
|
|
508
|
+
| `state consistency <app_name>` | Check query key consistency — duplicates and mutations missing invalidation. |
|
|
509
|
+
| `state hooks-audit <app_name>` | Audit hook best practices — imports, onError handlers, getErrorMessage usage. |
|
|
510
|
+
| `state invalidation-map <app_name>` | Show mutation → invalidation mapping for all hook files. |
|
|
511
|
+
| `state query-keys <app_name>` | List all TanStack Query queryKey definitions in hook files and inline queries. |
|
|
512
|
+
|
|
513
|
+
### `kctl-react test`
|
|
514
|
+
|
|
515
|
+
Run tests across the monorepo.
|
|
516
|
+
|
|
517
|
+
| Command | Description |
|
|
518
|
+
|---------|-------------|
|
|
519
|
+
| `test count` | Count test files per app. |
|
|
520
|
+
| `test coverage` | Show aggregated test coverage across all apps. |
|
|
521
|
+
| `test naming` | Check test file naming conventions across all apps. |
|
|
522
|
+
| `test snapshots <app_name>` | List vitest snapshot files for an app. |
|
|
523
|
+
| `test summary [--app_name]` | Run tests with JSON reporter and show parsed summary. |
|
|
524
|
+
| `test threshold [--min_pct]` | Enforce minimum coverage threshold across all apps. |
|
|
525
|
+
|
|
526
|
+
### `kctl-react tui`
|
|
527
|
+
|
|
528
|
+
Launch the interactive TUI.
|
|
529
|
+
|
|
530
|
+
Usage: `kctl-react tui [--profile]`
|
|
531
|
+
|
|
532
|
+
### `kctl-react ui`
|
|
533
|
+
|
|
534
|
+
UI component audit and shadcn compliance.
|
|
535
|
+
|
|
536
|
+
| Command | Description |
|
|
537
|
+
|---------|-------------|
|
|
538
|
+
| `ui add [--component] [--all_components] [--overwrite] [--dry_run]` | Install a shadcn component into @kodemeio/ui. |
|
|
539
|
+
| `ui anti-patterns <app_name>` | Detect React anti-patterns: inline styles, CSS modules, styled-components, direct DOM access. |
|
|
540
|
+
| `ui audit <app_name>` | Find raw HTML elements that should be shadcn components. |
|
|
541
|
+
| `ui compliance <app_name>` | Score shadcn compliance as % of clean TSX files (no violations). |
|
|
542
|
+
| `ui components <app_name>` | List shadcn components used by the app. |
|
|
543
|
+
| `ui diff <component>` | Show diff for a shadcn component update. |
|
|
544
|
+
| `ui docs <component>` | Get shadcn component documentation and API reference. |
|
|
545
|
+
| `ui info` | Show shadcn project configuration from packages/ui. |
|
|
546
|
+
| `ui installed` | List all installed shadcn components in @kodemeio/ui. |
|
|
547
|
+
| `ui preset <name> [--reinstall] [--dry_run] [--target]` | Apply a shadcn theme preset — extract CSS vars into the monorepo theme system. |
|
|
548
|
+
| `ui search <query> [--limit]` | Search the shadcn component registry. |
|
|
549
|
+
| `ui theme-check <app_name>` | Validate theme CSS variable references and Tailwind v4 patterns. |
|
|
550
|
+
| `ui unused` | Find installed components not used by any app. |
|
|
551
|
+
|
|
552
|
+
**Examples:**
|
|
553
|
+
```bash
|
|
554
|
+
kctl-react ui preset b1D0dv72 # Apply to base-neutral.css
|
|
555
|
+
kctl-react ui preset b1D0dv72 --target sfa # Apply to themes/sfa.css
|
|
556
|
+
kctl-react ui preset b1D0dv72 --dry-run # Preview changes
|
|
557
|
+
kctl-react ui preset b1D0dv72 --reinstall # Apply + reinstall components
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
## Configuration
|
|
561
|
+
|
|
562
|
+
Shared config: `~/.config/kodemeio/config.yaml`
|
|
563
|
+
|
|
564
|
+
```bash
|
|
565
|
+
kctl-react config init # Interactive setup
|
|
566
|
+
kctl-react config show # Show current config
|
|
567
|
+
kctl-react config profiles # List profiles
|
|
568
|
+
kctl-react config current # Show active profile
|
|
569
|
+
kctl-react config validate # Verify config
|
|
570
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Command-group registration for kctl-react (extracted from cli.py to keep it thin)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
from kctl_lib.ai_summary import add_ai_summary_command
|
|
7
|
+
from kctl_lib.tui import add_tui_command
|
|
8
|
+
|
|
9
|
+
from kctl_react import __version__
|
|
10
|
+
from kctl_react.commands.a11y import app as a11y_app
|
|
11
|
+
from kctl_react.commands.affected import app as affected_app
|
|
12
|
+
from kctl_react.commands.apps import app as apps_app
|
|
13
|
+
from kctl_react.commands.build import app as build_app
|
|
14
|
+
from kctl_react.commands.bundle_cmd import app as bundle_app
|
|
15
|
+
from kctl_react.commands.cap import app as cap_app
|
|
16
|
+
from kctl_react.commands.clean import app as clean_app
|
|
17
|
+
from kctl_react.commands.compliance import app as compliance_app
|
|
18
|
+
from kctl_react.commands.codegen import app as codegen_app
|
|
19
|
+
from kctl_react.commands.config_cmd import app as config_app
|
|
20
|
+
from kctl_react.commands.dashboard import app as dashboard_app
|
|
21
|
+
from kctl_react.commands.deploy import app as deploy_app
|
|
22
|
+
from kctl_react.commands.deps import app as deps_app
|
|
23
|
+
from kctl_react.commands.dev import app as dev_app
|
|
24
|
+
from kctl_react.commands.docker_cmd import app as docker_app
|
|
25
|
+
from kctl_react.commands.doctor import app as doctor_app
|
|
26
|
+
from kctl_react.commands.doctor_cmd import build_checks as doctor_build_checks
|
|
27
|
+
from kctl_react.commands.e2e import app as e2e_app
|
|
28
|
+
from kctl_react.commands.env import app as env_app
|
|
29
|
+
from kctl_react.commands.i18n import app as i18n_app
|
|
30
|
+
from kctl_react.commands.lint import app as lint_app
|
|
31
|
+
from kctl_react.commands.maintenance import app as maintenance_app
|
|
32
|
+
from kctl_react.commands.monitor_cmd import app as monitor_app
|
|
33
|
+
from kctl_react.commands.observe import app as observe_app
|
|
34
|
+
from kctl_react.commands.packages import app as packages_app
|
|
35
|
+
from kctl_react.commands.perf import app as perf_app
|
|
36
|
+
from kctl_react.commands.pipeline import app as pipeline_app
|
|
37
|
+
from kctl_react.commands.pwa import app as pwa_app
|
|
38
|
+
from kctl_react.commands.scaffold import app as scaffold_app
|
|
39
|
+
from kctl_react.commands.security import app as security_app
|
|
40
|
+
from kctl_react.commands.skill_cmd import app as skill_app
|
|
41
|
+
from kctl_react.commands.state import app as state_app
|
|
42
|
+
from kctl_react.commands.test_cmd import app as test_app
|
|
43
|
+
from kctl_react.commands.ui_audit import app as ui_audit_app
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def register_all(app: typer.Typer) -> None:
|
|
47
|
+
"""Register all command groups on *app* in the canonical order."""
|
|
48
|
+
# Register all command groups
|
|
49
|
+
app.add_typer(affected_app, name="affected")
|
|
50
|
+
app.add_typer(apps_app, name="apps")
|
|
51
|
+
app.add_typer(build_app, name="build")
|
|
52
|
+
app.add_typer(cap_app, name="cap")
|
|
53
|
+
app.add_typer(clean_app, name="clean")
|
|
54
|
+
app.add_typer(codegen_app, name="codegen")
|
|
55
|
+
app.add_typer(compliance_app, name="compliance")
|
|
56
|
+
app.add_typer(config_app, name="config")
|
|
57
|
+
app.add_typer(dashboard_app, name="dashboard")
|
|
58
|
+
app.add_typer(deploy_app, name="deploy")
|
|
59
|
+
app.add_typer(deps_app, name="deps")
|
|
60
|
+
app.add_typer(dev_app, name="dev")
|
|
61
|
+
app.add_typer(doctor_app, name="doctor")
|
|
62
|
+
add_ai_summary_command(
|
|
63
|
+
doctor_app, cli_name="kctl-react", version=__version__, app=app, get_checks=doctor_build_checks
|
|
64
|
+
)
|
|
65
|
+
app.add_typer(e2e_app, name="e2e")
|
|
66
|
+
app.add_typer(env_app, name="env")
|
|
67
|
+
app.add_typer(lint_app, name="lint")
|
|
68
|
+
app.add_typer(packages_app, name="packages")
|
|
69
|
+
app.add_typer(perf_app, name="perf")
|
|
70
|
+
app.add_typer(pipeline_app, name="pipeline")
|
|
71
|
+
app.add_typer(scaffold_app, name="scaffold")
|
|
72
|
+
app.add_typer(security_app, name="security")
|
|
73
|
+
app.add_typer(test_app, name="test")
|
|
74
|
+
app.add_typer(pwa_app, name="pwa")
|
|
75
|
+
app.add_typer(a11y_app, name="a11y")
|
|
76
|
+
app.add_typer(i18n_app, name="i18n")
|
|
77
|
+
app.add_typer(ui_audit_app, name="ui")
|
|
78
|
+
app.add_typer(state_app, name="state")
|
|
79
|
+
app.add_typer(bundle_app, name="bundle")
|
|
80
|
+
app.add_typer(observe_app, name="observe")
|
|
81
|
+
app.add_typer(docker_app, name="docker")
|
|
82
|
+
app.add_typer(monitor_app, name="monitor")
|
|
83
|
+
app.add_typer(maintenance_app, name="maintenance")
|
|
84
|
+
app.add_typer(skill_app, name="skill")
|
|
85
|
+
add_tui_command(app, service_key="react", version=__version__)
|