Communitygithub.com

portfolio-kup

Crea un perfil profesional de una página que muestra las habilidades, personalidad, trayectoria y posibles caminos profesionales del usuario, basándose en su historial de Claude Code (en su máquina y otras vía SSH), pruebas y entrevistas.

¿Qué es portfolio-kup?

Esta skill genera un perfil profesional completo tipo one-page a partir de la evidencia real de uso de Claude Code. Ejecuta scripts en la máquina local y en máquinas remotas vía SSH para recolectar métricas como prompts mensuales, horas de trabajo, tokens, comportamientos y niveles de actividad. Luego, analiza cualitativamente el historial de prompts para evaluar fortalezas, debilidades y posibles ocupaciones. Incluye una fase de entrevista (usando la skill 'grilling') y pruebas situacionales adaptadas al stack del usuario para validar su nivel real. Finalmente, renderiza un sitio web estático bilingüe (TH/EN) con secciones de identidad, habilidades, forma de trabajo, crecimiento y camino profesional, siguiendo estrictas reglas de diseño basadas en feedback de usuarios reales. Soporta los comandos 'ดูประวัติแล้วบอกว่าผมทำอาชีพอะไร เก่งแค่ไหน', 'ทำ portfolio / โปรไฟล์ / one page ของผม', 'ผมควรได้เงินเดือนเท่าไหร่', 'ผมควรไปสายไหน' o '/portfolio-kup'.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Neckkup/portfolio-kup/tree/HEAD

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace portfolio-kup?

สร้างโปรไฟล์ของผู้ใช้จากหลักฐานจริง แล้วทำเป็นหน้าเว็บหน้าเดียวสองภาษา (ไทย/EN) ตอบผู้ใช้เป็นภาษาไทย ศัพท์เทคนิคคงภาษาอังกฤษ

ขั้นตอน

ทำตามลำดับ · ทุกคำถามที่ให้ผู้ใช้ตัดสินใช้ AskUserQuestion · เรื่องที่มีข้อมูลเยอะให้ สรุปในแชทก่อน แล้วค่อยใส่ในหน้า

1. เก็บข้อมูล

  1. ถามว่ามีเครื่องอื่นที่ใช้ Claude Code ไหม (ssh user@host) · ถ้าผู้ใช้ให้มาในคำขอแล้วไม่ต้องถาม
  2. รันสคริปต์ทุกเครื่อง (ส่งออกแค่ตัวเลข ไม่มีข้อความ prompt หรือ key):
    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. อ่านเนื้อหา prompt เองเพื่อประเมินเชิงคุณภาพ (~/.claude/history.jsonl field display, project) · สุ่มอ่านกระจายทุกโปรเจกต์/ทุกเดือน · ห้ามคัดลอก key/token/รหัสผ่านที่เจอลงคำตอบหรือหน้าเว็บ ให้นับจำนวนอย่างเดียว

ข้อจำกัดที่ต้องบอกผู้ใช้:

  • history.jsonl นับแค่ตอนผู้ใช้พิมพ์ · ช่วงที่ปล่อย agent ทำงานยาวไม่ถูกนับ
  • transcript (~/.claude/projects/**/*.jsonl) ถูกลบเมื่อเกิน cleanupPeriodDays (ค่าเริ่มต้น 30 วัน) · token และเวลาที่ AI ทำงานจึงมีแค่ช่วงท้าย
  • เดือนที่ prompt < 100 (enough_data: false) ตัวเลขแกว่ง ห้ามใช้เทียบ
  • การนับพฤติกรรมเป็นการจับคำ ใช้บอกแนวโน้ม ไม่ใช่การวัดแม่นยำ

2. ประเมิน (ตอบในแชท)

  • อาชีพที่น่าจะเป็น · ระดับ (Junior / Mid / Senior) · จุดแข็ง จุดอ่อน พร้อมหลักฐาน
  • ตรงไปตรงมา ไม่ชมเกินจริง · แยก "ส่งงานได้เพราะคุม AI เก่ง" ออกจาก "เข้าใจพื้นฐานเอง"
  • ถ้าเจอ key/secret ในประวัติ → เตือนให้ rotate ทันที (บอกชนิด ไม่บอกค่า)

