๐Ÿ“– star365 Docs
โ† ๋ณด๊ณ ์„œ ๋ชฉ๋ก

PDCA ๋ณด๊ณ ์„œ โ€” hermes-surgical-phase5 (2026-05-07)

์‚ฌ์šฉ์ž ๋ช…๋ น

"๋‹ค์Œ ๋‹จ๊ณ„ ์ง„ํ–‰" (์ง์ „ sprint ๋งˆ๋ฌด๋ฆฌ ํ›„ hermes ๊ฒฉ์ฐจ ์ž”์กด 4๊ฑด ์ฒ˜๋ฆฌ ์œ„์ž„ โ€” ์ž„์‹œ CEO ๊ถŒํ•œ ํ–‰์‚ฌ)

๊ฒฐ๊ณผ โ€” 13 DC ๋ชจ๋‘ PASS = 100%

Track D โ€” Subagent ๊ฒฉ๋ฆฌ (paperclip)

DC ๊ฒฐ๊ณผ
D1 depth ๊ฒ€์‚ฌ โœ… MAX_DEPTH=2, request_depth>=2 โ†’ cancelled + activity_log
D2 redactSecrets 13 ํŒจํ„ด โœ… ๋‹จ์œ„ ํ…Œ์ŠคํŠธ 4 ์‹œํฌ๋ฆฟ PASS (xAI/GitHub/Discord/Telegram)
D3 isolatedPayload โœ… agent_wakeup_request payload JSON ์•ˆ ์‹œํฌ๋ฆฟ๋„ ๋งˆ์Šคํ‚น
D4 ํšŒ๊ท€ (8 ์ง์›) โœ… runner.mjs --dry-run PASS, ๊ธฐ์กด work_product ํ๋ฆ„ ์œ ์ง€

Track E โ€” OSV install hook (5์„œ๋ฒ„)

DC ๊ฒฐ๊ณผ
E1 5์„œ๋ฒ„ sha ๋™์ผ โœ… 7f50f0558229c156...
E2 clean install โœ… npm install lodash@4.17.21 โ†’ exit 0
E3 malware block โœ… @ctrl/tinycolor@4.1.1 โ†’ exit 2 + JSON BLOCKED ๋ฉ”์‹œ์ง€
E4 dry-run โœ… JSON ์ถœ๋ ฅ + exit 0 (์‹ค install X)

Track F โ€” GitHub webhook (paperclip)

DC ๊ฒฐ๊ณผ
F1 ์ž˜๋ชป HMAC 401 โœ… HTTP 401 + invalid_signature
F2 ping (์ •ํ™• HMAC) โœ… 200 + result=ok
F3 issues.opened โ†’ paperclip issues INSERT โœ… paperclip_issue_id=e6b76031-...
F4 SECRET ๋ฏธ์„ค์ • 503 โœ… ์ฝ”๋“œ inspect (line 3257)
F5 github_webhook_events ๋กœ๊ทธ โœ… 2 row ๋ˆ„์  (ping + issues)

์ถ”๊ฐ€ ๊ฒ€์ฆ (Track F push event)

๋ณ€๊ฒฝ ํŒŒ์ผ

Track D

Track E

Track F

๋ฐœ๊ฒฌ + ์ˆ˜์ •ํ•œ ํ•จ์ • (๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ)

ํ•จ์ • 1: ESM import ์œ„์น˜ + ๋ณ€์ˆ˜ ์ค‘๋ณต

hermes-style ์ฝ”๋“œ ์ถ”๊ฐ€ ์‹œ import { createHmac } from 'crypto' ๋ผ์ธ์„ ์ฝ”๋“œ ์ค‘๊ฐ„์— ๋‘ . ESM์€ hoisting์ด์ง€๋งŒ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ด๋ฏธ import crypto_sprintI from "node:crypto" ์„ ์–ธ๋˜์–ด ์žˆ์–ด ์‚ฌ์šฉ ์‹œ named import๊ฐ€ ์ถฉ๋Œ. ํ•ด๊ฒฐ: crypto_sprintI.createHmac() ํ˜•ํƒœ๋กœ ๊ธฐ์กด ํŒจํ„ด ์žฌ์‚ฌ์šฉ.

ํ•จ์ • 2: express.json ๊ธ€๋กœ๋ฒŒ ๋ฏธ๋“ค์›จ์–ด vs raw body

