autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
60 lines (59 loc) • 2.02 kB
TypeScript
/**
* RulesGenerator — .mdc 文件生成器
*
* 生成 Cursor Rules 格式的 .mdc 文件到 .cursor/rules/ 目录:
* - Channel A: autosnippet-project-rules.mdc (alwaysApply: true)
* - Channel B: autosnippet-patterns-{topic}.mdc (alwaysApply: false)
*/
export declare class RulesGenerator {
projectName: string;
projectRoot: string;
rulesDir: string;
/**
* @param projectRoot 用户项目根目录
* @param projectName 项目名称(用于 description/标题)
*/
constructor(projectRoot: string, projectName?: string);
/**
* Channel A — 写入 Always-On Rules 文件
*
* @param ruleLines 一行式规则列表 (来自 KnowledgeCompressor.compressToRuleLine)
* @returns }
*/
writeAlwaysOnRules(ruleLines: string[]): {
filePath: string;
tokensUsed: number;
rulesCount: number;
};
/**
* Channel B — 写入 Smart Rules 文件(按主题)
*
* @param topic 主题名 (networking, ui, data, architecture, conventions, general)
* @param compressedContent 格式化后的 When/Do/Don't Markdown 内容
* @param description Agent 关联性判断用 description
* @returns }
*/
writeSmartRules(topic: string, compressedContent: string, description: string): {
filePath: string;
tokensUsed: number;
};
/**
* 清理旧的动态生成文件
* 保留静态模板文件(autosnippet-conventions.mdc, autosnippet-skills.mdc)
*/
cleanDynamicFiles(): void;
_renderChannelA(ruleLines: string[]): string;
_renderChannelB(topic: string, body: string, description: string): string;
/**
* Baseline Rules — 零知识库时写入基础引导文件
* 告知 Agent 可用的 MCP 工具和推荐工作流
*/
writeBaselineRules(): {
filePath: string;
tokensUsed: number;
rulesCount: number;
};
_renderBaseline(): string;
_ensureDir(): void;
}
export default RulesGenerator;