Przejdź do treści
Biblioteka skilli
Programowanie · Integracja z narzędziem

abap-cli

/abap-cli

Kieruje pracą z abap-cli: wybiera odpowiednią część narzędzia dla pytania, a stany zawieszenia zapisuje lokalnie.

Repozytorium
abap-cli ↗
Licencja
MIT
Ostatnia zmiana repozytorium
12.11.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
2
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.11.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Kieruje pracą z abap-cli: wybiera odpowiednią część narzędzia dla pytania, a stany zawieszenia zapisuje lokalnie.

Wyzwalacze z opisu

这个查询该看哪个 skill
Oryginalny opis (EN)

abap-cli 用户的 agent 路由层 — 根据用户意图分发到 4 个领域 skill(abap-cli-setup / -search / -edit / -data)与 1 个方法论 skill(abap-cli-performance);并处理 agent 元任务:卡死用 `report-stuck` 本地留痕,CLI 反馈 / bug 直接提 GitHub issue(无内置命令)。use when asking "这个查询该看哪个 skill" 或 agent 收到模糊意图需要先做路由决策;agent 自身做完一轮任务想提交反馈或遇到不可恢复卡死想留痕。

Jak działa

  1. 路由表(权威)
  2. 边界
  3. 通用规则
  4. references(按需加载)
  5. scripts / assets
  6. 权威来源
Sekcje z nagłówków SKILL.md, w oryginale · 121 linii, 699 słów
Podgląd SKILL.md
---
name: abap-cli
description: abap-cli 用户的 agent 路由层 — 根据用户意图分发到 4 个领域 skill(abap-cli-setup / -search / -edit / -data)与 1 个方法论 skill(abap-cli-performance);并处理 agent 元任务:卡死用 `report-stuck` 本地留痕,CLI 反馈 / bug 直接提 GitHub issue(无内置命令)。use when asking "这个查询该看哪个 skill" 或 agent 收到模糊意图需要先做路由决策;agent 自身做完一轮任务想提交反馈或遇到不可恢复卡死想留痕。
metadata:
  version: "2.7.0"
  scope: meta
  commands: [report-stuck]
---

# abap-cli — 入口路由层(meta-skill)

`scope: meta` — 这个 skill **不直接管领域命令**,做四件事:

1. **路由表**:把用户意图映射到唯一目标领域 skill(4 选 1)+ 1 个方法论 skill
2. **边界说明**:说明与仓库本地技能(`.agents/skills/`)的关系(用户机器上不存在时跳过)
3. **agent 元任务**:卡死 → `abap report-stuck` 本地留痕;反馈 / bug → 直接建 GitHub issue(没有 CLI 命令)
4. **意图模糊回退**:当其他 5 个 skill 都不命中时,本 skill 处理"该看哪个 skill"的问题

加载本 skill 后,**第一步是查路由表**;命中目标后,**只加载那一个领域 skill 的 SKILL.md 全文**,不要把 4 棵决策树都读进上下文。

## 路由表(权威)

| 用户意图 | 唯一目标 skill | 触发命令 |
|---|---|---|
| 配置 / 接 SAP / 加 profile / 诊断 / 传输请求 / 部署 ICF / 看 session / 查类型映射 | `abap-cli-setup` | `init` `profile` `doctor` `transport` `deploy` `session` `types` |
| 查对象元数据 / where-used / 业务码 / 拉取对账 / 状态只读 / 看 ST22 dump | `abap-cli-search` | `search` `where-used` `inspect` `tcode` `diff` `status` `dumps` |
| 拉对象 / 改 / 推 / 语法检查 / 激活 / 创建 / 删除 / 列举 / MIME / AFF 校验 / 服务绑定发布 | `abap-cli-edit` | `pull` `push` `check` `create` `activate` `publish` `unpublish` `delete` `list` `mime` `validate:aff` |
| 跑类 / 查表 / 列表字段 / 跑报表 / 跑 ABAP Unit / 翻页 select | `abap-cli-data` | `select` `fields` `run` `run-report` `test` |
| ABAP 性能 review / 慢路径诊断 / 优化建议 | `abap-cli-performance` | (方法论 skill,不直接管命令) |
| Agent 卡死留痕(不依赖 SAP) | `abap-cli`(meta) | `report-stuck` |
| Agent 提交反馈 / bug | `abap-cli`(meta) | GitHub Issues(无 CLI 命令,见下) |
| 意图模糊 / 不确定归哪类 | `abap-cli`(meta) | (路由查询本身) |

