SuperAPI AI Directory

creative-status

Office & productivity

View repository

Updated 10-28 01:27

About this skill

Creative Project Status Overview Skill

Display the complete status, progress tracking, quality analysis, and health check of a creative project. Supports multiple creative domains (novels, scripts, games, etc.).

Command Format

/creative-status [選項]

Options

  • No options: Display overall status overview
  • --chapters: Display unit detail list (chapters, levels, scenes, etc.)
  • --quality: Display detailed quality analysis
  • --memory: Display memory system health
  • --health: Execute file system health check
  • --all: Display full report

Prerequisite Steps (Domain Loading)

  1. Read .creative/config.yaml → Get domain value
  2. If config does not exist → Prompt "Not a creative project directory, please run /creative-init"
  3. Based on the Base directory in the Skill header, calculate PLUGIN_ROOT
    • PLUGIN_ROOT = Base directory with the /skills/creative-status part removed
  4. Set DOMAIN_DIR = $PLUGIN_ROOT/shared/domains/{domain}/
  5. Read $DOMAIN_DIR/domain.yaml → Get paths and quality definitions
  6. Read $DOMAIN_DIR/status-guide.md → Get domain-specific status display guidelines
  7. Execute the workflow below according to the guidelines

Execution Flow

1. Environment Check

# 確認在專案根目錄
if [ ! -d ".creative" ]; then
  echo "錯誤: 非創意專案目錄"
  exit 1
fi

2. Data Collection

Read core files

Read .creative/status.json
Read .creative/config.yaml
Read {domain.yaml 中 paths.planning.layers.L1 路徑}

Count files

// 根據 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

Count content metrics (word count, duration, etc.)

// 根據 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)
}

3. Basic Status Output (Default)

Output in the format defined in the domain-specific guide:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  {metadata.title}
  {metadata.author}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 總體進度
  {進度條} {完成百分比}%

  {單元名稱}進度: {已完成數} / {總數} {單位}
  {量度名稱}: {已完成量} / {目標量}

📝 規劃狀態
  {根據 domain.paths.planning.layers 列出每一層的完成情況}

✍️  {執行階段名稱}狀態
  {根據 domain.paths.output 列出各階段完成情況}

🎯 品質保障
  {根據 domain.quality 定義列出品質統計}

⏭️  下一步建議
  {根據 guide 中定義的建議邏輯生成}

Suggested generation logic

// 根據 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()

4. Unit Details (--chapters)

Output a detailed table in the format defined in the 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)
}

5. Quality Details (--quality)

Output the quality analysis in the format defined in the 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 輸出品質趨勢圖、維度分數、問題統計

6. Memory Health (--memory)

Output the memory system status in the format defined in the 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 輸出記憶健康度報告

7. Health Check (--health)

Execute the system health check according to the check items defined in the 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 輸出健康檢查報告

Error Handling

若 .creative/ 不存在:
  "錯誤: 當前目錄不是創意專案"
  "提示: 執行 /creative-init 初始化專案"

若 config.yaml 缺少 domain:
  "錯誤: 配置文件缺少 domain 定義"

若 domain.yaml 不存在:
  "錯誤: 不支援的 domain: {domain}"
  "支援的 domain: {列出 shared/domains/ 下的目錄}"

若 status-guide.md 不存在:
  "警告: 缺少領域專用指引,使用通用格式"

若 status.json 損壞:
  "警告: 狀態文件損壞,嘗試重建"

若無任何數據:
  "提示: 專案尚未初始化,執行 /creative-init 開始"

Usage Examples

Example 1: Quick status view

User: /creative-status

Example 2: View unit details

User: /creative-status --chapters

Example 3: Quality analysis

User: /creative-status --quality

Example 4: Full report

User: /creative-status --all