Communitygithub.com

Loft

在切割鋼材前先放樣 — 透過建立一個可拋棄的成品來回答純文字無法解決的設計問題:一個點擊即可執行的純邏輯模組,或同一路由下結構不同的 UI 變體。隊長對成品做出反應;答案融入決策;成品永不入塢。

Loft 是什麼?

Loft 是一種設計探索技能,靈感來自造船廠的「放樣」流程 — 在切割任何鋼材之前,先以全尺寸描繪並修正船體線條。當設計問題卡在文字討論中、當兩個似乎合理的答案都無法透過討論來驗證真偽時,Loft 指示 AI 模型快速建立一個可運行的、可拋棄的成品(artifact),讓有權決策的「隊長」直接操作並做出反應。 它支援兩種主要分支:**邏輯分支(Logic fork)**用於驗證狀態機、業務規則或資料結構是否正確 — 方法是將核心邏輯提取為一個純模組,並包裝在一個簡單的可點擊 HTML shell 中;**UI 分支(UI fork)**則用於解決佈局或資訊架構問題 — 透過在同一路由下建立三個結構上不同的變體,並讓決策者在實際資料壓力下進行評估。 Loft 的關鍵紀律是:成品必須是「你絕對不想出貨」的東西 — 沒有持久化、沒有測試、沒有抽象或錯誤處理。它的整個生命週期只有數分鐘的構建時間和一個會話的決策時間,並且永不進入主分支。成品作為已記錄決策的佐證,保存在 `loft/<name>` 分支上。此技能適用於 Claude Code、Cursor、Codex 等平台,特別適合在規格討論陷入「我們得先看到它才知道」的僵局時使用。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/loft

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Loft 是做什麼的?

在形狀確認之前,不切割任何鋼材。 造船師在切割任何鋼板之前,會先以全尺寸放樣並修正船體的線條。Loft 將同樣的順序應用於設計問題:當文字討論已窮盡時 — 兩個看似合理的答案,都無法透過對話來驗證 — 建立一個低成本的可執行成品,讓隊長對其做出反應,並將該反應納入決策。

角色契約。 團隊負責建造成品;隊長的唯一工作是做出反應 — 而這個反應就是決策。成品是輔助判斷的工具,絕非交付物的預先起跑。

何時使用 loft

  • 設計問題卡在文字描述中:反覆重述,仍無法定案(例如「路徑頁面應該長怎樣」、「這個狀態模型感覺對嗎」)
  • 導航地圖上帶有 loft 票證
  • 規格討論進展到「我們得先看到它才知道」

不要在以下情況使用 loft:

  • 問題可以從倉庫證據或直接詢問隊長得到答案(那是訪談,不是放樣)
  • 目標本身不明確(那是迷霧 — /oh-my-claudecode:ask-navigator)
  • 答案已存在於 ADR(不要重複放樣已解決的決策)
  • 所謂的「設計問題」其實是 bug(那是除錯器的管轄範圍)

選擇分支

根據問題的性質來選擇。選錯分支會浪費整個成品。

邏輯分支 — 模型正確嗎?

針對狀態、業務規則、資料結構或演算法的問題(例如「重考時解鎖會退化嗎?」、「這個 reducer 在邊界條件下是否成立?」):

  1. 將承載決策的核心 — 狀態機、reducer、結構描述或演算法 — 提取為一個純模組:沒有 DOM、沒有 I/O、沒有框架。撰寫時要確保一旦形狀確認,就能直接移入真實程式碼庫而不需修改。
  2. 將其包裝在一個可點擊的 HTML shell 中:每個情境一個按鈕,按順序走過棘手的邊界案例,每次點擊後都能看到完整狀態。
  3. 確認後,該模組即可透過 launch 重新以實際工作形式進入。在放樣期間,main 分支保持不動,shell 則留在分支上。

UI 分支 — 它應該長怎樣?

針對形狀與編排的問題(「步驟式還是卡片式?」、「進度條應該放在哪裡?」):

  1. 一個路由,三個在結構上不同的變體 — 資訊架構、導航模型、資訊密度。僅在樣式上不同的變體無法回答任何問題:三個不同的皮只是牆紙。
  2. 頁面上有一個切換器用於循環顯示變體;盡可能嵌入現有產品中,這樣真實的資料密度會考驗設計,而不是三個整齊的假資料列。
  3. 確認後,決策被轉移,而變體留在分支上,作為為何如此設計的記錄。