> **同一命令唯一归属**:4 个领域 skill 的 `metadata.commands` 集合互不相交,合计 30 条;再加 meta 的 1 条(`report-stuck`),共 31 个 CLI 命令(详见 `skills/README.md`)。
>
> **`abap-cli-performance` 例外**:它是方法论 skill,不声明 `metadata.commands`;它触发的只读命令(`search / inspect / pull / check / select`)归属上表 4 个领域 skill。本 skill 全程不写对象。

### 路由查询决策树

```
用户查询来了
├── 关键词含 "配置 / 接 / profile / 诊断 / 部署 / transport / 扩展 / session" → abap-cli-setup
├── 关键词含 "查询 / 哪些地方用 / 业务码 / 状态 / 差异 / dump" 且不含 "改 / 推 / 激活" → abap-cli-search
├── 关键词含 "拉 / 改 / 推 / 语法 / 激活 / 创建 / DDIC / MIME / AFF" → abap-cli-edit
├── 关键词含 "跑 / 查表数据 / select / run / test / 单测 / ABAP Unit / 翻页" → abap-cli-data
├── 关键词含 "慢 / 性能 / 优化 / N² / FOR ALL ENTRIES / 内表 / HASHED / AMDP / CDS" → abap-cli-performance
├── 关键词含 "反馈 / bug / issue / 提 issue" → 本 meta skill → 建 GitHub issue(见下)
├── 关键词含 "stuck / 卡死" → 本 meta skill → abap report-stuck --goal ... --tried ... --where ... --json
└── 模糊 / 无法分类 → 留在 abap-cli(meta),先问用户 1 个澄清问题,再路由
```

### 提交反馈(GitHub Issues,无 CLI 命令)

CLI 行为不对 / 缺功能时,直接建 GitHub issue,**默认仓库 `chunrichi/abap-cli`**(用户明确指定别的仓库时优先用户指定)。不要再用已删除的反馈命令。

**先探测当前环境有什么能力,按优先级使用:**

1. **GitHub MCP / issue 工具**:工具列表里有创建 issue 的能力(如 `create_issue`)→ 直接调用,仓库 `chunrichi/abap-cli`。
2. **`gh` CLI**:`gh auth status` 成功 → `gh issue create --repo chunrichi/abap-cli --title "..." --body-file <file>`。
3. **`GITHUB_TOKEN` / `GH_TOKEN`**:调 GitHub REST `POST /repos/chunrichi/abap-cli/issues`。
4. **都没有 / 认证被拒**:不要反复重试;把预填链接交给用户手动提交,并明确说明 **未提交**:
   `https://github.com/chunrichi/abap-cli/issues/new?title=<urlencoded-title>&body=<urlencoded-body>`

**issue 正文模板**(缺什么写 unknown,不要编):

- CLI 与 Node 版本:`abap --version`、`node -v`
- 失败命令的完整参数、期望 vs 实际、错误码 / 退出码(附 `--json` 错误信封更有用)
- 环境:on-prem / BTP、SAP release(与问题相关时)
- 最小复现步骤
- **脱敏**:不含密码、`.abap.json` 内容、业务数据、内网地址

连不上 GitHub 或需要离线留档时,用下面的 `report-stuck`。

### `report-stuck`(卡死留痕)

任务卡死(SAP 端无响应、错误码无法恢复、agent 自己卡死)→ 写一份本地 JSON 报告留档供 offline triage。**完全离线**(无网络无 SAP)。

```bash
abap report-stuck \
    --goal "Create ZCL_ORDER class" \
    --tried "search ZCL_ORDER; pull ZCL_ORDER; check syntax; push --tr DEVK900001 --yes" \
    --where "abap push src/zcl_order.clas.abap" \
    --json
```

