Communitygithub.com

Neckkup/portfolio-kup

根據使用者在 Claude Code 中的實際使用記錄(本機與其他機器透過 SSH),結合測驗與訪談,產出一份個人化的單頁式作品集,展示技能、個人特質、成長歷程與職涯建議。

portfolio-kup 是什麼?

此技能會從使用者的 Claude Code 使用記錄(包含歷史指令、專案、token 用量等)中萃取量化與質化資料,並整合自評測驗與結構化訪談,自動生成一份雙語(泰文/英文)的單頁式個人作品集網頁。它提供客觀的職能評估(如職位、職級、強弱項)、薪資與職涯方向建議(包含具體的 3 階段行動計畫),以及涵蓋技術能力、工作模式、成長階梯與風險提醒的完整視覺化呈現。支援當地主機與多台遠端機器(透過 SSH)的資料聚合,並嚴格遵守設計規範與隱私保護(不顯示金鑰、IP 等敏感資訊),確保輸出內容專業、易讀且尊重使用者意願。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Neckkup/portfolio-kup/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

portfolio-kup 是做什麼的?

根據實際證據建立使用者的個人檔案,並製作成雙語(泰文/英文)單頁式網頁。 以泰文回應使用者,技術詞彙保留英文。

步驟

請依序執行 · 所有需要使用者決定的問題都使用 AskUserQuestion · 對於資料量龐大的主題,先在聊天中摘要,再放入頁面中

1. 收集資料

  1. 詢問是否有其他使用 Claude Code 的機器(ssh user@host) · 若使用者在要求中已提供則無需詢問
  2. 在每台機器上執行腳本(只輸出數字,不含提示文字或金鑰):
    S=~/.claude/skills/portfolio-kup/scripts; D=<scratchpad>/pk; mkdir -p $D
    python3 $S/collect.py > $D/local.json
    ssh -o BatchMode=yes user@host python3 - < $S/collect.py > $D/host1.json
    python3 $S/merge.py $D/*.json > $D/metrics.json     # 摘要表格輸出至 stderr
    
  3. 自行閱讀提示內容以進行質化評估(~/.claude/history.jsonl 中的 display、project 欄位) · 均勻抽樣分散至每個專案與月份 · 切勿將發現的金鑰/令牌/密碼複製到回答或網頁中,僅記錄出現次數

必須告知使用者的限制:

  • history.jsonl 僅計算使用者自行輸入的內容 · 長時間讓 agent 自動執行的期間不計入
  • 對話記錄(~/.claude/projects/**/*.jsonl)在超過 cleanupPeriodDays(預設 30 天)後會被刪除 · 因此 token 與 AI 工作時間僅包含近期
  • 當月提示少於 100 筆(enough_data: false)時,數據波動劇烈,禁止用於比較
  • 行為計數是透過關鍵詞比對,僅供趨勢參考,非精確測量

2. 評估(在聊天中回應)

  • 可能的職業 · 職級(Junior / Mid / Senior) · 優點與缺點,並附上證據
  • 直接了當,不誇大 · 區分「因為擅長控制 AI 而能交付成果」與「本身就理解基礎知識」
  • 若在記錄中發現金鑰/機密 → 立即警告需更換(告知類型,不透露實際值)

3. 測驗(若使用者想確認自己是否真的不熟悉)

  • 兩個回合,每回合 4 題,透過 AskUserQuestion 進行 · 題目為使用者實際工作(使用其所用技術堆疊)中的情境
  • 混合兩種題型:看到症狀 → 指出原因 與 解釋底層機制 · 選項長度相近,不暗示答案
  • 告知規則:不可詢問 AI · 不知道請回答「不知道」
  • 每題附簡短解析,最後總結類型表現(例如 症狀題 4/4,機制題 0/4)

4. 薪資與職涯方向

  • 使用 extended 模式的 WebSearch 同時進行多個關鍵字搜索(泰文 + 英文,今年度) · 每次皆附上來源
  • 區分 AI/ML Engineer(建立模型)與 AI Application Engineer(將 AI 應用於應用程式) · 兩者薪資差異很大
  • 先廣泛思考:列出 8–10 個符合 技能 + 個性 + 成長潛力 的職業(不限技術職,例如顧問、售前工程師、教育者、EdTech 產品經理、自由接案者) · 然後 縮小至 3 個最適合的方向 + 最多 5 個次要職業作為標籤 · 可在聊天中提及「目前還不適合」的職業,但無需放入頁面
  • 必須提供 一個明確的建議,說明應該朝哪個方向前進(根據訪談中的目標),並附上 3 階段計畫
  • 在網頁中,薪資預設顯示為 *,僅在使用者要求時才顯示具體數字

5. 訪談

呼叫 grilling 技能(或 grill-me),透過 AskUserQuestion 分回合提問: 選擇該方向的原因 · 在聊天之外的與人/客戶相處經驗 · 時間框架 · 現有專案(個人或公司) · 每週可投入時間 · 成功的定義 · 繼續或停止的標準

  • 若答案前後矛盾或未回答問題 → 再次提問
  • 直接指出觀察到的模式(例如不強迫選擇時會回答「都可以」) · 若有不同意見可表達,但由使用者決定
  • 最後總結雙方共識,等待使用者確認後才放入頁面