3. แบบทดสอบ (ถ้าผู้ใช้อยากรู้ว่าอ่อนจริงไหม)

  • 2 รอบ รอบละ 4 ข้อผ่าน AskUserQuestion · โจทย์เป็นสถานการณ์จากงานจริงของผู้ใช้ (stack ที่เขาใช้)
  • ผสม 2 แบบ: เห็นอาการ → บอกสาเหตุ กับ อธิบายกลไกข้างใต้ · ตัวเลือกยาวพอกัน ไม่ใบ้คำตอบ
  • บอกกติกา: ห้ามถาม AI · ไม่รู้ให้ตอบ "ไม่รู้"
  • เฉลยทุกข้อพร้อมเหตุผลสั้น ๆ แล้วสรุปเป็นรูปแบบ (เช่น อาการ 4/4 กลไก 0/4)

4. เงินเดือนและสายงาน

  • ค้น WebSearch แบบ extended หลายคำค้นพร้อมกัน (TH + EN, ปีปัจจุบัน) · ใส่ Sources ทุกครั้ง
  • แยก AI/ML Engineer (ทำโมเดล) ออกจาก AI Application Engineer (เอา AI ใช้ในแอป) · เรทต่างกันมาก
  • คิดให้กว้างก่อน: ไล่ 8–10 อาชีพที่เข้ากับ ทักษะ + นิสัย + การเติบโต (ไม่ใช่แค่สายเทคนิค เช่น consultant, pre-sales, educator, EdTech product, freelance) · แล้ว ตัดให้เหลือ 3 สายที่เหมาะที่สุด + อาชีพรองไม่เกิน 5 ตัวเป็นป้าย · บอกอาชีพที่ "ยังไม่เหมาะ" ในแชทได้ แต่ไม่ต้องใส่ในหน้า
  • ต้องมี คำแนะนำเดียวที่ชัด ว่าควรไปทางไหน (อิงเป้าหมายจากการสัมภาษณ์) พร้อมแผน 3 ช่วง
  • ในหน้าเว็บแสดงเงินเดือนเป็น * เป็นค่าเริ่มต้น ใส่ตัวเลขเมื่อผู้ใช้ขอเท่านั้น

5. สัมภาษณ์

เรียก skill grilling (หรือ grill-me) ถามเป็นรอบ ๆ ผ่าน AskUserQuestion: เหตุผลที่อยากไปสายนั้น · ประสบการณ์กับคน/ลูกค้านอกแชท · กรอบเวลา · โปรเจกต์ที่มี (ของตัวเองหรือบริษัท) · เวลาว่างต่อสัปดาห์ · นิยามความสำเร็จ · เกณฑ์ไปต่อ/หยุด

  • คำตอบที่ขัดกันเองหรือไม่ตอบคำถาม → ถามซ้ำ
  • ชี้รูปแบบที่เห็นตรง ๆ (เช่น ไม่บังคับให้เลือกจะตอบ "รับหมด") · ไม่เห็นด้วยตรงไหนให้บอก แต่ให้ผู้ใช้ตัดสิน
  • จบด้วยสรุปความเข้าใจร่วม แล้วรอผู้ใช้ยืนยันก่อนลงหน้า

6. ทำหน้าเว็บ

  1. คัดลอก templates/onepage.html ไป scratchpad แล้วแก้ เฉพาะ JSON ใน <script id="profile"> · ทุกข้อความเป็น {"th":…,"en":…}
  2. Artifact → quickstart (intent other) ครั้งแรก แล้ว publish · icon profile
  3. แก้ตามคำติชมด้วย Edit + publish ไฟล์เดิม (URL เดิม)

กติกาการออกแบบ (มาจากคำติชมของผู้ใช้จริง · ห้ามละเมิด)

