leniu-dev 2.0.0 → 2.0.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.
Files changed (55) hide show
  1. package/.claude/mysql-config.json +34 -0
  2. package/.claude/skills/jenkins-deploy/SKILL.md +21 -5
  3. package/.claude/skills/jenkins-deploy/assets/jk_build.py +29 -14
  4. package/.claude/skills/leniu-java-amount-handling/SKILL.md +461 -0
  5. package/.claude/skills/leniu-java-export/SKILL.md +570 -0
  6. package/.claude/skills/leniu-java-report-query-param/SKILL.md +291 -0
  7. package/.claude/skills/leniu-java-total-line/SKILL.md +196 -0
  8. package/.claude/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  9. package/.claude/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  10. package/.claude/skills/leniu-mealtime/SKILL.md +215 -0
  11. package/.claude/skills/leniu-report-customization/SKILL.md +415 -0
  12. package/.claude/skills/leniu-report-customization/references/table-fields.md +93 -0
  13. package/.claude/skills/leniu-report-standard-customization/SKILL.md +391 -0
  14. package/.claude/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  15. package/.claude/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  16. package/.claude/skills/loki-log-query/SKILL.md +25 -55
  17. package/.claude/skills/loki-log-query/environments.json +45 -0
  18. package/.claude/skills/mysql-debug/SKILL.md +6 -12
  19. package/.codex/skills/jenkins-deploy/SKILL.md +21 -5
  20. package/.codex/skills/jenkins-deploy/assets/env_param.template.json +51 -0
  21. package/.codex/skills/jenkins-deploy/assets/jk_build.py +415 -0
  22. package/.codex/skills/leniu-java-export/SKILL.md +570 -0
  23. package/.codex/skills/leniu-java-report-query-param/SKILL.md +291 -0
  24. package/.codex/skills/leniu-java-total-line/SKILL.md +196 -0
  25. package/.codex/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  26. package/.codex/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  27. package/.codex/skills/leniu-mealtime/SKILL.md +215 -0
  28. package/.codex/skills/leniu-report-customization/SKILL.md +415 -0
  29. package/.codex/skills/leniu-report-customization/references/table-fields.md +93 -0
  30. package/.codex/skills/leniu-report-standard-customization/SKILL.md +391 -0
  31. package/.codex/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  32. package/.codex/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  33. package/.codex/skills/loki-log-query/SKILL.md +25 -55
  34. package/.codex/skills/mysql-debug/SKILL.md +6 -12
  35. package/.cursor/skills/jenkins-deploy/SKILL.md +21 -5
  36. package/.cursor/skills/jenkins-deploy/assets/env_param.template.json +51 -0
  37. package/.cursor/skills/jenkins-deploy/assets/jk_build.py +415 -0
  38. package/.cursor/skills/leniu-java-export/SKILL.md +570 -0
  39. package/.cursor/skills/leniu-java-report-query-param/SKILL.md +291 -0
  40. package/.cursor/skills/leniu-java-total-line/SKILL.md +196 -0
  41. package/.cursor/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  42. package/.cursor/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  43. package/.cursor/skills/leniu-mealtime/SKILL.md +215 -0
  44. package/.cursor/skills/leniu-report-customization/SKILL.md +415 -0
  45. package/.cursor/skills/leniu-report-customization/references/table-fields.md +93 -0
  46. package/.cursor/skills/leniu-report-standard-customization/SKILL.md +391 -0
  47. package/.cursor/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  48. package/.cursor/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  49. package/.cursor/skills/loki-log-query/SKILL.md +25 -55
  50. package/.cursor/skills/mysql-debug/SKILL.md +6 -12
  51. package/bin/index.js +59 -15
  52. package/package.json +1 -1
  53. package/src/skills/jenkins-deploy/SKILL.md +150 -0
  54. package/src/skills/jenkins-deploy/assets/env_param.template.json +51 -0
  55. package/src/skills/jenkins-deploy/assets/jk_build.py +415 -0
@@ -25,35 +25,9 @@ description: |
25
25
 
26
26
  ## 多环境配置
27
27
 
28
- ### 配置文件查找顺序
28
+ 配置文件:`.claude/skills/loki-log-query/environments.json`
29
29
 
