yjcli 0.2.2__tar.gz → 0.2.3__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.
- {yjcli-0.2.2 → yjcli-0.2.3}/PKG-INFO +1 -1
- {yjcli-0.2.2 → yjcli-0.2.3}/pyproject.toml +1 -1
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-arch-core/SKILL.md +6 -1
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-frontend/SKILL.md +11 -5
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-mobile-app/SKILL.md +20 -9
- {yjcli-0.2.2 → yjcli-0.2.3}/.gitignore +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/LICENSE +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/README.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/__init__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/__main__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/cli.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/commands/__init__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/commands/init_cmd.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/commands/platform.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/commands/service.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/commands/sync.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/__init__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-backend-msa/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-backend-service/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-browser-extension/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-cli/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-pc-app/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/skills/yj-scheduler/SKILL.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/.gitignore +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/AGENTS.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/Diff.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/Makefile +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/TOOLS.md +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/make.bat +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/app/.env.development +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/app/.env.examples +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/app/.env.local-dev +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/app/.env.production +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/listen/.env.development +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/listen/.env.examples +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/listen/.env.local-dev +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/listen/.env.production +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/worker/.env.development +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/worker/.env.examples +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/worker/.env.local-dev +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/envs/worker/.env.production +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/frontend/package.json +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/frontend/vite.config.ts +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-common.bat +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-common.sh +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-development.bat +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-development.sh +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-production.bat +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-production.sh +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/run-all.ps1 +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/run.bat +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/run.sh +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/settings.json +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/modules/__init__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/modules/constants.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/modules/fsutil.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/modules/paths.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/modules/prompt.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/services/__init__.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/services/scaffold.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/services/status.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/services/sync.py +0 -0
- {yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/services/wiring.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: yjcli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: Scaffold platforms, services, and AI agent wiring (Cursor/Claude/Codex) for YJ architecture repos.
|
|
5
5
|
Project-URL: Homepage, https://github.com/yseiren87/yjcli
|
|
6
6
|
Project-URL: Repository, https://github.com/yseiren87/yjcli
|
|
@@ -134,7 +134,8 @@ Missing domain does **not** mean collapse into entry. Still use flow + infra.
|
|
|
134
134
|
Placement when unsure:
|
|
135
135
|
|
|
136
136
|
1. Owned concept / shared policy across features? → domain
|
|
137
|
-
2. One feature’s IO / mapping / orchestration? → flow
|
|
137
|
+
2. One feature’s IO / mapping / orchestration? → the platform-defined flow
|
|
138
|
+
boundary (commonly `services/{feature}`)
|
|
138
139
|
3. Clients, config, logging, technical helpers? → infra (`modules`)
|
|
139
140
|
4. Bootstrap / register only? → entry (`apps` or platform entry files)
|
|
140
141
|
5. Otherwise do not invent a new home — extend an existing flow
|
|
@@ -142,6 +143,10 @@ Placement when unsure:
|
|
|
142
143
|
UI clients default to **no `domain`**: model = API types; feature rules live in flow.
|
|
143
144
|
Exception only for heavy client-owned offline DB/engine concepts.
|
|
144
145
|
|
|
146
|
+
UI platform skills may map flow and view to separate technical roots. Those
|
|
147
|
+
roots must use the same feature boundary so one feature's flow and view remain
|
|
148
|
+
easy to locate without mixing their roles.
|
|
149
|
+
|
|
145
150
|
## Import direction
|
|
146
151
|
|
|
147
152
|
Allowed: `entry -> flow -> domain -> infra`, `entry -> infra`, `flow -> infra`, `view -> flow`, `domain -> infra`.
|
|
@@ -24,8 +24,10 @@ frontend/
|
|
|
24
24
|
{app_name}/
|
|
25
25
|
src/
|
|
26
26
|
main.tsx, App.tsx # entry
|
|
27
|
-
stores
|
|
28
|
-
|
|
27
|
+
stores/{feature}/ # flow state/orchestration
|
|
28
|
+
api/{feature}/ # flow API access/mapping
|
|
29
|
+
pages/{feature}/ # container view
|
|
30
|
+
components/{feature}/ # presentational view
|
|
29
31
|
lib/, hooks/ # infra
|
|
30
32
|
```
|
|
31
33
|
|
|
@@ -35,11 +37,15 @@ One `{app_name}` = one web app. No micro-frontends unless the user requests it.
|
|
|
35
37
|
|
|
36
38
|
```text
|
|
37
39
|
entry = src/main.tsx, src/App.tsx (routes)
|
|
38
|
-
flow = stores + api
|
|
39
|
-
view = pages + feature
|
|
40
|
+
flow = stores/{feature} + api/{feature}
|
|
41
|
+
view = pages/{feature} + components/{feature} (+ generated ui primitives)
|
|
40
42
|
infra = lib/*, hooks/*
|
|
41
43
|
```
|
|
42
44
|
|
|
45
|
+
Flow and view use the same `{feature}` boundary under separate role roots. Do
|
|
46
|
+
not place a feature store or API module beside `pages/` or `components/` as if
|
|
47
|
+
it were a view.
|
|
48
|
+
|
|
43
49
|
**No `src/domains/` by default.** Model = API types; feature rules live in store/container (flow).
|
|
44
50
|
Exception: heavy **client-owned** offline DB/engine concepts only (then optional domain slots per core).
|
|
45
51
|
|
|
@@ -49,7 +55,7 @@ Missing domain ≠ dump DTOs/utils into `main.tsx` / `App.tsx`. Keep feature wor
|
|
|
49
55
|
|
|
50
56
|
- Follow `yj-arch-core` env names; listen apps need `HOST`/`PORT`. No plain `.env`.
|
|
51
57
|
- `npm start` / local mode must mean local-dev — do not silently point bare start at development/production deploy envs.
|
|
52
|
-
- Store calls `api`; pages/components do not call network directly.
|
|
58
|
+
- Store calls the same feature's `api`; pages/components do not call network directly.
|
|
53
59
|
- Container route wires store + router; presentational page takes props only.
|
|
54
60
|
- Routes declared at entry — do not scatter route tables; entry stays registration-thin.
|
|
55
61
|
- Generated UI primitives: do not hand-edit or duplicate.
|
|
@@ -21,10 +21,11 @@ mobile-app/
|
|
|
21
21
|
{app_name}/
|
|
22
22
|
lib/
|
|
23
23
|
main.dart, router.dart # entry
|
|
24
|
-
providers/{feature}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
providers/{feature}/ # flow state/orchestration
|
|
25
|
+
repositories/{feature}/ # optional flow data-source composition/mapping
|
|
26
|
+
api/{feature}/ # infra remote clients
|
|
27
|
+
screens/{feature}/ # container view
|
|
28
|
+
widgets/{feature}/ # presentational view
|
|
28
29
|
lib/ or core/ # infra
|
|
29
30
|
```
|
|
30
31
|
|
|
@@ -34,11 +35,19 @@ One `{app_name}` = one mobile service.
|
|
|
34
35
|
|
|
35
36
|
```text
|
|
36
37
|
entry = main + router
|
|
37
|
-
flow = providers +
|
|
38
|
-
view = screens
|
|
39
|
-
infra = shared clients/formatters/utils
|
|
38
|
+
flow = providers/{feature} + repositories/{feature}
|
|
39
|
+
view = screens/{feature} + widgets/{feature}
|
|
40
|
+
infra = api/{feature} clients + shared clients/formatters/utils
|
|
40
41
|
```
|
|
41
42
|
|
|
43
|
+
Flow and view use the same `{feature}` boundary under separate role roots. A
|
|
44
|
+
feature repository belongs to flow, not beside `screens/` or `widgets/` as a
|
|
45
|
+
view-level module.
|
|
46
|
+
|
|
47
|
+
Use a repository only when it composes data sources, cache, mapping, or feature
|
|
48
|
+
IO. A thin remote transport client belongs under `api/{feature}/` as infra; do
|
|
49
|
+
not add a repository that merely forwards every API call.
|
|
50
|
+
|
|
42
51
|
**No `lib/domain/` by default.** Feature rules live in providers (flow).
|
|
43
52
|
Exception: heavy **client-owned** offline DB/engine concepts only.
|
|
44
53
|
|
|
@@ -46,7 +55,9 @@ Missing domain ≠ put feature logic in `main.dart` / router registration.
|
|
|
46
55
|
|
|
47
56
|
## Rules
|
|
48
57
|
|
|
49
|
-
- Provider
|
|
58
|
+
- Provider calls its feature repository when composition is needed; otherwise
|
|
59
|
+
it may call the feature `api` directly. Widgets do not call repositories or
|
|
60
|
+
network clients directly.
|
|
50
61
|
- Container screen watches providers and passes plain props to presentational widgets.
|
|
51
62
|
- Routes declared at entry (thin); feature work stays in providers/api.
|
|
52
63
|
- Prefer symlink/consume `backend/proto/dist/dart` for MSA contracts when present. Do not copy `.proto` into the app.
|
|
@@ -56,7 +67,7 @@ Missing domain ≠ put feature logic in `main.dart` / router registration.
|
|
|
56
67
|
```text
|
|
57
68
|
entry -> view
|
|
58
69
|
view (container) -> flow
|
|
59
|
-
flow ->
|
|
70
|
+
flow -> infra (including api)
|
|
60
71
|
view (presentational) -> constructor params only
|
|
61
72
|
```
|
|
62
73
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yjcli-0.2.2 → yjcli-0.2.3}/src/yjcli/data/templates/platform/scripts/deploy-development.bat
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|