技能存取模式(post-kernel-pivot, 2026.5+)
此文件中引用的技能名稱皆為 AIWG 技能,非斜線指令。多數技能並非核心內建,無法由平台以
/skill-name方式直接呼叫。請透過以下方式存取:aiwg discover "<capability>" aiwg show skill <name>僅核心內建技能(
aiwg-doctor、aiwg-refresh、aiwg-status、aiwg-help、use、steward)可直接以斜線指令方式呼叫。請參閱 skill-discovery 規則。
從程式碼庫建立導入文件
你是一位經驗豐富的軟體架構師與逆向工程師,專精於分析既有程式碼庫、理解系統架構,以及為無文件的系統編寫文件。
核心委派
依據 ADR-021,
intake-from-codebase將核心讀取機制委派給語義記憶核心。
委派模式:
intake-from-codebase保留其公開名稱與程式碼庫掃描啟發式規則- 文件生成委派給
memory-ingest --consumer sdlc-complete - SDLC 特定的層級仍保留在此包裝器中:
- 程式碼庫掃描與分析啟發式規則
- SDLC 頁面模板(需求、架構等)
- 來源追蹤(透過
ingestRequires: ["provenance"])
- 下游的
intake-start無需變更
變更內容:讀取管道(來源處理、頁面建立、索引更新、日誌附加)現在由 memory-ingest 處理。此技能在其上增加了程式碼庫特定的掃描與 SDLC 模板層。
向後相容性:無使用者體驗變更。現有的呼叫方式完全相同。
@agentic/code/addons/semantic-memory/skills/memory-ingest/SKILL.md
你的任務
當以 /intake-from-codebase <codebase-directory> [--interactive] [--output .aiwg/intake/] [--guidance "text"] 呼叫時:
- 掃描程式碼庫目錄以了解系統
- 分析程式碼結構、相依性、基礎設施與模式
- 推斷從找到的證據中推斷專案特性
- 應用指引根據使用者提示(若提供)來聚焦分析或澄清脈絡
- 提問若使用
--interactive模式,對模糊區域提出澄清問題 - 生成完整的導入表格,記錄現有系統
參數
<codebase-directory>(必要):程式碼庫根目錄路徑(絕對或相對路徑)--interactive(選用):啟用互動式提問模式(最多 10 個問題)--output <path>(選用):導入檔案輸出目錄(預設:.aiwg/intake/)--guidance "text"(選用):使用者提供的脈絡,用以引導分析
指引參數使用方式
--guidance 參數接受自由文字,協助調整分析方向。可用於:
業務脈絡:
/intake-from-codebase . --guidance "B2B SaaS for healthcare, HIPAA compliance critical, 50k users"
分析焦點:
/intake-from-codebase . --guidance "Focus on security posture and compliance gaps for SOC2 audit"
專案階段提示:
/intake-from-codebase . --guidance "Prototype moving to MVP, need to establish baseline before adding team members"
痛點:
/intake-from-codebase . --guidance "Performance issues at scale, considering migration from monolith to microservices"
綜合使用:
/intake-from-codebase . --interactive --guidance "Fintech app, PCI-DSS required, preparing for Series A fundraising"
指引如何影響分析:
- 優先處理特定領域(安全、法規遵循、規模、效能)
- 推斷根據脈絡推斷遺漏的資訊(例如:「healthcare」→ 檢查 HIPAA 模式)
- 調整專案階段建議(例如:「compliance critical」→ 傾向 Production/Enterprise)
- 量身訂做問題(若使用
--interactive,會詢問指引相關的主題) - 記錄在「為什麼現在進行導入?」章節中(擷取使用者意圖)
目標
為可能缺乏文件的現有程式碼庫,產生全面的導入文件,使團隊能夠:
- 為棕地專案進行文件化,以便採用 SDLC 流程
- 了解繼承或收購而來的程式碼庫
- 為重構或現代化工作建立基準
- 為法規遵循/稽核建立歷史專案導入
程式碼庫分析工作流程
步驟 0:處理指引(若提供)
若使用者提供了 --guidance "text",請在整個分析過程中解析並應用之。
從指引中提取:
- 業務領域(醫療保健、金融科技、電子商務、企業、消費者)
- 法規遵循需求(HIPAA、PCI-DSS、GDPR、SOX、FedRAMP)
- 規模指標(使用者數量、交易量、地理分布)
- 當前階段(原型、MVP、生產、企業)
- 痛點(效能、安全性、技術債、團隊擴張)
- 意圖(法規遵循準備、稽核、交接、現代化、募資)
將指引應用於:
- 分析優先順序:聚焦於指引中提及的領域
- 專案階段建議:根據指引加權標準(例如:「HIPAA」→ 提高品質權重)
- 互動式問題:詢問指引相關的缺口(若使用
--interactive) - 文件化:在「為什麼現在進行導入?」章節中參考指引
指引處理範例:
輸入:--guidance "B2B SaaS for healthcare, HIPAA compliance critical, 50k users, preparing for SOC2 audit"
提取結果:
- 領域:醫療保健(B2B SaaS)
- 法規遵循:HIPAA(關鍵)、SOC2(進行中)
- 規模:5 萬使用者(可能為 Production 階段)
- 意圖:稽核準備
應用方式:
- 優先處理:安全分析(HIPAA/SOC2 控制項)、法規遵循指標、稽核日誌
- 專案階段權重:品質 0.4,可靠性 0.3(法規遵循驅動)
- 問題(若使用
--interactive):「目前實作了哪些 HIPAA 控制項?」「SOC2 稽核定於何時?」 - 文件化:在「為什麼現在進行導入?」中記錄 → 「為醫療保健 SaaS(符合 HIPAA)準備 SOC2 稽核」
步驟 1:初始偵察
掃描程式碼庫目錄以了解基本特性。
指令:
# 目錄結構
ls -la
find . -type f | head -50
# 依副檔名統計檔案數量
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20
# 檢查常見標記
ls README.md CONTRIBUTING.md LICENSE package.json requirements.txt Dockerfile docker-compose.yml .git
提取:
- 專案名稱:從 git remote、package.json/package name、README 標題、目錄名稱
- 主要語言:檔案副檔名(
.js、.py、.java、.go等) - 框架指標:package.json、requirements.txt、pom.xml、go.mod、Gemfile
- 基礎設施:Dockerfile、docker-compose.yml、kubernetes/、terraform/、.github/workflows/
輸出:初始偵察摘要
## 初始偵察
**專案名稱**:{從 git/package.json/目錄中提取}
**主要語言**:{JavaScript (45%), Python (30%), Shell (15%), YAML (10%)}
**技術棧指標**:
- 前端:React 18.2.0, Next.js 13.4
- 後端:Node.js 18, Express 4.18
- 資料庫:PostgreSQL (docker-compose.yml)
- 部署:Docker, GitHub Actions CI/CD
**程式碼庫**:{git remote URL(若有的話)}
**最後提交**:{git log -1 --format="%ai %s"}
**程式碼行數**:{cloc 摘要(若有的話)}
步驟 2:架構分析
分析程式碼庫結構以了解架構模式。
指令:
# 目錄結構(關鍵路徑)
tree -L 3 -d
# 元件/模組識別
ls src/ lib/ app/ pkg/ cmd/
ls -la src/*/
# API/介面發現
grep -r "app\." --include="*.js" | head -20
grep -r "router\." --include="*.py" | head -20
grep -r "@RestController\|@RequestMapping" --include="*.java" | head -20
# 資料庫/資料層
ls models/ entities/ migrations/ schema/
grep -r "CREATE TABLE\|mongoose.model\|sqlalchemy" | head -20
推斷:
- 架構風格:單體、微服務、無伺服器、MVC、分層
- 單一儲存庫搭配 src/ → 單體
- 多個 services/ 或 apps/ → 微服務
- Functions/ 或 lambda/ → 無伺服器
- 元件邊界:前端、後端、API、服務、工作者、CLI
- 資料持久化:SQL(PostgreSQL、MySQL)、NoSQL(MongoDB、Redis)、ORM 指標
- 整合點:外部 API 呼叫、訊息佇列、事件匯流排
輸出:架構摘要
## 架構摘要
**風格**:{模組化單體 | 微服務 | 分層 | 事件驅動}
**元件**:
- 前端:React SPA in src/client/ (TypeScript)
- 後端 API:Express REST API in src/server/ (Node.js)
- 資料庫:PostgreSQL with Prisma ORM (schema/prisma/)
- 背景工作:Bull queue (src/workers/)
**整合點**:
- Stripe API 用於付款 (src/services/payment/)
- SendGrid 用於電子郵件 (src/services/email/)
- AWS S3 用於檔案儲存 (src/services/storage/)
**資料模型**:{數量} 個實體(User、Order、Product、Payment 等)
步驟 3:相依性與基礎設施分析
分析相依性、部署與營運特性。
指令:
# Node.js 相依性
cat package.json | jq '.dependencies, .devDependencies'
npm ls --depth=0
# Python 相依性
cat requirements.txt Pipfile
# Docker/部署
cat Dockerfile docker-compose.yml
ls -la .github/workflows/ .gitlab-ci.yml .circleci/
# 環境變數(識別敏感資料處理)
grep -r "process.env\|os.getenv\|System.getenv" --include=".{js,py,java}" | wc -l
ls .env .env.example .env.template
推斷:
- 第三方服務:付款(Stripe, PayPal)、電子郵件(SendGrid, Mailgun)、分析(Segment, Google Analytics)、監控(Sentry, Datadog)
- 安全模式:驗證函式庫(passport, jwt)、加密、秘密管理
- 測試策略:測試框架(Jest, Pytest, JUnit)、涵蓋率工具、CI 測試工作
- 部署:容器化(Docker)、雲端供應商(AWS, GCP, Azure)、CI/CD 成熟度
- 法規遵循指標:GDPR(同意、資料刪除)、PCI-DSS(付款代碼化)、HIPAA(稽核日誌)
輸出:相依性與基礎設施摘要
## 相依性與基礎設施
**關鍵相依性**:
- 驗證:Passport.js + JWT
- 付款:Stripe SDK 12.0.0
- 電子郵件:SendGrid 7.7.0
- 測試:Jest 29.5, React Testing Library
**安全性**:
- 驗證:JWT 搭配 refresh tokens
- 秘密:環境變數(.env 模式)
- 資料保護:bcrypt 用於密碼,靜態加密(偵測到:crypto 模組使用)
**CI/CD**:
- 平台:GitHub Actions
- 管道:lint → test → build → deploy
- 部署目標:AWS ECS(存在 Dockerfile)
**監控/可觀測性**:
- 錯誤追蹤:偵測到 Sentry 整合
- 日誌記錄:Winston logger 搭配結構化 JSON
- 指標:基礎(未偵測到 APM)
步驟 4:規模與使用量分析
分析程式碼中的規模指標與當前使用模式。
指令:
# 資料庫查詢(規模模式)
grep -r "SELECT.*FROM\|.find(\|.aggregate(" --include=".{js,py,sql}" | wc -l
# 快取指標
grep -r "redis\|memcached\|cache" --include=".{js,py}" | wc -l
# 速率限制/節流
grep -r "rate.*limit\|throttle" --include=".{js,py}" | wc -l
# 非同步/佇列模式
grep -r "async\|await\|queue\|job\|worker" --include=".{js,py}" | wc -l
# API 端點(數量)
grep -r "app\.get\|app\.post\|@app.route" --include=".{js,py}" | wc -l
推斷:
- 目前規模容量:
- 無快取、簡單查詢 → <1k 使用者
- Redis 快取、連線池 → 1k-10k 使用者
- 負載平衡、佇列工作者、分片 → 10k-100k 使用者
- 效能優化:快取、索引、分頁、惰性載入
- 並行模型:同步、非同步、事件驅動、工作者池
輸出:規模與效能摘要
## 規模與效能
**目前容量估算**:1k-5k 同時使用者
**證據**:
- 已實作 Redis 快取(10 個實例)
- 資料庫連線池(最多 20 個連線)
- 未偵測到水平擴展(單一實例)
- 基礎速率限制(每個 IP 每分鐘 100 個請求)
**效能模式**:
- 快取:Redis 用於 session 和 API 回應
- 非同步:大量使用 async/await(Node.js)
- 背景工作:Bull queue 用於電子郵件、報表
- 資料庫:索引查詢、分頁用於列表
**優化機會**:
- 為靜態資產加入 CDN
- 實作查詢結果快取
- 考慮為資料庫建立唯讀副本
步驟 5:安全性與法規遵循分析
分析安全狀態與法規遵循指標。
指令:
# 驗證模式
grep -r "passport\|jwt\|oauth\|auth0" --include="*.js" | wc -l
# 資料隱私模式
grep -r "gdpr\|privacy\|consent\|deletion\|right.*forget" --include=".{js,py,md}" | wc -l
# 敏感資料處理
grep -r "password\|secret\|credit.*card\|ssn\|api.*key" --include="*.js" | wc -l
# 安全標頭
grep -r "helmet\|cors\|csp\|hsts" --include="*.js" | wc -l
# 稽核日誌
grep -r "audit.*log\|log.*audit\|event.*log" --include=".{js,py}" | wc -l
推斷:
- 安全狀態:最小、基準、強大、企業
- 僅基本驗證 → 最小
- 驗證 + HTTPS + 秘密管理 → 基準
- SAST、DAST、威脅建模 → 強大
- SOC2/ISO27001 控制項 → 企業
- 資料分類:公開、內部、機密、受限制
- 法規遵循:GDPR(歐盟使用者)、HIPAA(健康資料)、PCI-DSS(付款)、SOX(財務)
輸出:安全性與法規遵循摘要
## 安全性與法規遵循
**安全狀態**:基準
**證據**:
- 驗證:JWT 搭配 refresh tokens,bcrypt 密碼
- 授權:基於角色的存取控制(3 種角色:user、admin、superadmin)
- 資料保護:偵測到靜態加密,傳輸中 TLS
- 秘密管理:環境變數,未偵測到硬編碼秘密
- 安全標頭:Helmet.js 用於 HTTP 標頭,已設定 CORS
**資料分類**:主要為內部與機密(使用者個人資料、付款資訊)
**法規遵循指標**:
- GDPR:偵測到隱私權政策,未偵測到明確同意機制
- PCI-DSS:使用 Stripe(減輕責任),未偵測到直接儲存卡片資料
- 稽核:基礎應用程式日誌,未偵測到專門的稽核軌跡
**建議**:
- 實作結構化稽核日誌
- 針對 GDPR 加入同意管理
- 為敏感資料新增加密解決方案
步驟 6:專案階段建議
根據分析證據與指引(若提供)推斷並建議專案階段。
階段定義:
| 階段 | 特徵 | 分數範圍 |
|---|---|---|
| Prototype | 探索性、快速迭代、最少測試、無 CI/CD、單一開發者 | 0-20 |
| MVP | 核心功能、基礎測試、基本 CI、小型團隊、初步部署 | 21-40 |
| Production | 完整功能、測試套件、CI/CD、監控、中型團隊、文檔化 | 41-70 |
| Enterprise | 高可用性、災難復原、法規遵循、大型團隊、進階監控 | 71-100 |
評分標準:
| 標準 | Max 分數 | 權重 |
|---|---|---|
| 測試涵蓋率 | 20 | 1.0x |
| CI/CD 成熟度 | 15 | 1.0x |
| 監控/可觀測性 | 15 | 1.0x |
| 文檔化 | 10 | 1.0x |
| 架構風格 | 10 | 1.0x |
| 安全狀態 | 15 | 1.0x |
| 錯誤處理 | 5 | 1.0x |
| 部署自動化 | 10 | 1.0x |
| 總計 | 100 |
權重可根據指引調整(例如:HIPAA 法規遵循 → 安全 1.5x)
輸出:建議
## 專案階段建議
**建議階段**:Production(維護中)
**信心分數**:56/100
**計算方式**:
- 測試涵蓋率:12 (60%) × 1.0 = 12
- CI/CD 成熟度:10 (67%) × 1.0 = 10
- 監控/可觀測性:8 (53%) × 1.0 = 8
- 文檔化:4 (40%) × 1.0 = 4
- 架構風格:8 (80%) × 1.0 = 8
- 安全狀態:9 (60%) × 1.0 = 9
- 錯誤處理:3 (60%) × 1.0 = 3
- 部署自動化:5 (50%) × 1.0 = 5
**加權總計**:12 + 10 + 8 + 4 + 8 + 9 + 3 + 5 = 59/100
**理由**:
- 強健的測試基礎(Jest + React Testing Library)
- 完整的 CI/CD 管道
- 生產級架構(模組化單體、容器化)
- 監控缺口(無 APM)
- 文檔化不足
- 基礎安全狀態但缺乏進階控制項
步驟 7:文件生成
從分析中產生結構化導入文件。
輸出格式:每個產出檔案都是完整的 markdown 文件,文件之間保持一致的連結。
產出檔案:
.aiwg/intake/
├── README.md # 導入索引與專案摘要
├── 01-initial-reconnaissance.md # 步驟 1
├── 02-architecture-analysis.md # 步驟 2
├── 03-dependencies-infrastructure.md # 步驟 3
├── 04-scale-and-usage-analysis.md # 步驟 4
├── 05-security-compliance.md # 步驟 5
├── 06-profile-recommendation.md # 步驟 6
└── .metadata.json # 導入中繼資料(用於系統追蹤)
每個檔案應包含:
- 匯總分析結果的結構化標頭
- 由掃描指令支援的證據摘要
- 基於證據的推斷部分
- 待辦事項部分,標示為「後續步驟」
- 交叉引用其他導入文件
使用範例
基本使用:
/intake-from-codebase /path/to/codebase
含有指引:
/intake-from-codebase /path/to/codebase --guidance "Legacy monolith, need to plan migration to microservices"
互動模式:
/intake-from-codebase /path/to/codebase --interactive
完整選項:
/intake-from-codebase /path/to/codebase --interactive --output docs/intake/ --guidance "Fintech app, PCI-DSS required, preparing for Series A"
實作注意事項
- 語言偵測:使用副檔名與 package manager 檔案來辨識主要語言與框架
- 架構推斷:尋找常見模式(目錄結構、框架規定、部署設定)
- 安全掃描:尋找驗證、授權、資料保護與秘密管理的證據
- 規模估計:根據快取、佇列、資料庫模式推斷容量
- 環境變數:檢查
.env.example以了解預期的設定 - Git 歷史:使用 git log 了解開發模式與團隊規模
- 錯誤處理:優雅地處理缺少的檔案或目錄(並非所有程式碼庫都有 packages.json 或 requirements.txt)
- 檔案大小限制:對於大型程式碼庫,優先掃描關鍵路徑
- 指引優先順序:指引總是優於預設推斷
- 互動有限制:最多 10 個澄清問題以避免疲勞
品質保證
在完成分析之前:
- 所有推斷都有程式碼庫中的證據支援
- 資料分類與法規遵循分析基於實際發現
- 規模估計與發現一致(無過度承諾)
- 如果提供了指引,應反映在分析中
- 針對互動模式,已回答或記錄了間歇性問題
- 輸出格式符合預期結構
- 檔案之間存在交叉引用
- 已識別並記錄 Microsoft 堆疊(如果存在)
其他備註
- 非同步處理:對於大型程式碼庫,考慮逐步進行分析
- 快取:如果最近掃描過同一個程式碼庫,啟用結果快取
- 互動式回饋:允許使用者澄清或更正假設
- 可延伸性:為自訂分析器預留掛鉤
- 記錄:使用
aiwg-doctor進行診斷檢查 - 錯誤:使用
aiwg-status檢查系統狀態 - 重新整理:使用
aiwg-refresh更新現有導入 - 探索:使用
aiwg discover"intake"探索其他導入技能