\documentclass[12pt,a4paper]{article} % ============================================================ % 中文技术文档模板 % 建议在 Overleaf 中使用 XeLaTeX 编译 % ============================================================ \usepackage[UTF8]{ctex} \usepackage[margin=2.5cm]{geometry} \usepackage{titlesec} \usepackage{fancyhdr} \usepackage{listings} \usepackage{xcolor} \usepackage{graphicx} \usepackage{amsmath} \usepackage{amssymb} \usepackage{booktabs} \usepackage{longtable} \usepackage{tabularx} \usepackage{array} \usepackage{enumitem} \usepackage{tcolorbox} \usepackage{setspace} \usepackage{url} \usepackage{hyperref} \tcbuselibrary{skins,breakable} % ============================================================ % 页面设置 % ============================================================ \geometry{ a4paper, left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm } \onehalfspacing \setlength{\parindent}{2em} \setlength{\parskip}{0.3em} \setlength{\emergencystretch}{2em} \setlist[itemize]{ itemsep=0.2em, topsep=0.4em } \setlist[enumerate]{ itemsep=0.2em, topsep=0.4em } \setcounter{tocdepth}{2} \setcounter{secnumdepth}{3} % ============================================================ % 文档信息占位符 % ============================================================ \newcommand{\doctitle}{Zero-DevToolbox 技术文档} \newcommand{\docsubtitle}{通用、低耦合、跨项目复用的 AI 辅助开发 Skill 参考} \newcommand{\projectname}{Zero-DevToolbox} \newcommand{\docauthor}{项目组} \newcommand{\docversion}{v1.0} \newcommand{\docdescription}{本文档说明 Zero-DevToolbox 的项目定位、Skill 架构、主要工作流、安装方式、知识库机制、配套配置与已知限制。} % ============================================================ % 颜色 % ============================================================ \definecolor{primaryblue}{RGB}{35,85,145} \definecolor{secondaryblue}{RGB}{65,105,170} \definecolor{codebg}{RGB}{247,248,250} \definecolor{codeframe}{RGB}{205,210,218} \definecolor{codegreen}{RGB}{40,130,80} \definecolor{codegray}{RGB}{110,115,125} \definecolor{codepurple}{RGB}{145,70,165} \definecolor{warningorange}{RGB}{210,125,30} \definecolor{softgray}{RGB}{245,245,245} % ============================================================ % 页眉页脚 % ============================================================ \pagestyle{fancy} \fancyhf{} \fancyhead[L]{\small\doctitle} \fancyhead[R]{\small\leftmark} \fancyfoot[C]{\thepage} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0pt} % ============================================================ % 标题格式 % ============================================================ \titleformat{\section} {\Large\bfseries\color{primaryblue}} {\thesection} {1em} {} [\titlerule] \titleformat{\subsection} {\large\bfseries\color{secondaryblue}} {\thesubsection} {1em} {} \titleformat{\subsubsection} {\normalsize\bfseries} {\thesubsubsection} {1em} {} % ============================================================ % 表格 % ============================================================ \newcolumntype{Y}{>{\raggedright\arraybackslash}X} \renewcommand{\arraystretch}{1.25} % ============================================================ % 代码样式 % ============================================================ \lstdefinestyle{codestyle}{ backgroundcolor=\color{codebg}, commentstyle=\color{codegreen}, keywordstyle=\color{primaryblue}\bfseries, numberstyle=\tiny\color{codegray}, stringstyle=\color{codepurple}, basicstyle=\ttfamily\footnotesize, breakatwhitespace=false, breaklines=true, captionpos=b, keepspaces=true, numbers=left, numbersep=8pt, showspaces=false, showstringspaces=false, showtabs=false, tabsize=4, frame=single, rulecolor=\color{codeframe}, columns=fullflexible } \lstdefinestyle{commandstyle}{ backgroundcolor=\color{codebg}, basicstyle=\ttfamily\footnotesize, breaklines=true, frame=single, rulecolor=\color{codeframe}, numbers=none, columns=fullflexible } \lstdefinelanguage{json}{ basicstyle=\ttfamily\footnotesize, string=[s]{}{}, stringstyle=\color{codepurple}, comment=[l]{//}, commentstyle=\color{codegreen}, keywords={true,false,null}, keywordstyle=\color{primaryblue}\bfseries } \lstset{style=codestyle} % ============================================================ % 信息框 % ============================================================ \newtcolorbox{infobox}[2][]{ enhanced, breakable, colback=blue!4!white, colframe=primaryblue, fonttitle=\bfseries, title={#2}, #1 } \newtcolorbox{warningbox}[2][]{ enhanced, breakable, colback=orange!5!white, colframe=warningorange, fonttitle=\bfseries, title={#2}, #1 } \newtcolorbox{filebox}[2][]{ enhanced, breakable, colback=softgray, colframe=gray!65!black, fonttitle=\bfseries\ttfamily, title={文件:#2}, #1 } \newtcolorbox{functionbox}[2][]{ enhanced, breakable, colback=blue!2!white, colframe=secondaryblue, fonttitle=\bfseries\ttfamily, title={函数:#2}, #1 } \newtcolorbox{qabox}[2][]{ enhanced, breakable, colback=blue!4!white, colframe=primaryblue, fonttitle=\bfseries, title={问题:#2}, #1 } \newtcolorbox{answerbox}[1][]{ enhanced, breakable, colback=green!4!white, colframe=green!55!black, leftrule=4pt, #1 } % ============================================================ % 行内代码 % ============================================================ \newcommand{\code}[1]{\texttt{\detokenize{#1}}} % ============================================================ % 超链接 % ============================================================ \hypersetup{ colorlinks=true, linkcolor=primaryblue, urlcolor=primaryblue, citecolor=green!50!black, bookmarks=true, bookmarksnumbered=true, pdftitle={\doctitle}, pdfauthor={\docauthor} } % ============================================================ % 文档正文 % ============================================================ \begin{document} % ============================================================ % 封面 % ============================================================ \begin{titlepage} \centering \vspace*{2.8cm} {\Huge\bfseries\color{primaryblue}\doctitle\par} \vspace{0.7cm} {\Large\docsubtitle\par} \vspace{2cm} \rule{\linewidth}{0.6mm} \vspace{1cm} \begin{tabular}{rl} \textbf{项目或主题:} & \projectname \\[0.6em] \textbf{作者:} & \docauthor \\[0.6em] \textbf{日期:} & \today \\[0.6em] \textbf{版本:} & \docversion \end{tabular} \vspace{1cm} \rule{\linewidth}{0.6mm} \vfill \begin{minipage}{0.85\textwidth} \centering \small \docdescription \end{minipage} \end{titlepage} % ============================================================ % 目录 % ============================================================ \tableofcontents \newpage % ============================================================ % 正文占位符 % ============================================================ \section{文档概述} 本文档面向 Zero-DevToolbox 的使用者与维护者,基于当前工作树中的 README、Skill 定义、元数据、模板、Cursor 规则、ignore 模板、EditorConfig、许可证及 Git 信息整理。分析范围采用默认的 \code{scope=core},重点描述对外可复用的工作流、配置结构和使用路径。 \begin{infobox}{范围说明} Zero-DevToolbox 是配置与文档资源仓库,不包含传统应用程序入口、业务类、运行时服务或公共 API。因此本文不虚构类图、函数签名、数据库结构、性能指标或部署流程,而是将 Skill 目录视为主要功能模块。 \end{infobox} \section{项目简介} Zero-DevToolbox 是一套简洁、通用、低耦合、可跨项目复用的 AI 辅助开发 Skill 集合。与绑定单一项目架构、框架或业务规则的 Skill 不同,本仓库提供可迁移的工作流定义;Skill 在执行时读取目标项目的代码、配置、测试、\code{AGENTS.md} 和文档,再确定具体操作。 当前仓库包含 9 个需要显式调用的工作流 Skill,主要解决以下开发问题: \begin{itemize} \item 代码注释不足、局部实现复杂以及重复代码逐渐累积; \item 功能调用链、数据流、状态变化、单位和坐标系难以快速理解; \item README 与真实代码或配置长期不同步; \item Git 提交、提交信息生成和推送过程重复; \item Codex 跨会话后容易丢失项目背景、决策、问题和进度; \item 零散笔记或代码库知识缺少结构化技术文档。 \end{itemize} \subsection{设计目标} \begin{itemize} \item \textbf{低耦合:}不写死目标项目的模块、框架、数据模型或业务逻辑。 \item \textbf{可迁移:}可以复制整套 \code{.agents/skills/},也可以只复制单个 Skill 目录。 \item \textbf{职责单一:}每个 Skill 聚焦一个明确工作流,并通过显式调用启动。 \item \textbf{安全可验证:}Skill 定义中包含范围控制、已有改动保护和结果验证规则。 \item \textbf{上下文连续:}通过结构化、可版本管理的项目知识库保存长期有效信息。 \end{itemize} \section{技术栈与运行环境} \begin{longtable}{p{0.23\textwidth}p{0.67\textwidth}} \toprule \textbf{组成} & \textbf{用途} \\ \midrule Markdown & 保存 Skill 主指令、README 和工作流参考文档。 \\ YAML & \code{agents/openai.yaml} 保存显示名称、默认提示词和调用策略。 \\ LaTeX & 提供可直接上传 Overleaf 的中文技术文档模板。 \\ Cursor MDC & \code{.cursor/rules/karpathy-guidelines.mdc} 保存始终应用的编码行为规则。 \\ EditorConfig & 统一字符编码、换行、缩进和行尾空格行为。 \\ Git & 获取仓库状态,也是 \texttt{\$commit} 工作流的基础。 \\ \bottomrule \end{longtable} 仓库自身没有包管理器、运行时依赖清单、编译脚本或自动测试入口。使用 Skill 需要一个能够从 \code{.agents/skills/} 发现项目级 Skill 的 AI 编码工具。生成的 LaTeX 文档默认面向 Overleaf 的 XeLaTeX 编译器。 \section{目录结构} \begin{lstlisting}[style=commandstyle] Zero-DevToolbox/ |-- .agents/ | `-- skills/ | |-- add-code-comments/ | |-- commit/ | |-- generate-latex-document/ | | |-- agents/openai.yaml | | |-- assets/document-template.tex | | |-- references/codebase-workflow.md | | |-- references/notes-workflow.md | | `-- SKILL.md | |-- init-project-knowledge/ | |-- optimize-target-code/ | |-- readme/ | |-- reduce-code-redundancy/ | |-- trace-code-flow/ | `-- update-project-knowledge/ |-- .cursor/rules/karpathy-guidelines.mdc |-- ignore/ | |-- .gitignore | |-- .claudeignore | `-- .cursorignore |-- .editorconfig |-- LICENSE |-- README.md `-- README_zh.md \end{lstlisting} 除 \code{generate-latex-document} 外,当前各 Skill 的核心结构是 \code{SKILL.md} 与 \code{agents/openai.yaml}。\code{generate-latex-document} 额外包含模板以及笔记整理、代码库说明两套工作流参考。 \section{总体架构} \subsection{分层组成} \begin{enumerate} \item \textbf{发现与交互层:}\code{agents/openai.yaml} 提供显示名称、简短说明和默认提示词;所有现有 Skill 都设置 \code{allow_implicit_invocation: false}。 \item \textbf{工作流定义层:}\code{SKILL.md} 描述适用场景、执行步骤、范围边界、安全规则和完成报告。 \item \textbf{可选资源层:}复杂 Skill 可以通过 \code{references/} 拆分专项工作流,通过 \code{assets/} 保存可复用模板。 \item \textbf{目标项目层:}Skill 被复制到目标仓库后,根据该项目的真实代码、配置、测试、Git 状态和文档执行。 \item \textbf{配套规则层:}Cursor 规则、ignore 模板和 EditorConfig 为编码行为、上下文过滤和格式统一提供补充支持。 \end{enumerate} \subsection{典型执行流程} \begin{enumerate} \item 将完整 Skill 集合或选定目录复制到目标项目的 \code{.agents/skills/}。 \item 在 AI 编码会话中使用 \texttt{\$skill-name} 显式调用所需工作流。 \item Skill 读取目标项目适用的 \code{AGENTS.md}、相关代码、配置、测试和文档。 \item Skill 确定处理范围,并避开第三方依赖、生成文件、缓存、日志和无关模块。 \item 根据用户要求执行只读分析或小范围修改。 \item 运行与风险相称的检查,并报告已验证结果、未验证内容及原有工作区改动。 \end{enumerate} \begin{warningbox}{显式调用} 现有 9 个 Skill 均禁用隐式调用。自然语言任务不会自动授权这些工作流;使用者需要明确写出对应的 \texttt{\$skill-name}。 \end{warningbox} \section{Skill 模块参考} \begin{longtable}{p{0.27\textwidth}p{0.63\textwidth}} \toprule \textbf{Skill} & \textbf{核心职责} \\ \midrule \texttt{\$add-code-comments} & 为用户指定的代码补充简洁、准确的变量和函数注释,并整理局部多余空行;只允许修改注释和空白格式,主要适用于支持 \code{//} 注释的语言。 \\ \texttt{\$commit} & 检查 Git 工作区、暂存区、分支和远端,生成符合仓库风格的提交信息,并完成暂存、提交和推送。 \\ \texttt{\$generate-latex-document} & 使用内置模板,将零散资料整理为技术文档,或分析代码库生成结构化说明;只输出独立的 \code{.tex} 文件。 \\ \texttt{\$init-project-knowledge} & 首次分析现有项目,创建或完善 \code{AGENTS.md} 和结构化项目知识库,并使用真实代码与资料进行初步填充。 \\ \texttt{\$optimize-target-code} & 优化指定函数、类、文件或小范围功能,关注效率、复杂度、数值稳定性、健壮性和可读性,并保持外部行为。 \\ \texttt{\$readme} & 根据真实代码、配置、脚本和文档,同步创建、检查或更新英文 \code{README.md} 与中文 \code{README_zh.md}。 \\ \texttt{\$reduce-code-redundancy} & 审计重复实现、未使用代码、冗余文件和分散工具;只清理证据充分且能够验证的候选项。 \\ \texttt{\$trace-code-flow} & 只读追踪指定功能从入口到输出的调用链、数据流、状态变化、外部交互、单位和坐标系。 \\ \texttt{\$update-project-knowledge} & 检查已完成工作,仅在产生经过确认且长期有效的信息时更新已有项目知识库。 \\ \bottomrule \end{longtable} \subsection{代码维护类工作流} \texttt{\$add-code-comments}、\texttt{\$optimize-target-code} 和 \texttt{\$reduce-code-redundancy} 共同覆盖可读性、局部实现质量与仓库级冗余治理。它们都强调限定范围、保留外部行为、避免顺带重构,并保护执行前已经存在的用户改动。 冗余清理支持 \code{mode=audit}(只分析)、\code{mode=apply}(清理已确认候选项)以及默认的“先审计、后确认”模式。 \subsection{理解与文档类工作流} \texttt{\$trace-code-flow} 用于建立从入口到输出的代码理解,重点区分接口、实现、调用者、动态路径、状态、副作用和数值约定。\texttt{\$readme} 将项目事实同步到中英文入口文档。\texttt{\$generate-latex-document} 则将笔记或代码库整理成适合交付的技术文档。 \subsection{Git 交付工作流} \texttt{\$commit} 会检查未暂存与已暂存差异、近期提交风格、当前分支和远端信息。其目标是根据实际 diff 生成提交信息,并安全完成提交和推送,而不是盲目提交整个工作区。 \section{项目知识库与上下文连续性} \subsection{初始化} \texttt{\$init-project-knowledge} 面向首次建立知识库的场景。它会检查现有 \code{AGENTS.md}、文档索引和已有知识文档,优先复用现有结构;缺少明确约定时,默认使用项目根目录下的 \code{docs/}。 知识库可以包含项目概览、架构、接口、技术决策、问题记录和当前进度。其目标是形成轻量、结构化、可版本管理、适合 Codex 长期使用的项目上下文。 \subsection{日常更新} \texttt{\$update-project-knowledge} 只更新已有知识库,不擅自创建新结构。它根据当前任务、Git 差异和验证结果,记录以后仍然有用的确认信息;普通聊天、临时想法、未验证猜测和冗长日志不会写入。 \subsection{解决的问题} 这两个 Skill 形成“首次建立、按需维护”的生命周期,减少跨会话时项目目标、架构、接口、决策、已知问题和进度信息的丢失。这里的“知识库”是保存在项目文档中的版本化知识集合,不是数据库服务,也不引入额外运行时依赖。 \section{LaTeX 文档生成模块} \subsection{工作模式} \begin{itemize} \item \textbf{笔记整理模式:}处理 Markdown、TXT、会议记录、学习笔记及其他零散资料。 \item \textbf{代码库说明模式:}分析项目入口、核心模块、公共接口、配置、测试和主要流程。 \end{itemize} 两种模式分别读取 \code{references/notes-workflow.md} 和 \code{references/codebase-workflow.md}。除非用户明确要求混合生成,否则一次只使用一个工作流。 \subsection{模板与输出} \code{assets/document-template.tex} 提供 A4 页面、中文排版、页眉页脚、目录、代码块、表格和信息框样式。生成结果需要替换标题、副标题、项目名、作者、版本、封面说明和正文占位符,输出为不依赖 Skill 目录的完整 \code{.tex} 文件。 工作流不调用本地 LaTeX、XeLaTeX 或 \code{latexmk},也不生成 PDF。结果默认上传 Overleaf 后使用 XeLaTeX 编译。 \section{安装与使用} \subsection{克隆仓库} \begin{lstlisting}[style=commandstyle] git clone https://github.com/DreamCasterZero/Zero-DevToolbox.git \end{lstlisting} \subsection{复制全部 Skill} macOS 或 Linux: \begin{lstlisting}[style=commandstyle] mkdir -p /path/to/your-project/.agents cp -R Zero-DevToolbox/.agents/skills /path/to/your-project/.agents/ \end{lstlisting} PowerShell: \begin{lstlisting}[style=commandstyle] New-Item -ItemType Directory -Force C:\path\to\your-project\.agents Copy-Item -Recurse Zero-DevToolbox\.agents\skills C:\path\to\your-project\.agents\ \end{lstlisting} \subsection{调用示例} \begin{lstlisting}[style=commandstyle] $trace-code-flow trace the checkout flow from entry to output. $reduce-code-redundancy mode=audit $init-project-knowledge analyze this repository and build its knowledge base. $readme synchronize the English and Chinese READMEs. \end{lstlisting} \section{配套配置} \subsection{Cursor 行为规则} \code{.cursor/rules/karpathy-guidelines.mdc} 设置为 \code{alwaysApply: true},要求编码前明确假设与权衡、优先使用最简单方案、只进行必要修改,以及用可验证目标驱动执行。 \subsection{Ignore 模板} \code{ignore/} 提供 \code{.gitignore}、\code{.claudeignore} 和 \code{.cursorignore}。规则覆盖密钥、依赖目录、构建和测试产物、日志、临时文件、数据库、媒体、IDE 元数据及工具缓存。 \begin{warningbox}{复制前检查} 默认 ignore 模板会排除锁文件和图片等内容,而部分项目应提交这些文件。复制后需要根据目标项目的版本控制策略检查并调整。 \end{warningbox} \subsection{EditorConfig} \code{.editorconfig} 使用 UTF-8 和 LF,要求文件末尾换行,并为 Python、Web 与配置文件、Markdown、Makefile 和 Shell 脚本定义缩进及行尾空格策略。 \section{构建、运行与测试} Zero-DevToolbox 不包含可执行应用、包管理配置或自动测试脚本,因此不存在仓库级依赖安装、构建、启动和测试命令。文档中的复制命令来自当前 README;本次生成没有实际复制到其他项目,也没有执行网络克隆。 生成的本文档应上传 Overleaf,并选择 XeLaTeX 编译器。按照 Skill 约束,本次没有检查本地 LaTeX 环境,也没有执行编译或生成 PDF。 \section{常见问题} \begin{qabox}{可以只复制一个 Skill 吗?} \end{qabox} \begin{answerbox} 可以。每个 Skill 位于独立目录;复制时应保留其中的 \code{SKILL.md}、\code{agents/openai.yaml} 以及该 Skill 自带的 \code{assets/} 或 \code{references/}。 \end{answerbox} \begin{qabox}{为什么 Skill 不会自动触发?} \end{qabox} \begin{answerbox} 当前所有 \code{agents/openai.yaml} 都设置 \code{allow_implicit_invocation: false},使分析、修改、提交和知识库维护等工作流只能在用户明确授权后执行。 \end{answerbox} \begin{qabox}{项目知识库是不是数据库?} \end{qabox} \begin{answerbox} 不是。它是由 \code{AGENTS.md}、文档索引及结构化 Markdown 文档组成的版本化知识集合,用于保存长期有效的项目上下文。 \end{answerbox} \begin{qabox}{为什么没有类与函数参考?} \end{qabox} \begin{answerbox} 当前仓库以 Markdown、YAML、MDC 和 LaTeX 资源为主,不包含传统业务源码、类或公共函数,因此本文按 Skill 模块和工作流进行说明。 \end{answerbox} \section{已知限制} \begin{itemize} \item 实际可用性取决于宿主 AI 编码工具是否支持从 \code{.agents/skills/} 发现项目级 Skill。 \item \texttt{\$add-code-comments} 主要面向支持 \code{//} 注释的语言。 \item \texttt{\$generate-latex-document} 只生成 \code{.tex},不负责本地编译、PDF 生成或 Overleaf 上传。 \item 仓库没有自动化测试来验证 Skill 在不同宿主工具、操作系统和目标项目中的行为。 \item 当前工作树包含尚未提交的配置迁移和 README 修改;本文描述当前文件状态,而不是最近一次提交的完整快照。 \end{itemize} \section{许可证与来源} 项目采用 MIT License,版权信息为 Copyright (c) 2026 DreamCasterZero。远端仓库地址为: \begin{center} \url{https://github.com/DreamCasterZero/Zero-DevToolbox} \end{center} 本文内容依据当前仓库文件生成,未使用外部资料,也未推断未获支持的版本、性能或兼容性结论。 \end{document}