30
- ```
31
- 1. 本地项目:.claude/loki-config.json(新格式)
32
- 2. 本地项目:.claude/skills/loki-log-query/environments.json(旧格式,兼容)
33
- 3. 全局配置:~/.claude/loki-config.json(或 ~/.cursor/loki-config.json)
34
- ```
35
-
36
- 本地优先。全局配置用 `npx ai-engineering-init config --type loki --scope global` 创建。
37
-
38
- ### 配置结构(支持 range 范围匹配)
39
-
40
- ```json
41
- {
42
- "active": "monitor-dev",
43
- "environments": {
44
- "monitor-dev": {
45
- "name": "Monitor 开发环境",
46
- "url": "https://monitor-dev.xnzn.net/grafana",
47
- "token": "glsa_xxx",
48
- "aliases": ["mdev", "dev"],
49
- "range": "dev1~15",
50
- "projects": ["dev01","dev02","...","dev15"]
51
- }
52
- }
53
- }
54
- ```
55
-
56
- ### 环境列表(默认)
30
+ ### 环境列表
57
31
 
58
32
  | 环境别名 | 名称 | URL | 快捷词 |
59
33
  |----------|------|-----|--------|
@@ -63,34 +37,31 @@ description: |
63
37
  | `monitor02-dev` | Monitor02 开发环境 | `https://monitor02-dev.xnzn.net/grafana` | m02, monitor02 |
64
38
  | `monitor-tyy-dev` | Monitor 体验园开发环境 | `https://monitor-tyy-dev.xnzn.net/grafana` | tyy, 体验园 |
65
39
 
66
- ### 环境匹配规则(含 range)
40
+ ### 环境匹配规则
67
41
 
68
- | 用户说法 | 匹配方式 | 结果 |
69
- |---------|---------|------|
70
- | " test13 的日志" | 精确匹配 key/aliases | `test13` 环境 |
71
- | "去 dev10 查" | **range 匹配**:dev10 在 monitor-dev 的 projects 中 | `monitor-dev`,`project="dev10"` |
72
- | "去 monitor-dev " | 精确匹配 key | `monitor-dev` 环境 |
73
- | "切到体验园" | aliases 匹配 | `monitor-tyy-dev` 环境 |
74
- | 未指定环境 | 使用 `active` 字段 | 默认活跃环境 |
42
+ 用户说的话 匹配环境:
43
+ - "查 test13 的日志" → `test13`
44
+ - " monitor-dev " `monitor-dev`
45
+ - "切到体验园" `monitor-tyy-dev`
46
+ - "去 m02 查一下" `monitor02-dev`
47
+ - 未指定环境 使用 `active` 字段指定的默认环境
75
48
 
76
- ### 读取配置(含全局降级 + range 匹配)
49
+ ### 读取配置
77
50
 
78
51
  ```bash
79
- # 按优先级查找配置文件
80
- find_config() {
81
- local PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
82
- for f in \
83
- "${PROJECT_DIR}/.claude/loki-config.json" \
84
- "${PROJECT_DIR}/.claude/skills/loki-log-query/environments.json" \
85
- "${HOME}/.claude/loki-config.json" \
86
- "${HOME}/.cursor/loki-config.json"; do
87
- [ -f "$f" ] && echo "$f" && return
88
- done
52
+ SKILL_DIR="$CLAUDE_PROJECT_DIR/.claude/skills/loki-log-query"
53
+ ENV_FILE="${SKILL_DIR}/environments.json"
54
+
55
+ # 读取指定环境(参数: 环境别名)
56
+ read_env() {
57
+ local ENV_KEY="${1:-$(python3 -c "import json; print(json.load(open('${ENV_FILE}'))['active'])")}"
58
+ GRAFANA_URL=$(python3 -c "import json; print(json.load(open('${ENV_FILE}'))['environments']['${ENV_KEY}']['url'])")
59
+ TOKEN=$(python3 -c "import json; print(json.load(open('${ENV_FILE}'))['environments']['${ENV_KEY}']['token'])")
60
+ API="${GRAFANA_URL}/api/datasources/proxy/uid/loki/loki/api/v1"
61
+ echo "Environment: ${ENV_KEY} → ${GRAFANA_URL}"
89
62
  }
90
63
 
91
- ENV_FILE=$(find_config)
92
-
93
- # 通过别名或 range 查找环境 key + project
64
+ # 通过别名查找环境 key
94
65
  find_env() {
95
66
  python3 -c "
96
67
  import json
@@ -98,11 +69,10 @@ data = json.load(open('${ENV_FILE}'))
98
69
  alias = '${1}'.lower()
99
70
  for key, env in data['environments'].items():
100
71
  if alias == key or alias in env.get('aliases', []):
101
- print(f'{key}|'); exit()
102
- for key, env in data['environments'].items():
103
- if alias in env.get('projects', []):
104
- print(f'{key}|{alias}'); exit()
105
- print(f'{data[\"active\"]}|')
72
+ print(key)
73
+ break
74
+ else:
75
+ print(data['active'])
106
76
  "
107
77
  }
108
78
  ```
