agentleFS
httprunnerhttprunner/skills/feishu-bitable-task-manager/SKILL.md

feishu-bitable-task-manager

Skill2 starsChanged 9 months agoMITView on GitHub

Manage task records in Feishu Bitable (飞书多维表格) using a fixed task-status table schema and TASK_FIELD_* overrides. Use to fetch/claim/update/create tasks, look up drama metadata by BookID, or derive tasks from a source Bitable (JSON/JSONL in/out).

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 1 is distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill to read/write tasks in a Feishu Bitable “task status table” while staying compatible with its schema conventions.

    line 8
  2. Very specific:

    Treat date presets as literal strings: Today, Yesterday, Any (Any means no date constraint).

    line 41
  3. Very specific:

    Prefer fetching by --task-id / --biz-task-id when possible (it overrides --app/--scene/--status/--date).

    line 42
  4. Very specific:

    Keep only decoded rows with TaskID != 0 and at least one of Params/ItemID/BookID/URL/UserID/UserName.

    line 44
  5. Very specific:

    When ingesting JSON/JSONL, pass through keys that match column names.

    line 49
  6. Very specific:

    Read references/task-fetch.md for filters, pagination, validation, and field mapping.

    line 128
  7. Very specific:

    Read references/task-claim.md for cross-machine safe task claiming.

    line 129
  8. Very specific:

    Read references/task-update.md for status updates, timing fields, and batch update rules.

    line 130
  9. Very specific:

    Read references/task-create.md for create payload rules and batch create behavior.

    line 131
  10. Very specific:

    Read references/feishu-integration.md for Feishu API endpoints and request/response payloads.

    line 132
  11. Very specific:

    Use scripts/bitable_task.ts / scripts/drama_fetch.ts / scripts/drama_sync_task.ts as the source of truth for flags and behavior.

    line 133

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Feishu Bitable Task Manager

Use this skill to read/write tasks in a Feishu Bitable “task status table” while staying compatible with its schema conventions.

Path Convention

Canonical install and execution directory: ~/.agents/skills/feishu-bitable-task-manager/. Run commands from this directory:

cd ~/.agents/skills/feishu-bitable-task-manager

One-off (safe in scripts/loops from any working directory):

(cd ~/.agents/skills/feishu-bitable-task-manager && npx tsx scripts/bitable_task.ts --help)

Quick start

Run:

npx tsx scripts/bitable_task.ts <subcommand> [flags]

Required env

  • FEISHU_APP_ID, FEISHU_APP_SECRET
  • TASK_BITABLE_URL
  • Optional: FEISHU_BASE_URL
  • Optional: TASK_FIELD_* (override task table column names)

Key defaults (compat rules)

  • Treat date presets as literal strings: Today, Yesterday, Any (Any means no date constraint).
  • Prefer fetching by --task-id / --biz-task-id when possible (it overrides --app/--scene/--status/--date).
  • Ignore view filtering by default; use view filtering only when explicitly enabled (see references/task-fetch.md).
  • Keep only decoded rows with TaskID != 0 and at least one of Params/ItemID/BookID/URL/UserID/UserName.
  • Allow comma-separated priority lists for --status / --scene.
  • fetch supports --limit; earlier scene/status values are filled first when --limit is set.
  • claim is single-task only; do not use --limit. --candidate-limit only controls candidate attempts (see references/task-claim.md).
  • fetch and claim both split comma-separated --scene values and query each scene in order (do not treat the full CSV as one literal scene).
  • When ingesting JSON/JSONL, pass through keys that match column names; map CDNURL/cdn_url into Extra when present.

Commands

Fetch

npx tsx scripts/bitable_task.ts fetch --app com.smile.gifmaker --scene 综合页搜索 --status pending --date Today --limit 10
npx tsx scripts/bitable_task.ts fetch --task-id "1326,1327" --raw
npx tsx scripts/bitable_task.ts fetch --biz-task-id ext-20240101-001 --raw

Claim (multi-worker safe)

npx tsx scripts/bitable_task.ts claim \
  --app com.tencent.mm \
  --scene 个人页搜索,综合页搜索 \
  --device-serial <serial> \
  --status pending,failed \
  --date Today \
  --candidate-limit 5

Claim behavior details are in references/task-claim.md.

Update

npx tsx scripts/bitable_task.ts update --task-id 180413 --status running --device-serial <serial> --dispatched-at now
npx tsx scripts/bitable_task.ts update --input updates.jsonl

Create

npx tsx scripts/bitable_task.ts create \
  --input tasks.jsonl \
  --app com.smile.gifmaker \
  --scene 单个链接采集 \
  --status pending \
  --date YYYY-MM-DD \
  --skip-existing BizTaskID

Drama Fetch (read-only)

Fetch rows from source drama Bitable by optional BookID filter. Use --format meta when callers need normalized drama metadata fields:

npx tsx scripts/drama_fetch.ts --bitable-url "<DRAMA_BITABLE_URL>" --book-id "id1,id2" --format meta

Derive tasks from a source Bitable (原始多维表格)

sync accepts either --input or --bitable-url (optionally with --book-id) and handles task creation:

npx tsx scripts/drama_sync_task.ts \
  --bitable-url "https://.../base/SOURCE_APP?table=SOURCE_TABLE" \
  --task-url "https://.../base/TASK_APP?table=TASK_TABLE" \
  --app com.smile.gifmaker \
  --extra "test" \
  --params-list \
  --limit 10 \
  --skip-existing \
  --date 2026-02-10

--date YYYY-MM-DD sets the task date for created records and for --skip-existing dedup filtering. Defaults to today when omitted.

Params mode flags (mutually exclusive):

  • --params-list — one task per source row; Params is a JSON array of all search terms, e.g. ["好一个乖乖女","段休冥 鹿鸣于"].
  • --params-split — one task per search term; uses the same dedup logic as --params-list but creates separate tasks, each with a plain string Params.
  • --params-actor — one task per source row; Params uses only 主角名.

Resources

  • Read references/task-fetch.md for filters, pagination, validation, and field mapping.
  • Read references/task-claim.md for cross-machine safe task claiming.
  • Read references/task-update.md for status updates, timing fields, and batch update rules.
  • Read references/task-create.md for create payload rules and batch create behavior.
  • Read references/feishu-integration.md for Feishu API endpoints and request/response payloads.
  • Use scripts/bitable_task.ts / scripts/drama_fetch.ts / scripts/drama_sync_task.ts as the source of truth for flags and behavior.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.