6. 建立網頁

  1. 將 templates/onepage.html 複製到暫存區,然後修改 僅 <script id="profile"> 中的 JSON · 所有文字皆為 {"th":…,"en":…} 格式
  2. 使用 Artifact → quickstart(意圖 other)首次建立,然後發佈 · 圖示為 profile
  3. 根據回饋編輯並重新發佈同一個檔案(維持相同 URL)

設計規則(來自實際使用者回饋 · 不得違反)

項目應該做不應該做
頁面佈局單欄從上到下閱讀 · 自我介紹 → 01 技能 → 02 工作方式 → 03 成長歷程 → 04 未來方向 · 寬度可達 1600px側邊欄 · 與其他區塊顏色不同的深色面板 · 固定窄版寬度
未來方向(04)「建議」框:1 個建議 + 1 句原因 + 3 階段計畫 · 3 個方向的卡片,僅含:準備度 / 適合原因 / 需補足 · 被選中的卡片右上角有 ★ 推薦標籤 · 「也可以做」為單行標籤 · 「優先做什麼」不超過 4 項長表格列出職業 · 卡片中包含步驟/第一步/薪資 · 與 3 階段計畫重複的資訊(使用者表示「太雜亂」)
顏色所有區塊使用同一色系(白底、細邊框) · 藍色 = 柔和/進步 · 金色 = 困難/目標 · 紅色 = 需謹慎/當前狀態混雜多種色調
資料來源說明頂部區塊說明所有資料來源 + 未計入的項目 + 「AI 評估,非認證」將來源隱藏在頁面底部
語言預設泰文 + 泰文/英文切換按鈕 · 英文使用 they/them 或避免性別代名詞從姓名猜測性別
外人需能理解一般用語 · 使用「一半」「一倍」「三分之一」等比較方式內部專案名稱 · 訪談題號(Q20) · 無單位的原始數字(「43 次」、提示數量) · 純技術術語如「502 Traefik」
技能雷達圖 + 3 級標籤(擅長/中等/待加強)置於技能區塊 · 軟技能與硬技能並列,項目帶有 01– 編號及證據標籤 · 硬技能列出工具名稱能量條/進度條放在個性描述旁邊(使用者無法理解滿格代表什麼) · 卡片高度不一致
個性使用 HR 常用的軟技能名稱 · 一個人物 persona 名稱 + 一句描述 · 風格為雙極量表 · 「需注意的個性」獨立成框將測驗結果直接放在頁面上(使用者要求移除)
工作時間小時圖表 從 06:00 開始 · 工作日顯示為 佔全部工作的百分比,並附一行說明百分比含義顯示次數的座標軸
成長歷程可點擊的階梯,一次只顯示一階 · 高度 = 能力等級(階梯上標示等級名稱) · 標籤「▼ 目前位於此階」 · 每一階:能做的事 / 仍會犯錯 / 轉捩點 · 「與前一階比較」僅在數據充足的月份顯示 · 僅在有對話記錄的階梯顯示 token · 最後一階為目標(金色虛線)每月提示數量圖表(使用者無法解讀) · 一次顯示所有階層的詳細資訊
薪資* + 說明文字置於警告區塊與頁尾未經要求顯示具體數字
隱私不出现金鑰、IP、主機名稱、電子郵件 · 負面數據以不揭露身分的方式描述(例如「曾在不該放的地方輸入金鑰」)未經詢問便發佈/推送實際個人資料頁面至公開場所

技能中的檔案

  • scripts/collect.py · 收集單一機器的數據(每月提示數、行為、小時/天、token、時間戳記) · 不輸出文字訊息
  • scripts/merge.py · 合併多台機器 → metrics.json(每月、enough_data、從 06:00 開始的小時百分比、工作日百分比、親自操作時數 vs AI 工作時數、token)
  • templates/onepage.html · 從單一 JSON 資料渲染的網頁 · 檔案中的數據為虛構範例

指標對應頁面內容

metrics.json使用位置
hours_pct_from_6am[].pcthoursPctFrom6am(24 個值,從 06:00 開始)
weekday_pctweekdayPct
late_night_pcthoursNote,例如「近三分之一的工作發生在晚上 9 點後」
monthly[*] 且 enough_data 為真stages[i].compare.items(與前一階比較) · stages[i].peak/hot 最忙碌的月份
tokens[*]stages[i].tokens(僅有數據的月份) · 說明 cache read 比例
hands_on_hours / ai_working_hours在聊天中摘要「親自操作約 ~X 小時/週 · AI 代為操作約 ~Y 小時/週」
secrets_pasted > 0在聊天中警告 + 放入「需注意的個性」 + 作為 acts 的第一項

template 中 04 部分的 JSON

  • rec · title、reason、phases[](when、t、d)建議的 3 階段
  • paths[] · 3 個方向:tag、title、ready(0–100)、fits、gap、pick: true 給予建議方向、gold: true 給予自行創業/founder 方向
  • also[] · 最多 5 個次要職業名稱(純文字)
  • acts[] · 最多 4 項(t、d)

相關技能