@@ -0,0 +1,45 @@
1
+ {
2
+ "_comment": "Loki 多环境配置。每个环境需要独立的 Grafana Service Account Token。",
3
+ "_usage": "用户说'查 test13 的日志'或'去 monitor-dev 查'时,匹配对应环境。",
4
+ "_setup": "Token 创建:Grafana → Administration → Service accounts → Add(Viewer 角色)→ Add token → 复制到对应环境的 token 字段。",
5
+
6
+ "active": "test13",
7
+
8
+ "environments": {
9
+ "test13": {
10
+ "name": "测试13(主测试环境)",
11
+ "url": "https://test13.xnzn.net/grafana",
12
+ "token": "",
13
+ "aliases": ["test13", "13"],
14
+ "projects": ["test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test27", "test28", "test31", "ywcs"]
15
+ },
16
+ "monitor-test": {
17
+ "name": "Monitor 测试环境",
18
+ "url": "https://monitor-test.xnzn.net/grafana",
19
+ "token": "",
20
+ "aliases": ["monitor-test", "mtest"],
21
+ "projects": ["test01", "test02", "test03", "test04", "test05", "test06", "test07", "test08", "test09", "test10", "test11", "test12"]
22
+ },
23
+ "monitor-dev": {
24
+ "name": "Monitor 开发环境",
25
+ "url": "https://monitor-dev.xnzn.net/grafana",
26
+ "token": "",
27
+ "aliases": ["monitor-dev", "mdev", "dev"],
28
+ "projects": ["dev01", "dev02", "dev03", "dev04", "dev05", "dev06", "dev07", "dev08", "dev09", "dev10", "dev11", "dev12", "dev13", "dev14", "dev15"]
29
+ },
30
+ "monitor02-dev": {
31
+ "name": "Monitor02 开发环境",
32
+ "url": "https://monitor02-dev.xnzn.net/grafana",
33
+ "token": "",
34
+ "aliases": ["monitor02-dev", "m02", "monitor02"],
35
+ "projects": ["dev16", "dev17", "dev19", "dev21", "dev22", "dev23", "dev24", "dev25", "dev26", "dev28", "dev29", "dev30", "dev31", "dev32", "dev33", "dev34", "dev35", "dev36", "dev37", "dev38", "dev39", "dev40", "dev41", "dev42"]
36
+ },
37
+ "monitor-tyy-dev": {
38
+ "name": "Monitor 体验园开发环境",
39
+ "url": "https://monitor-tyy-dev.xnzn.net/grafana",
40
+ "token": "",
41
+ "aliases": ["monitor-tyy", "tyy", "体验园"],
42
+ "projects": ["dev44", "dev45", "dev46", "dev47", "dev48", "dev49", "dev50", "dev51", "dev52", "dev53", "dev54", "dev55", "dev56", "dev57", "dev58", "dev60", "dev61", "dev63", "dev64", "grafana"]
43
+ }
44
+ }
45
+ }
@@ -27,28 +27,22 @@ description: |
27
27
 
28
28
  ---
29
29
 
30
- ## 连接信息获取(四级降级,自动查找)
30
+ ## 连接信息获取(三级降级,自动查找)
31
31
 
32
32
  当本技能被激活时,**按以下优先级获取数据库连接信息**:
33
33
 
34
34
  ### 优先级 1:用户对话中指定(最高优先级)
35
35
 
36
36
  用户直接给出连接信息,或指定环境名:
37
- - "连 dev 环境查一下" → 使用配置中 dev 环境
38
- - "去 dev10 查" → **范围匹配** dev 环境(range: "1~15")
37
+ - "连 dev 环境查一下" → 使用 `.claude/mysql-config.json` 中 dev 环境的配置
39
38
  - 直接给出 host/port/user/password → 直接使用
40
39
 
41
- ### 优先级 2:本地项目 `.claude/mysql-config.json`
40
+ ### 优先级 2:`.claude/mysql-config.json`(显式配置,可选)
42
41
 
43
- 项目目录下的配置文件,优先于全局配置。
42
+ 如果文件存在且当前环境的 password 不是占位符 `YOUR_PASSWORD`,使用该配置。
43
+ **此文件为可选**,主要用于连接非本地环境(dev/prod 远程数据库)。
44
44
 
