kanban-markdown by lachyfs/kanban-skill
npx skills add https://github.com/lachyfs/kanban-skill --skill kanban-markdown通过 YAML 前端元数据管理以 Markdown 文件存储的看板功能。每个功能都是一个 .md 文件;VS Code 的 kanban-markdown 扩展会将它们渲染为一个看板。
每个功能文件都遵循以下确切格式:
---
id: "my-feature-2026-02-20"
status: "backlog"
priority: "medium"
assignee: null
dueDate: null
created: "2026-02-20T10:00:00.000Z"
modified: "2026-02-20T10:00:00.000Z"
completedAt: null
labels: []
order: "a0"
---
# My Feature
此处为描述和详细信息。
序列化规则(必须完全匹配,扩展才能正确解析):
"双引号"assignee、dueDate、completedAt):未设置时为裸 null广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
["bug", "ui"] 或 []"双引号" 字符串 —— 用于字典序排序的分数索引(见下文)id, status, priority, assignee, dueDate, created, modified, completedAt, labels, order有效值:
backlog | todo | in-progress | review | donecritical | high | medium | low有关完整的字段规范,请参阅 references/data-model.md。
默认:相对于工作区根目录的 .devtool/features/。可通过 VS Code 设置 kanban-markdown.featuresDirectory 进行配置。
{featuresDir}/{id}.md{featuresDir}/done/{id}.mdorder 字段使用分数索引 —— 这是一种字典序可排序的字符串,允许在任何两个项目之间插入新项而无需重新索引。扩展内部使用 fractional-indexing npm 包。
创建功能时,通过读取目标列中现有的功能(按 order 排序)来确定顺序:
"a0""a0" → "a1", "a1" → "a2", ..., "a9" → "aA",等等。0-9, A-Z, a-z(base-62,ASCII 顺序)当通过拖放移动功能时,扩展会自动计算相邻项之间的分数键。本技能只需要处理将新功能追加到列末尾的情况。
a-z 0-9 - 空格,将空格替换为 -,合并多个连续的 -,修剪两端的 -,截断至 50 个字符,追加 -YYYY-MM-DD。如果为空,则使用 feature-YYYY-MM-DD。created 和 modified 设置为当前的 ISO 时间戳。通过读取目标列中现有的功能并生成一个排序在最后一个之后的键来设置 order(参见上面的分数索引排序)。done,则将 completedAt 设置为当前时间,并将文件放置在 done/ 子文件夹中。# 标题 和正文。modified 更新为当前的 ISO 时间戳id 或 created更新 status 和 modified。当跨越完成边界时:
completedAt 设置为当前的 ISO 时间戳,将文件移动到 done/ 子文件夹completedAt 设置为 null,将文件移回根目录以 # 标题 开始(扩展从第一个 # 标题 中提取显示标题)。根据需要,使用验收标准清单、注释等。
每周安装次数
80
仓库
GitHub 星标数
3
首次出现
2026年2月20日
安全审计
安装于
github-copilot78
codex78
gemini-cli77
amp77
opencode77
kimi-cli77
Manage kanban board features stored as markdown files with YAML frontmatter. Each feature is a .md file; the VS Code kanban-markdown extension renders them as a board.
Every feature file follows this exact format:
---
id: "my-feature-2026-02-20"
status: "backlog"
priority: "medium"
assignee: null
dueDate: null
created: "2026-02-20T10:00:00.000Z"
modified: "2026-02-20T10:00:00.000Z"
completedAt: null
labels: []
order: "a0"
---
# My Feature
Description and details here.
Serialization rules (must match exactly for the extension to parse correctly):
"double-quoted"assignee, dueDate, completedAt): bare null when unset["bug", "ui"] or []"double-quoted" string — fractional index for lexicographic sorting (see below)id, status, priority, assignee, dueDate, created, modified, completedAt, labels, orderValid values:
backlog | todo | in-progress | review | donecritical | high | medium | lowFor full field specs, see references/data-model.md.
Default: .devtool/features/ relative to workspace root. Configurable via VS Code setting kanban-markdown.featuresDirectory.
{featuresDir}/{id}.md{featuresDir}/done/{id}.mdThe order field uses fractional indexing — lexicographically sortable strings that allow inserting between any two items without reindexing. The extension uses the fractional-indexing npm package internally.
When creating features , determine the order by reading existing features in the target column (sorted by order):
"a0""a0" → "a1", "a1" → "a2", ..., "a9" → "aA", etc.0-9, A-Z, a-z (base-62, ASCII order)When moving features via drag-and-drop, the extension computes fractional keys between neighbors automatically. The skill only needs to handle appending new features to the end of a column.
a-z 0-9 - space, replace spaces with -, collapse multiple -, trim - from ends, truncate to 50 chars, append -YYYY-MM-DD. If empty, use feature-YYYY-MM-DD.created and modified to current ISO timestamp. Set order by reading existing features in the target column and generating a key that sorts after the last one (see Fractional Index Ordering above).done, set to now and place in subfolder.modified to current ISO timestampid or createdUpdate status and modified. When crossing the done boundary:
completedAt to current ISO timestamp, move file to done/ subfoldercompletedAt to null, move file back to rootStart with # Title (the extension extracts the display title from the first # heading). Use acceptance criteria checklists, notes, etc. as needed.
Weekly Installs
80
Repository
GitHub Stars
3
First Seen
Feb 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
github-copilot78
codex78
gemini-cli77
amp77
opencode77
kimi-cli77
completedAtdone/# Title and body.