A Claude Code skill that turns a repository's git history for a week, month or custom date range into clear, feature-level task records in a Lark Base (Bitable) table, with subtasks where the work naturally splits.
- Collects commits for
this-week,last-week,this-month,last-month, a customYYYY-MM-DD..YYYY-MM-DD, orsince-last-sync - Detects vague commit messages (
fix,update,wip, ...) and reads the commit's files,CHANGELOG.mdand a bounded diff to describe what actually changed - Groups commits by ticket key, conventional-commit scope and module into feature tasks; splits multi-part work (DB / API / UI, etc.) into linked subtasks
- Skips commits already synced (by commit SHA) and can attach new subtasks to parent tasks from earlier periods
- Shows a preview for approval before anything is written to Lark
- Claude Code
- The official Lark MCP server (
@larksuiteoapi/lark-mcp) configured in Claude Code, with the Base record tools enabled (e.g.-t preset.base.default) - A Lark custom app added to your Base as a collaborator with edit rights
From this GitHub repo (recommended)
In Claude Code, run:
/plugin marketplace add Soe-Moe/lark-git-sync
/plugin install lark-git-sync@lark-git-sync
From a terminal outside Claude Code:
claude plugin marketplace add Soe-Moe/lark-git-sync
claude plugin install lark-git-sync@lark-git-syncAfter installing, restart Claude Code or run /reload-plugins so the skill loads. To get new versions later, run /plugin marketplace update and then /plugin update lark-git-sync. To remove it, run /plugin uninstall lark-git-sync.
Or copy the skill manually
# for you, in every project
mkdir -p ~/.claude/skills && cp -r skills/lark-git-sync ~/.claude/skills/
# or for one project, shared with the team via git
mkdir -p .claude/skills && cp -r skills/lark-git-sync .claude/skills/Create a table with these fields (names must match exactly):
| Field | Type |
|---|---|
| Title | Text (primary field) |
| Summary | Text |
| Type | Single select: Feature, Fix, Refactor, Perf, Docs, Test, Chore |
| Level | Single select: Task, Subtask |
| Parent Task | Link to the same table (single record) |
| Module | Text |
| Repo | Text |
| Branch | Text |
| Authors | Text |
| Start Date | Date |
| End Date | Date |
| Commit Count | Number |
| Commit SHAs | Text |
| Period | Text |
| Status | Single select: Done (plus any others you use) |
If the MCP server exposes bitable_v1_appTableField_create, the skill offers to create missing fields for you. Turn on the parent-child view in the table to see subtasks nested.
In a git repo, ask Claude Code, for example:
sync last-week to lark
sync this-month to lark --author aung --dry-run
sync 2026-09-01..2026-09-15 to lark --flat
On the first run it asks for your Base table URL and stores it in .claude/lark-sync.json in the repo.
| Flag | Effect |
|---|---|
--all-branches |
Include commits from all local branches (default: current branch) |
--author <name|email> |
Only that author's commits |
--flat |
No subtasks |
--dry-run |
Preview only, never write |
- Nothing is written to Lark without your approval in the same run.
- The skill never changes git history or your working tree; it only writes
.claude/lark-sync.json. - Summaries never include secrets,
.envcontents or customer data from diffs.
MIT