45
- ### 优先级 3:全局配置(所有项目共享)
46
-
47
- 全局配置文件(通过 `npx ai-engineering-init config --scope global` 创建)。
48
- 查找路径:`~/.claude/mysql-config.json` 或 `~/.cursor/mysql-config.json`(取决于使用的工具)。
49
- **推荐**:公司统一的数据库连接信息放全局,项目特定的覆盖放本地。
50
-
51
- ### 优先级 4:工程配置文件(零配置,本地开发默认)
45
+ ### 优先级 3:工程配置文件(零配置,本地开发默认)
52
46
 
53
47
  从项目的 `bootstrap-dev.yml` 中自动提取连接信息:
54
48
 
@@ -58,14 +58,30 @@ python ~/.claude/skills/jenkins-deploy/assets/jk_build.py
58
58
 
59
59
  脚本交互式询问:模式 → 环境 → core 分支 → api 分支 → 定制工程文件夹
60
60
 
61
+ ### 命令行模式(推荐,AI 调用)
62
+
63
+ ```bash
64
+ python3 ~/.claude/skills/jenkins-deploy/assets/jk_build.py \
65
+ --mode 2 --env dev10 --api-branch release_xxx --folder 常州技师学院
66
+ ```
67
+
68
+ | 参数 | 缩写 | 说明 |
69
+ |------|------|------|
70
+ | `--mode` | `-m` | 构建模式(0/1/2/3) |
71
+ | `--env` | `-e` | 目标环境(dev10, test1) |
72
+ | `--core-branch` | | core 分支名 |
73
+ | `--api-branch` | | api 分支名 |
74
+ | `--folder` | `-f` | 定制项目文件夹名 |
75
+
76
+ 未传的参数自动使用 `last_cd_env.json` 中的上次值。
77
+
61
78
  ### 通过 AI 辅助部署
62
79
 
63
- 当用户说"打包到 devX"时:
80
+ 当用户说"打包到 devX"时,直接用命令行参数调用,不再需要 heredoc 模拟交互:
64
81
 
65
- 1. 读取 `jenkins/last_cd_env.json` 获取上次参数
66
- 2. 确认参数:环境、分支、模式
67
- 3. 修改 `jenkins/last_cd_env.json` 写入新参数
68
- 4. 执行 `python ~/.claude/skills/jenkins-deploy/assets/jk_build.py`
82
+ ```bash
83
+ python3 ~/.claude/skills/jenkins-deploy/assets/jk_build.py --mode 2 --env dev10 --api-branch master
84
+ ```
69
85
 
70
86
  ## 配置文件
71
87
 
@@ -0,0 +1,51 @@
1
+ {
2
+ "portainer_api_url": {
3
+ "dev": "https://devops-dev.xnzn.net/api",
4
+ "dev16": "https://xnzn-dev.xnzn.net/api",
5
+ "test": "https://devops-test.xnzn.net/api"
6
+ },
7
+ "portainer_user_name": {
8
+ "dev": "__PORTAINER_DEV_USER__",
9
+ "dev16": "__PORTAINER_DEV16_USER__",
10
+ "test": "__PORTAINER_TEST_USER__"
11
+ },
12
+ "portainer_user_pwd": {
13
+ "dev": "__PORTAINER_DEV_PWD__",
14
+ "dev16": "__PORTAINER_DEV16_PWD__",
15
+ "test": "__PORTAINER_TEST_PWD__"
16
+ },
17
+ "portainer_endpoints": {
18
+ "dev": "2",
19
+ "dev16": "1",
20
+ "test": "2"
21
+ },
22
+ "portainer_server_suffix": {
23
+ "dev": "_yunshitang-api",
24
+ "dev16": "_yunshitang-api-offline",
25
+ "test": "_yunshitang-api"
26
+ },
27
+ "core_job": {
28
+ "dev": "dev-tengyun-core",
29
+ "test": "test-tengyun-core"
30
+ },
31
+ "core_job_custom": {
32
+ "dev": "dev-后端-core",
33
+ "test": "test-后端-core"
34
+ },
35
+ "api_job": {
36
+ "dev": "dev-tengyun-yunshitang-api",
37
+ "test": "test-tengyun-yunshitang-api"
38
+ },
39
+ "api_job_custom": {
40
+ "dev": "dev-后端-api",
41
+ "test": "test-后端-api"
42
+ },
43
+ "jenkins_user_id": {
44
+ "dev": "__JENKINS_DEV_USER__",
45
+ "test": "__JENKINS_TEST_USER__"
46
+ },
47
+ "jenkins_api_token": {
48
+ "dev": "__JENKINS_DEV_TOKEN__",
49
+ "test": "__JENKINS_TEST_TOKEN__"
50
+ }
51
+ }