Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add CookiesHaha/ash-claude-skills --skill lark-workflow-prd-syncgit clone --depth 1 https://github.com/CookiesHaha/ash-claude-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cookieshaha/ash-claude-skills/lark-workflow-prd-sync)<a href="https://agentmods.dev/skills/cookieshaha/ash-claude-skills/lark-workflow-prd-sync"><img src="https://agentmods.dev/badge/skills/cookieshaha/ash-claude-skills/lark-workflow-prd-sync/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cookieshaha/ash-claude-skills/lark-workflow-prd-sync"><img src="https://agentmods.dev/badge/skills/cookieshaha/ash-claude-skills/lark-workflow-prd-sync.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00162 | $0.04866 |
| Opus 5 | $0.00081 | $0.02433 |
| Sonnet 5 | $0.00032 | $0.00973 |
| Haiku 4.5 | $0.00016 | $0.00487 |
Grade A, and why
lark-workflow-prd-sync scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 457 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PRD 文档工作流
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md(若存在),其中包含 lark-cli 的认证、权限处理
PRD 三件套定位
write-a-prd ────► [本 skill: prd-sync] ────► prd-to-userstory
(创建) (同步/维护) (拆成 Story)
本 skill 是「同步/维护」环节,独立可用:
- 上游可以是 write-a-prd 生成的 PRD(自带 frontmatter),也可以是手写/历史 PRD(旧版本注释)
- 下游是 prd-to-userstory,通过 frontmatter 与 [HANDOFF] 块传递上下文
适用场景
- "帮我从飞书下载这个 PRD 并整理好"
- "把飞书文档里的评论整理成 Open Questions"
- "根据详细设计更新整体变更和功能清单"
- "把本地改好的 PRD 同步回飞书"
- "prd sync" / "prd同步"
所需 OAuth Scopes(user 身份)
# 读取文档
lark-cli auth login --scope "docx:document:readonly"
# 读取评论
lark-cli auth login --scope "docs:document.comment:read"
# 更新文档(同步回飞书时)
lark-cli auth login --scope "docx:document:write_only docx:document:readonly"
说明:多次 login 的 scope 会累积(增量授权),无需重复授权已有 scope。
Step 0:版本号自动维护规则
每次同步前先识别「本次变更规模」,按下表自动维护本地 PRD 顶部的「版本信息」与「变更日志」表:
| 变更规模 | 版本号增长 | 判定标准 |
|---|---|---|
| 大版本(major) | 1.x → 2.0 |
§4 详细设计大幅重写、§5 功能清单新增/删除 ≥ 5 行、整体方案换路 |
| 小版本(minor) | 1.0 → 1.1 |
局部章节微调、零散字段更新、评论解决/补充、OQ 状态变化、版本日志补登 |
操作清单:
- 更新 frontmatter.version
- 在「§1 版本信息」表的版本号字段更新为新版本号
- 在「§2 变更日志」表追加一行新记录(时间、版本号、变更人、主要变更内容)
- 同步飞书时也要替换飞书侧的「变更日志」表(用 block_replace)
完整工作流
飞书文档 URL 或本地 .md 路径
│
▼
Step 0.5: 识别 PRD 元数据来源
├─► 有 frontmatter → 直接读 feishu_url / feishu_doc_token
├─► 有 <!-- 飞书文档:URL --> 注释(旧版本)→ 解析 URL,本次同步后补写 frontmatter
└─► 都没有 → AskUserQuestion 让用户提供飞书 URL
│
▼
Step 1: 下载文档 → 保存 .md 到 prd/YYYY/M/(保留/补全 frontmatter)
│
▼
Step 2: 拉取所有评论
├─► 2.1 未解决评论 → 写入/更新 §6 Open Questions
└─► 2.2 已解决评论 → 删除本地 ⚠️ [评论] 标记 + 更新 OQ 状态为「已解决」
│
▼
Step 3: 分析 §4 需求详细设计
│
├─► 更新 §3.1 整体变更(每条需求对应一行)
└─► 更新 §5 功能清单(每个功能点对应一行)
│
▼
Step 4: 如有未解决 OQ → 在文档标题末尾追加 -draft
│
▼
Step 5: 按 Step 0 规则更新版本号 + 变更日志 + frontmatter.version
│
▼
Step 6: 增量同步回飞书(只更新 §3.1 / §5 / §6 / §2 变更日志,不触碰 §4)
│
▼
Step 7: 输出 [HANDOFF] 块 → 供下游 prd-to-userstory 消费
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 457 lines · 162 tokens per session scan A f7765ad28535
lark-workflow-prd-sync is a skill published in the GitHub repository CookiesHaha/ash-claude-skills (2 stars, last pushed 1mo ago), licensed MIT. It adds 162 tokens to every session and 4,866 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pdf-text-replace
Replace text in fillable PDF forms by updating form field values. This skill should be used when users need to update names, addresses, dates, or other text in PDF form fields.
suede-product-marketing
Suede-owned product-marketing context discipline. Use when a project needs a shared record of product, audience, ICP, positioning, objections, customer language, proof, and goals, or when that record needs updating. NOT FOR: writing a campaign (use suede-campaign-in-a-box), conducting new customer interviews (use…
google-apps-script
Build Google Apps Script automation for Sheets and Workspace. Custom menus, triggers (onEdit / time-driven / form submit), dialogs, sidebars, email batches, PDF export, external API. Use whenever the user wants to automate a Google Sheet, build a Sheets menu / sidebar / dialog, hit a Sheets row from email or a…
design-export-repair
Fixes broken decks/PDFs exported from Claude's "Design" feature (or similar AI deck generators) — cut-off or clipped text, wrong/substituted fonts, and corrupted .pptx package structure that shows up only once you export to PDF, not while looking at it in the app. Use this skill whenever the user uploads a zip, .pptx…
financial-document-parser
Extract and analyze data from invoices, receipts, bank statements, and financial documents. Categorize expenses, track recurring charges, and generate expense reports. Use when user provides financial PDFs or images.
csv-excel-merger
Merge multiple CSV/Excel files with intelligent column matching, data deduplication, and conflict resolution. Handles different schemas, formats, and combines data sources. Use when users need to merge spreadsheets, combine data exports, or consolidate multiple files into one.