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.
- package/.claude/mysql-config.json +34 -0
- package/.claude/skills/jenkins-deploy/SKILL.md +21 -5
- package/.claude/skills/jenkins-deploy/assets/jk_build.py +29 -14
- package/.claude/skills/leniu-java-amount-handling/SKILL.md +461 -0
- package/.claude/skills/leniu-java-export/SKILL.md +570 -0
- package/.claude/skills/leniu-java-report-query-param/SKILL.md +291 -0
- package/.claude/skills/leniu-java-total-line/SKILL.md +196 -0
- package/.claude/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
- package/.claude/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
- package/.claude/skills/leniu-mealtime/SKILL.md +215 -0
- package/.claude/skills/leniu-report-customization/SKILL.md +415 -0
- package/.claude/skills/leniu-report-customization/references/table-fields.md +93 -0
- package/.claude/skills/leniu-report-standard-customization/SKILL.md +391 -0
- package/.claude/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
- package/.claude/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
- package/.claude/skills/loki-log-query/SKILL.md +25 -55
- package/.claude/skills/loki-log-query/environments.json +45 -0
- package/.claude/skills/mysql-debug/SKILL.md +6 -12
- package/.codex/skills/jenkins-deploy/SKILL.md +21 -5
- package/.codex/skills/jenkins-deploy/assets/env_param.template.json +51 -0
- package/.codex/skills/jenkins-deploy/assets/jk_build.py +415 -0
- package/.codex/skills/leniu-java-export/SKILL.md +570 -0
- package/.codex/skills/leniu-java-report-query-param/SKILL.md +291 -0
- package/.codex/skills/leniu-java-total-line/SKILL.md +196 -0
- package/.codex/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
- package/.codex/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
- package/.codex/skills/leniu-mealtime/SKILL.md +215 -0
- package/.codex/skills/leniu-report-customization/SKILL.md +415 -0
- package/.codex/skills/leniu-report-customization/references/table-fields.md +93 -0
- package/.codex/skills/leniu-report-standard-customization/SKILL.md +391 -0
- package/.codex/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
- package/.codex/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
- package/.codex/skills/loki-log-query/SKILL.md +25 -55
- package/.codex/skills/mysql-debug/SKILL.md +6 -12
- package/.cursor/skills/jenkins-deploy/SKILL.md +21 -5
- package/.cursor/skills/jenkins-deploy/assets/env_param.template.json +51 -0
- package/.cursor/skills/jenkins-deploy/assets/jk_build.py +415 -0
- package/.cursor/skills/leniu-java-export/SKILL.md +570 -0
- package/.cursor/skills/leniu-java-report-query-param/SKILL.md +291 -0
- package/.cursor/skills/leniu-java-total-line/SKILL.md +196 -0
- package/.cursor/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
- package/.cursor/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
- package/.cursor/skills/leniu-mealtime/SKILL.md +215 -0
- package/.cursor/skills/leniu-report-customization/SKILL.md +415 -0
- package/.cursor/skills/leniu-report-customization/references/table-fields.md +93 -0
- package/.cursor/skills/leniu-report-standard-customization/SKILL.md +391 -0
- package/.cursor/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
- package/.cursor/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
- package/.cursor/skills/loki-log-query/SKILL.md +25 -55
- package/.cursor/skills/mysql-debug/SKILL.md +6 -12
- package/bin/index.js +59 -15
- package/package.json +1 -1
- package/src/skills/jenkins-deploy/SKILL.md +150 -0
- package/src/skills/jenkins-deploy/assets/env_param.template.json +51 -0
- 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
|
-
###
|
|
40
|
+
### 环境匹配规则
|
|
67
41
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
| 未指定环境 | 使用 `active` 字段 | 默认活跃环境 |
|
|
42
|
+
用户说的话 → 匹配环境:
|
|
43
|
+
- "查 test13 的日志" → `test13`
|
|
44
|
+
- "去 monitor-dev 查" → `monitor-dev`
|
|
45
|
+
- "切到体验园" → `monitor-tyy-dev`
|
|
46
|
+
- "去 m02 查一下" → `monitor02-dev`
|
|
47
|
+
- 未指定环境 → 使用 `active` 字段指定的默认环境
|
|
75
48
|
|
|
76
|
-
###
|
|
49
|
+
### 读取配置
|
|
77
50
|
|
|
78
51
|
```bash
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
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(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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 环境查一下" →
|
|
38
|
-
- "去 dev10 查" → **范围匹配** dev 环境(range: "1~15")
|
|
37
|
+
- "连 dev 环境查一下" → 使用 `.claude/mysql-config.json` 中 dev 环境的配置
|
|
39
38
|
- 直接给出 host/port/user/password → 直接使用
|
|
40
39
|
|
|
41
|
-
### 优先级 2
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
+
}
|