mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-13 02:41:50 +08:00
feat(cli): 添加 --rule 选项支持模板自动发现
重构 ccw cli 模板系统: - 新增 template-discovery.ts 模块,支持扁平化模板自动发现 - 添加 --rule <template> 选项,自动加载 protocol 和 template - 模板目录从嵌套结构 (prompts/category/file.txt) 迁移到扁平结构 (prompts/category-function.txt) - 更新所有 agent/command 文件,使用 $PROTO $TMPL 环境变量替代 $(cat ...) 模式 - 支持模糊匹配:--rule 02-review-architecture 可匹配 analysis-review-architecture.txt 其他更新: - Dashboard: 添加 Claude Manager 和 Issue Manager 页面 - Codex-lens: 增强 chain_search 和 clustering 模块 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -75,10 +75,13 @@ async function getSessionDetailData(sessionPath: string, dataType: string): Prom
|
||||
}
|
||||
}
|
||||
|
||||
// Load summaries from .summaries/
|
||||
// Load summaries from .summaries/ and fallback to plan.json
|
||||
if (dataType === 'summary' || dataType === 'all') {
|
||||
const summariesDir = join(normalizedPath, '.summaries');
|
||||
result.summaries = [];
|
||||
result.summary = null; // Single summary text from plan.json
|
||||
|
||||
// 1. Try to load from .summaries/ directory
|
||||
if (await fileExists(summariesDir)) {
|
||||
const files = (await readdir(summariesDir)).filter(f => f.endsWith('.md'));
|
||||
for (const file of files) {
|
||||
@@ -90,6 +93,26 @@ async function getSessionDetailData(sessionPath: string, dataType: string): Prom
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Fallback: Try to get summary from plan.json (for lite-fix-plan sessions)
|
||||
if (result.summaries.length === 0) {
|
||||
const planFile = join(normalizedPath, 'plan.json');
|
||||
if (await fileExists(planFile)) {
|
||||
try {
|
||||
const planData = JSON.parse(await readFile(planFile, 'utf8'));
|
||||
// Check plan.summary
|
||||
if (planData.summary) {
|
||||
result.summary = planData.summary;
|
||||
}
|
||||
// Check synthesis.convergence.summary
|
||||
if (!result.summary && planData.synthesis?.convergence?.summary) {
|
||||
result.summary = planData.synthesis.convergence.summary;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Failed to parse plan file for summary:', planFile, (e as Error).message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load plan.json (for lite tasks)
|
||||
|
||||
Reference in New Issue
Block a user