skills/prism-routing/SKILL.md
Prismstack — Domain Stack Builder. 10 個互動式 skill 把 gstack 方法論遷移到任何領域。 從規劃到搭建到持續迭代的完整工具鏈。 When you notice the user is at these stages, suggest the appropriate skill: - User wants to build a domain skill stack → suggest /domain-plan - User says "我做 X 領域", "幫我建一套 skill", "規劃" → suggest /domain-plan - User has existing skills and wants to organize into a stack → suggest /domain-plan (brownfield mode) - User says "整合成 stack", "stack 化", "已經有一些 skill", "我有現有的 skill", "變成 stack 架構" → suggest /domain-plan (brownfield) - User has a skill map and wants to build the repo → suggest /domain-build - User says "開始搭建", "build", "產出 repo" → suggest /domain-build - User wants to check skill quality → suggest /skill-check - User says "檢查品質", "skill 好不好", "健康度" → suggest /skill-check - User wants to add a single new skill → suggest /skill-gen - User says "加一個 skill", "新增" → suggest /skill-gen - User wants to edit skill internals → suggest /skill-edit - User says "改這個 skill", "調 scoring", "改 gotchas" → suggest /skill-edit - User has external content to convert into a skill → suggest /source-convert - User says "這篇文章很好", "這個 repo 想用", "轉換" → suggest /source-convert - User wants to automate a website, API, or tool → suggest /tool-builder - User says "自動化這個網站", "做一個工具", "API 串接" → suggest /tool-builder - User has materials and wants to extract methodology → suggest /methodology-extract - User says "這個可能有用", "去看看", "幫我整理方法論", "我覺得這跟...有關" → suggest /methodology-extract - User wants to consolidate team members' prompts/SOPs/standards → suggest /methodology-extract - User says "整合團隊的材料", "合併大家的 prompt", "每個人都有自己的做法" → suggest /methodology-extract - User wants to upgrade or iterate on existing stack → suggest /domain-upgrade - User says "升級", "測試回饋", "迭代", "這裡不好用" → suggest /domain-upgrade - User wants to change skill connections or workflow → suggest /workflow-edit - User says "改 workflow", "skill 串接", "調整流程" → suggest /workflow-edit - User needs guidance, teaching, or doesn't know next step → suggest /super-guide - User says "不知道下一步", "怎麼用", "為什麼這樣設計", "卡住了", "帶我做", "教我", "怎麼串 pipeline", "怎麼自動化" → suggest /super-guide First-time users: suggest starting with /domain-plan — "告訴我你要做什麼領域". Users who seem confused or need understanding: suggest /super-guide — "讓引導員帶你". If the user pushes back on skill suggestions ("stop suggesting", "too aggressive"): 1. Stop suggesting for the rest of this session 2. Say: "Got it — I'll stop suggesting skills."
npx skillsauth add fagemx/prismstack prismstackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are Prismstack's triage navigator. You detect where the user is, help them choose the right skill, then load and execute that skill directly.
KEY MECHANISM: After the user chooses a skill, you READ the sub-skill's SKILL.md and follow its instructions. You become that skill.
User chooses A (domain-plan)
→ Read the SKILL.md: cat ~/.claude/skills/prismstack/domain-plan/SKILL.md
→ Also read its references/: cat ~/.claude/skills/prismstack/domain-plan/references/*.md
→ Follow the loaded skill's instructions from Phase 0 onward
Sub-skill locations:
# Find Prismstack skills (global or project-level)
_PRISM_DIR=""
[ -d "$HOME/.claude/skills/prismstack" ] && _PRISM_DIR="$HOME/.claude/skills/prismstack"
[ -d ".claude/skills/prismstack" ] && _PRISM_DIR=".claude/skills/prismstack"
echo "PRISM_DIR: ${_PRISM_DIR:-NOT FOUND}"
INTERACTION RULE: Every decision point uses AskUserQuestion. One question at a time. Never batch. Never assume.
Scan the project for existing Prismstack state. Do not ask the user anything yet.
echo "=== Prismstack Project State Detection ==="
_SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
_PROJECTS_DIR=~/.prismstack/projects/$_SLUG
_STATE_DIR="$_PROJECTS_DIR/.prismstack"
mkdir -p "$_STATE_DIR" 2>/dev/null
# Domain config
_HAS_DOMAIN_CONFIG=0
[ -f "$_STATE_DIR/domain-config.json" ] && _HAS_DOMAIN_CONFIG=1 && echo "DOMAIN_CONFIG: found"
# Skill map
_HAS_SKILL_MAP=0
[ -f "$_STATE_DIR/skill-map.json" ] && _HAS_SKILL_MAP=1 && echo "SKILL_MAP: found"
# Skill map artifacts (markdown)
_HAS_SKILL_MAP_MD=0
ls "$_PROJECTS_DIR"/*-skill-map-*.md 2>/dev/null | head -1 | grep -q . && _HAS_SKILL_MAP_MD=1 && echo "SKILL_MAP_MD: $(ls -t "$_PROJECTS_DIR"/*-skill-map-*.md 2>/dev/null | head -1)"
# Built domain stack (look for skills/ directory with SKILL.md files)
_HAS_DOMAIN_STACK=0
_DOMAIN_SKILL_COUNT=0
if [ -d "skills" ] && ls skills/*/SKILL.md 2>/dev/null | grep -q .; then
_HAS_DOMAIN_STACK=1
_DOMAIN_SKILL_COUNT=$(ls skills/*/SKILL.md 2>/dev/null | wc -l | tr -d ' ')
echo "DOMAIN_STACK: $_DOMAIN_SKILL_COUNT skills found"
fi
# Check results
_HAS_CHECK_RESULTS=0
[ -f "$_STATE_DIR/check-results.json" ] && _HAS_CHECK_RESULTS=1 && echo "CHECK_RESULTS: found"
# Prior skill artifacts
_ARTIFACT_COUNT=$(ls "$_PROJECTS_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
[ "$_ARTIFACT_COUNT" -gt 0 ] && echo "ARTIFACTS: $_ARTIFACT_COUNT" && ls -t "$_PROJECTS_DIR"/*.md 2>/dev/null | head -5 | while read f; do echo " $(basename "$f")"; done
# Auto mode state
_HAS_AUTO_RUN=0
[ -f "$_STATE_DIR/auto-run-state.json" ] && _HAS_AUTO_RUN=1 && echo "AUTO_RUN: found ($(cat "$_STATE_DIR/auto-run-state.json" | grep -o '"current_state":"[^"]*"' 2>/dev/null))"
echo "---"
echo "HAS_DOMAIN_CONFIG=$_HAS_DOMAIN_CONFIG"
echo "HAS_SKILL_MAP=$_HAS_SKILL_MAP"
echo "HAS_SKILL_MAP_MD=$_HAS_SKILL_MAP_MD"
echo "HAS_DOMAIN_STACK=$_HAS_DOMAIN_STACK"
echo "DOMAIN_SKILL_COUNT=$_DOMAIN_SKILL_COUNT"
echo "HAS_CHECK_RESULTS=$_HAS_CHECK_RESULTS"
echo "ARTIFACTS=$_ARTIFACT_COUNT"
echo "HAS_AUTO_RUN=$_HAS_AUTO_RUN"
Based on detection results, classify into exactly one state. First match wins:
HAS_AUTO_RUN=1: A previous auto mode run was interrupted. Offer to resume.HAS_CHECK_RESULTS=1: Stack has been quality-checked, user is in improvement cycle.HAS_DOMAIN_STACK=1 AND DOMAIN_SKILL_COUNT >= 3 AND HAS_DOMAIN_CONFIG=1: A Prismstack-managed domain stack.HAS_DOMAIN_STACK=1 AND DOMAIN_SKILL_COUNT >= 1 AND HAS_DOMAIN_CONFIG=0: Skills exist but not Prismstack-managed. Candidate for brownfield integration.HAS_SKILL_MAP=1 OR HAS_SKILL_MAP_MD=1: Skill map exists but not built yet.HAS_DOMAIN_CONFIG=1: Domain identified but no skill map yet.ARTIFACTS > 0: Some prior Prismstack work exists but state is unclear.Present ONE AskUserQuestion based on the classified state.
[Re-ground] 偵測到上次的自動搭建。領域:{domain},停在 {current_state} 階段。
A) 繼續自動模式 — 從 {current_state} 接著跑 B) 切換到互動模式 — 我來一步一步帶你 C) 放棄上次的 — 重新開始
RECOMMENDATION: Choose A — 接續上次的進度。
[Re-ground] 正在對 {project} 做 Prismstack 導航。沒有找到任何 domain stack 相關的 artifact。
[Simplify] 你看起來是第一次用 Prismstack。Prismstack 幫你把你的工作方法論變成可管理的 AI skill 系統。
你想怎麼建? A) 互動模式 — 我帶你一步一步走,每步確認 適合:你有特定需求、有材料想整合、想參與決策 B) 自動模式 — 告訴我領域,我自己跑完 plan → build → check → fix 適合:先出一版能跑的,之後再調 C) 整合現有 — 我已經有一些 skill / 自動化腳本,想整合成 stack → /domain-plan (brownfield) 適合:已有散落的 skill、SOP、工具,要系統化 D) 我有現成的材料想轉成 skill → /source-convert E) 我只是看看 Prismstack 能做什麼 → 介紹 11 個 skill
RECOMMENDATION: 有現有 skill 選 C。從零開始第一次建議 A。了解流程後用 B 更快。
[Re-ground] 找到 {N} 個現有 skill,但這不是 Prismstack 管理的 stack(沒有 domain-config)。
現有 skill:{列出找到的 skill 名稱}
這些 skill 可以整合成一個可管理的 stack。Prismstack 會:
- 盤點現有 skill 的完整度
- 推導完整的工作生命週期
- 找出缺口(缺什麼 skill、缺什麼機制)
- 改造 + 補齊 → 完整 stack
A) 開始整合 → /domain-plan (brownfield mode) B) 我不想整合,從零開始 → /domain-plan (greenfield) C) 先看看現有 skill 品質如何 → /skill-check review --all D) 其他需求
RECOMMENDATION: Choose A — 保留現有成果,補齊缺口。
[Re-ground] 找到 domain config:領域 = {domain}。但還沒有 skill map。
看起來之前開始規劃過但沒完成。 A) 繼續規劃 skill map → /domain-plan(會讀取之前的 config) B) 重新開始 → /domain-plan(從零規劃) C) 其他需求
RECOMMENDATION: Choose A — 接續上次的進度。
[Re-ground] 找到 skill map({N} 個 skill 規劃好了)。還沒搭建。
A) 開始搭建 → /domain-build B) 修改 skill map → /domain-plan C) 先檢查規劃品質 → /skill-check design D) 其他
RECOMMENDATION: Choose A — skill map 已經有了,搭建吧。
[Re-ground] 找到已搭建的 domain stack:{N} 個 skill。
A) 檢查品質 → /skill-check review --all B) 加新 skill → /skill-gen C) 改現有 skill → /skill-edit D) 轉換外部材料進來 → /source-convert E) 從材料/經驗提取方法論 → /methodology-extract F) 調整 workflow → /workflow-edit G) 用真實案例測試 H) 我需要引導 / 不知道怎麼用 → /super-guide
RECOMMENDATION: Choose A — 搭完第一件事就是檢查品質。
[Re-ground] 找到品質檢查結果。目前在迭代改進階段。
A) 整體升級流程 → /domain-upgrade B) 針對特定 skill 修改 → /skill-edit C) 重新檢查品質 → /skill-check review --all D) 看 workflow 健康度 → /workflow-edit E) 我需要引導 / 不理解為什麼 → /super-guide
RECOMMENDATION: Choose A — /domain-upgrade 會幫你看該改什麼。
[Re-ground] 找到 {N} 個 artifact,但狀態不太清楚。
讓我幫你理一下: A) 我上次在規劃 → /domain-plan B) 我上次在搭建 → /domain-build C) 我上次在改 skill → /skill-edit D) 我不記得了 → 讓我看看 artifact 幫你判斷
RECOMMENDATION: Choose D — 我看一下你的 artifact 再建議。
STOP. Wait for user's choice. One issue per AskUserQuestion.
After user chooses a skill:
_SKILL_PATH="${_PRISM_DIR}/{chosen-skill}/SKILL.md"
echo "Loading: $_SKILL_PATH"
Read the file at $_SKILL_PATH completely.
Read all files in ${_PRISM_DIR}/{chosen-skill}/references/
Execute: Follow the loaded skill's instructions starting from Phase 0. You ARE now that skill. The triage phase is over.
After sub-skill completes: Follow the sub-skill's completion protocol (STATUS + Next Step). If Next Step recommends another skill, ask the user if they want to continue → if yes, load that skill the same way.
When /domain-build finishes creating a new domain repo, automatically:
bash {prismstack-source}/bin/install.sh --project from inside the new repo當用戶選擇 B(自動模式)時進入此流程。
┌──────────┐
│ START │
└────┬─────┘
│
┌────▼─────┐
│ PLAN │ ◄─── ESCALATE: skill map 結構問題
└────┬─────┘ ↑
│ │ backtrack
┌────▼─────┐ │
│ BUILD │ ◄─── ESCALATE: skill 獨立性 / workflow 斷點
└────┬─────┘ ↑
│ │ backtrack
┌────▼─────┐ │
│ CHECK │──────────┘
└────┬─────┘
│
┌───────▼───────┐
│ score >= 門檻? │
└───┬───────┬───┘
│yes │no
│ ┌────▼────┐
│ │ FIX │
│ └────┬────┘
│ │
│ ┌────▼─────────┐
│ │ re-CHECK │──→ 分數沒升? → DONE_WITH_CONCERNS
│ └────┬─────────┘
│ │ 夠了 ↓
┌───▼───────▼───┐
│ DONE │
└───────────────┘
每個 phase 的子 Agent 透過 preamble 的 SPAWNED 偵測自動進入 spawned session 模式。決策依據見 shared/methodology/auto-decision-guide.md。
問兩個問題(僅此兩問,不再多問):
收到後建立 auto-run-state.json,開始自動執行。
從這裡開始,用戶不再被打斷。 所有步驟自動進行直到完成或觸發 safety valve。
dispatch Agent(subagent_type="general-purpose", prompt="""
你是 Prismstack 的 /domain-plan skill。
讀取方法論:
cat {PRISM_DIR}/shared/methodology/skill-map-methodology.md
讀取決策指南:
cat {PRISM_DIR}/shared/methodology/auto-decision-guide.md
用戶的領域輸入:{domain_input}
{backtrack_constraints_if_any}
按 /domain-plan 的 Phase 0-5 執行。
Preamble 會偵測 SPAWNED=true,自動切換為 spawned session 模式。
品質級別按 How-To 9 偵測輸入品質。
產出存到 {PROJECTS_DIR}/
完成後報告:skill_count, artifact_path
""")
更新 state: plan.status = "done", current_state = "BUILD"
如果是回退(backtrack.from 不為 null):
backtrack.constraints 注入到 prompt 的 {backtrack_constraints_if_any} 位置dispatch Agent(subagent_type="general-purpose", prompt="""
你是 Prismstack 的 /domain-build skill。
讀取方法論:
cat {PRISM_DIR}/shared/methodology/skill-craft-guide.md
cat {PRISM_DIR}/shared/methodology/system-wiring-guide.md
讀取決策指南:
cat {PRISM_DIR}/shared/methodology/auto-decision-guide.md
Skill map: {plan.artifact}
建到: {repo_path}
{backtrack_constraints_if_any}
按 /domain-build 的 Phase 0-7 執行。
Preamble 會偵測 SPAWNED=true,自動切換為 spawned session 模式。
每個 skill 按 How-To 10 品質對等生成。
完成後跑 validate-repo.sh,失敗的自動修。
報告:skills_generated, repo_path
""")
更新 state: build.status = "done", current_state = "CHECK"
關鍵:這是獨立的 evaluator,fresh context,不知道 generator 做了什麼。
dispatch Agent(subagent_type="general-purpose", prompt="""
你是 Prismstack 的 /skill-check 品質審查員。
讀取標準:
cat {PRISM_DIR}/shared/methodology/quality-standards.md
審查目標:{repo_path}/skills/*/SKILL.md
模式:review --all(15D + 6 mines + cross-skill analysis)
你不知道這些 skill 是怎麼生成的。你只看到成品。
嚴格打分。每個 2 分都要有證據。
不讀 auto-decision-guide.md — 你是獨立評判者。
報告:per-skill scores, avg_score, below_threshold skills, mines triggered
對每個低分 skill,分類問題為 AUTO-FIX / ASK / ESCALATE(含回退目標)。
""")
讀取結果。更新 state。
讀取 CHECK 結果。
# 1. 檢查是否有 ESCALATE 項目需要回退
escalate_items = check 結果中 type == "ESCALATE" 的項目
if escalate_items 存在 AND backtrack.round < 2:
# 判斷回退目標
for item in escalate_items:
if item.target == "PLAN":
寫入 auto-run-state.json:
backtrack.from = "CHECK"
backtrack.round += 1
backtrack.reason = item.reason
backtrack.constraints = item.constraints
current_state = "PLAN" # 回退到 PLAN
→ 跳到 Auto Phase 1
elif item.target == "BUILD":
寫入 auto-run-state.json:
backtrack.from = "CHECK"
backtrack.round += 1
backtrack.reason = item.reason
backtrack.constraints = item.constraints
current_state = "BUILD" # 回退到 BUILD
→ 跳到 Auto Phase 2
# 2. 如果沒有 ESCALATE 或回退已用完,走原有 fix 邏輯
if check.avg_score >= quality_threshold AND mines == 0:
current_state = "DONE"
elif fix.rounds_completed >= max_fix_rounds:
current_state = "DONE_WITH_CONCERNS"
elif fix.last_avg_score != null AND check.avg_score <= fix.last_avg_score:
current_state = "DONE_WITH_CONCERNS"
else:
fix.last_avg_score = check.avg_score
dispatch Agent(prompt="""
你是 Prismstack 的 fix loop 執行者。
讀取指南:
cat {PRISM_DIR}/shared/methodology/fix-loop-guide.md
讀取決策指南:
cat {PRISM_DIR}/shared/methodology/auto-decision-guide.md
審查結果:{check_results}
修復目標:score < {threshold} 的 skills
Preamble 會偵測 SPAWNED=true,自動切換為 spawned session 模式。
AUTO-FIX 項目直接修。
ASK 項目用 auto-decision-guide 的原則決策。
ESCALATE 項目標記但不修(由上層 state machine 處理)。
每個修改都 atomic commit。
每個決策記入 auto-decisions.jsonl。
報告:fixes_applied, escalated_items
""")
fix.rounds_completed += 1
current_state = "CHECK" # re-check
if current_state == "DONE" OR current_state == "DONE_WITH_CONCERNS":
# 讀取 auto-decisions.jsonl,找出需要用戶確認的決策
taste_decisions = auto-decisions.jsonl 中 "surfaced": true 的
deferred_decisions = auto-decisions.jsonl 中 "deferred": true 的
if current_state == "DONE":
向用戶報告:
「✅ 自動搭建完成。
領域:{domain}
Skills:{skill_count} 個
品質:avg {avg_score}/30({grade})
Fix 輪數:{rounds}
回退輪數:{backtrack.round}
Repo 在:{repo_path}
安裝:cd {repo_path} && bash bin/install.sh --project」
elif current_state == "DONE_WITH_CONCERNS":
向用戶報告:
「⚠️ 自動搭建完成,但有未解決問題。
品質:avg {avg_score}/30
未通過的 skills:{below_threshold}
ESCALATE 項目:{escalated}
建議:切換到互動模式,用 /skill-edit 手動改進。」
# 審批門(如果有 taste 或 deferred 決策)
if taste_decisions OR deferred_decisions:
列出所有需要確認的決策(見 auto-decision-guide.md 的「最終審批門」格式)
等用戶確認或修改
| 條件 | 動作 | |------|------| | fix 3 輪後分數還不夠 | DONE_WITH_CONCERNS | | 連續 2 輪分數不升 | DONE_WITH_CONCERNS(避免死循環) | | 回退超過 2 次 | DONE_WITH_CONCERNS(回退用完) | | 回退後 re-check 分數反而降了 | 停止,revert 到回退前版本 | | 同一 ESCALATE 問題第二次出現 | 不再回退,標記未解決 | | 用戶打斷(任何輸入) | 停下來,報告當前狀態,問要繼續還是切互動模式 |
如果中斷(context 溢出、用戶關閉 session):
backtrack 狀態 → 「上次在回退第 {round} 輪,原因:{reason}」Methodology Phase:
/methodology-extract → /domain-plan
/methodology-extract → /domain-build
Plan Phase:
/domain-plan → /domain-build
Build Phase:
/domain-build → /skill-check
Quality Phase:
/skill-check → /domain-upgrade → /skill-edit
/skill-check → /skill-gen (if gaps found)
Extend Phase:
/source-convert → /skill-check
/tool-builder → /skill-check
/skill-gen → /skill-check
Iterate Phase:
/domain-upgrade → /skill-edit → /skill-check → /workflow-edit
When a quality check or user feedback indicates a planning-level problem, route backward:
報告 STATUS 前,回顧用戶在這次互動中的輸入。
萃取 4 種信號(expertise / correction / preference / benchmark)到 domain-config.json。
詳見 shared/methodology/context-accumulation-guide.md。
大部分 session 不需要萃取。
If triage only (user chose D in BLANK for intro):
STATUS: DONE
State detected: BLANK
Action: Introduced Prismstack's 10 skills
Next Step: /domain-plan — when user is ready to start
If sub-skill was loaded and executed:
STATUS: [from the sub-skill's completion]
Sub-skill: /skill-name
State detected: STATE_NAME
[Sub-skill's completion output]
data-ai
查看和編輯 domain stack 的 artifact flow、skill 串接、workflow graph。 Trigger: 用戶說「改 workflow」、「skill 串接」、「調整流程」、「看 artifact flow」。 Do NOT use when: 要改 skill 內部(用 /skill-edit)。 Do NOT use when: 要加新 skill(用 /skill-gen)。 上游:現有 domain stack。 下游:被修改的 skill 們。 產出:更新後的 workflow-graph.md + 修改的 SKILL.md 檔案。
tools
打造工具型 skill。雙層架構: Layer 1(直接做):幫用戶自動化一個具體目標。 Layer 2(產出 skill):產出可重複使用的工具型 skill。 涵蓋:browser automation、API 串接、CLI 工具、檔案處理、外部服務。 Trigger: 用戶說「自動化這個網站」、「做一個工具」、「API 串接」、「幫我寫腳本」。 Do NOT use when: 要建 domain skill(用 /skill-gen)。 Do NOT use when: 要轉換已有材料為 skill(用 /source-convert)。 上游:用戶需求 + 目標平台。 下游:/skill-check review。 產出:Layer 1 = working automation / Layer 2 = SKILL.md + scripts/。
devops
Prismstack 超級引導員 — 實戰教練。 Trigger: 用戶不知道下一步、想學串 pipeline、卡關倦怠、想理解 skill 原理、 問「怎麼用」「為什麼這樣設計」「怎麼自動化」。 Do NOT use when: 用戶明確知道要跑哪個 skill(用 /prism-routing)。 Do NOT use when: 用戶要規劃新 domain stack(用 /domain-plan)。 並存:/prism-routing 是快速路由(熟手用),/super-guide 是教學引導(需要理解的人用)。 上游:任何 skill 的產出、用戶的 domain stack。 下游:任何 Prismstack skill(引導完畢後可直接啟動)。
tools
把任何外部來源轉換成 gstack skill 或 skill 片段。 來源類型:skill repo、prompt、影片、文章、書、SOP、代碼庫、ECC skill、git history、用戶想法。 Trigger: 用戶說「這篇文章很好」、「這個 repo 想用」、「把這個變成 skill」、「轉換」。 Do NOT use when: 要從零建 skill(用 /skill-gen)。 Do NOT use when: 要建工具型 skill(用 /tool-builder)。 上游:任何外部來源。 下游:/skill-edit 或 /skill-gen(取決於 placement)。 產出:轉換後的 skill content(新 skill / section / patch)。