forked from Gitlink/gitlink-cli
Merge pull request '新增skills' (#19) from surponess_br into master
This commit is contained in:
commit
849d55be15
|
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
name: gitlink-auth
|
||||
version: 1.0.0
|
||||
description: "认证管理:登录、查看登录状态、管理 Token、退出登录。当用户首次使用 gitlink-cli、遇到 401 认证错误、Token 过期、需要登录或退出时触发。"
|
||||
metadata:
|
||||
requires:
|
||||
bins: ["gitlink-cli"]
|
||||
cliHelp: "gitlink-cli auth --help"
|
||||
---
|
||||
|
||||
# gitlink-auth(认证操作)
|
||||
|
||||
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证原理、Token 存储位置、认证错误处理(401/403)和全局参数。**
|
||||
**CRITICAL — 认证 Token 属于敏感信息,禁止明文输出到终端或日志。**
|
||||
**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。**
|
||||
|
||||
> **前置条件:** 本 Skill 聚焦于 `gitlink-cli auth` 命令的具体操作;认证的全局规则、错误处理、安全约定见 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md)。
|
||||
|
||||
## Shortcuts
|
||||
|
||||
| Shortcut | 说明 | 需要认证 |
|
||||
|----------|------|----------|
|
||||
| `auth login` | 交互式登录(用户名 + 密码) | 否(登录本身) |
|
||||
| `auth login --token` | 使用已有 Token 登录 | 否 |
|
||||
| `auth status` | 查看当前登录状态与 Token 有效期 | 否 |
|
||||
| `auth logout` | 退出登录并清除本地凭证 | 否 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```bash
|
||||
# 方式 1:交互式登录(推荐,按提示输入用户名和密码)
|
||||
gitlink-cli auth login
|
||||
|
||||
# 方式 2:粘贴已有 Token 登录(适合已有 GitLink 个人访问令牌的场景)
|
||||
gitlink-cli auth login --token
|
||||
|
||||
# 查看登录状态(确认身份、Token 剩余有效期、存储位置)
|
||||
gitlink-cli auth status
|
||||
|
||||
# 退出登录,清除本地凭证
|
||||
gitlink-cli auth logout
|
||||
```
|
||||
|
||||
## 工作流
|
||||
|
||||
### 工作流 1:首次使用认证
|
||||
|
||||
1. 运行 `gitlink-cli auth login` 完成交互式登录
|
||||
2. 运行 `gitlink-cli auth status` 确认登录成功
|
||||
3. 验证可调用受保护接口:`gitlink-cli api GET /users/me --format json`
|
||||
|
||||
### 工作流 2:Token 过期恢复
|
||||
|
||||
遇到 `401 请登录后再操作` 错误时:
|
||||
|
||||
1. `gitlink-cli auth status` 确认是否过期
|
||||
2. 若过期,重新执行 `gitlink-cli auth login`
|
||||
3. 非交互环境(CI/脚本)改用环境变量:`export GITLINK_TOKEN="your-token"`
|
||||
|
||||
## 决策规则
|
||||
|
||||
| 条件 | 操作 |
|
||||
|------|------|
|
||||
| 用户首次使用 / 未登录 | 引导 `auth login` |
|
||||
| 报错 `401` | Token 失效或过期,重新 `auth login` |
|
||||
| 报错 `403` | 已登录但无权限,确认 owner/repo 正确性,非认证问题 |
|
||||
| CI / 脚本等非交互环境 | 使用 `GITLINK_TOKEN` 环境变量,避免交互式登录 |
|
||||
| 切换账号 | 先 `auth logout` 再 `auth login` |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- GitLink Token 有效期 **7 天**,过期需重新登录或刷新 Token
|
||||
- Token 存储在系统密钥管理器(macOS Keychain / Linux Secret Service / Windows Credential Manager),Fallback 为 `~/.config/gitlink-cli/credentials`
|
||||
- **禁止** 将 Token 明文输出、打印或写入版本控制的文件
|
||||
- 非交互环境优先使用 `GITLINK_TOKEN` 环境变量,而非交互式 `auth login`
|
||||
- `auth logout` 会清除本地凭证,下次操作前需重新登录
|
||||
|
||||
## References
|
||||
|
||||
- [gitlink-shared](../gitlink-shared/SKILL.md) — 认证原理、Token 说明、401/403 错误处理、全局参数、安全规则
|
||||
- [examples/auth-workflow.md](examples/auth-workflow.md) — 认证完整工作流示例
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
---
|
||||
name: gitlink-digest
|
||||
version: 1.0.0
|
||||
description: "每日简报:聚合仓库 Issue/PR/CI/通知动态,生成一份可读的项目简报。当用户提到「每日简报」「今天发生了什么」「项目动态」「日报」「digest」「简报」「汇总」时触发。"
|
||||
metadata:
|
||||
requires:
|
||||
bins: ["gitlink-cli"]
|
||||
cliHelp: "gitlink-cli --help"
|
||||
---
|
||||
|
||||
# gitlink-digest(每日简报)
|
||||
|
||||
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。**
|
||||
**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。**
|
||||
**CRITICAL — 本 Skill 只读聚合,不产生任何写操作,安全可随时运行。**
|
||||
|
||||
> **前置条件:** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md) 了解认证和全局参数。
|
||||
|
||||
## 功能定位
|
||||
|
||||
解决「信息太分散」的体验痛点:用户不用挨个刷 Issue/PR/CI/通知,AI 一次性采集多源数据,聚合分类,输出**一份按优先级排序的 Markdown 简报**。
|
||||
|
||||
| 阶段 | 操作 | AI Agent 角色 |
|
||||
|------|------|--------------|
|
||||
| ① 采集 | 并行拉取 Issue/PR/CI/通知/活跃度 | 执行 CLI 命令采集多源数据 |
|
||||
| ② 分类 | 按主题归类(新增/动态/CI/需关注) | 去重、排序、标注优先级 |
|
||||
| ③ 聚合 | 合并成一份简报 | 生成结构化 Markdown |
|
||||
| ④ 输出 | 可选发布到 Wiki/Issue | 生成或发布简报 |
|
||||
|
||||
### 与 `gitlink-notification-digest` 的分工(避免重复)
|
||||
|
||||
项目已有 `gitlink-notification-digest`,专注**通知/消息中心**(messages API、按 source 分类、标记已读)。本 Skill 定位不同——做**项目全景日报**:
|
||||
|
||||
| 维度 | notification-digest(团队已有) | digest(本 Skill) |
|
||||
|------|-------------------------------|-------------------|
|
||||
| 范围 | 通知/消息(messages) | 项目全景:Issue + PR + CI + 活跃度 + 通知 |
|
||||
| 重点 | 通知分类、标记已读、清理未读 | 跨源聚合、按优先级出日报 |
|
||||
| 输出 | 通知摘要(P0–P3) | 项目简报(需关注/新增/进行中/指标) |
|
||||
|
||||
> 本 Skill **不做**通知标记已读(那是 notification-digest 的职责),只把通知作为简报的一个输入源。
|
||||
|
||||
## 数据源(均为只读)
|
||||
|
||||
| 数据 | 命令 | 说明 |
|
||||
|------|------|------|
|
||||
| 近期 Issue | `gitlink-cli issue +list --state open --format json` | 新增/开放 Issue |
|
||||
| 近期 PR | `gitlink-cli pr +list --state open --format json` | PR 动态 |
|
||||
| CI 构建 | `gitlink-cli ci +builds --owner <owner> --repo <repo> --format json` | 构建成功/失败 |
|
||||
| 通知消息 | `gitlink-cli api GET "users/{owner}/messages.json"` | @我/系统通知 |
|
||||
| 活跃度 | `gitlink-cli api GET "users/{owner}/statistics/activity.json"` | 贡献活跃度 |
|
||||
|
||||
> 注:通知/活跃度为 Raw API,路径以 API 文档为准;首次使用建议带 `--debug` 确认 CLI 的路径前缀行为。
|
||||
|
||||
## 使用示例
|
||||
|
||||
```bash
|
||||
# 1. 采集近期 Issue(默认从 git remote 解析 owner/repo)
|
||||
gitlink-cli issue +list --state open --format json
|
||||
|
||||
# 2. 采集近期 PR
|
||||
gitlink-cli pr +list --state open --format json
|
||||
|
||||
# 3. 采集 CI 构建状态
|
||||
gitlink-cli ci +builds --owner <owner> --repo <repo> --format json
|
||||
|
||||
# 4. 采集通知消息(Raw API)
|
||||
gitlink-cli api GET /api/users/<your-username>/messages.json
|
||||
|
||||
# 5. 采集活跃度统计(Raw API)
|
||||
gitlink-cli api GET /api/users/<your-username>/statistics/activity.json
|
||||
```
|
||||
|
||||
## 工作流
|
||||
|
||||
### 工作流 1:生成每日简报(核心)
|
||||
|
||||
**场景**:用户问「今天我的项目发生了什么 / 给我一份简报」。
|
||||
|
||||
#### Step 1:并行采集多源数据
|
||||
|
||||
```bash
|
||||
gitlink-cli issue +list --state open --format json
|
||||
gitlink-cli pr +list --state open --format json
|
||||
gitlink-cli ci +builds --owner <owner> --repo <repo> --format json
|
||||
gitlink-cli api GET /api/users/<me>/messages.json
|
||||
gitlink-cli api GET /api/users/<me>/statistics/activity.json
|
||||
```
|
||||
|
||||
#### Step 2:AI 分类聚合
|
||||
|
||||
对采集到的数据按以下维度归类:
|
||||
- **🔴 需立即关注**:失败的 CI、@我的紧急消息、阻塞型 PR
|
||||
- **🟢 新增动态**:新开的 Issue、新提交的 PR
|
||||
- **🔵 进行中**:有更新的 Issue/PR、待 review 的 PR
|
||||
- **📊 健康指标**:活跃度数字、Issue/PR 增减趋势
|
||||
|
||||
#### Step 3:输出简报
|
||||
|
||||
按下方「输出模板」生成 Markdown。
|
||||
|
||||
### 工作流 2:发布简报
|
||||
|
||||
**场景**:把简报发布为 Wiki 或 Issue 评论(写操作,需确认)。
|
||||
|
||||
```bash
|
||||
# 发布为 Wiki 页面(⚠️ 写操作,需确认)
|
||||
gitlink-cli wiki +create --name "Daily-<date>" --content "<简报内容>"
|
||||
|
||||
# 或发布为 Issue 评论
|
||||
gitlink-cli issue +comment --number <n> --body "<简报内容>"
|
||||
```
|
||||
|
||||
## 决策规则
|
||||
|
||||
| 条件 | 处理 |
|
||||
|------|------|
|
||||
| 数据量大(Issue/PR > 50) | 只取最近 24h 或 top 20,其余汇总计数 |
|
||||
| CI 有失败 | 置顶到「需立即关注」,附 build 号 |
|
||||
| 有 @我 的消息 | 置顶,标注来源 Issue/PR |
|
||||
| 采集某数据源失败(403/404) | 跳过该源,简报中标注「⚠️ XX 数据未获取」 |
|
||||
| 简报需对外发布 | 写操作,必须先确认用户意图 |
|
||||
|
||||
## 输出模板
|
||||
|
||||
```markdown
|
||||
# 📰 项目简报 — <owner>/<repo>(<YYYY-MM-DD>)
|
||||
|
||||
## 🔴 需立即关注
|
||||
1. ❌ CI 构建 #<n> 失败(分支 master)— <错误摘要>
|
||||
2. 🔔 @你 在 Issue #<n>:<消息摘要>
|
||||
|
||||
## 🟢 今日新增
|
||||
- **新 Issue**:<n> 个,其中 bug <x> / enhancement <y>
|
||||
- **新 PR**:<n> 个
|
||||
|
||||
## 🔵 进行中
|
||||
- 待 Review 的 PR:#<n>、#<n>
|
||||
- 有更新的 Issue:#<n>、#<n>
|
||||
|
||||
## 📊 健康指标
|
||||
- 开放 Issue:<n>(较昨日 +<x>)
|
||||
- 开放 PR:<n>
|
||||
- 近期活跃度:<activity 分数>
|
||||
|
||||
---
|
||||
*由 gitlink-digest Skill 于 <时间> 生成*
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 本 Skill **纯只读聚合**,不修改任何资源,可放心运行
|
||||
- 多源数据采集建议用 `--format json` 便于 AI 解析
|
||||
- 通知/活跃度是 Raw API,路径前缀以实际 CLI 行为准(首次 `--debug` 验证)
|
||||
- 时间范围默认「近期」,可由用户指定(如「本周」「最近 3 天」)
|
||||
- 简报对外发布(Wiki/Issue 评论)属写操作,必须先确认
|
||||
|
||||
## References
|
||||
|
||||
- 全局参数与安全规则:[gitlink-shared/SKILL.md](../gitlink-shared/SKILL.md)
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
# 每日简报完整工作流示例
|
||||
|
||||
**场景**:项目负责人早上想快速了解「昨天项目发生了什么」,AI 采集多源数据生成一份简报。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- `gitlink-cli` 已登录
|
||||
- 在目标仓库目录下(自动解析 owner/repo),或手动传 `--owner/--repo`
|
||||
|
||||
## 工作流步骤
|
||||
|
||||
### Step 1:并行采集多源数据
|
||||
|
||||
```bash
|
||||
# 近期 Issue
|
||||
gitlink-cli issue +list --state open --format json
|
||||
|
||||
# 近期 PR
|
||||
gitlink-cli pr +list --state open --format json
|
||||
|
||||
# CI 构建状态
|
||||
gitlink-cli ci +builds --owner myorg --repo myproject --format json
|
||||
|
||||
# 通知消息(Raw API)
|
||||
gitlink-cli api GET "users/zhangsan/messages.json"
|
||||
|
||||
# 活跃度统计(Raw API)
|
||||
gitlink-cli api GET "users/zhangsan/statistics/activity.json"
|
||||
```
|
||||
|
||||
### Step 2:AI 分类聚合
|
||||
|
||||
输出示例:
|
||||
|
||||
```markdown
|
||||
# 📰 项目简报 — myorg/myproject(2026-06-23)
|
||||
|
||||
## 🔴 需立即关注
|
||||
1. ❌ CI 构建 #156 失败(分支 master)— test_phase 报错:连接超时
|
||||
2. 🔔 @你 在 PR #88:「请帮忙看下认证模块的重试逻辑」
|
||||
|
||||
## 🟢 今日新增
|
||||
- **新 Issue**:4 个(bug 2 / enhancement 1 / question 1)
|
||||
- #201 登录页面 500 错误
|
||||
- #202 支持导出 CSV
|
||||
- **新 PR**:2 个
|
||||
- #90 feat: 增加批量导入
|
||||
|
||||
## 🔵 进行中
|
||||
- 待 Review 的 PR:#88、#87
|
||||
- 有更新的 Issue:#198、#195
|
||||
|
||||
## 📊 健康指标
|
||||
- 开放 Issue:23(较昨日 +3)
|
||||
- 开放 PR:5
|
||||
- 近期活跃度:94
|
||||
|
||||
---
|
||||
*由 gitlink-digest Skill 于 2026-06-23 09:15 生成*
|
||||
```
|
||||
|
||||
### Step 3(可选):发布简报
|
||||
|
||||
```bash
|
||||
# 发布为 Wiki 页面(⚠️ 写操作,需确认)
|
||||
gitlink-cli wiki +create --name "Daily-2026-06-23" --content "<简报内容>"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整命令速览
|
||||
|
||||
```bash
|
||||
gitlink-cli issue +list --state open --format json
|
||||
gitlink-cli pr +list --state open --format json
|
||||
gitlink-cli ci +builds --owner <owner> --repo <repo> --format json
|
||||
gitlink-cli api GET "users/<me>/messages.json"
|
||||
gitlink-cli api GET "users/<me>/statistics/activity.json"
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 纯只读聚合,安全可随时运行
|
||||
- 通知/活跃度为 Raw API,首次使用带 `--debug` 确认路径
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
---
|
||||
name: gitlink-snippet
|
||||
version: 1.0.0
|
||||
description: "本地代码片段管理:创建、查看、搜索、更新、删除、导出个人代码片段库。当用户需要保存/查找常用代码片段、代码片段管理、代码片段检索时触发。"
|
||||
metadata:
|
||||
requires:
|
||||
bins: ["gitlink-cli"]
|
||||
cliHelp: "gitlink-cli snippet --help"
|
||||
---
|
||||
|
||||
# gitlink-snippet(本地代码片段管理)
|
||||
|
||||
**CRITICAL — 所有删除操作(`snippet +delete`)前必须确认用户意图,删除不可恢复。**
|
||||
**CRITICAL — 本技能为本地功能,不调用 GitLink 平台 API、不需要登录认证。**
|
||||
**CRITICAL — `--content -` 表示从 stdin 读取内容,适合粘贴大段代码。**
|
||||
|
||||
> **与其它 Skill 的区别**:本 Skill 操作的是本地代码片段库(存储在 `~/.config/gitlink-cli/snippets.json`),不涉及 GitLink 平台的 Issue/PR/Repo 等资源。若需操作平台资源,请使用对应域的 Skill(如 `gitlink-issue`、`gitlink-pr`)。
|
||||
|
||||
## 功能定位
|
||||
|
||||
gitlink-snippet 是开发者的「个人代码片段收藏夹」,帮助 AI Agent 和用户:
|
||||
- **沉淀常用代码**:把反复查阅的片段(SQL 模板、正则、初始化脚本)存起来
|
||||
- **快速检索**:按标签、语言、关键词或全文检索定位片段
|
||||
- **复用与导出**:把片段导出为文件,或直接粘贴到当前任务中
|
||||
|
||||
## Shortcuts
|
||||
|
||||
| Shortcut | 说明 | 操作类型 |
|
||||
|----------|------|----------|
|
||||
| `snippet +create` | 创建代码片段 | ⚠️ Write |
|
||||
| `snippet +list` | 列出所有片段(支持过滤) | Read |
|
||||
| `snippet +view` | 查看片段详情 | Read |
|
||||
| `snippet +search` | 全文搜索片段 | Read |
|
||||
| `snippet +update` | 更新片段字段 | ⚠️ Write |
|
||||
| `snippet +delete` | 删除片段 | 🔴 Destructive |
|
||||
| `snippet +export` | 导出片段到文件 | Read |
|
||||
|
||||
## 参数参考
|
||||
|
||||
### snippet +create
|
||||
|
||||
| 参数 | 简写 | 必填 | 说明 |
|
||||
|------|------|:----:|------|
|
||||
| `--title` | `-t` | ✅ | 片段标题 |
|
||||
| `--language` | `-l` | 否 | 编程语言(如 `go`、`python`) |
|
||||
| `--tags` | `-g` | 否 | 标签(逗号分隔,如 `sql,template`) |
|
||||
| `--content` | `-c` | 否 | 片段内容;传 `-` 表示从 stdin 读取 |
|
||||
|
||||
### snippet +list
|
||||
|
||||
| 参数 | 简写 | 必填 | 说明 |
|
||||
|------|------|:----:|------|
|
||||
| `--tag` | `-t` | 否 | 按标签过滤 |
|
||||
| `--language` | `-l` | 否 | 按语言过滤 |
|
||||
| `--keyword` | `-k` | 否 | 按标题关键词过滤 |
|
||||
|
||||
### snippet +view / +update / +delete / +export
|
||||
|
||||
| 参数 | 简写 | 必填 | 说明 |
|
||||
|------|------|:----:|------|
|
||||
| `--id` | `-i` | ✅ | 片段 ID(8 位十六进制,从 `+list` 获取) |
|
||||
|
||||
`+update` 额外支持 `--title / -t`、`--language / -l`、`--tags / -g`、`--content / -c`(至少传一个字段)。
|
||||
|
||||
`+export` 额外支持 `--output / -o`(输出文件路径,默认打印到 stdout)。
|
||||
|
||||
### snippet +search
|
||||
|
||||
| 参数 | 简写 | 必填 | 说明 |
|
||||
|------|------|:----:|------|
|
||||
| `--query` | `-q` | ✅ | 搜索关键词(全文匹配) |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```bash
|
||||
# 创建片段(直接传内容)
|
||||
gitlink-cli snippet +create \
|
||||
--title "Postgres 慢查询检查" \
|
||||
--language sql \
|
||||
--tags db,performance \
|
||||
--content "SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;"
|
||||
|
||||
# 创建片段(从 stdin 读取大段代码)
|
||||
cat ./init_script.py | gitlink-cli snippet +create \
|
||||
--title "项目初始化脚本" \
|
||||
--language python \
|
||||
--tags init \
|
||||
--content -
|
||||
|
||||
# 列出所有片段
|
||||
gitlink-cli snippet +list --format json
|
||||
|
||||
# 按标签 + 语言过滤
|
||||
gitlink-cli snippet +list --tag sql --language sql
|
||||
|
||||
# 按标题关键词过滤
|
||||
gitlink-cli snippet +list --keyword "Postgres"
|
||||
|
||||
# 查看片段详情
|
||||
gitlink-cli snippet +view --id a1b2c3d4 --format json
|
||||
|
||||
# 全文搜索
|
||||
gitlink-cli snippet +search --query "慢查询"
|
||||
|
||||
# 更新片段标题和标签
|
||||
gitlink-cli snippet +update --id a1b2c3d4 --title "PG 慢查询 Top 10" --tags db,perf
|
||||
|
||||
# 导出片段到文件
|
||||
gitlink-cli snippet +export --id a1b2c3d4 --output ./slow_query.sql
|
||||
|
||||
# 删除片段(⚠️ 不可恢复)
|
||||
gitlink-cli snippet +delete --id a1b2c3d4
|
||||
```
|
||||
|
||||
## 输出示例(`+list --format json`)
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "a1b2c3d4",
|
||||
"title": "Postgres 慢查询检查",
|
||||
"language": "sql",
|
||||
"tags": ["db", "performance"],
|
||||
"content": "SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;",
|
||||
"created_at": "2026-06-15T10:30:00+08:00",
|
||||
"updated_at": "2026-06-15T10:30:00+08:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 工作流
|
||||
|
||||
### 工作流 1:沉淀反复使用的代码
|
||||
|
||||
**场景**:在排查/开发中遇到一段值得复用的代码,保存下来供日后使用。
|
||||
|
||||
```bash
|
||||
# 1. 把代码通过 stdin 存入(适合多行)
|
||||
cat ./docker-compose-template.yml | gitlink-cli snippet +create \
|
||||
--title "通用 docker-compose 模板" \
|
||||
--language yaml \
|
||||
--tags docker,template \
|
||||
--content -
|
||||
|
||||
# 2. 验证已保存
|
||||
gitlink-cli snippet +list --keyword "docker"
|
||||
```
|
||||
|
||||
### 工作流 2:按需检索并复用
|
||||
|
||||
**场景**:写新代码时想调用之前存的片段。
|
||||
|
||||
```bash
|
||||
# 1. 按关键词搜索
|
||||
gitlink-cli snippet +search --query "慢查询"
|
||||
|
||||
# 2. 查看命中的片段内容
|
||||
gitlink-cli snippet +view --id a1b2c3d4
|
||||
|
||||
# 3. 导出为文件后直接使用,或由 AI Agent 直接读取 content 字段复用
|
||||
gitlink-cli snippet +export --id a1b2c3d4 --output ./tmp_query.sql
|
||||
```
|
||||
|
||||
## 决策规则
|
||||
|
||||
| 场景 | 推荐命令 |
|
||||
|------|---------|
|
||||
| 已知片段 ID,想看内容 | `snippet +view --id <id>` |
|
||||
| 只记得片段大概是关于什么 | `snippet +search --query "<关键词>"` |
|
||||
| 想按标签浏览一类片段 | `snippet +list --tag <tag>` |
|
||||
| 要批量查看某种语言的片段 | `snippet +list --language <lang>` |
|
||||
| 大段代码要保存 | `snippet +create --content -`(stdin) |
|
||||
| 要把片段给到脚本/工具用 | `snippet +export --id <id> --output <file>` |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **纯本地存储**:片段存于 `~/.config/gitlink-cli/snippets.json`,可通过 `GITLINK_CONFIG_DIR` 环境变量改变存储目录
|
||||
- **不需要登录**:本 Skill 不调用 GitLink API,不依赖 `auth login`
|
||||
- **ID 格式**:8 位十六进制随机串(如 `a1b2c3d4`),通过 `+list` / `+search` 获取
|
||||
- **`+delete` 不可恢复**:删除前用 `+view` 确认内容,避免误删
|
||||
- **stdin 模式**:`--content -` 表示从标准输入读取,适合保存剪贴板或多行代码
|
||||
- **标签是字符串数组**:`--tags` 用逗号分隔(`sql,template`),不支持空格
|
||||
- **全文搜索**:`+search` 匹配 title 和 content;若只想按标题找,用 `+list --keyword`
|
||||
|
||||
## References
|
||||
|
||||
- 全局参数与输出格式:[gitlink-shared/SKILL.md](../gitlink-shared/SKILL.md)
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
# 本地代码片段管理完整工作流示例
|
||||
|
||||
**场景**:开发者想在本地沉淀常用代码片段(SQL、模板、脚本),并按需检索复用。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- `gitlink-cli` 已安装
|
||||
- **无需登录认证**(本功能为本地存储,不调用 GitLink 平台 API)
|
||||
|
||||
## 工作流步骤
|
||||
|
||||
### Step 1:创建代码片段
|
||||
|
||||
```bash
|
||||
# 方式 1:直接传内容
|
||||
gitlink-cli snippet +create \
|
||||
--title "Postgres 慢查询检查" \
|
||||
--language sql \
|
||||
--tags db,performance \
|
||||
--content "SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;"
|
||||
```
|
||||
|
||||
**输出示例:**
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"data": {
|
||||
"id": "a1b2c3d4",
|
||||
"title": "Postgres 慢查询检查",
|
||||
"language": "sql",
|
||||
"tags": ["db", "performance"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
# 方式 2:从 stdin 读取大段代码(推荐用于多行)
|
||||
cat ./init_script.py | gitlink-cli snippet +create \
|
||||
--title "项目初始化脚本" \
|
||||
--language python \
|
||||
--tags init,setup \
|
||||
--content -
|
||||
```
|
||||
|
||||
### Step 2:浏览与过滤片段
|
||||
|
||||
```bash
|
||||
# 列出所有片段
|
||||
gitlink-cli snippet +list --format json
|
||||
|
||||
# 按标签过滤
|
||||
gitlink-cli snippet +list --tag db
|
||||
|
||||
# 按语言过滤
|
||||
gitlink-cli snippet +list --language python
|
||||
|
||||
# 按标题关键词过滤
|
||||
gitlink-cli snippet +list --keyword "Postgres"
|
||||
```
|
||||
|
||||
### Step 3:检索与查看
|
||||
|
||||
```bash
|
||||
# 全文搜索(匹配 title 和 content)
|
||||
gitlink-cli snippet +search --query "慢查询"
|
||||
|
||||
# 查看片段详情
|
||||
gitlink-cli snippet +view --id a1b2c3d4 --format json
|
||||
```
|
||||
|
||||
### Step 4:更新片段
|
||||
|
||||
```bash
|
||||
# 更新标题和标签
|
||||
gitlink-cli snippet +update --id a1b2c3d4 --title "PG 慢查询 Top 10" --tags db,perf
|
||||
|
||||
# 更新内容(stdin)
|
||||
echo "SELECT * FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 20;" | \
|
||||
gitlink-cli snippet +update --id a1b2c3d4 --content -
|
||||
```
|
||||
|
||||
### Step 5:导出与复用
|
||||
|
||||
```bash
|
||||
# 导出到文件
|
||||
gitlink-cli snippet +export --id a1b2c3d4 --output ./slow_query.sql
|
||||
|
||||
# 导出后直接执行
|
||||
psql -d mydb -f ./slow_query.sql
|
||||
```
|
||||
|
||||
### Step 6:清理不需要的片段(⚠️ 需确认)
|
||||
|
||||
```bash
|
||||
# 先确认要删除的内容
|
||||
gitlink-cli snippet +view --id a1b2c3d4
|
||||
|
||||
# 确认无误后删除(不可恢复)
|
||||
gitlink-cli snippet +delete --id a1b2c3d4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整命令速览
|
||||
|
||||
```bash
|
||||
# 增
|
||||
gitlink-cli snippet +create --title "..." --language <lang> --tags <t1,t2> --content "<code>"
|
||||
gitlink-cli snippet +create --title "..." --content - # stdin
|
||||
|
||||
# 查
|
||||
gitlink-cli snippet +list [--tag <t>] [--language <lang>] [--keyword <kw>] --format json
|
||||
gitlink-cli snippet +view --id <id> --format json
|
||||
gitlink-cli snippet +search --query "<keyword>"
|
||||
|
||||
# 改
|
||||
gitlink-cli snippet +update --id <id> [--title "..." --tags "..." --content "..."]
|
||||
|
||||
# 删 / 导出
|
||||
gitlink-cli snippet +delete --id <id>
|
||||
gitlink-cli snippet +export --id <id> --output <file>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 片段存储于 `~/.config/gitlink-cli/snippets.json`(可用 `GITLINK_CONFIG_DIR` 改路径)
|
||||
- 不需要 `auth login`,纯本地功能
|
||||
- `+delete` 不可恢复,删除前用 `+view` 确认
|
||||
- `--content -` 表示从 stdin 读取,适合保存剪贴板或多行代码
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
---
|
||||
name: gitlink-todo
|
||||
version: 1.0.0
|
||||
description: "我的待办:跨 Issue/PR 汇总「分配给我的 / @我的 / 我的 PR 被 review 的」,生成个人待办清单。当用户提到「我的待办」「我有什么要做的」「@我」「待办清单」「todo」「我的任务」时触发。"
|
||||
metadata:
|
||||
requires:
|
||||
bins: ["gitlink-cli"]
|
||||
cliHelp: "gitlink-cli --help"
|
||||
---
|
||||
|
||||
# gitlink-todo(我的待办)
|
||||
|
||||
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。**
|
||||
**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。**
|
||||
**CRITICAL — 本 Skill 默认只读汇总;自动回复/关闭等写操作必须先确认用户意图。**
|
||||
|
||||
> **前置条件:** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md) 了解认证和全局参数。
|
||||
|
||||
## 功能定位
|
||||
|
||||
解决「没有『我的』视角」的体验痛点:GitLink 的 Issue/PR 分散在各处,用户难以一眼看到「**哪些事在等我**」。本 Skill 聚合个人维度的待办,按紧急度排序输出清单。
|
||||
|
||||
| 阶段 | 操作 | AI Agent 角色 |
|
||||
|------|------|--------------|
|
||||
| ① 识别身份 | 获取当前登录用户 | `api GET /users/me` |
|
||||
| ② 多维查询 | 分配我的 / @我的 / 我的PR | 并行采集三类待办 |
|
||||
| ③ 排序 | 按紧急度(@我 > PR待review > 指派issue) | 标注优先级与停留时长 |
|
||||
| ④ 输出 | 个人待办清单 | 生成 Markdown |
|
||||
|
||||
## 数据源(均为只读)
|
||||
|
||||
| 待办类型 | 命令 | 说明 |
|
||||
|---------|------|------|
|
||||
| 分配给我的 Issue | `gitlink-cli search +issues --assignee <me> --category opened` | 我的负责项 |
|
||||
| @我的消息 | `gitlink-cli api GET "users/<me>/messages.json"` | 被提及/被通知 |
|
||||
| 我的 PR 状态 | `gitlink-cli pr +list --format json` | 我提的 PR 是否被 review/合并 |
|
||||
| 待我 Review 的 PR | `gitlink-cli pr +list --state open --format json` | 分配我 review 的 |
|
||||
|
||||
> `search +issues --assignee`(简写 `-a`)已确认可用(`shortcuts/search/search.go`)。
|
||||
|
||||
## 使用示例
|
||||
|
||||
```bash
|
||||
# 1. 获取当前用户身份
|
||||
gitlink-cli api GET "users/me" --format json
|
||||
|
||||
# 2. 找分配给我的开放 Issue
|
||||
gitlink-cli search +issues --assignee <me> --category opened
|
||||
|
||||
# 3. 找 @我 的消息
|
||||
gitlink-cli api GET "users/<me>/messages.json"
|
||||
|
||||
# 4. 查看我的 PR 状态(按作者过滤)
|
||||
gitlink-cli pr +list --format json
|
||||
```
|
||||
|
||||
## 工作流
|
||||
|
||||
### 工作流 1:生成我的待办(核心)
|
||||
|
||||
**场景**:用户问「我今天有什么要做的 / 给我看看我的待办」。
|
||||
|
||||
#### Step 1:识别身份
|
||||
|
||||
```bash
|
||||
gitlink-cli api GET "users/me" --format json
|
||||
# 从返回取 login / user_name 作为 <me>
|
||||
```
|
||||
|
||||
#### Step 2:多维并行查询
|
||||
|
||||
```bash
|
||||
# 分配给我的 Issue
|
||||
gitlink-cli search +issues --assignee <me> --category opened
|
||||
|
||||
# @我的消息
|
||||
gitlink-cli api GET "users/<me>/messages.json"
|
||||
|
||||
# 我的 PR 状态
|
||||
gitlink-cli pr +list --format json
|
||||
```
|
||||
|
||||
#### Step 3:AI 排序聚合
|
||||
|
||||
按紧急度分级:
|
||||
- **🔴 紧急**:@我且停留 >24h 的消息、被阻塞的 PR
|
||||
- **🟡 本周内**:分配我的 Issue、待我 review 的 PR
|
||||
- **🔵 可延后**:低优先级 Issue、我的 PR 已 review 待合并
|
||||
|
||||
#### Step 4:输出待办清单
|
||||
|
||||
按下方「输出模板」生成。
|
||||
|
||||
### 工作流 2:批量处理待办(写操作)
|
||||
|
||||
**场景**:用户看完待办后,想批量更新状态。
|
||||
|
||||
```bash
|
||||
# 批量关闭已解决的 Issue(⚠️ 先 dry-run)
|
||||
gitlink-cli issue +batch-close --numbers 12,15 --dry-run
|
||||
|
||||
# 给待办 Issue 加优先级标签
|
||||
gitlink-cli issue +batch-update --ids 20,21 --tag-ids 3 --dry-run
|
||||
|
||||
# 回复 @我的 消息
|
||||
gitlink-cli issue +comment --number <n> --body "<回复内容>"
|
||||
```
|
||||
|
||||
## 决策规则
|
||||
|
||||
| 条件 | 处理 |
|
||||
|------|------|
|
||||
| 用户身份未知 | 先 `api GET /users/me`,失败则提示登录 |
|
||||
| @我 的消息停留 >24h | 标为 🔴 紧急置顶 |
|
||||
| 我的 PR 长期未 review | 提醒「PR #<n> 已 <x> 天未 review,可 @维护者」 |
|
||||
| 待办过多(>20) | 按优先级截断 top 20,其余计数 |
|
||||
| 批量写操作 | 必须 `--dry-run` 预览后确认 |
|
||||
|
||||
## 输出模板
|
||||
|
||||
```markdown
|
||||
# ✅ 我的待办 — <me>(<YYYY-MM-DD>)
|
||||
|
||||
## 🔴 紧急(<n>)
|
||||
1. 🔔 Issue #<n> @你:<消息>(停留 2 天)
|
||||
2. 🔀 PR #<n> 你被指派 review,已等待 3 天
|
||||
|
||||
## 🟡 本周内(<n>)
|
||||
- 分配给你的 Issue:
|
||||
- #<n> <标题>(优先级 high)
|
||||
- #<n> <标题>
|
||||
- 待 Review 的 PR:#<n>、#<n>
|
||||
|
||||
## 🔵 你的 PR(<n>)
|
||||
- #<n> <标题> — ✅ 已 review,待合并
|
||||
- #<n> <标题> — ⏳ 等待 review(2 天)
|
||||
|
||||
---
|
||||
*由 gitlink-todo Skill 生成,共 <n> 项待办*
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 本 Skill 核心是**只读汇总**,不修改资源
|
||||
- `search +issues --assignee` 需传用户标识(login 或 id),先用 `/users/me` 获取
|
||||
- 批量处理(关闭/打标签/回复)属写操作,必须先确认或 `--dry-run`
|
||||
- 待办优先级由 AI 根据停留时长、@提及、阻塞情况综合判定
|
||||
|
||||
## References
|
||||
|
||||
- 全局参数与安全规则:[gitlink-shared/SKILL.md](../gitlink-shared/SKILL.md)
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
# 我的待办完整工作流示例
|
||||
|
||||
**场景**:开发者上班第一件事,想知道「今天有哪些事在等我」。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- `gitlink-cli` 已登录
|
||||
|
||||
## 工作流步骤
|
||||
|
||||
### Step 1:识别身份
|
||||
|
||||
```bash
|
||||
gitlink-cli api GET "users/me" --format json
|
||||
# 取 login = zhangsan
|
||||
```
|
||||
|
||||
### Step 2:多维查询
|
||||
|
||||
```bash
|
||||
# 分配给我的开放 Issue
|
||||
gitlink-cli search +issues --assignee zhangsan --category opened
|
||||
|
||||
# @我的消息
|
||||
gitlink-cli api GET "users/zhangsan/messages.json"
|
||||
|
||||
# 我的 PR 状态
|
||||
gitlink-cli pr +list --format json
|
||||
```
|
||||
|
||||
### Step 3:AI 生成待办清单
|
||||
|
||||
输出示例:
|
||||
|
||||
```markdown
|
||||
# ✅ 我的待办 — zhangsan(2026-06-23)
|
||||
|
||||
## 🔴 紧急(2)
|
||||
1. 🔔 Issue #188 @你:「认证模块的重试逻辑需要你确认」(停留 2 天)
|
||||
2. 🔀 PR #90 你被指派 review,已等待 3 天
|
||||
|
||||
## 🟡 本周内(4)
|
||||
- 分配给你的 Issue:
|
||||
- #180 修复搜索分页(优先级 high)
|
||||
- #175 补充 API 文档
|
||||
- 待 Review 的 PR:#90、#87
|
||||
|
||||
## 🔵 你的 PR(2)
|
||||
- #92 feat: 批量导入 — ✅ 已 review,待合并
|
||||
- #88 fix: 登录超时 — ⏳ 等待 review(2 天)
|
||||
|
||||
---
|
||||
*由 gitlink-todo Skill 生成,共 8 项待办*
|
||||
```
|
||||
|
||||
### Step 4(可选):批量处理
|
||||
|
||||
```bash
|
||||
# 回复 @我 的消息
|
||||
gitlink-cli issue +comment --number 188 --body "已确认,今天处理"
|
||||
|
||||
# 批量给待办加优先级标签(⚠️ 先 dry-run)
|
||||
gitlink-cli issue +batch-update --ids 180,175 --tag-ids 3 --dry-run
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整命令速览
|
||||
|
||||
```bash
|
||||
gitlink-cli api GET "users/me" --format json
|
||||
gitlink-cli search +issues --assignee <me> --category opened
|
||||
gitlink-cli api GET "users/<me>/messages.json"
|
||||
gitlink-cli pr +list --format json
|
||||
gitlink-cli issue +comment --number <n> --body "..."
|
||||
gitlink-cli issue +batch-update --ids <ids> --tag-ids <ids> --dry-run
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 核心只读汇总;批量写操作必须先确认或 `--dry-run`
|
||||
- `--assignee` 需传 login/id,先用 `/users/me` 获取
|
||||
Loading…
Reference in New Issue