| flag | 含义 | 必填 |
|---|---|---|
| `--goal <text>` | 目标(agent 想做什么) | ✅ |
| `--tried <text>` | 已尝试的动作 | ✅ |
| `--where <cmd>` | 卡死点(具体卡在哪条命令) | ✅ |

输出落在 `userConfigDir()/reports/STUCK-<ts>-<rand>.json`(即 `~/.abap-cli/reports/`);agent 后续可读这些报告聚类重复问题。报告只存本地,不会自动上传——要同步上游就按上面的 GitHub issue 流程。

### 错误码(meta 专属)

meta 没有专属错误码:`report-stuck` 只用公共错误码。

| 错误 | 触发 | 修复 |
|---|---|---|
| `USAGE` (exit 2) | `report-stuck` 缺 `--goal` / `--tried` / `--where` | 补齐三个必填参数 |

> ⚠️ **`pull` 归 `abap-cli-edit` 而非 `abap-cli-search`**:虽然 `pull` 写本地文件,但它是"修改 SAP 对象的中间步骤"(`pull → 编辑 → push`),归 edit 的写路径决策树。
>
> ⚠️ **`inspect` 归 `abap-cli-search` 而非 `abap-cli-edit`**:虽然 `inspect --activation` 暴露修复线索,但 `inspect` 本身**不**改对象,纯只读元数据探查。修复动作归 edit。

## 边界

本 skill 只负责路由。仓库本地开发技能(`.agents/skills/`:`abap-style` / `abap-report-style` / `okf` / `abap-testing` / `repo-workflow`)属于本仓库贡献者的上下文,**不随 npm 包分发**;用户机器上不存在时直接跳过,不影响路由。

## 通用规则

1. **永远先查路由表**:不要直接跳进领域 skill;模糊查询留在 meta
2. **路由唯一**:同一用户意图只命中一个领域 skill,不并发加载多个
3. **仓库本地技能不阻塞**:`.agents/skills/` 不存在时跳过,不影响分发版路由

## references(按需加载)

- 无:本 skill 是路由层,不含命令速查 / 错误码表

## scripts / assets

- 无:本 skill 不含可执行辅助脚本或模板

## 权威来源

- 仓库总索引:[`skills/README.md`](https://github.com/chunrichi/abap-cli/blob/main/skills/README.md)
- 路由表的"数据视图":4 个领域 skill 的 `metadata.commands`
- 端到端编排:[`agents/abap-developer.agent.md`](../../agents/abap-developer.agent.md)

Wersje

RepozytoriumWynikLicencja
Ta strona · chunrichi/abap-cli100MIT
chunrichi/abap_cli_demo100MIT

Migawka bazy z 13.11.2026 · wersja paczki d9776544d293 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100abap-cli-data
    Odczytuje dane SAP z abap-cli: zapytania do tabel, listę pól, uruchamianie klas, raportów i testów jednostkowych ABAP.
  • 100abap-cli-performance
    Sprawdza wydajność kodu ABAP poleceniami tylko do odczytu, oddzielając dowody z produktu SAP od dowodów z bazy HANA.
  • 100abap-cli-performance
    Sprawdza wydajność kodu ABAP poleceniami tylko do odczytu, oddzielając dowody z produktu SAP od dowodów z bazy HANA.
  • 100clean-abap
    Prowadzi styl i utrzymywalność kodu Clean ABAP: nazewnictwo, strukturę, nowoczesną składnię, formatowanie, komentarze i refaktoryzację podczas pisania ABAP lub przeglądu pod kątem stylu.
  • 100abapsmith-write-abap-unit-tests
    Pisze i uruchamia testy ABAP Unit dla klasy przez abap_write, abap_activate i abap_test oraz odczytuje pokrycie.
  • 100clean-abap
    Pisze i przegląda kod ABAP zgodnie z przewodnikiem Clean ABAP: klasy, moduły funkcji, programy, interfejsy i transporty.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.