From b4dc7b9f38bf0b8921a7139f6a704d3cfd2525f0 Mon Sep 17 00:00:00 2001 From: devswha Date: Sat, 4 Jul 2026 10:06:31 +0900 Subject: [PATCH] docs(wiki): refresh repo articles and add hermes agent --- src/pages/HomePage.test.tsx | 1 + src/wiki/fixtures.ts | 7 ++ src/wiki/gajaeCodeArticle.ts | 8 +- src/wiki/hermesAgentArticle.ts | 126 ++++++++++++++++++++++++++++++ src/wiki/lazycodexArticle.ts | 8 +- src/wiki/ohMyClaudecodeArticle.ts | 8 +- src/wiki/ohMyCodexArticle.ts | 9 ++- src/wiki/ohMyOpenagentArticle.ts | 8 +- src/wiki/patinaArticle.ts | 8 +- 9 files changed, 176 insertions(+), 7 deletions(-) create mode 100644 src/wiki/hermesAgentArticle.ts diff --git a/src/pages/HomePage.test.tsx b/src/pages/HomePage.test.tsx index aac1dfa..070d85a 100644 --- a/src/pages/HomePage.test.tsx +++ b/src/pages/HomePage.test.tsx @@ -21,6 +21,7 @@ describe("HomePage", () => { it("links every sourced upstream repository from the recent panel", () => { // Given const expectedLinks = [ + ["NousResearch/hermes-agent", "/w/NousResearch%2Fhermes-agent"], ["Yeachan-Heo/gajae-code", "/w/Yeachan-Heo%2Fgajae-code"], ["code-yeongyu/lazycodex", "/w/code-yeongyu%2Flazycodex"], ["Yeachan-Heo/oh-my-claudecode", "/w/Yeachan-Heo%2Foh-my-claudecode"], diff --git a/src/wiki/fixtures.ts b/src/wiki/fixtures.ts index 200da4d..fc3d69f 100644 --- a/src/wiki/fixtures.ts +++ b/src/wiki/fixtures.ts @@ -1,5 +1,6 @@ import type { HomePanel, WikiArticle } from "./types"; import { gajaeCodeArticle } from "./gajaeCodeArticle"; +import { hermesAgentArticle } from "./hermesAgentArticle"; import { lazycodexArticle } from "./lazycodexArticle"; import { ohMyClaudecodeArticle } from "./ohMyClaudecodeArticle"; import { ohMyCodexArticle } from "./ohMyCodexArticle"; @@ -9,6 +10,7 @@ import { sampleArticles } from "./sampleArticles"; export const wikiArticles: readonly WikiArticle[] = [ gajaeCodeArticle, + hermesAgentArticle, lazycodexArticle, ohMyClaudecodeArticle, ohMyCodexArticle, @@ -21,6 +23,11 @@ export const homePanels = [ { title: "최근 편집된 저장소", items: [ + { + label: "NousResearch/hermes-agent", + href: "/w/NousResearch%2Fhermes-agent", + description: "기억, 스킬, gateway, cron을 묶는 자기개선형 에이전트", + }, { label: "Yeachan-Heo/gajae-code", href: "/w/Yeachan-Heo%2Fgajae-code", diff --git a/src/wiki/gajaeCodeArticle.ts b/src/wiki/gajaeCodeArticle.ts index 23a5fb9..d8c354e 100644 --- a/src/wiki/gajaeCodeArticle.ts +++ b/src/wiki/gajaeCodeArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const gajaeCodeArticle = { slug: "Yeachan-Heo/gajae-code", title: "gajae-code", - modifiedAt: "2026-06-05T02:30:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, { label: "CLI 도구", path: "/w/category/cli-tool" }, @@ -37,6 +37,11 @@ export const gajaeCodeArticle = { value: "gaebal-gajae.dev", valueHref: "https://gaebal-gajae.dev/", }, + { + label: "Latest release", + value: "v0.7.11", + valueHref: "https://github.com/Yeachan-Heo/gajae-code/releases/tag/v0.7.11", + }, { label: "Links", value: "" }, ], sections: [ @@ -120,6 +125,7 @@ export const gajaeCodeArticle = { body: [ "README는 session auto-retry와 provider retry budget을 별도 계층으로 설명한다. requestMaxRetries는 stream이 열리기 전 provider SDK/fetch 재시도에, streamMaxRetries는 replay-safe stream 실패에 쓰인다.", "개발 문서에서는 workflow definition이나 rebrand surface 변경 시 visible definition, gate 검증, rebrand inventory, default definition 테스트를 실행하라고 안내한다. 즉 이 프로젝트의 기본값은 소스에 포함된 정의와 검증 gate를 함께 유지하는 방식이다.", + "2026-07-03 v0.7.11 릴리스는 bundled Fable 5 모델 프로필, stale default workflow skill refresh, Windows psmux attach 재시도, vanished tmux owner fail-closed 같은 런타임 보강을 포함한다.", "실행 로그는 append-only로 쌓여서, 세션이 중간에 끊겨도 replay-safe하게 같은 지점에서 이어진다.", ], }, diff --git a/src/wiki/hermesAgentArticle.ts b/src/wiki/hermesAgentArticle.ts new file mode 100644 index 0000000..7873f21 --- /dev/null +++ b/src/wiki/hermesAgentArticle.ts @@ -0,0 +1,126 @@ +import type { WikiArticle } from "./types"; + +export const hermesAgentArticle = { + slug: "NousResearch/hermes-agent", + title: "hermes-agent", + modifiedAt: "2026-07-04T01:02:58.000Z", + categories: [ + { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, + { label: "CLI 도구", path: "/w/category/cli-tool" }, + { label: "개발 워크플로우", path: "/w/category/developer-workflow" }, + ], + summary: + "Hermes Agent는 Nous Research가 만든 자기개선형 AI 에이전트로, 터미널 UI, 다중 메신저 게이트웨이, 기억, 스킬 생성, 예약 자동화를 한 런타임에 묶는다.", + image: { + src: "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/assets/banner.png", + alt: "Hermes Agent banner", + }, + infobox: [ + { + label: "Owner", + value: "NousResearch", + valueHref: "https://github.com/NousResearch", + }, + { + label: "Repository", + value: "hermes-agent", + valueHref: "https://github.com/NousResearch/hermes-agent", + }, + { label: "Primary language", value: "Python" }, + { + label: "License", + value: "MIT", + valueHref: "https://github.com/NousResearch/hermes-agent/blob/main/LICENSE", + }, + { + label: "Homepage", + value: "hermes-agent.nousresearch.com", + valueHref: "https://hermes-agent.nousresearch.com", + }, + { + label: "Latest release", + value: "v2026.7.1 / v0.18.0", + valueHref: "https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.1", + }, + { + label: "Links", + links: [ + { label: "GitHub", href: "https://github.com/NousResearch/hermes-agent" }, + { label: "Docs", href: "https://hermes-agent.nousresearch.com/docs/" }, + ], + value: "", + }, + ], + sections: [ + { + id: "overview", + title: "자기개선형 에이전트", + body: [ + "README는 Hermes Agent를 Nous Research가 만든 self-improving AI agent라고 소개한다. 핵심은 대화 인터페이스 하나가 아니라, 경험에서 스킬을 만들고, 사용 중 스킬을 개선하고, 과거 대화와 사용자 모델을 다시 찾는 닫힌 학습 루프다.", + "공식 설명은 'The agent that grows with you'에 가깝다. 사용자는 터미널에서만 붙는 것이 아니라 Telegram, Discord, Slack, WhatsApp, Signal, CLI 같은 표면을 같은 gateway로 이어 쓸 수 있다.", + ], + links: [ + { + description: "프로젝트 README와 릴리스 정보를 확인할 수 있는 외부 저장소다.", + href: "https://github.com/NousResearch/hermes-agent", + label: "GitHub 저장소", + variant: "external", + }, + { + description: "설치, provider, gateway 문서를 확인할 수 있는 공식 문서다.", + href: "https://hermes-agent.nousresearch.com/docs/", + label: "공식 문서", + variant: "external", + }, + ], + }, + { + id: "surfaces", + title: "실행 표면", + body: [ + "README의 기능 표는 multiline 편집과 slash-command autocomplete가 있는 터미널 TUI, 여러 메신저를 잇는 gateway, scheduled automations, subagent 병렬화, RPC 도구 호출을 함께 제시한다.", + "터미널 백엔드는 local, Docker, SSH, Singularity, Modal, Daytona를 언급한다. 프로젝트가 노트북 한 대에 묶이지 않고 VPS, GPU cluster, serverless persistent environment까지 목표로 잡는 이유도 여기 있다.", + ], + table: { + caption: "Hermes Agent 주요 표면", + headers: ["표면", "문서상 역할"], + rows: [ + ["TUI / CLI", "대화, slash command, streaming tool output을 처리한다."], + ["Gateway", "Discord, Telegram, Slack 등 여러 채널을 한 프로세스로 잇는다."], + ["Scheduler", "일일 보고, 백업, 감사 같은 자연어 cron 작업을 실행한다."], + ["Subagents", "격리된 병렬 작업 흐름을 만들고 결과를 모은다."], + ], + }, + }, + { + id: "learning-loop", + title: "기억과 스킬 루프", + body: [ + "README는 agent-curated memory, periodic nudges, autonomous skill creation, FTS5 session search, LLM summarization, Honcho user modeling을 닫힌 루프의 구성 요소로 나열한다.", + "이 구조는 단발 코딩 CLI보다 장기 보조 에이전트에 가깝다. 같은 사용자의 반복 작업, 선호, 프로젝트 규칙을 다음 세션에 다시 끌어오는 것을 제품의 핵심 가치로 둔다.", + ], + cards: [ + { + body: "복잡한 작업 뒤 재사용 가능한 skill을 만들고, 사용 중에도 다듬는 흐름이다.", + href: "#learning-loop", + linkLabel: "루프 보기", + title: "Skill creation", + }, + { + body: "과거 세션 검색과 요약으로 장기 맥락을 복원하는 계층이다.", + href: "#learning-loop", + linkLabel: "루프 보기", + title: "Session recall", + }, + ], + }, + { + id: "release", + title: "최근 릴리스", + body: [ + "GitHub 릴리스 기준 최신 버전은 v2026.7.1이며, 릴리스 이름은 Hermes Agent v0.18.0 (2026.7.1) — The Judgment Release다. 공개일은 2026-07-01로 기록되어 있다.", + "GitHub Search API에서 topic:ai-agent와 2026-06 이후 push 조건으로 조회했을 때 Hermes Agent는 높은 star count와 최근 activity를 동시에 보이는 저장소로 잡혔다. 이 문서가 추가된 이유는 단순 인기보다, 장기 기억형 에이전트와 예약 자동화라는 이 위키의 기존 관심사와 직접 맞닿기 때문이다.", + ], + }, + ], +} satisfies WikiArticle; diff --git a/src/wiki/lazycodexArticle.ts b/src/wiki/lazycodexArticle.ts index f3ab842..1870c01 100644 --- a/src/wiki/lazycodexArticle.ts +++ b/src/wiki/lazycodexArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const lazycodexArticle = { slug: "code-yeongyu/lazycodex", title: "lazycodex", - modifiedAt: "2026-06-04T15:20:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, { label: "Codex 확장", path: "/w/category/codex-extension" }, @@ -37,6 +37,11 @@ export const lazycodexArticle = { value: "lazycodex.ai", valueHref: "https://lazycodex.ai", }, + { + label: "Latest release", + value: "v4.15.1", + valueHref: "https://github.com/code-yeongyu/lazycodex/releases/tag/v4.15.1", + }, { label: "Related project", value: "oh-my-openagent", @@ -92,6 +97,7 @@ export const lazycodexArticle = { body: [ "설치 표면은 매우 좁다. README는 전역 설치나 npm i -g 대신 npx lazycodex-ai install 한 줄을 기본 경로로 제시한다. 완전 자율형, no-TUI 설정이 필요하면 --no-tui와 --codex-autonomous 옵션을 붙이는 흐름도 함께 안내한다.", "bin/lazycodex-ai.js는 자체 구현을 오래 끌고 가지 않는다. install 명령을 받으면 npx --yes --package oh-my-openagent omo install --platform=codex 형태로 넘기고, 그 외 인자는 omo 명령으로 전달하는 얇은 shim에 가깝다.", + "2026-07-01 v4.15.1 릴리스는 oh-my-openagent v4.15.1에서 Codex Light marketplace payload를 동기화한 배포로 기록되어 있다.", ], table: { caption: "LazyCodex 핵심 명령", diff --git a/src/wiki/ohMyClaudecodeArticle.ts b/src/wiki/ohMyClaudecodeArticle.ts index b942f39..74dc28a 100644 --- a/src/wiki/ohMyClaudecodeArticle.ts +++ b/src/wiki/ohMyClaudecodeArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const ohMyClaudecodeArticle = { slug: "Yeachan-Heo/oh-my-claudecode", title: "oh-my-claudecode", - modifiedAt: "2026-06-05T02:31:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, { label: "Claude Code 확장", path: "/w/category/claude-code-extension" }, @@ -37,6 +37,11 @@ export const ohMyClaudecodeArticle = { value: "oh-my-claudecode website", valueHref: "https://yeachan-heo.github.io/oh-my-claudecode-website", }, + { + label: "Latest release", + value: "v4.15.2", + valueHref: "https://github.com/Yeachan-Heo/oh-my-claudecode/releases/tag/v4.15.2", + }, { label: "Links", value: "" }, ], sections: [ @@ -92,6 +97,7 @@ export const ohMyClaudecodeArticle = { body: [ "README.ko는 v4.1.7부터 Team이 OMC의 표준 오케스트레이션 방식이라고 설명한다. 기본 파이프라인은 team-plan, team-prd, team-exec, team-verify, team-fix loop 순서로 제시된다.", "v4.4.0 이후 Codex와 Gemini 작업은 MCP 서버 대신 tmux CLI worker로 실행하는 방향을 안내한다. omc team N:codex, omc team N:gemini, omc team N:claude 표면이 있고, /ccg는 Codex와 Gemini 조언을 Claude가 통합하는 shortcut이다.", + "2026-07-03 v4.15.2 릴리스는 기본 HUD 정확도, hook timeout 안정성, Windows/path 처리, workflow guardrail 수정을 중심으로 한 패치다.", ], table: { caption: "oh-my-claudecode 실행 표면", diff --git a/src/wiki/ohMyCodexArticle.ts b/src/wiki/ohMyCodexArticle.ts index d6e8113..bb301fe 100644 --- a/src/wiki/ohMyCodexArticle.ts +++ b/src/wiki/ohMyCodexArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const ohMyCodexArticle = { slug: "Yeachan-Heo/oh-my-codex", title: "oh-my-codex", - modifiedAt: "2026-06-05T02:32:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, { label: "Codex 확장", path: "/w/category/codex-extension" }, @@ -37,6 +37,11 @@ export const ohMyCodexArticle = { value: "oh-my-codex website", valueHref: "https://yeachan-heo.github.io/oh-my-codex-website/", }, + { + label: "Latest release", + value: "v0.18.17", + valueHref: "https://github.com/Yeachan-Heo/oh-my-codex/releases/tag/v0.18.17", + }, { label: "Links", value: "" }, ], sections: [ @@ -46,7 +51,7 @@ export const ohMyCodexArticle = { body: [ "README는 Yeachan-Heo/oh-my-codex 저장소와 oh-my-codex npm 패키지를 공식 OMX 프로젝트와 설치 대상이라고 못박는다. 이 프로젝트는 OpenAI Codex CLI를 대체하지 않고, Codex를 실행 엔진으로 둔 워크플로우 계층이다.", "OMX가 더해 주는 것은 강한 기본 세션, 일관된 workflow, role keyword와 skill 재사용, 그리고 .omx/ 아래의 plan, log, memory, runtime state 저장이다. README는 plain Codex만 원한다면 OMX가 필요 없을 수 있다고도 말한다.", - "릴리스 흐름이 빠른 편이라, README와 변경 로그는 v0.17.0 같은 버전 표기로 명령 표면과 기본값이 갱신된 시점을 구분한다.", + "릴리스 흐름이 빠른 편이라, README와 변경 로그는 v0.17.0 이후에도 버전 표기로 명령 표면과 기본값이 갱신된 시점을 구분한다. 2026-07-01 v0.18.17은 Ultragoal, Ralplan, planning-gate, Team/MSYS, Windows psmux 쪽 런타임 신뢰성 보강을 패치 릴리스 범위로 잡았다.", ], subsections: [ { diff --git a/src/wiki/ohMyOpenagentArticle.ts b/src/wiki/ohMyOpenagentArticle.ts index c78b1fd..9c7042d 100644 --- a/src/wiki/ohMyOpenagentArticle.ts +++ b/src/wiki/ohMyOpenagentArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const ohMyOpenagentArticle = { slug: "code-yeongyu/oh-my-openagent", title: "oh-my-openagent", - modifiedAt: "2026-06-05T02:33:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "AI 에이전트 도구", path: "/w/category/ai-agent-tool" }, { label: "OpenCode 플러그인", path: "/w/category/opencode-plugin" }, @@ -37,6 +37,11 @@ export const ohMyOpenagentArticle = { value: "omo.vibetip.help/docs", valueHref: "https://omo.vibetip.help/docs", }, + { + label: "Latest release", + value: "v4.15.1", + valueHref: "https://github.com/code-yeongyu/oh-my-openagent/releases/tag/v4.15.1", + }, { label: "Links", value: "" }, ], sections: [ @@ -67,6 +72,7 @@ export const ohMyOpenagentArticle = { title: "설치 가이드 흐름", body: [ "README는 사람에게 설치 명령을 직접 외우게 하기보다 LLM 에이전트에게 installation guide URL을 붙여넣으라고 안내한다. LLM 에이전트용으로는 같은 guide를 curl로 받아 그대로 따르는 흐름도 적혀 있다.", + "2026-07-01 v4.15.1 릴리스는 LazyCodex install repair와 cleaner Codex skill discovery를 중심으로 한다. 깨진 marketplace-managed install은 조용히 건너뛰지 않고 repair 동작을 명시하고, legacy ultraresearch 노출을 줄여 ulw-research를 canonical research entrypoint로 남긴다.", ], subsections: [ { diff --git a/src/wiki/patinaArticle.ts b/src/wiki/patinaArticle.ts index ac3f5f6..db57598 100644 --- a/src/wiki/patinaArticle.ts +++ b/src/wiki/patinaArticle.ts @@ -3,7 +3,7 @@ import type { WikiArticle } from "./types"; export const patinaArticle = { slug: "devswha/patina", title: "patina", - modifiedAt: "2026-06-04T10:00:00.000Z", + modifiedAt: "2026-07-04T01:02:58.000Z", categories: [ { label: "문서화", path: "/w/category/documentation" }, { label: "AI 글쓰기 도구", path: "/w/category/ai-writing-tool" }, @@ -33,6 +33,11 @@ export const patinaArticle = { value: "patina.vibetip.help", valueHref: "https://patina.vibetip.help", }, + { + label: "Latest release", + value: "v6.1.0 — persona hardening", + valueHref: "https://github.com/devswha/patina/releases/tag/v6.1.0", + }, { label: "Links", links: [ @@ -96,6 +101,7 @@ export const patinaArticle = { "프로젝트는 패턴 팩, 프로필, 스코어링, 스타일로메트리, 재작성 백엔드, 벤치마크 문서로 나뉜다. 패턴 팩은 언어 접두사로 자동 탐색되며, 프로필은 blog, academic, technical, release-notes, namuwiki처럼 출력 톤을 조절한다.", "namuwiki 프로필은 한국어 전용 위키풍 설명을 만들기 위한 license-safe 가이드다. 실제 나무위키 문장을 복사하는 것이 아니라, 표제어 정의, 짧은 사족, 산문과 목록의 혼합 같은 문체 방향만 잡는다.", "PATTERNS.md는 현재 4개 언어에 걸친 168개 pattern entries를 문서화한다. 다만 한국어 README 일부 표는 160개 표기를 남기고 있어, 패턴 수를 인용할 때는 PATTERNS.md와 릴리스 시점을 같이 확인하는 편이 안전하다.", + "2026-07-03 v6.1.0 릴리스는 persona safety gate, ko/en/zh/ja multilingual persona, custom voice authoring, register/profile precedence, ARCHITECTURE와 WORKFLOW 문서를 묶어 persona hardening으로 정리했다.", ], }, {