@h-ai/cli 0.1.0-alpha.19 → 0.1.0-alpha.21
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.
- package/README.md +10 -7
- package/dist/{chunk-GSMXGUYF.js → chunk-5IGMJVV5.js} +56 -38
- package/dist/chunk-5IGMJVV5.js.map +1 -0
- package/dist/{chunk-BPO34NRL.js → chunk-CFCXOKGV.js} +27 -5
- package/dist/chunk-CFCXOKGV.js.map +1 -0
- package/dist/cli-config-templates-5J5VKWWD.js +5 -0
- package/dist/{cli-config-templates-JCS7T3NU.js.map → cli-config-templates-5J5VKWWD.js.map} +1 -1
- package/dist/cli-skill-templates-JMSV2SVW.js +5 -0
- package/dist/{cli-skill-templates-IMYZPQRG.js.map → cli-skill-templates-JMSV2SVW.js.map} +1 -1
- package/dist/index.js +627 -107
- package/dist/index.js.map +1 -1
- package/dist/{src-N4NPS7AG.js → src-QNEJJ3BV.js} +261 -103
- package/dist/src-QNEJJ3BV.js.map +1 -0
- package/package.json +3 -2
- package/templates/README.md +40 -29
- package/templates/apps/admin/messages/en-US.json +5 -0
- package/templates/apps/admin/messages/zh-CN.json +5 -0
- package/templates/apps/admin/src/routes/+layout.svelte.hbs +5 -5
- package/templates/apps/admin/src/routes/+page.svelte.hbs +32 -12
- package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +37 -20
- package/templates/apps/admin/src/routes/admin/+page.svelte.hbs +33 -24
- package/templates/apps/admin/src/routes/admin/settings/+page.svelte.hbs +16 -13
- package/templates/apps/api/apps/{{projectName}}-contract/README.md.hbs +16 -0
- package/templates/apps/api/apps/{{projectName}}-contract/package.json.hbs +38 -0
- package/templates/apps/api/apps/{{projectName}}-contract/src/app-contract.ts.hbs +27 -0
- package/templates/apps/api/apps/{{projectName}}-contract/src/app-schemas.ts.hbs +33 -0
- package/templates/apps/api/apps/{{projectName}}-contract/src/index.ts.hbs +3 -0
- package/templates/apps/api/apps/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +12 -0
- package/templates/apps/api/apps/{{projectName}}-contract/tests/contract.test.ts.hbs +18 -0
- package/templates/apps/api/apps/{{projectName}}-contract/tsconfig.json.hbs +12 -0
- package/templates/apps/api/apps/{{projectName}}-contract/tsup.config.ts.hbs +11 -0
- package/templates/apps/api/apps/{{projectName}}-contract/vitest.config.ts.hbs +9 -0
- package/templates/apps/api/apps/{{projectName}}-service/README.md.hbs +17 -0
- package/templates/apps/api/apps/{{projectName}}-service/config/_core.yml.hbs +19 -0
- package/templates/apps/api/apps/{{projectName}}-service/config/_serv.yml.hbs +26 -0
- package/templates/apps/api/apps/{{projectName}}-service/package.json.hbs +55 -0
- package/templates/apps/api/apps/{{projectName}}-service/src/app.ts.hbs +98 -0
- package/templates/apps/api/apps/{{projectName}}-service/src/index.ts.hbs +21 -0
- package/templates/apps/api/apps/{{projectName}}-service/src/lib/server/init.ts.hbs +184 -0
- package/templates/apps/api/apps/{{projectName}}-service/src/server/procedures/app-procedures.ts.hbs +49 -0
- package/templates/apps/api/apps/{{projectName}}-service/src/server/procedures/index.ts.hbs +18 -0
- package/templates/apps/api/apps/{{projectName}}-service/tests/service.test.ts.hbs +168 -0
- package/templates/apps/api/apps/{{projectName}}-service/tsconfig.json.hbs +16 -0
- package/templates/apps/api/apps/{{projectName}}-service/tsup.config.ts.hbs +11 -0
- package/templates/apps/api/apps/{{projectName}}-service/vitest.config.ts.hbs +9 -0
- package/templates/apps/api/e2e/api-service.spec.ts.hbs +18 -0
- package/templates/apps/api/eslint.config.js +32 -0
- package/templates/apps/api/package.json.hbs +29 -0
- package/templates/apps/api/playwright.config.ts.hbs +58 -0
- package/templates/apps/api/pnpm-workspace.yaml.hbs +14 -0
- package/templates/apps/api/tsconfig.base.json +15 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/.env.example.hbs +10 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/README.md.hbs +24 -7
- package/templates/apps/fullstack/apps/{{projectName}}-app/capacitor.config.ts.hbs +18 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/eslint.config.js.hbs +1 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/index.html.hbs +16 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/messages/en-US.json.hbs +6 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/messages/zh-CN.json.hbs +6 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/package.json.hbs +51 -29
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/App.svelte.hbs +186 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/app.css.hbs +2 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/app.d.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/lib/capacitor.ts.hbs +18 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/main.ts.hbs +14 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/svelte.config.js.hbs +1 -5
- package/templates/apps/fullstack/apps/{{projectName}}-app/tsconfig.json.hbs +10 -4
- package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +4 -3
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/.env.example.hbs +6 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/README.md.hbs +20 -6
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/eslint.config.js.hbs +1 -1
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/index.html.hbs +15 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/package.json.hbs +33 -30
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/App.svelte.hbs +152 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/app.d.ts.hbs +1 -2
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/main.ts.hbs +13 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/Cargo.toml.hbs +22 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/build.rs.hbs +6 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/capabilities/default.json.hbs +12 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/128x128.png +0 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/128x128@2x.png +0 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/32x32.png +0 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/icon.icns +0 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/icon.ico +0 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/src/lib.rs.hbs +16 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/src/main.rs.hbs +8 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/tauri.conf.json.hbs +41 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/svelte.config.js.hbs +2 -8
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/tsconfig.json.hbs +9 -4
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +44 -21
- package/templates/apps/fullstack/apps/{{projectName}}-web/README.md.hbs +15 -6
- package/templates/apps/fullstack/apps/{{projectName}}-web/eslint.config.js.hbs +1 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/index.html.hbs +15 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/package.json.hbs +25 -27
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/App.svelte.hbs +153 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/app.d.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/main.ts.hbs +14 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/svelte.config.js.hbs +1 -5
- package/templates/apps/fullstack/apps/{{projectName}}-web/tsconfig.json.hbs +10 -4
- package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +3 -2
- package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +2 -1
- package/templates/apps/fullstack/eslint.config.js +0 -1
- package/templates/apps/fullstack/package.json.hbs +18 -17
- package/templates/apps/fullstack/packages/{{projectName}}-contract/package.json.hbs +3 -3
- package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +5 -2
- package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_core.yml.hbs +14 -0
- package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_serv.yml.hbs +13 -0
- package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +2 -2
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/{server-app.ts.hbs → app-server.ts.hbs} +23 -3
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/index.ts.hbs +4 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/{server-app.test.ts.hbs → app-server.test.ts.hbs} +1 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/package.json.hbs +9 -8
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/index.ts.hbs +1 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/api-client.ts.hbs +5 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/ThemeSwitcher.svelte.hbs +1 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tsconfig.json.hbs +1 -1
- package/templates/apps/fullstack/playwright.config.ts.hbs +41 -4
- package/templates/apps/fullstack/pnpm-workspace.yaml.hbs +15 -0
- package/templates/apps/h5/messages/en-US.json +3 -0
- package/templates/apps/h5/messages/zh-CN.json +3 -0
- package/templates/apps/h5/src/routes/+layout.svelte.hbs +30 -29
- package/templates/apps/h5/src/routes/+page.svelte.hbs +17 -6
- package/templates/apps/h5/src/routes/discover/+page.svelte.hbs +17 -6
- package/templates/apps/h5/src/routes/profile/+page.svelte.hbs +17 -6
- package/templates/apps/mobile-app/.env.hbs +3 -0
- package/templates/apps/{android-app → mobile-app}/capacitor.config.ts.hbs +2 -2
- package/templates/apps/mobile-app/index.html.hbs +13 -0
- package/templates/apps/mobile-app/messages/en-US.json +36 -0
- package/templates/apps/mobile-app/messages/zh-CN.json +36 -0
- package/templates/apps/mobile-app/src/App.svelte.hbs +162 -0
- package/templates/apps/mobile-app/src/lib/api.ts.hbs +54 -0
- package/templates/apps/{android-app → mobile-app}/src/lib/capacitor.ts +6 -7
- package/templates/apps/mobile-app/src/main.ts.hbs +11 -0
- package/templates/apps/website/src/routes/+layout.svelte.hbs +35 -26
- package/templates/apps/website/src/routes/+page.svelte.hbs +28 -10
- package/templates/apps/website/src/routes/about/+page.svelte.hbs +11 -6
- package/templates/apps/website/src/routes/contact/+page.svelte.hbs +37 -34
- package/templates/apps/website/src/routes/services/+page.svelte.hbs +27 -40
- package/templates/base/.gitignore.hbs +16 -0
- package/templates/base/{eslint.config.js → eslint.config.js.hbs} +4 -1
- package/templates/base/package.json.hbs +55 -31
- package/templates/base/playwright.config.ts +30 -3
- package/templates/base/pnpm-workspace.yaml.hbs +14 -0
- package/templates/base/src/app.d.ts.hbs +3 -0
- package/templates/base/src/app.html.hbs +7 -0
- package/templates/base/src/hooks.server.ts.hbs +17 -7
- package/templates/base/src/lib/server/init.ts.hbs +20 -12
- package/templates/base/static/favicon.png +0 -0
- package/templates/base/svelte.config.js.hbs +43 -3
- package/templates/base/tests/scaffold.test.ts.hbs +16 -1
- package/templates/base/tsconfig.json.hbs +50 -0
- package/templates/base/vite.config.ts.hbs +13 -3
- package/templates/features/iam/routes-admin/(auth)/+layout.svelte.hbs +5 -5
- package/templates/features/iam/routes-admin/(auth)/auth/login/+page.svelte.hbs +34 -32
- package/templates/features/iam/routes-admin/(auth)/auth/register/+page.svelte.hbs +46 -48
- package/templates/features/iam/routes-h5/auth/login/+page.svelte.hbs +35 -31
- package/templates/features/iam/routes-h5/auth/register/+page.svelte.hbs +41 -38
- package/templates/skills/AGENTS.md +60 -17
- package/templates/skills/CLAUDE.md +18 -6
- package/templates/skills/bridges/admin/AGENTS.md +66 -0
- package/templates/skills/bridges/admin/CLAUDE.md +19 -0
- package/templates/skills/bridges/admin/copilot-instructions.md +46 -0
- package/templates/skills/bridges/api/AGENTS.md +65 -0
- package/templates/skills/bridges/api/CLAUDE.md +19 -0
- package/templates/skills/bridges/api/copilot-instructions.md +46 -0
- package/templates/skills/bridges/fullstack/AGENTS.md +84 -0
- package/templates/skills/bridges/fullstack/CLAUDE.md +19 -0
- package/templates/skills/bridges/fullstack/copilot-instructions.md +54 -0
- package/templates/skills/bridges/h5/AGENTS.md +65 -0
- package/templates/skills/bridges/h5/CLAUDE.md +19 -0
- package/templates/skills/bridges/h5/copilot-instructions.md +44 -0
- package/templates/skills/bridges/mobile-app/AGENTS.md +77 -0
- package/templates/skills/bridges/mobile-app/CLAUDE.md +19 -0
- package/templates/skills/bridges/mobile-app/copilot-instructions.md +45 -0
- package/templates/skills/bridges/website/AGENTS.md +65 -0
- package/templates/skills/bridges/website/CLAUDE.md +19 -0
- package/templates/skills/bridges/website/copilot-instructions.md +44 -0
- package/templates/skills/copilot-instructions.md +29 -50
- package/templates/skills/hai-ai/SKILL.md +115 -648
- package/templates/skills/hai-ai/reference.md +197 -0
- package/templates/skills/hai-api-client/SKILL.md +3 -1
- package/templates/skills/hai-app-create/SKILL.md +2 -1
- package/templates/skills/hai-app-review/SKILL.md +2 -2
- package/templates/skills/hai-app-tests/SKILL.md +28 -3
- package/templates/skills/hai-capacitor/SKILL.md +14 -22
- package/templates/skills/hai-deploy/SKILL.md +12 -9
- package/templates/skills/hai-kit/SKILL.md +5 -3
- package/templates/skills/hai-serv/SKILL.md +2 -0
- package/templates/skills/hai-ui/SKILL.md +25 -11
- package/templates/skills/opencode.json +1 -6
- package/dist/chunk-BPO34NRL.js.map +0 -1
- package/dist/chunk-GSMXGUYF.js.map +0 -1
- package/dist/cli-config-templates-JCS7T3NU.js +0 -5
- package/dist/cli-skill-templates-IMYZPQRG.js +0 -5
- package/dist/src-N4NPS7AG.js.map +0 -1
- package/templates/apps/android-app/.env.hbs +0 -3
- package/templates/apps/android-app/messages/en-US.json +0 -24
- package/templates/apps/android-app/messages/zh-CN.json +0 -24
- package/templates/apps/android-app/src/lib/api.ts.hbs +0 -31
- package/templates/apps/android-app/src/routes/+layout.svelte.hbs +0 -42
- package/templates/apps/android-app/src/routes/+layout.ts +0 -7
- package/templates/apps/android-app/src/routes/+page.svelte.hbs +0 -27
- package/templates/apps/api/src/routes/+layout.svelte +0 -14
- package/templates/apps/api/src/routes/+page.svelte +0 -11
- package/templates/apps/api/src/routes/api/v1/health/+server.ts +0 -14
- package/templates/apps/api/src/routes/api/v1/items/+server.ts +0 -37
- package/templates/apps/api/src/routes/api/v1/items/[id]/+server.ts +0 -30
- package/templates/apps/api/tests/health.test.ts.hbs +0 -26
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/app.html.hbs +0 -14
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/routes/+layout.svelte.hbs +0 -18
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/routes/+page.svelte.hbs +0 -162
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/app.html.hbs +0 -14
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/routes/+layout.svelte.hbs +0 -18
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/routes/+page.svelte.hbs +0 -162
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/app.html.hbs +0 -14
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/routes/+layout.svelte.hbs +0 -18
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/routes/+page.svelte.hbs +0 -162
- package/templates/apps/fullstack/pnpm-workspace.yaml +0 -7
- package/templates/base/tsconfig.json +0 -20
- /package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/{theme.svelte.ts.hbs → theme-store.svelte.ts.hbs} +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
@AGENTS.md
|
|
4
|
+
|
|
5
|
+
> Claude Code Capacitor Mobile App 项目指引。共享规范通过 `@AGENTS.md` 复用;具体模块用法按需读取 `.agents/skills/`。
|
|
6
|
+
|
|
7
|
+
如果当前运行环境未自动展开 `@AGENTS.md`,必须先手动阅读 `AGENTS.md`,再开始修改代码或文档。
|
|
8
|
+
|
|
9
|
+
## 开始工作前
|
|
10
|
+
|
|
11
|
+
- 回复第一行保持:`规模: XS|S|M|L — <一句话意图>`。
|
|
12
|
+
- 任务规模 ≥ M 时,先输出 Q1-Q7 必要性自检与影响分析。
|
|
13
|
+
- 修改前先看 `src/`、`src/lib/capacitor.ts`、API client、messages 和测试。
|
|
14
|
+
|
|
15
|
+
## Mobile/Capacitor 特有提醒
|
|
16
|
+
|
|
17
|
+
- 本项目是 Svelte 5 + Vite,不是 SvelteKit;不要新建 `+page.svelte`、`hooks.server.ts` 等文件。
|
|
18
|
+
- 设备能力与 token 存储放在原生桥接 / service 层,不要散落进页面模板。
|
|
19
|
+
- 页面文本、错误提示和设置项都要同步 i18n。
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# GitHub Copilot 项目指令
|
|
2
|
+
|
|
3
|
+
> Capacitor Mobile App 工程指引。详细模块用法按需读取 `.agents/skills/`。
|
|
4
|
+
|
|
5
|
+
## 行为契约
|
|
6
|
+
|
|
7
|
+
- 每次响应第一行写:`规模: XS|S|M|L — <一句话意图>`。
|
|
8
|
+
- 任务规模 ≥ M 时,先输出 Q1-Q7 必要性自检与影响分析,再开始修改。
|
|
9
|
+
- 修改前先阅读 `AGENTS.md`、`README.md`、相关页面 / 原生桥接 / 测试与 `.agents/skills/*/SKILL.md`。
|
|
10
|
+
|
|
11
|
+
## 技术栈要点
|
|
12
|
+
|
|
13
|
+
- Svelte 5 + Vite SPA(无 SvelteKit)。
|
|
14
|
+
- Capacitor Android/iOS 原生壳。
|
|
15
|
+
- `@h-ai/capacitor` 负责原生能力和安全 token 存储。
|
|
16
|
+
- `@h-ai/api-client` 负责 typed API 调用。
|
|
17
|
+
|
|
18
|
+
## 技术边界
|
|
19
|
+
|
|
20
|
+
- 不新增 `+page.svelte` / `+layout.svelte` / `hooks.server.ts` 等 SvelteKit 文件。
|
|
21
|
+
- 原生能力封装在 `src/lib/capacitor.ts` 或 service,不写进页面模板。
|
|
22
|
+
- 原生 token 使用安全存储;Web 预览不要落到不安全持久化存储。
|
|
23
|
+
- 页面文本走 i18n。
|
|
24
|
+
- 禁止 `any`、`console.log`、硬编码密钥。
|
|
25
|
+
|
|
26
|
+
## 开发流程
|
|
27
|
+
|
|
28
|
+
1. 先检索现有页面、store、原生桥接、API client、messages 和测试。
|
|
29
|
+
2. 修改原生能力、权限、登录态或 API 流程时,同步 README、i18n 和测试。
|
|
30
|
+
3. 不要把未运行或失败的门禁写成“已通过”。
|
|
31
|
+
|
|
32
|
+
## 质量门禁
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm typecheck
|
|
36
|
+
pnpm lint
|
|
37
|
+
pnpm build
|
|
38
|
+
pnpm test
|
|
39
|
+
pnpm test:e2e
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 完成条件
|
|
43
|
+
|
|
44
|
+
- 页面、原生桥接、API、i18n 与测试同步更新。
|
|
45
|
+
- 交付说明中列出门禁状态、受影响的设备能力 / 文档与未完成项。
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
> 企业官网项目 AI 编程助手入口。优先结合 `README.md`、`.agents/skills/`、`src/routes/`、`messages/*` 与测试工作。
|
|
4
|
+
|
|
5
|
+
## 行为契约
|
|
6
|
+
|
|
7
|
+
1. 每次响应第一行写:`规模: XS|S|M|L — <一句话意图>`。
|
|
8
|
+
2. 任务规模 ≥ M 时,先回顾现有页面、SEO 相关实现、表单/API、测试与 `.agents/skills/*/SKILL.md`。
|
|
9
|
+
3. 在写第一行新代码前,用 1 行回答 Q1-Q7 必要性自检。
|
|
10
|
+
4. 任务规模 ≥ M 时,说明将影响的页面、表单、messages、SEO 元信息、测试和 README。
|
|
11
|
+
|
|
12
|
+
## 必要性自检(M / L 任务必须输出)
|
|
13
|
+
|
|
14
|
+
- Q1:已有页面 / layout / 组件 / 表单是否可复用?
|
|
15
|
+
- Q2:能否扩展现有 route、section、组件,而不是新增抽象层?
|
|
16
|
+
- Q3:当前真实调用点是哪些页面、表单或 API?
|
|
17
|
+
- Q4:能否用更少的 section、组件、helper 解决?
|
|
18
|
+
- Q5:是否把后端、存储或中间态细节泄漏给页面层?
|
|
19
|
+
- Q6:是否与现有路由、i18n、SEO 和脚本一致?
|
|
20
|
+
- Q7:是否比较过更安全的表单校验、SEO 和构建方案?
|
|
21
|
+
|
|
22
|
+
## 影响分析(M / L 任务必须输出)
|
|
23
|
+
|
|
24
|
+
- 直接影响:哪些页面、layout、表单/API、messages、README、测试会变。
|
|
25
|
+
- 间接影响:哪些导航入口、SEO 标签、部署脚本和共享组件需要同步。
|
|
26
|
+
|
|
27
|
+
## 项目定位
|
|
28
|
+
|
|
29
|
+
本项目是 hai-framework 企业官网模板,重点是 SvelteKit 页面、SEO、i18n、表单/API 边界和可部署构建产物。
|
|
30
|
+
|
|
31
|
+
## 架构边界
|
|
32
|
+
|
|
33
|
+
- 页面内容与导航文案全部走 i18n,同步中英文 messages。
|
|
34
|
+
- 表单和 API 输入必须 Zod 校验。
|
|
35
|
+
- UI 组件优先使用 `@h-ai/ui`,不要重复实现已有组件。
|
|
36
|
+
- `+server.ts` 只能导出 handler 和 SvelteKit 允许的配置项;helper 放到 `src/lib/**`。
|
|
37
|
+
- SEO 元信息、路由结构和消息文案要一起维护。
|
|
38
|
+
- 本样板默认不以 `@h-ai/serv`、`@h-ai/api-contract`、`@h-ai/api-client`、`@h-ai/capacitor` 作为主架构。
|
|
39
|
+
|
|
40
|
+
## 工作流程
|
|
41
|
+
|
|
42
|
+
1. 先搜索现有页面、layout、组件、messages、表单/API 和测试。
|
|
43
|
+
2. 修改页面时同步 README、i18n、测试和 SEO 相关元信息。
|
|
44
|
+
3. 每次改动后运行质量门禁,不能留下“已知失败”。
|
|
45
|
+
|
|
46
|
+
## 质量门禁
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pnpm typecheck
|
|
50
|
+
pnpm lint
|
|
51
|
+
pnpm build
|
|
52
|
+
pnpm test
|
|
53
|
+
pnpm test:e2e
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 完成条件
|
|
57
|
+
|
|
58
|
+
- 页面、表单、SEO、i18n 与测试保持一致。
|
|
59
|
+
- 最终回复说明门禁状态、已更新页面 / 表单 / 文档与未完成项。
|
|
60
|
+
|
|
61
|
+
## 优先 Skills
|
|
62
|
+
|
|
63
|
+
- `hai-build`、`hai-app-create`、`hai-app-review`、`hai-app-tests`
|
|
64
|
+
- `hai-kit`、`hai-ui`、`hai-reldb`、`hai-cache`
|
|
65
|
+
- 其它 `hai-*` 模块按需读取
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
@AGENTS.md
|
|
4
|
+
|
|
5
|
+
> Claude Code 企业官网项目指引。共享规范通过 `@AGENTS.md` 复用;具体模块用法按需读取 `.agents/skills/`。
|
|
6
|
+
|
|
7
|
+
如果当前运行环境未自动展开 `@AGENTS.md`,必须先手动阅读 `AGENTS.md`,再开始修改代码或文档。
|
|
8
|
+
|
|
9
|
+
## 开始工作前
|
|
10
|
+
|
|
11
|
+
- 回复第一行保持:`规模: XS|S|M|L — <一句话意图>`。
|
|
12
|
+
- 任务规模 ≥ M 时,先输出 Q1-Q7 必要性自检与影响分析。
|
|
13
|
+
- 修改前先看 `src/routes/`、`messages/*`、表单/API 与测试。
|
|
14
|
+
|
|
15
|
+
## 官网特有提醒
|
|
16
|
+
|
|
17
|
+
- 页面文案、导航、SEO 元信息与 i18n 需要一起维护。
|
|
18
|
+
- 优先复用现有 `@h-ai/ui` 组件,不要重复造轮子。
|
|
19
|
+
- 不要把 `@h-ai/serv` / `@h-ai/api-client` 当成默认官网主架构。
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# GitHub Copilot 项目指令
|
|
2
|
+
|
|
3
|
+
> 企业官网工程指引。详细模块用法按需读取 `.agents/skills/`。
|
|
4
|
+
|
|
5
|
+
## 行为契约
|
|
6
|
+
|
|
7
|
+
- 每次响应第一行写:`规模: XS|S|M|L — <一句话意图>`。
|
|
8
|
+
- 任务规模 ≥ M 时,先输出 Q1-Q7 必要性自检与影响分析,再开始修改。
|
|
9
|
+
- 修改前先阅读 `AGENTS.md`、`README.md`、相关页面 / messages / 测试与 `.agents/skills/*/SKILL.md`。
|
|
10
|
+
|
|
11
|
+
## 技术栈要点
|
|
12
|
+
|
|
13
|
+
- SvelteKit 页面与路由。
|
|
14
|
+
- TailwindCSS / DaisyUI / `@h-ai/ui`。
|
|
15
|
+
- Paraglide i18n,messages 位于 `messages/zh-CN.json` 与 `messages/en-US.json`。
|
|
16
|
+
|
|
17
|
+
## 技术边界
|
|
18
|
+
|
|
19
|
+
- 所有页面文案走 i18n。
|
|
20
|
+
- 表单/API 输入使用 Zod 校验。
|
|
21
|
+
- `+server.ts` 只能导出 handler 与官方允许的配置项;helper 放到 `src/lib/**`。
|
|
22
|
+
- 页面内容、SEO 元信息和测试要一起维护。
|
|
23
|
+
- 禁止 `any`、`console.log`、硬编码密钥。
|
|
24
|
+
|
|
25
|
+
## 开发流程
|
|
26
|
+
|
|
27
|
+
1. 先检索现有页面、组件、messages、表单/API 和测试。
|
|
28
|
+
2. 修改页面或 SEO 相关实现时,同步 README、i18n、测试和元信息。
|
|
29
|
+
3. 不要把未运行或失败的门禁写成“已通过”。
|
|
30
|
+
|
|
31
|
+
## 质量门禁
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pnpm typecheck
|
|
35
|
+
pnpm lint
|
|
36
|
+
pnpm build
|
|
37
|
+
pnpm test
|
|
38
|
+
pnpm test:e2e
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 完成条件
|
|
42
|
+
|
|
43
|
+
- 页面、表单、SEO、i18n 与测试同步更新。
|
|
44
|
+
- 最终交付说明中列出门禁状态、受影响页面 / 文档与未完成项。
|
|
@@ -1,64 +1,43 @@
|
|
|
1
1
|
# GitHub Copilot 项目指令
|
|
2
2
|
|
|
3
|
-
> 本文件作为
|
|
3
|
+
> 本文件作为 Copilot 项目级指引;当缺少 appType 专属桥接时,使用本文件作为 generic fallback。详细用法按需读取 `.agents/skills/`。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 行为契约
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- 每次响应第一行写:`规模: XS|S|M|L — <一句话意图>`。
|
|
8
|
+
- 任务规模 ≥ M 时,先输出 Q1-Q7 必要性自检与影响分析,再开始修改。
|
|
9
|
+
- 修改前先阅读 `README.md`、相关测试、`AGENTS.md` 与对应 `.agents/skills/*/SKILL.md`。
|
|
10
|
+
- 不要把未运行或失败的门禁写成“已通过”。
|
|
8
11
|
|
|
9
|
-
##
|
|
12
|
+
## 通用约定
|
|
10
13
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- **E2E 测试**:Playwright
|
|
18
|
-
- **包管理**:pnpm
|
|
19
|
-
|
|
20
|
-
## 编码规范
|
|
21
|
-
|
|
22
|
-
- 禁止 `any`(使用 `unknown` + 缩窄)
|
|
23
|
-
- 禁止 `console.log`(使用 `core.logger`)
|
|
24
|
-
- 禁止硬编码密钥
|
|
25
|
-
- `xx-main.ts` 仅做生命周期管理和 API 编排,禁止在 main 中编写具体业务逻辑(委托给 `xx-functions.ts` / `xx-runner.ts` 等)
|
|
26
|
-
- 用户可见文本必须走 i18n(`$lib/paraglide/messages.js`)
|
|
27
|
-
- HaiResult 错误直接透传,不重新包装
|
|
28
|
-
- 框架模块公共 API 不抛异常,统一返回 `HaiResult<T>`;不要用 `try/catch` 处理模块返回的错误
|
|
29
|
-
- 日志消息英文、简洁动宾结构
|
|
30
|
-
- 代码注释中文
|
|
31
|
-
|
|
32
|
-
## Skills 目录
|
|
33
|
-
|
|
34
|
-
详细的开发指南位于 `.agents/skills/` 目录:
|
|
35
|
-
|
|
36
|
-
| Skill | 说明 |
|
|
37
|
-
| ---------------- | ----------------------------------------------------- |
|
|
38
|
-
| `hai-build` | 项目架构、模块依赖、初始化顺序、编码标准 |
|
|
39
|
-
| `hai-core` | 配置加载、日志、i18n、HaiResult 模型、模块生命周期 |
|
|
40
|
-
| `hai-kit` | SvelteKit 集成:Handle Hook、守卫、中间件、响应、校验 |
|
|
41
|
-
| `hai-ui` | UI 组件库:三层架构、自动导入、主题、i18n |
|
|
42
|
-
| `hai-reldb` | 数据库操作:DDL、SQL、CRUD、事务、分页 |
|
|
43
|
-
| `hai-iam` | 认证与权限:密码/OTP/LDAP、会话、RBAC |
|
|
44
|
-
| `hai-crypto` | 加密:SM2/SM3/SM4、密码哈希、随机生成 |
|
|
45
|
-
| `hai-cache` | 缓存:内存/Redis、TTL、集合操作、分布式锁 |
|
|
46
|
-
| `hai-storage` | 存储:本地/S3、上传下载、预签名 URL |
|
|
47
|
-
| `hai-ai` | AI:LLM 调用、MCP 服务器、工具定义、流处理 |
|
|
48
|
-
| `hai-app-create` | TDD 驱动的功能创建(先测试后实现) |
|
|
49
|
-
| `hai-app-review` | 应用代码审查(含 TDD 合规检查) |
|
|
50
|
-
| `hai-app-tests` | TDD 测试规范(Vitest 单元测试 + Playwright E2E) |
|
|
51
|
-
| `hai-ci` | CI/CD、GitHub Actions、质量门禁与 workflow 安全 |
|
|
52
|
-
| `hai-pr-review` | PR / Issue 交付审查、AI Review 策略、CODEOWNERS 与合并门禁 |
|
|
53
|
-
| `hai-framework-sync` | hai-framework 模板源头与应用仓库同步 |
|
|
14
|
+
- 使用 hai-framework 的模块生命周期:`init(config) -> use -> close()`。
|
|
15
|
+
- 公共 API 返回 `HaiResult<T>` 或 `Promise<HaiResult<T>>`,业务错误不要直接 `throw`。
|
|
16
|
+
- 禁止 `any`、`console.log`、硬编码密钥。
|
|
17
|
+
- 用户可见文本必须走 i18n,并同步中英文消息文件。
|
|
18
|
+
- 代码注释中文,日志消息英文。
|
|
19
|
+
- 若项目使用 SvelteKit,`+server.ts` 只能导出 handler 与官方允许的配置项。
|
|
54
20
|
|
|
55
21
|
## 开发流程
|
|
56
22
|
|
|
57
|
-
|
|
23
|
+
1. 先用全局检索确认现有实现、引用点、测试和文档。
|
|
24
|
+
2. 优先复用现有目录和模块,不新增无真实调用点的抽象。
|
|
25
|
+
3. 修改公共类型、API、模板或共享逻辑后,同步 README、测试和所有依赖方。
|
|
58
26
|
|
|
59
27
|
## 质量门禁
|
|
60
28
|
|
|
29
|
+
按影响范围执行:
|
|
30
|
+
|
|
61
31
|
```bash
|
|
62
|
-
pnpm typecheck
|
|
63
|
-
pnpm
|
|
32
|
+
pnpm typecheck
|
|
33
|
+
pnpm lint
|
|
34
|
+
pnpm build
|
|
35
|
+
pnpm test
|
|
36
|
+
pnpm test:e2e
|
|
64
37
|
```
|
|
38
|
+
|
|
39
|
+
## 完成条件
|
|
40
|
+
|
|
41
|
+
- 门禁失败必须先修复;未执行项要写明原因。
|
|
42
|
+
- README、i18n、测试、代码注释与实现保持一致。
|
|
43
|
+
- 最终交付说明中列出门禁状态、已同步文档与依赖方。
|