# Aipanel Feishu Bitable

> Manage the AIPanel Feishu Bitable data source with natural language. Use when a user wants to query, add, edit, delete, reorder, or organize AIPanel bookmarks and categories stored in the Feishu Bitable backing the current AIPanel deployment. Also use when the user asks about AIPanel data, category order, placeholder records for new categories, or wants changes reflected in the panel UI.

- **Type:** Skill
- **Install:** `agentstack add skill-simmzl-aipanel-openclaw-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [simmzl](https://agentstack.voostack.com/s/simmzl)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [simmzl](https://github.com/simmzl)
- **Source:** https://github.com/simmzl/AIPanel/tree/main/integrations/openclaw-skill
- **Website:** https://aipanel-eta.vercel.app

## Install

```sh
agentstack add skill-simmzl-aipanel-openclaw-skill
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# AIPanel Bitable

Operate the AIPanel data source in Feishu Bitable.

This skill is the **canonical editable template** for the AIPanel OpenClaw integration.
The checked-in copy under `skills/aipanel-feishu-bitable/` should be treated as a rendered mirror for local browsing or distribution, not as the source of truth.

## Data source configuration

Render or install this skill with the correct identifiers for your AIPanel deployment:

- app_token: `__AIPANEL_APP_TOKEN__`
- table_id: `__AIPANEL_TABLE_ID__`
- data source URL: `__AIPANEL_SOURCE_URL__`

For the current release-candidate workflow, the installer can fill these from:

- `AIPANEL_SKILL_APP_TOKEN` or `FEISHU_BITABLE_APP_TOKEN`
- `AIPANEL_SKILL_TABLE_ID` or `FEISHU_BITABLE_TABLE_ID`
- `AIPANEL_SKILL_SOURCE_URL` or `FEISHU_BITABLE_SOURCE_URL`

## Table schema

Main fields in the AIPanel table:

- `标题` text
- `副标题` text
- `链接` url
- `图标` text
- `分类` single select
- `排序` number
- `分类排序` number

Interpretation:

- `排序`: order inside the same category
- `分类排序`: category order across the whole panel

## Scope

这个 skill 负责 AIPanel 已有数据源的日常操作：

- 读取 AIPanel 数据
- 新增 / 编辑 / 删除书签
- 调整分类和排序
- 维护当前 AIPanel 数据源

实例创建与安装流程由独立的 `aipanel-installer` skill 负责。

## Preferred execution path

When operating AIPanel Bitable data, prefer **Feishu CLI** first.

Use `lark-cli base +...` for the common path whenever available, especially for:

- reading field structure
- listing records
- creating records
- updating records
- deleting records
- batch imports
- reordering categories
- reordering bookmarks inside a category

Only fall back to non-CLI Feishu/OpenClaw Bitable tools if the CLI clearly cannot cover the required action.

## Permission failure handling

If a read or write returns `403`, `permission denied`, or another clear permission error:

1. Do not keep retrying the same operation blindly.
2. Tell the user this is most likely a permission/setup issue on the target Feishu Bitable, not a data-format problem.
3. Include the target Bitable link in the response.
4. Instruct the user to open the Bitable and go to: `设置 → 更多 → 添加文档应用`.
5. Tell the user to add the corresponding Feishu bot/app, then ask the agent to retry.

When the current deployment has a configured Bitable URL, use that exact link in the guidance.

## Core tasks

### Read bookmarks

Prefer `lark-cli base +record-list`.

If CLI is unavailable for some reason, use `feishu_bitable_app_table_record.list` with:

- `app_token="__AIPANEL_APP_TOKEN__"`
- `table_id="__AIPANEL_TABLE_ID__"`
- `field_names=["标题","副标题","链接","图标","分类","排序","分类排序"]`

When summarizing data for the user:

1. Group by `分类`
2. Sort groups by `分类排序` ascending
3. Sort items inside each group by `排序` ascending

### Add a bookmark

Prefer `lark-cli base +record-upsert`.

If CLI is unavailable for some reason, use `feishu_bitable_app_table_record.create`.

Required fields to provide:

- `标题`
- `链接`
- `分类`

Usually also set:

- `副标题`
- `图标`
- `排序`
- `分类排序` if needed for consistency

If the user gives only a category and no explicit in-category order, append to the end of that category by reading current records and setting `排序 = current max + 1`.

### Edit a bookmark

1. Find the target record with `lark-cli base +record-list` first (or `list` if CLI is unavailable)
2. Use `lark-cli base +record-upsert --record-id ...` when possible
3. Preserve fields the user did not ask to change

### Delete a bookmark

1. Find the target record precisely
2. Confirm if the request is ambiguous or there are multiple matches
3. Prefer `lark-cli base +record-delete` with the resolved `record_id`

### Reorder categories

When the user asks to reorder AIPanel categories:

1. Read all records
2. Determine the desired category order
3. Prefer CLI-based record updates in a serialized loop
4. Batch or serial-update every record in each category so `分类排序` matches the new category position
5. Keep existing `排序` values unchanged

### Reorder bookmarks inside a category

When the user asks to reorder items inside one category:

1. Read all records in that category
2. Determine the target order
3. Batch update `排序` for those records only
4. Leave `分类排序` unchanged

### Create a new category

When creating a category for AIPanel, do both actions:

1. Add the new option to the `分类` single-select field
2. Create one placeholder row so the category is visible in the UI immediately

Placeholder row values:

- `标题`: `—`
- `副标题`: `—`
- `链接`: `https://placeholder.local`
- `图标`: empty string
- `分类`: new category name
- `排序`: `0`
- `分类排序`: append at the end unless the user specified another position

If the category already exists, do not create a duplicate option.

## Query patterns

### Find all bookmarks in a category

Use a structured filter on `分类 is `.

### Find one bookmark by title

Prefer exact title match first with `标题 is ...`.
If nothing matches, fall back to `contains` and report ambiguity if multiple results appear.

### Count bookmarks per category

Read all rows, group in memory, then summarize counts sorted by `分类排序`.

### Find broken or placeholder rows

Placeholder rows can be identified with one or more of:

- `标题 is "—"`
- `副标题 is "—"`
- `链接 is "https://placeholder.local"`

Use this when the user asks which categories are still empty or need real content.

## Response style

When answering users:

- Be concise
- Name the category and bookmark titles explicitly
- If multiple records might match, ask a narrowing question before writing
- After a successful write, summarize exactly what changed

## Safety

- Treat this as a live production data source for AIPanel
- Avoid destructive bulk deletes unless explicitly requested
- Prefer one batch write over many tiny writes when updating order
- If the request could affect many records, state what will change before doing it

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [simmzl](https://github.com/simmzl)
- **Source:** [simmzl/AIPanel](https://github.com/simmzl/AIPanel)
- **License:** MIT
- **Homepage:** https://aipanel-eta.vercel.app

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-simmzl-aipanel-openclaw-skill
- Seller: https://agentstack.voostack.com/s/simmzl
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
