How this skill is triggered — by the user, by Claude, or both
Slash command
/creative-toolkit:creative-statusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
展示創意專案的完整狀態、進度追蹤、品質分析與健康度檢查。支援多種創意領域(小說、劇本、遊戲等)。
展示創意專案的完整狀態、進度追蹤、品質分析與健康度檢查。支援多種創意領域(小說、劇本、遊戲等)。
/creative-status [選項]
--chapters: 顯示單元明細列表(章節、關卡、場景等)--quality: 顯示品質詳細分析--memory: 顯示記憶系統健康度--health: 執行文件系統健康檢查--all: 顯示完整報告.creative/config.yaml → 取得 domain 值Base directory 計算 PLUGIN_ROOT
/skills/creative-status 部分# 確認在專案根目錄
if [ ! -d ".creative" ]; then
echo "錯誤: 非創意專案目錄"
exit 1
fi
Read .creative/status.json
Read .creative/config.yaml
Read {domain.yaml 中 paths.planning.layers.L1 路徑}
// 根據 domain.yaml 的 paths.planning.layers 定義統計
for (const [layerName, layerPath] of Object.entries(domain.paths.planning.layers)) {
const pattern = layerPath.replace("{id}", "*")
const count = glob(pattern).length
stats[layerName] = count
}
// 統計已完成單元(草稿)
const draftPattern = domain.paths.output.drafts.final.replace("{id}", "*")
const draftCount = glob(draftPattern).length
// 統計品質報告
const qaPattern = domain.paths.quality.reports.replace("{id}", "*")
const qaCount = glob(qaPattern).length
// 根據 domain.yaml 的 metrics 定義統計
const metricType = domain.metrics.primary // 例如 "word_count", "duration", "complexity"
// 總量
const draftFiles = glob(domain.paths.output.drafts.final.replace("{id}", "*"))
let totalMetric = 0
for (const file of draftFiles) {
totalMetric += calculateMetric(file, metricType)
}
// 已發布量
const publishedFiles = glob(domain.paths.output.published.replace("{id}", "*"))
let publishedMetric = 0
for (const file of publishedFiles) {
publishedMetric += calculateMetric(file, metricType)
}
根據 domain-specific guide 中定義的格式輸出:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{metadata.title}
{metadata.author}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 總體進度
{進度條} {完成百分比}%
{單元名稱}進度: {已完成數} / {總數} {單位}
{量度名稱}: {已完成量} / {目標量}
📝 規劃狀態
{根據 domain.paths.planning.layers 列出每一層的完成情況}
✍️ {執行階段名稱}狀態
{根據 domain.paths.output 列出各階段完成情況}
🎯 品質保障
{根據 domain.quality 定義列出品質統計}
⏭️ 下一步建議
{根據 guide 中定義的建議邏輯生成}
// 根據 domain.paths.planning.layers 的完成度判斷
const layers = Object.keys(domain.paths.planning.layers)
for (const layer of layers) {
if (!isLayerComplete(layer)) {
return guide.suggestions.incomplete_layer(layer)
}
}
// 如果規劃完成,檢查執行進度
if (draftCount < totalUnits) {
return guide.suggestions.continue_execution(nextUnit)
}
// 如果執行完成,檢查品質
if (qaCount < draftCount) {
return guide.suggestions.run_quality_check()
}
// 如果有未解決問題
if (unresolvedIssues > 0) {
return guide.suggestions.fix_issues()
}
// 全部完成
return guide.suggestions.ready_to_publish()
根據 domain-specific guide 中定義的格式輸出詳細表格。
// 讀取所有單元狀態
const units = loadAllUnits(domain)
// 根據 guide 中定義的表格格式輸出
for (const unit of units) {
const planningStatus = checkPlanningStatus(unit, domain)
const executionStatus = checkExecutionStatus(unit, domain)
const qualityStatus = checkQualityStatus(unit, domain)
const metric = calculateUnitMetric(unit, domain)
const score = getQualityScore(unit)
printUnitRow(unit.id, unit.title, planningStatus, executionStatus, qualityStatus, metric, score)
}
根據 domain-specific guide 中定義的格式輸出品質分析。
// 讀取所有品質報告
const reports = glob(domain.paths.quality.reports.replace("{id}", "*"))
const scores = []
const issues = {}
for (const reportPath of reports) {
const report = readQualityReport(reportPath, domain)
scores.push(report.overall_score)
// 統計各類問題
for (const issue of report.issues) {
issues[issue.type] = (issues[issue.type] || 0) + 1
}
}
// 計算各維度平均
const dimensions = domain.quality.dimensions
const dimensionScores = {}
for (const dim of dimensions) {
dimensionScores[dim.name] = calculateAverageDimension(reports, dim.name)
}
// 根據 guide 輸出品質趨勢圖、維度分數、問題統計
根據 domain-specific guide 中定義的格式輸出記憶系統狀態。
// 統計知識庫規模
const knowledgeStats = {}
for (const [category, path] of Object.entries(domain.paths.knowledge)) {
knowledgeStats[category] = glob(path + "/*.md").length
}
// 檢查覆蓋率
const coverageStats = checkKnowledgeCoverage(domain)
// 檢查更新狀態
const lastUpdate = getLastUpdateTime(domain.paths.knowledge)
const needsUpdate = checkNeedsUpdate(domain)
// 根據 guide 輸出記憶健康度報告
根據 domain-specific guide 中定義的檢查項目執行系統健康檢查。
// 檢查目錄結構完整性
const requiredDirs = extractAllPaths(domain.paths)
const missingDirs = []
for (const dir of requiredDirs) {
if (!exists(dir)) {
missingDirs.push(dir)
}
}
// 檢查必要文件存在
const requiredFiles = [
".creative/status.json",
".creative/config.yaml",
domain.paths.planning.layers.L1
]
const missingFiles = checkMissingFiles(requiredFiles)
// 檢查孤立文件
const orphanedFiles = findOrphanedFiles(domain)
// 檢查命名規範
const namingIssues = checkNamingConventions(domain)
// 根據 guide 輸出健康檢查報告
若 .creative/ 不存在:
"錯誤: 當前目錄不是創意專案"
"提示: 執行 /creative-init 初始化專案"
若 config.yaml 缺少 domain:
"錯誤: 配置文件缺少 domain 定義"
若 domain.yaml 不存在:
"錯誤: 不支援的 domain: {domain}"
"支援的 domain: {列出 shared/domains/ 下的目錄}"
若 status-guide.md 不存在:
"警告: 缺少領域專用指引,使用通用格式"
若 status.json 損壞:
"警告: 狀態文件損壞,嘗試重建"
若無任何數據:
"提示: 專案尚未初始化,執行 /creative-init 開始"
User: /creative-status
User: /creative-status --chapters
User: /creative-status --quality
User: /creative-status --all
npx claudepluginhub miles990/creative-toolkit --plugin creative-toolkitDisplays Plan-Build-Run project status dashboard, progress, blockers from .planning files, and suggests next actions.
Displays project status, roadmap progress, blockers, and next-action suggestions based on workflow state. Use for progress checks and orientation.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.