เรื่องทำไม่ทำ
ผังหน้าคอลัมน์เดียวอ่านบนลงล่าง · ตัวตน → 01 ทักษะ → 02 วิธีทำงาน → 03 การเติบโต → 04 ทางไปต่อ · กว้างตามจอได้ถึง 1600pxsidebar ด้านข้าง · แผงสีเข้มต่างจากแผงอื่น · fix ความกว้างแคบ
ทางไปต่อ (04)กล่อง "แนะนำ" 1 คำแนะนำ + เหตุผล 1 ประโยค + แผน 3 ช่วง · การ์ด 3 สาย มีแค่ ความพร้อม / เหมาะเพราะ / ต้องเติม · ป้าย ★ แนะนำ มุมขวาบนการ์ดที่เลือก · "ทำได้เช่นกัน" เป็นป้ายแถวเดียว · "ทำอะไรก่อน" ไม่เกิน 4 ข้อตารางอาชีพยาว · ป้ายขั้นตอน/ก้าวแรก/เงินเดือนในการ์ด · ข้อมูลซ้ำกับแผน 3 ช่วง (ผู้ใช้บอกว่า "รก")
สีทุกแผงใช้สีชุดเดียว (พื้นขาว ขอบบาง) · ฟ้า = soft/ดีขึ้น · ทอง = hard/เป้า · แดง = ต้องระวัง/ตอนนี้หลายโทนปนกัน
คำเตือนที่มาข้อมูลกล่องบนสุด บอกแหล่งข้อมูลทุกแหล่ง + สิ่งที่ไม่ได้นับ + "AI ประเมิน ไม่ใช่การรับรอง"ซ่อนที่มาไว้ท้ายหน้า
ภาษาไทยเป็นค่าเริ่มต้น + ปุ่ม ไทย/EN · ใช้ they/them หรือเลี่ยงสรรพนามในภาษาอังกฤษเดาเพศจากชื่อ
คนนอกต้องอ่านเข้าใจภาษาธรรมดา · เทียบแบบ "ครึ่งหนึ่ง" "เท่าตัว" "1 ใน 3"ชื่อโปรเจกต์ภายใน · เลขข้อสัมภาษณ์ (Q20) · ตัวเลขดิบไร้หน่วย ("43 ครั้ง", จำนวน prompt) · ศัพท์ล้วนอย่าง "502 Traefik"
ทักษะradar + ป้าย 3 ระดับ (เด่น/กลาง/ต้องเติม) อยู่ในส่วนทักษะ · Soft กับ Hard วางคู่กัน รายการมีเลข 01– และป้ายหลักฐาน · Hard ใส่ชื่อเครื่องมือหลอดพลัง/แถบระดับข้างนิสัย (ผู้ใช้อ่านไม่ออกว่าเต็มแปลว่าอะไร) · การ์ดสูงไม่เท่ากัน
นิสัยตั้งชื่อเป็น soft skill ที่ HR ใช้ · มี persona หนึ่งชื่อ + ประโยคเดียว · สไตล์เป็นแถบสองขั้ว · "นิสัยที่ต้องระวัง" แยกกล่องใส่ผลแบบทดสอบเป็นแผงในหน้า (ผู้ใช้ให้เอาออก)
เวลาทำงานกราฟชั่วโมง เริ่ม 06:00 · วันในสัปดาห์เป็น % ของงานทั้งหมด พร้อมบรรทัดอธิบายว่า % คืออะไรแกนตัวเลขจำนวนครั้ง
การเติบโตบันได กดได้ทีละขั้น · ความสูง = ระดับความสามารถ (มีชื่อระดับบนแท่ง) · ป้าย "▼ ตอนนี้อยู่ขั้นนี้" · แต่ละขั้น: ทำได้ / ยังพลาด / จุดเปลี่ยน · "เทียบกับขั้นก่อน" เฉพาะเดือนที่ข้อมูลพอ · token เฉพาะขั้นที่มี transcript · ขั้นสุดท้ายเป็นเป้า (เส้นประทอง)กราฟจำนวน prompt ต่อเดือน (ผู้ใช้อ่านไม่ออก) · ยัดรายละเอียดทุกขั้นพร้อมกัน
เงินเดือน* + คำอธิบายในกล่องคำเตือนและท้ายหน้าตัวเลขเงินเดือนโดยไม่ได้ขอ
ความเป็นส่วนตัวไม่มี key, IP, hostname, อีเมล · ตัวเลขเชิงลบเขียนแบบไม่ประจาน ("เคยใส่ key ในที่ที่ไม่ควร")publish/push หน้าโปรไฟล์จริงขึ้นที่สาธารณะโดยไม่ถาม

ไฟล์ใน skill

  • scripts/collect.py · เก็บตัวเลขของเครื่องเดียว (prompt รายเดือน, พฤติกรรม, ชั่วโมง/วัน, token, timestamps) · ไม่ส่งข้อความออก
  • scripts/merge.py · รวมหลายเครื่อง → metrics.json (รายเดือน, enough_data, % ชั่วโมงเริ่ม 06:00, % วัน, ชั่วโมงลงมือเอง vs ชั่วโมงที่ AI ทำงาน, token)
  • templates/onepage.html · หน้าเว็บ render จาก JSON ก้อนเดียว · ข้อมูลในไฟล์เป็นตัวอย่างสมมติ

เทียบ metrics → เนื้อหาในหน้า

metrics.jsonใช้ตรงไหน
hours_pct_from_6am[].pcthoursPctFrom6am (24 ค่า เรียงจาก 06:00)
weekday_pctweekdayPct
late_night_pcthoursNote เช่น "เกือบ 1 ใน 3 ของงานเกิดหลัง 3 ทุ่ม"
monthly[*] ที่ enough_datastages[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

JSON ส่วน 04 ใน template

  • 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)

Skills relacionados