app.use(express.json()) ๊ธ€๋กœ๋ฒŒ ๋“ฑ๋ก ํ›„์— express.raw() ๋ผ์šฐํŠธ ๋ฏธ๋“ค์›จ์–ด ์ถ”๊ฐ€ํ•˜๋ฉด body ์ด๋ฏธ parsed โ†’ HMAC ๊ฒ€์ฆ ๋ถˆ๊ฐ€๋Šฅ. ํ•ด๊ฒฐ: URL ๋ถ„๊ธฐ ๋ฏธ๋“ค์›จ์–ด โ€” webhook URL๋งŒ raw ํ†ต๊ณผ, ๋‚˜๋จธ์ง€๋Š” json.

ํ•จ์ • 3: UFW ๋ณ€๊ฒฝ ๊ธˆ์ง€ ๋ฃฐ vs ์™ธ๋ถ€ ํ˜ธ์ถœ

GitHub webhook push ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์—์„œ paperclip โ†’ kahan:4001 ํ˜ธ์ถœํ–ˆ๋”๋‹ˆ UFW ๋ฃฐ ๋ถ€์žฌ๋กœ timeout. UFW ์ •์ฑ… ๋ณ€๊ฒฝ ๊ธˆ์ง€(๋ณด์•ˆ ๋ฃฐ). ํ•ด๊ฒฐ: paperclip ์ž์ฒด env์— TELEGRAM_BOT_TOKEN + DISCORD_WEBHOOK_URL ํ™œ์šฉ, paperclip์—์„œ ์ง์ ‘ ์†ก์‹ . mco-bot ์šฐํšŒ.

ํ‰๊ฐ€

์•ˆ์ „

๋ฉ”ํŠธ๋ฆญ

hermes ๊ฒฉ์ฐจ ๋งคํŠธ๋ฆญ์Šค ์ง„ํ–‰ ํ˜„ํ™ฉ (Phase 1~5 ๋ˆ„์ )

ํ•ญ๋ชฉ ๋„์ž… Phase ๋น„๊ณ 
OSV malware check โœ… ์™„๋ฃŒ 2 5์„œ๋ฒ„ + install wrapper (Phase 5)
์ž์—ฐ์–ด cron โœ… ์™„๋ฃŒ 3 UI + cascade fallback
Discord ๋ฉ€ํ‹ฐ์ฑ„๋„ โœ… ์™„๋ฃŒ 4 mco-bot ํ†ตํ•ฉ + paperclip ์ง์ ‘ ์†ก์‹ 
GitHub webhook โœ… ์™„๋ฃŒ 5 issues/push/ping/PR ๋ผ์šฐํŒ…
Subagent ๊ฒฉ๋ฆฌ โœ… ์™„๋ฃŒ 5 depth ๊ฐ€๋“œ + redaction
OSV install hook โœ… ์™„๋ฃŒ 5 safe-install.sh 5์„œ๋ฒ„
OpenAI ํ˜ธํ™˜ API server ๐Ÿ”ต ๋ณด๋ฅ˜ (Phase 6) gateway ํ†ต์งธ ๊ฒ€ํ†  ํ•„์š”
์ž๋™ skill ์ƒ์„ฑ ๐ŸŸข ์ž‘์Œ ๋ณด๋ฅ˜ /learn ์ถฉ๋ถ„

๋‹ค์Œ ๋‹จ๊ณ„ (์„ ํƒ์‚ฌํ•ญ)

  1. GitHub repo ์ธก webhook ๋“ฑ๋ก โ€” https://ceo.star365.site/api/github/webhook + secret ์„ค์ • (์‚ฌ์šฉ์ž ๊ฒฐ์ •)
  2. 8 AI ์ง์› nightly + ์ž๋™ issue pickup์œผ๋กœ GitHub PR/Issue ํ๋ฆ„ ์ž๋™ํ™”
  3. cron UI์—์„œ OSV check ์ž๋™ ์ •๊ธฐ (์ผ์ผ dependencies audit)
  4. Phase 6: OpenAI ํ˜ธํ™˜ API server (paperclip 8 ์ง์›์„ ์™ธ๋ถ€ OpenAI ํ˜ธํ™˜ ๋…ธ์ถœ)