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:
catlog22
2026-01-17 19:20:24 +08:00
parent 1fae35c05d
commit f14418603a
137 changed files with 13125 additions and 301 deletions

View File

@@ -3300,3 +3300,93 @@
text-transform: uppercase;
letter-spacing: 0.025em;
}
/* ==========================================
SPLIT QUEUE MODAL STYLES
========================================== */
.split-queue-modal-content {
max-width: 600px;
width: 90%;
}
.split-queue-controls {
display: flex;
gap: 0.5rem;
align-items: center;
}
.split-queue-issues {
display: flex;
flex-direction: column;
gap: 1rem;
}
.split-queue-issue-group {
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 0.75rem;
background: hsl(var(--muted) / 0.3);
transition: all 0.15s ease;
}
.split-queue-issue-group:hover {
background: hsl(var(--muted) / 0.5);
border-color: hsl(var(--primary) / 0.3);
}
.split-queue-issue-header {
margin-bottom: 0.5rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid hsl(var(--border) / 0.5);
}
.split-queue-issue-header label {
cursor: pointer;
user-select: none;
}
.split-queue-issue-header input[type="checkbox"] {
cursor: pointer;
}
.split-queue-solutions {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.split-queue-solutions label {
cursor: pointer;
user-select: none;
padding: 0.25rem;
border-radius: 0.25rem;
transition: background-color 0.15s ease;
}
.split-queue-solutions label:hover {
background: hsl(var(--muted) / 0.5);
}
.split-queue-solutions input[type="checkbox"] {
cursor: pointer;
}
/* Checkbox styles */
.split-queue-modal-content input[type="checkbox"] {
width: 1rem;
height: 1rem;
border: 1px solid hsl(var(--border));
border-radius: 0.25rem;
cursor: pointer;
transition: all 0.15s ease;
}
.split-queue-modal-content input[type="checkbox"]:hover {
border-color: hsl(var(--primary));
}
.split-queue-modal-content input[type="checkbox"]:checked {
background-color: hsl(var(--primary));
border-color: hsl(var(--primary));
}