紀律

  • 一條指令即可執行 — 使用倉庫中最簡單的現有 serve 指令;如果 file:// 模組 CORS 會咬人,則將模組內嵌到 shell 中。幾秒內載入完成;無需超出倉庫現有範圍的建置步驟。
  • 沒有持久化、沒有測試、沒有抽象、沒有錯誤處理(僅處理快樂路徑)。成品應該是你絕對不想出貨的東西 — 這些規則的存在就是為了讓它保持這個狀態。
  • 預期第一個形狀會受到質疑:在同一個會話中於分支上進行修改。隊長確認最終形狀就是決策;一個沒有人質疑的成品,通常回答了一個根本沒有人提出的問題。
  • 成品的完整生命週期:幾分鐘的構建時間 + 一個會話的決策時間。如果它開始長成生產級程式碼,請停止:那個工作屬於 launch,而不是 loft。沉沒成本正是這個技能存在的目的是要防止的失敗模式。
  • 一次 loft 回答一個問題。兩個問題就是兩次 loft — 或者一個實際上包含兩個問題的問題。

摺疊答案

成品是證據,不是終點。當隊長做出反應時:

  1. 將決策記錄在其歸屬之處 — 問題評論、規格的 Implementation Decisions 區塊,或待決決策備註 — 使用隊長自己的話,加上一行「為什麼」。比文字更精確的片段(reducer、狀態機、結構描述)可以內嵌在該處,並標記為已放樣(lofted)。
  2. 將成品推送到 loft/<name> 分支。它永遠不會合併:它將作為主要原始資料,當未來有人需要了解該決策的「為什麼」時,可以開啟查閱。
  3. 成品中的任何內容都不會進入 main — 對於邏輯分支,確認後的模組會透過 launch 重新以實際工作形式進入;對於 UI 分支,真正的頁面會根據決策從頭建立。

範圍與非目標

  • Loft 產出的是答案,而非交付物:沒有執行時期、沒有狀態檔案、沒有始終在線的東西。
  • 它不進行診斷(除錯器)、不為迷霧繪圖(/oh-my-claudecode:ask-navigator)、不批准自己的答案(隊長的唯一反應就是核准)。
  • 它不取代接縫批准:放樣的 UI 顯示的是形狀;其測試接縫仍然在 C2 階段被批准。

完成定義

隊長已做出反應,答案存放在決策所屬之處,成品存放在其分支上 — 且成品中沒有一行程式碼進入 main。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

agent-doc-discipline

Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before reference, one meaning in one home, no restating what the environment already says. Mandatory at drydock seed generation and the launch C5 sediment pass; opt-in for any other agent-facing doc edit. The companion of minimal-code-discipline: that one disciplines code, this one disciplines papers.

ai-slop-cleaner

Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

ask

Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly

ask-navigator

Shipyard

autopilot

Full autonomous execution from idea to working code

autoresearch

Stateful single-mission improvement loop with strict evaluator contract, markdown decision logs, and max-runtime stop behavior

cancel

Cancel any active OMC mode (autopilot, ralph, ultragoal, swarm, ultrapilot, pipeline, team) and clean up retired legacy state

configure-notifications

Configure notification integrations (Telegram, Discord, Slack) via natural language

debug

Diagnose the current OMC session or repo state using logs, traces, state, and focused reproduction

deepinit

Deep codebase initialization with hierarchical AGENTS.md documentation

deep-interview

Socratic deep interview with mathematical ambiguity gating before explicit execution approval

drydock

Lay the keel of the shipyard harness in any repo — the 4-pillar shared environment (Context, Rules, Tools, Standards) across 5 surfaces (CLAUDE.md, skills, design-system, mcp/cli, shared context) so that every human and agent inherits the same design language and anyone can ship. Run once per repo; re-run with --check to audit drift.

execute

Carry an approved task through to working, verified code

external-context

Invoke parallel document-specialist agents for external web searches and documentation lookup

graph

Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery

harbor

Harbor intake for external work — the captain only handles unresolved decisions. Sweeps incoming issues and PRs, verifies every claim before disposition, reuses every decision already made, and hands the maintainer a docket whose pending items each carry one question with options, recommendation, impact and evidence. Agent-autonomous for facts and for actions covered by standing authorization; signed for every new judgment. Never merges.

hud

Configure HUD display options (layout, presets, display elements)

launch

Shipyard

minimal-code-discipline

YAGNI-ladder coding discipline for writing changes — existence-first, reuse before writing, dependency ladder, shortest correct diff, with non-negotiables that must never be minimized away

omc-doctor

Diagnose and fix oh-my-claudecode installation issues

相關技能