第 1 课 · 技能构建:项目文书链即用能力(学员手册)
文件路径:
/Users/apple/Documents/4.0 Sanyuan/2.4 环境公益"新"力量/course/part-01-skill/README.md时长 120 分钟 | 课后产出:≥1 个跑通的文书技能
配套可 Fork 的技能样板见同目录
skills/。
一、这节课要解决什么
项目文书——写项目书、申请资助、写结项报告——是公益机构最高频、也最耗时间的工作之一。很多团队只有一两个人,却要反复从零开始拼一份份文书。
第 1 课就从这里切入:把「每次都重新写一遍」的文书任务,封装成一个可复用的能力包(技能)。下课时,你会有至少一个能立刻替代一次真实工作的文书技能。
这是「技能 → 知识库 → AI智能体」三步主线的第一步,最终都会汇入你机构自己的「项目助理」。
二、先分清四件事
| 概念 | 回答的问题 | 公益类比 |
|---|---|---|
| 一次性提示词 | 这一次怎么答 | 临时写的一条微信 |
| 技能 | 这类任务怎么做、输出什么格式 | 机构 SOP + 模板 + 边界规则 |
| 知识库 | 机构有哪些可检索的事实与案例 | 历年项目档案、资助指南 |
| AI智能体 | 谁在用、走什么流程、调用哪些技能 | 你的「项目助理」 |
一句话:写项目书 / 结项报告这类「怎么做」的事,做成技能;历年案例、资助指南这类「有什么」的事,留给第 2 课的知识库。
二点五、技能标准与工程实践
阅读 skill-standards.md(网页版 skill-standards.html):
- Anthropic 官方:技能是什么、三层渐进加载、
SKILL.md规范(原文references/claude_agent_skills.md) - Perplexity 工程实践:触发说明怎么写、何时需要技能、Gotchas 飞轮(原文
references/skills_perplexity.md)
本页用中文对照本课 QoderWork 练习路径。
二点六、内容创作生产线 · 10 个 Skill 精选
阅读 content-pipeline-skills.md(网页版 content-pipeline-skills.html):
- 把 Skill 按工序分工:选题 → 调研 → 写作 → 去 AI 味 → 封面 → 卡片 → 信息图 → HTML 发布
- 精选 10 个内容创作 Skill(均可从 SkillHub 安装,如 stop-slop、gzh-explosive、wan26-text-to-image、guizang-html-to-pptx 等)
- 与本课文书技能同一套思维:一步一 Skill,写清触发说明
二点七、技能生命周期飞轮 · skill_flywheel
阅读 skill-flywheel.md(网页版 skill-flywheel.html):
- 开源项目:AlataChan/skill_flywheel——创建 → 检查 → 升级 → 沉淀 → 校验 → 安装
- 核心概念:
skills_root、github_hash、evolution.json、stitch(升级不丢经验) - 与本课 skillopt 分工:skillopt 管单个技能体检,飞轮管一批技能的生命周期
三、学习目标
完成本课后,你应当能够:
- 说清楚技能与提示词、知识库、AI智能体的分工,不再把所有内容塞进一段超长提示词。
- 判断手头哪些文书任务值得做成技能(高频、格式稳定、做错有代价)。
- 写出一段能让助理「该用才用」的触发说明(description)。
- 完成 ≥1 个可跑通的真实文书技能,并记录「原来多久 / 现在多久」。
- 守住数据合规底线:受益人、捐赠人、志愿者信息先脱敏。
四、一个技能长什么样
一个技能就是一个文件夹,核心是一份 SKILL.md:
env-ngo-closure-report/
├── SKILL.md # 入口:什么时候用 + 怎么做 + 禁止事项
├── assets/ # 模板、范例(输出模板、示例输入)
└── scripts/ # 可选:确定性校验脚本
SKILL.md 的推荐骨架:
## When To Use # 什么情况下调用(触发器)
## Workflow # 步骤
## Required Inputs # 需要用户给什么
## Output Contract # 输出长什么样(固定章节 / 字数)
## Gotchas # 最容易翻车的地方(脱敏、缺数据、套话)
## Files To Read # 要参考哪些模板
课堂上不必真的建文件夹:在 QoderWork 里一个「角色」就是一个最小可用的技能——把 Output Contract 和 Gotchas 粘进去、上传 2–3 份范例即可。第 3 课再迁到 Agent平台。
五、三个即用技能样板(项目文书链)
本目录 skills/ 下提供三个可直接 Fork 的样板,分别对应文书链三大高频场景。课堂上任选其一改成你机构的版本即可:
| 样板 | 对应场景 | 输入 → 输出 |
|---|---|---|
env-ngo-closure-report | 结项报告 | 执行流水账 → 六章节结构化报告 |
env-ngo-proposal-draft | 项目书 / 提案 | 机构简介 + 过往案例 + 资助方指南 → 立项书初稿 |
env-ngo-grant-letter | 资助申请信 | 项目核心信息 → 一页纸申请信 / 项目摘要 |
每个样板都内置:固定的输出契约、一份模板(assets/),结项报告样板还附带一个章节齐全性校验脚本(scripts/check_sections.mjs)。
另有一个工具型样板 env-ngo-skill-optimize(技能优化 skillopt):不做文书,而是给你写好的技能做「体检」,详见第九节。
六、课堂演示:流水账 → 结项报告(25 分钟)
讲师以结项报告技能现场演示「流水账 → 报告」:
触发:用户给出项目执行记录、活动清单、产出说明
步骤:抽取「活动 → 产出 → 成效」→ 按模板填充 → 标注缺失项
输出:固定六章节(背景 / 活动 / 产出 / 成效 / 反思 / 缺失项清单)
禁止:编造没发生的活动、把「几十人」夸成「上百人」、用「圆满成功」套话
演示用的示例输入见 skills/env-ngo-closure-report/assets/example_input_流水账.md(格式参照机构成长支持类结项模板,机构与数据均为虚构脱敏)。正式模板与技能六章节的映射见同目录 format_伙伴计划结项结构.md。
七、动手练习(60 分钟)
按下面四步,构建你自己的第一个文书技能:
练习进度:
- [ ] Step 1 选场景:结项报告 / 项目书 / 资助信,三选一
- [ ] Step 2 写触发:一句「什么情况下该用我」,并写清不该用的相邻场景
- [ ] Step 3 写契约 + 6 条 Gotchas:固定输出结构 + 最容易翻车的 6 点
- [ ] Step 4 跑一遍真实任务:用机构真实材料跑通一次,记录省了多少时间
触发说明(description)三版改写练习:
- 功能版(不推荐):
帮公益机构写报告。 - 意图版:
当用户给出执行流水账、需要结项报告时使用。 - 带边界版(提交版):
当用户提供项目流水账 / 活动记录、需要结构化结项报告时加载;不要用于项目立项书或公众号推文。
好的触发说明决定了将来「项目助理」会不会正确地调用你的技能,而不是答非所问。
八、自测(课堂必做,≥5 条)
为你的技能准备一张小测试表,至少覆盖:该加载时加载、不该加载时别误触发、缺数据时不编造。示例:
| 用户说 | 期望表现 |
|---|---|
| 「附件是流水账,帮我写结项报告」 | 加载结项技能,输出六章节 + 缺失项 |
| 「把这段改成朋友圈文案」 | 不加载结项技能 |
| 「没有成效数据,先给我完整报告」 | 列出缺失项,不编造成效 |
| 「报告里写上受益人全名和电话」 | 自动脱敏或拒绝 |
| 「按资助方模板写项目书初稿」 | 加载项目书技能,不是结项 |
九、技能优化(skillopt):评测之后怎么改
自测发现失败用例只是开始,怎么改才是这一节的重点。优化循环固定四步:
评测(第八节用例表)→ 定位病因 → 最小修改 → 重跑评测
四个高频病因与对应改法:
| 病因 | 症状 | 最小修改 |
|---|---|---|
| 触发说明太宽/太窄 | 误触发 / 该用不用 | 改 description:补「不要用于 ××」边界 |
| 输出契约不固定 | 每次输出长得不一样 | 固定章节、顺序、字数 |
| Gotchas 缺位 | 编造数据、套话、漏脱敏 | 每个失败用例对应加 1 条 Gotcha |
| 模板缺失 | AI 自由发挥格式 | 把机构真实模板放进 assets/ |
两条铁律:
- 每轮只改 ≤3 处——大改之后你不知道是哪处起的效。
- 新失败先加 Gotcha,不重写技能;高频失败再同步加评测用例。
用 env-ngo-skill-optimize 样板可以让 AI 帮你做这套体检:把你的 SKILL.md 发给它,它会按 10 项清单打健康分、生成评测用例、给出可直接粘贴的改写文本。每轮改动记入迭代记录卡(assets/iteration_log.md),健康分 ≥9 的技能才挂载到第 3 课的「项目助理」。
技能库变多之后,用 skill-flywheel.md 里的飞轮做批量检查、升级与经验沉淀(evolution.json + stitch),避免改一处丢一处。
十、数据合规底线
把资料喂给 AI / 写进技能前,先分级:
| 级别 | 例子 | 怎么处理 |
|---|---|---|
| 公开 | 公众号、年报 | 可用 |
| 准公开 | 脱敏后的案例、培训资料 | 审核后用 |
| 内部 | 会议纪要、未发布计划 | 仅本地,不上云 |
| 敏感 | 捐赠人手机、受益人身份 | 禁止写进通用技能 / 云端 |
红线:受益人、志愿者、捐赠人的姓名与联系方式,输出前一律脱敏(姓名→A/B,删除手机/证件号)。
十一、课后作业(分层)
| 层级 | 技能数量 | 真实任务 | 验收 |
|---|---|---|---|
| 入门(用起来) | ≥1 个跑通 | ≥1 次替代 | 输出基本符合模板 |
| 进阶(用的顺) | ≥2 个(含 1 个文书链) | ≥3 次替代 | 有输出契约 + 6 条 Gotchas |
下课带走一句话:「我的 _____ 技能,把 _____ 从 ___ 小时变成了 ___ 分钟。」
十二、下一课预告
技能知道「怎么做」,但要答得准,还需要机构自己的资料。第 2 课《知识库实战》就教你把散落在云盘、文档里的项目档案、资助指南、历年案例,整理成 AI 能准确检索的知识库——你这节课做的技能,下节课就有了「弹药」。