Os design
Skill natthasath/natthasath-marketplace/plugins/utility/skills/os-design
สัมภาษณ์ผู้ใช้เพื่อสร้างหรืออัปเดต my-setup.md ซึ่งเป็น reference ส่วนตัวที่บอก Claude ว่าระบบของผู้ใช้มีโครงสร้างอย่างไร ครอบคลุม Windows 11, macOS, Linux — drive layout, partition, important paths, naming convention, software ที่ใช้ และ shared conventions ใช้ skill นี้ทันทีเมื่อผู้ใช้พูดถึง "โครงสร้าง OS", "บอก Claude เรื่อง setup", "my-setup", "อัปเดต setup", "จด drive layout", "บันทึก path ที่ใช้", "ตั้งค่า naming convention", "สอน Claude เรื่องเครื่องฉัน" แม้ผู้ใช้จะไม่ได้พูดถึง os-design โดยตรง ให้ trigger skill นี้เสมอFrom its SKILL.md
npx -y skills add natthasath/natthasath-marketplace --skill os-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
12.6 KB, ~3.7k tokens by cl100k_base, as published. Nobody here has run it
OS Design — สัมภาษณ์และสร้าง os-profile.md
บทบาท
คุณทำหน้าที่เป็นผู้ช่วยที่สัมภาษณ์ผู้ใช้เพื่อทำความเข้าใจโครงสร้าง OS และ workflow ส่วนตัวของพวกเขา
เป้าหมายคือสร้างไฟล์ os-profile.md (ตำแหน่งตาม path จาก Step 0) ที่ skill อื่นๆ ใน plugin utility จะใช้เป็น context
ขั้นตอนการทำงาน
Step 0: ตรวจสอบ Save Path
Config File
บันทึก path ที่ผู้ใช้กำหนดไว้ที่: ~/.config/claude-utility/settings.json
รูปแบบ:
{
"os_profile_path": "/path/to/os-profile.md"
}
ขั้นตอนตรวจสอบ path (ทำก่อนทุกครั้ง)
-
อ่านไฟล์
~/.config/claude-utility/settings.json -
ถ้า ไม่มีไฟล์ (ใช้ครั้งแรก) → ถามผู้ใช้ว่าต้องการบันทึก
os-profile.mdที่ folder ไหน พร้อมบอก default ว่า~/.claude/claude-utility/os-profile.mdแล้ว สร้าง config file บันทึก path ที่เลือก จากนั้นดำเนินการต่อทำไมไม่ default ไปที่โฟลเดอร์ของ plugin เอง: plugin ที่ติดตั้งจริงจะถูกเก็บไว้ใต้
~/.claude/plugins/cache/<marketplace>/utility/<version>/— path นี้เปลี่ยนทุกครั้งที่อัปเดต version และไฟล์ทั้งโฟลเดอร์จะถูกแทนที่/ลบตอน reinstall ถ้าเก็บ os-profile.md (ข้อมูลส่วนตัวของผู้ใช้) ไว้ในนั้น ข้อมูลจะหายเมื่อ plugin อัปเดต จึงต้องเก็บไว้ในตำแหน่งที่ผู้ใช้เป็นเจ้าของและคงอยู่ข้าม version แทน -
ถ้า มีไฟล์แล้ว → ใช้
os_profile_pathจาก config โดยตรง ไม่ต้องถามซ้ำ
เปลี่ยน Save Path
trigger เมื่อผู้ใช้พูดถึง: "เปลี่ยน path", "บันทึกที่อื่น", "set profile path", "ย้าย os-profile" หรือคล้ายกัน
ขั้นตอน:
- แสดง path ปัจจุบันจาก config (ถ้ามี)
- ถามว่าต้องการเปลี่ยนเป็น path ใด
- อัปเดต
~/.config/claude-utility/settings.jsonด้วย path ใหม่ - ยืนยันว่าเปลี่ยนสำเร็จและแสดง path ใหม่
Step 1: ตรวจสอบสถานะ
ก่อนเริ่ม ให้ตรวจสอบว่าไฟล์ที่ os_profile_path (จาก config ใน Step 0) มีอยู่แล้วหรือไม่
- ถ้ายังไม่มี → แจ้งผู้ใช้ว่าจะเริ่มสร้างใหม่ ดำเนินการ Phase 1 ทั้งหมด
- ถ้ามีแล้ว → ถามผู้ใช้:
"พบ os-profile.md เดิมอยู่แล้ว ต้องการ:
- อัปเดตเฉพาะบางส่วน (ระบุว่าส่วนไหน)
- เขียนใหม่ทั้งหมด"
Step 2: เลือก OS ที่จะ configure
ถามผู้ใช้ว่าต้องการ configure OS ใด:
"ต้องการ configure OS ใดบ้าง?
- Windows 11
- macOS
- Linux Ubuntu
- ทั้งหมด"
จากนั้นดำเนินการถาม Phase ที่เกี่ยวข้องตามที่ผู้ใช้เลือก
Phase A: Windows 11
A1 — Drive Layout
Windows ของคุณมีกี่ Drive? แต่ละ Drive (C:, D:, E: ฯลฯ) ใช้ทำอะไรบ้าง?
ตัวอย่าง:
- C: → ระบบปฏิบัติการ + โปรแกรม
- D: → Projects และ Code
- E: → ไฟล์ส่วนตัว Media, Backup
A2 — Important Paths
มี Path สำคัญที่ใช้บ่อยใน Windows ไหม?
ตัวอย่าง: D:\code\, C:\Users\username\Documents\, E:\backup\
A3 — Development Setup (ถ้ามี)
ใช้ tool พวกนี้ใน Windows ไหม?
- WSL (Windows Subsystem for Linux) — ถ้าใช้ distro อะไร?
- Package manager (winget, chocolatey, scoop)?
- Runtime managers (nvm, pyenv, sdkman)?
Phase B: macOS
B1 — Disk Layout
Mac มี external drive หรือ volume เพิ่มเติมไหม นอกจาก Macintosh HD?
ถ้ามี แต่ละอันใช้ทำอะไร?
B2 — Important Paths
มี path สำคัญในเครื่อง Mac ไหม?
ตัวอย่าง: ~/Developer/, ~/Projects/, ~/Documents/Work/
B3 — Development Setup
ใช้ tool พวกนี้ใน Mac ไหม?
- Homebrew?
- Runtime managers (nvm, pyenv, rbenv, mise)?
- Container (Docker Desktop, OrbStack)?
- Terminal ที่ใช้ (Terminal, iTerm2, Warp)?
- Shell ที่ใช้ (zsh, bash, fish)?
Phase C: Linux Ubuntu Desktop 24.04
C1 — Partition Layout
Ubuntu partition เป็นยังไง?
ตัวอย่าง:
- / (root) → 50GB
- /home → 200GB
- swap → 8GB
- /data → external drive
C2 — Important Paths
มี path สำคัญที่ใช้บ่อยใน Ubuntu ไหม?
ตัวอย่าง: ~/projects/, /opt/, /mnt/data/
C3 — Development Setup
ใช้ tool พวกนี้ใน Ubuntu ไหม?
- Package manager เพิ่มเติม (snap, flatpak, nix)?
- Runtime managers?
- Desktop Environment (GNOME, KDE, อื่นๆ)?
- Terminal ที่ใช้ (GNOME Terminal, Kitty, Alacritty)?
Phase D: Naming Convention
อ่าน references/naming-conventions.md ก่อน แล้วนำตัวอย่างมาแสดงให้ผู้ใช้เห็นขณะถาม
D1 — Folder Naming
ชื่อ folder ทั่วไปใช้ style ไหน?
(แสดงตัวอย่างจาก naming-conventions.md)
ตัวอย่าง: kebab-case → my-project-folder
snake_case → my_project_folder
PascalCase → MyProjectFolder
D2 — File Naming
ชื่อไฟล์ทั่วไปใช้ style ไหน? แยกตามประเภทไฟล์ได้เลย
เช่น:
- Code files: ?
- Config files: ?
- Document files: ?
- Log/Backup files: ?
D3 — Project Naming
ชื่อ project (repo) ใช้ style ไหน?
มี prefix/suffix พิเศษไหม?
ตัวอย่าง: [company]-[project]-[type] → acme-website-api
D4 — Branch & Commit
ถ้าใช้ Git มี convention สำหรับ branch name และ commit message ไหม?
ตัวอย่าง branch: feature/user-auth, fix/login-bug
ตัวอย่าง commit: feat(auth): add JWT validation
D5 — Environment Variables & Constants
ตัวแปร constant หรือ ENV variable ใช้ style ไหน?
ส่วนใหญ่จะเป็น SCREAMING_SNAKE_CASE แต่มี exception ไหม?
Phase E: Software Inventory
E1 — Cross-Platform Software
Software ที่ใช้บนทุก OS (หรือหลาย OS) มีอะไรบ้าง?
ตัวอย่าง: VSCode, Docker, Git, Obsidian, 1Password
E2 — OS-Specific Software
Software ที่ใช้เฉพาะบาง OS มีอะไรบ้าง?
- Windows only: ?
- macOS only: ?
- Ubuntu only: ?
Phase F: Shared Conventions
F1 — Project Location
Projects/Code อยู่ที่ path ไหนในแต่ละ OS?
- Windows: ?
- macOS: ?
- Ubuntu: ?
F2 — Backup Strategy
มี backup strategy ไหม?
ตัวอย่าง: Time Machine, external drive, cloud (iCloud, Google Drive, OneDrive)
F3 — Sync Between Machines
ซิงค์ไฟล์ระหว่างเครื่องยังไง?
ตัวอย่าง: Git, cloud storage, Syncthing, ไม่ได้ซิงค์
Step 3: สร้าง my-setup.md
หลังจากถามครบทุก Phase ที่ผู้ใช้เลือกแล้ว สร้างไฟล์ที่ <os_profile_path จาก Step 0>
โดยใช้โครงสร้างนี้:
# My Personal Setup Reference
_Last updated: YYYY-MM-DD_
## Overview
[สรุป OS ที่ใช้และบทบาทของแต่ละเครื่อง]
---
## Windows 11
### Drive Layout
| Drive | Label | Purpose |
|-------|-------|---------|
| C:\ | | |
### Important Paths
| Path | Purpose |
|------|---------|
### Development Setup
[รายละเอียด tools]
### Notes
[ข้อสังเกตพิเศษ]
---
## macOS (Mac Mini M4)
[โครงสร้างเดียวกัน]
---
## Linux Ubuntu Desktop 24.04
### Partition Layout
| Partition | Mount | Size | Purpose |
|-----------|-------|------|---------|
### Important Paths
[...]
### Development Setup
[...]
---
## Naming Conventions
### Folders
- Style ที่ใช้: [style]
- ตัวอย่าง: [example]
### Files
| ประเภทไฟล์ | Style | ตัวอย่าง |
|-----------|-------|---------|
### Projects (Repos)
- Pattern: [pattern]
- ตัวอย่าง: [example]
### Git
- Branch: [pattern]
- Commit: [pattern]
### Constants / ENV
- Style: [style]
---
## Software
### Cross-Platform
| Software | Windows | macOS | Ubuntu | Notes |
|----------|---------|-------|--------|-------|
### OS-Specific
**Windows only:**
**macOS only:**
**Ubuntu only:**
---
## Shared Conventions
### Project Locations
| OS | Path |
|----|------|
### Backup Strategy
[รายละเอียด]
### Sync Between Machines
[รายละเอียด]
หลักการสำคัญ
- ถามทีละ Phase อย่าถามทีเดียวทุก Phase — ทำให้ user ล้นข้อมูล
- แสดงตัวอย่างเสมอ ก่อนถาม โดยเฉพาะ naming convention — อ่านจาก
references/naming-conventions.md - ยืดหยุ่น ถ้า user บอกว่าไม่มีหรือไม่ใช้บาง section ให้ข้ามไปได้
- สรุปก่อน save หลังถามครบ ให้สรุปสิ่งที่จะเขียนให้ user ยืนยันก่อน 1 ครั้ง
- บันทึก path ที่ save ไฟล์ให้ user ทราบเสมอ
What ships with it: 1 file
4.1 KB alongside SKILL.md
references/
- naming-conventions.md4.1 KB