drclaw/agent_hub/templates/proposal-writing/skills/complete-example/SKILL.md
当用户明确要求"填充示例内容""生成示例""补充 LaTeX 示例"时使用。AI 增强版 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合:AI 做"语义理解"(分析章节主题、推理资源相关性、生成连贯叙述),硬编码做"结构保护"(格式验证、哈希校验、访问控制)。
npx skillsauth add qzzqzzb/drclaw complete-exampleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
complete_example 是一个充分发挥 AI 优势的 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合。
核心设计理念:AI 做"语义理解",硬编码做"结构保护"
| 能力维度 | 说明 | |---------|------| | 语义理解 | AI 理解章节主题,智能判断需要什么类型的资源 | | 智能推理 | AI 推断资源与章节的相关性,并给出理由 | | 连贯生成 | AI 生成自然流畅的叙述性文本,而非模板拼接 | | 上下文感知 | 根据上下文调整描述风格 | | 自我优化 | AI 自我审查并优化生成内容 | | 格式安全 | 🔒 硬编码严格保护格式设置,哈希验证防篡改,访问控制 |
支持用户自定义叙事提示(narrative_hint),AI 根据提示编造合理的示例内容:
/complete_example <project_name> [options]
| 参数 | 类型 | 说明 |
|------|------|------|
| project_name | string | 项目名称(如 NSFC_Young)或项目路径 |
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| --content-density | string | moderate | 内容密度:minimal(2资源/200字) / moderate(4资源/300字) / comprehensive(6资源/500字) |
| --output-mode | string | preview | 输出模式:preview(预览) / apply(应用) / report(报告) |
| --target-files | array | null | 目标文件列表(如 ["extraTex/2.1.研究内容.tex"]),null 表示自动检测 |
| --narrative-hint | string | null | 用户自定义叙事提示,指导 AI 生成特定风格的示例内容 |
/complete_example NSFC_Young --content-density moderate --output-mode preview
/complete_example NSFC_Young --narrative-hint "生成一个关于深度学习在医疗影像分析中应用的示例,重点关注 CNN 架构和数据增强策略"
/complete_example NSFC_Young --narrative-hint "创建一个关于新型纳米材料合成与表征的示例,包括 XRD、SEM 等表征方法"
/complete_example NSFC_Young --narrative-hint "模拟一个多中心临床试验的设计与分析流程,重点描述随机化和盲法实施"
所有运行输出都保存在 目标项目的隐藏目录 {project_path}/.complete_example/<run_id>/ 中,不污染项目目录:
{project_path}/.complete_example/<run_id>/
├── backups/ # 备份文件
├── logs/ # 日志文件
├── analysis/ # AI 分析结果
├── output/ # 生成内容
└── metadata.json # 运行元数据
设计原理:
.complete_example 目录.)使目录在常规文件列表中隐藏run_id(格式:v{timestamp}_{hash}).complete_example 目录清理所有中间文件AI 会自动评估生成内容的质量,包括:
1. 🔍 扫描阶段
└─ 扫描 figures/、code/、references/ 资源
2. 🧠 分析阶段
└─ AI 分析章节主题、关键概念、写作风格
3. 💡 推理阶段
└─ AI 推理资源相关性并给出理由
4. ✍️ 生成阶段
└─ AI 生成连贯的叙述性内容(支持用户提示)
5. 🎨 包装阶段
└─ 硬编码包装为 LaTeX 代码
6. 🔍 优化阶段
└─ AI 自我审查和优化
7. ✅ 验证阶段
└─ 格式验证、编译验证
8. 📊 报告阶段
└─ 生成质量报告
| 任务类型 | AI 负责 | 硬编码负责 | |---------|--------|-----------| | 文件扫描 | - | ✅ 文件系统操作、元数据提取 | | 语义分析 | ✅ 章节主题理解、关键概念提取 | - | | 资源选择 | ✅ 推理相关性、给出理由 | ✅ 评分排序、Top-K 选择 | | 文本生成 | ✅ 叙述性内容生成 | - | | LaTeX 包装 | - | ✅ 语法正确性、格式规范 | | 格式保护 | ✅ 解释修改意图、诊断问题 | ✅ 严格验证、哈希校验 |
┌─────────────────────────────────────────────────────────┐
│ 用户接口层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ CLI 命令 │ │ Skill 调用 │ │ Python API │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ AI 增强工作流层 │
│ ┌─────────────────────────────────────────────────┐ │
│ │ CompleteExampleSkill (主控制器) │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ AI 智能层(Semantic Layer) │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ SemanticAnalyzer │ │ AIContentGenerator│ │
│ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 硬编码保护层(Structure Layer) │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ ResourceScanner │ │ FormatGuard │ │
│ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
配置文件位于 skills/complete_example/config.yaml,包含:
绝对禁止修改的文件:
main.tex - 项目入口文件extraTex/@config.tex - 格式配置文件@config.tex - 格式配置文件(别名)保护机制:
# 示例:尝试修改系统文件会抛出异常
try:
skill.generate_content("main.tex", "...")
except SystemFileModificationError as e:
print(e) # 🚨 禁止访问系统文件:main.tex
核心规则:不同文件类型使用不同的章节层级
| 文件类型 | 允许的层级 | 禁止的层级 |
|---------|-----------|-----------|
| main.tex | \section、\subsection | - |
| extraTex/*.tex(input 类) | \subsubsection、\subsubsubsection | \section、\subsection |
双层级生成要求:
每个正文类的 input tex 文件必须同时使用两个层级:
generation_requirement:
require_both_levels: true # 必须同时使用两个层级
min_subsubsection: 1 # 每个文件至少 1 个 subsubsection
min_subsubsubsection: 1 # 每个 subsubsection 下至少 1 个 subsubsubsection
示例结构:
\subsubsection{研究背景}
\subsubsubsection{国内研究现状}
...内容...
\subsubsubsection{国外研究现状}
...内容...
\subsubsection{研究意义}
\subsubsubsection{理论意义}
...内容...
\subsubsubsection{实践意义}
...内容...
设计原理:
main.tex 作为项目入口,负责顶层结构(section/subsection)input 类 tex 文件作为内容模块,使用 subsubsection + subsubsubsection 双层级检查模式:
enforcement:
enabled: true
mode: "strict" # strict: 拒绝违规 / warn: 警告但允许 / off: 关闭
auto_fix: false # 是否自动修正(建议关闭)
允许编辑的文件模式:
editable_patterns:
- "^extraTex/\\d+\\.\\d+.*\\.tex$" # 1.1.xxx.tex, 2.3.xxx.tex 等
- "^references/reference\\.tex$"
保护机制:
格式注入检测:
\geometry、\setlength)黑名单关键词:
format_keywords_blacklist:
- "\\geometry{"
- "\\setlength{"
- "\\definecolor{"
- "\\setCJKfamilyfont"
- "\\setmainfont"
- "\\titleformat{"
- "\\usepackage{"
- "\\documentclass"
extraTex/@config.tex、main.tex 等\setlength、\geometry、\definecolor 等.complete_example/<run_id>/backups/xelatex 编译.complete_example/<run_id>/logs/compile.log- anthropic (Claude API)
- openai (OpenAI API)
- PIL (图片元数据提取)
- pyyaml (配置文件解析)
- jinja2 (模板引擎)
- xelatex (编译引擎)
- ctex (中文支持)
- listings (代码清单)
- graphicx (图片支持)
首次使用时,建议使用 --output-mode preview 查看生成效果:
/complete_example NSFC_Young --output-mode preview
通过 --narrative-hint 指定研究主题,可以获得更符合预期的示例:
/complete_example NSFC_Young --narrative-hint "生成一个关于 XXX 的示例"
根据章节重要性选择密度:
minimal:快速填充,适合次要章节moderate:平衡选择,适合大多数章节comprehensive:详细示例,适合核心章节使用 --auto-cleanup 配置自动清理过期运行记录:
run_management:
retention:
max_runs: 50
max_age_days: 30
auto_cleanup: true
原因:AI 生成内容时破坏了格式定义
解决方案:
.complete_example/<run_id>/logs/format_check.log.complete_example/<run_id>/backups/原因:生成的 LaTeX 代码有语法错误
解决方案:
.complete_example/<run_id>/logs/compile.log原因:AI 理解偏差或温度参数过高
解决方案:
--narrative-hinttemperature 参数与主项目保持一致。
提示:详细的设计文档请参考 plans/v202601071300.md
content-media
当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。
tools
当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。
documentation
当用户明确要求"更新项目指南""同步指南""沉淀洞见到指南"时使用。将对话中新产生的可复用写作洞见实时沉淀到项目指南文件,保持术语口径一致、结构稳定、可检验与可复现。调用时必须指定指南文件路径。
content-media
当用户明确要求"从文件/图片/网页/描述中提取综述主题"或"生成主题+关键词+核心问题结构化输出"时使用。支持文件(PDF/Word/Markdown/Tex)、文件夹、图片、自然语言描述、网页 URL 等多种输入源,自动识别输入类型并提取内容,生成可直接用于 systematic-literature-review 及其他文献综述技能的结构化输出。