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