Imported from psmon/AgentZeroLite (
.claude/skills/harness-view-build/SKILL.md). Install upstream withnpx skills add psmon/AgentZeroLite --skill harness-view-build. Copyright stays with the author.
harness-view-build โ ๋ถ๋ถ ์ ๋ฐ์ดํธ ๋น๋ ์คํฌ (AgentZero Dev ๋ณํ)
์ด ์คํฌ์ ๋ค ๊ฐ์ง ์ฑ ์์ ๊ฐ์ง๋ค. ์ฌ์ฉ์ ๋ฐํ์์ ๋ชจ๋๋ฅผ ํ๋ณํ ๋ค, BUILDER/CREATOR ๋ ํด๋น reference ํ์ผ์ ์ฆ์ Read ๋๊ตฌ๋ก ์ฝ์ด ๊ทธ ์์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด๊ณ , DEV SERVER / PDSA UPDATE ๋ ๋ณธ ํ์ผ ํ๋จ ์ธ๋ผ์ธ ์ ์ฐจ๋ฅผ ๋ฐ๋ก ์ํํ๋ค.
์ด ๋ณํ์ ์ ์ฒด์ฑ ๋ณธ ์คํฌ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ํ๋ค์ค ๋ทฐ์ด ๋น๋ ์คํฌ์ ๋ฒ ์ด์ค๋ก ๊ฐ์ ธ์ AgentZeroLite ์ ๋ง๊ฒ ์ ์๋ ๋ฒ์ ์ด๋ค. ํต์ฌ ์ฐจ์ด:
- ์์น:
harness-view/โHome/harness-view/(Home ํ์์ ๋ )- ์ฌ์ดํธ ์ ๋ชฉ:
AgentZero Dev(sidebar logo + page title)- ์ธ์ด: ์ฐ์ถ๋ฌผ ๋ชจ๋ ์๋ฌธ ์ ์ฉ (UI ๋ผ๋ฒจ, ๋น ์ํ, PDSA ๋ณธ๋ฌธ ๋ฑ). ์ฌ์ฉ์ ๋ํ๋ ํ๊ตญ์ด.
- GitHub Pages ๋ฐฐํฌ =
.github/workflows/pages.ymlโdoc-v*ํ๊ทธ ํธ์๋ก๋ง ๋ฐ๋ (2026-04-28 ์ดํ tag-gated). ์ผ๋ฐ main push ๋ Pages ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์์ผ๋ฏ๋ก harness/logs ๊ฐ ์ฆ๊ฒ ๋์ด๋๋ CI ๊ฐ ๋์ง ์๋๋ค. CI ๋node Home/harness-view/scripts/build-indexes.js๋ก ๋งค๋ํ์คํธ๋ง ๊ฐฑ์ ํ ๋ค repo ์ ์ฒด (path: .) ๋ฅผ artifact ๋ก ์ ๋ก๋. ๋ทฐ์ด๋harness/,Docs/์ upstream MD ๋ฅผ../../<rel>๋ก ์ง์ fetch โ ๋จ์ผ ์ง์ค ์์ฒ์ด๊ณ ๋ฏธ๋ฌ ์์ (2026-05-04 ์ด์ ์Home/_resources/๋ก ๋ณต์ ํ์ผ๋ dual-management ์ด์๋ก ํ๊ธฐ). ์ด์ ๊ฒ์ ๋ช ๋ น์ ๋ณธ ํ์ผ ํ๋จ "Publish โ doc version tag bump" ์น์ ์ฐธ์กฐ..nojekyllํ์ โ repo root +Home/์์ชฝ์ ๋๋ค (Jekyll ์ด underscore-prefix ๋๋ ํ ๋ฆฌ๋ฅผ ์๋ ์ ์ธํ์ง ๋ชปํ๋๋ก).- ์ธ๋ถ ์ ๋๊ฒฝ๋ก ์ฐธ์กฐ ์ํฐํจํด ๊ธ์ง โ ๋ชจ๋ ๋ฐ์ดํฐ ์์ค๋ in-repo.
๋ฐ์ดํฐ ์์ค ๋งคํ (canonical for this project)
| ํ๋ฉด ์์ญ | ์์ค ๊ฒฝ๋ก | ๋น๊ณ |
|---|---|---|
| Dashboard "Build Log" ์น์ | harness/docs/*.md |
semver-desc ์ ๋ ฌ (vN.N.N ์นด๋). UI ๋ผ๋ฒจ (EN ๊ธฐ๋ณธ / KO ํ ๊ธ) ์ dashboard.js ์ T dict ์ ์์. |
| Dashboard "Recent Updates" | Home/harness-view/data/news.json |
์ ์ ยท ์ด์ค์ธ์ด. headline / narrative / highlights[].label,text / prompts[].tag,text ๋ { en, ko } ๊ฐ์ฒด (2026-05-05~). ์๋ ๊ฐฑ์ ์ ๋ ์ธ์ด ๋ชจ๋ ์ฑ์ธ ๊ฒ. |
| Dashboard "PDSA Learning" | Home/harness-view/data/pdsa-insight.json |
์ ์ ยท ์ด์ค์ธ์ด. sources[].title / tried[] / solved[] / remaining[] / learned.lead / learned.body ๋ { en, ko } ๊ฐ์ฒด. PDSA UPDATE ๋ชจ๋๋ก operator ๊ฐ ๋ช
์ ํธ์ถํ ๋๋ง ์ฌ์์ฑ. publish ์ ์๋ ๊ฐฑ์ ๊ธ์ง โ ์๋ฏธ ์๋ ํ๋(๋ฏธ์
๋ฌถ์ ๋ง๊ฐ / ๋ฆด๋ฆฌ์ฆ ํต๊ณผ / ํฐ ์ธ์ฌ์ดํธ) ์ด ์์๋ค๊ณ operator ๊ฐ ํ๋จํ ๋๋ง ํธ๋ฆฌ๊ฑฐ. |
| Dashboard "Contributors" | git log on harness/, Docs/, Home/harness-view/ (union, dedup by SHA) |
์๋. ๋งค build ๋ง๋ค ์ฌ๊ณ์ฐ โ CI ๊ฐ doc-v* push ๋ง๋ค build ๋ฅผ ๋ค์ ๋๋ฆฌ๋ฏ๋ก publish ์ ํญ์ ์ต์ . ๋ณ๋ ์์์
๋ถํ์. ๋ฐ์ดํฐ (์ด๋ฆ/SHA) ๋ ์ธ์ด ์ค๋ฆฝ โ ์ฃผ๋ณ ๋ผ๋ฒจ๋ง dashboard.js ์ T dict ์์ EN/KO ์ ํ. |
| Workflow | Home/harness-view/data/workflow-graph.json |
์ ์ . mermaid ๊ทธ๋ํ 7๊ฐ (์คํฌ ์์คํ ๋ ธ๋๋ ์๋์ ์ ์ธ) |
| Roles | harness/agents/*.md |
๋์ . ์์ธ ํ์ด์ง์ spec card |
| Skills | Docs/harness/template/<skill>/SKILL.md |
in-repo ์ค๋ ์ท. SKILL.md ๋ณธ๋ฌธ์ ์ธ๋ฑ์ค์ ์ธ๋ผ์ธ ์๋ฒ ๋. ์ฌ์ฉ์ ์๋ ๋๊ธฐํ |
| Knowledge โ Expert | harness/knowledge/**/*.md (์ฌ๊ท) |
๋์ |
| Knowledge โ Tech / Domain (TECH-DOC) | Docs/**/*.md |
๋์ ํธ๋ฆฌ |
| Activity Log | harness/logs/<subfolder>/*.md |
๋์ . subfolder ์ด๋ฆ = ์นดํ ๊ณ ๋ฆฌ ํ๊ทธ (qa/ba/code/cto ๊ฐ์ hardcoded ์์) |
| Product Design | Docs/design/*.pen |
๋์ . parsePen + renderFrame |
| Product Intro | Home/index.html |
iframe ์๋ฒ ๋ |
๋ชจ๋ ํ๋ณ
| ์ฌ์ฉ์ ์๋ | ๋ชจ๋ | reference |
|---|---|---|
| ์ .md ํ์ผ ์ถ๊ฐ ํ ๋ทฐ์ด์ ๋ฐ์ | BUILDER | references/builder.md |
| ์ด์ ์ฌ์ดํธ ๊ฐฑ์ / ๋งค๋ํ์คํธ ์ฌ๋น๋ | BUILDER | references/builder.md |
| ์ ๋ฉ๋ด / ํ๋ฉด ๋ง๋ค๊ธฐ | CREATOR | references/creator.md |
| ๋ทฐ์ด ์ปดํฌ๋ํธ / ๋์์ธ ๊ฐ์ | CREATOR | references/creator.md |
| ํ์ฌ ๋ ๋ / MD ๋ทฐ์ด / spec-card ์์ | CREATOR | references/creator.md |
| ๋ฒ๊ทธ ์์ (์ฝ๋ ๋ณ๊ฒฝ ํ์) | CREATOR | references/creator.md |
| ๋ก์ปฌ dev ์๋ฒ ๊ธฐ๋ (Playwright ๊ฒ์ฆ ์ค๋น) | DEV SERVER | ๋ณธ ํ์ผ ์๋ ์ ์ฐจ |
| ๋์๋ณด๋ PDSA ์น์ ์ต์ ํ (๋ก๊ทธ 5๊ฐ ์ฌ๋ถ์) | PDSA UPDATE | ๋ณธ ํ์ผ ์๋ ์ ์ฐจ |
| ์ปจํ ์ธ ์ ์ฝ๋ ๋ ๋ค ๋ณ๊ฒฝ ํ์ | CREATOR โ BUILDER ์์ฐจ |
ํ๋ณ์ด ๋ชจํธํ๋ฉด ์ฌ์ฉ์์๊ฒ ํ ์ค ํ์ธ.
Data contracts (๋ค๋ฅธ ์คํฌ์ด ๋ด์ผ ํ ํ์ผ)
๋ทฐ์ด ์ธ๋ฑ์ (Home/harness-view/scripts/build-indexes.js) ๊ฐ ์ด๋ค ํ์ผ๋ช
ยท
frontmatter ๋ชจ์๋ง ๋ฐ์๋ค์ด๋์ง์ ๋จ์ผ ์ง์ค ์์ฒ:
references/data-contracts.md
์ด ์คํฌ ์ธ๋ถ์ ์ํฌํ๋ก์ฐ (ํนํ harness-kakashi-creator ์ tamer
mission dispatch) ๊ฐ harness/missions/ ยท harness/logs/mission-records/
์ ํ์ผ์ ์ธ ๋, ์ด contract ๋ฅผ ๋จผ์ ํ์ธํด์ผ ํ๋ค. ๊ฐ์ฅ ์์ฃผ ์ด๊ธฐ๋
๊ท์น์ mission record ํ์ผ๋ช
์ด ^M\d+\b ๋ก ์์ํด์ผ ํ๋ค๋ ๊ฒ โ
timestamp prefix ๋ฅผ ๋ถ์ด๋ฉด ์ธ๋ฑ์๊ฐ ๋งค์นญ์ ์คํจํด์ Missions ์นด๋์
recordFile ์ด null ๋ก ๋จ๋๋ค.
harness/knowledge/tamer/missions-protocol.md ์ harness/agents/tamer.md ์
๊ด๋ จ ๋จ๊ณ๊ฐ ์ด ํ์ผ์ backlink ํ๋ค.
DEV SERVER ๋ชจ๋ โ ๋ก์ปฌ dev ์๋ฒ ๊ธฐ๋ (์ธ๋ผ์ธ ์ ์ฐจ)
์ฌ์ฉ์๊ฐ "ํ๋ค์ค๋ทฐ ๋ฐ๋ธ์๋ฒ ๊ตฌ๋ํด" ๋ฑ์ ๋งํ๋ฉด, reference ํ์ผ ์ฝ์ง ๋ง๊ณ ์ฆ์ ์๋ ์ ์ฐจ ์ํ.
์ ์ฐจ
-
Bash ๋ก background ์คํ (server ๋ ์์ฃผ ํ๋ก์ธ์ค๋ผ
run_in_background: trueํ์)node Home/harness-view/scripts/serve.js- ํฌํธ ์ง์ :
node Home/harness-view/scripts/serve.js 9000 - ๋ฉํ ์๋๋น๋ skip:
node Home/harness-view/scripts/serve.js --no-build
- ํฌํธ ์ง์ :
-
Preflight ๋ก๊ทธ ํด์ โ serve.js ๋ ๊ธฐ๋ ์ ๋ฉํ๋ฐ์ดํฐ staleness ๋ฅผ ์๋ ํ๋จ:
[preflight] rebuild โ ...: ์์ค๊ฐ ์ต์ โbuild-indexes.js์๋ ์คํ ํ ๊ธฐ๋[preflight] up-to-date โ ...: ์ด๋ฏธ ์ต์ โ skip ํ๊ณ ๋ฐ๋ก ๊ธฐ๋[preflight] skipped โ --no-build flag: ์ฌ์ฉ์๊ฐ ๋ช ์ skip
-
๊ธฐ๋ ํ์ธ โ Bash ์ถ๋ ฅ์ ๋ค์์ด ๋ณด์ด๋ฉด OK
AgentZero Dev Harness โ local server (no auth) URL : http://127.0.0.1:8765/Home/harness-view/ Screenshots: tmp/playwright/ (gitignored) Build log : Home/harness-view/.meta-build.log (gitignored) -
์ด๋ฏธ ๋ ์์ผ๋ฉด (
EADDRINUSE) โ ์๋ก ๋์ฐ์ง ๋ง๊ณ URL ๋ง ์๋ด. -
์ฌ์ฉ์์๊ฒ ํ ์ค ๋ณด๊ณ : URL + preflight ๊ฒฐ๊ณผ (rebuild / up-to-date) + ์ข ๋ฃ๋ฒ.
๋ฉํ๋ฐ์ดํฐ ์ถ์ ์ฒด๊ณ
Home/harness-view/indexes/_meta.json: ๋ง์ง๋ง ๋น๋ ์๊ฐยทdurationยทtriggerยท์ค์บ ๊ฒฝ๋ก ์ค๋ ์ท.Home/harness-view/.meta-build.log: ๋น๋ ์ด๋ฒคํธ append-only ๋ก๊ทธ (gitignored).- Staleness ํ์ :
_meta.json.builtAtMsvs ์ค์บ ๊ฒฝ๋ก๋ค ์ค ์ต๋ mtime. ์์ค๊ฐ ์ต์ ์ด๋ฉด ์ฌ๋น๋. - Trigger ๊ฐ :
manual(CLI ์ง์ ) /serve(serve.js preflight) /BUILD_TRIGGERenv.
Playwright ๊ฒ์ฆ ์ฐ๊ณ
DEV SERVER ๋ชจ๋๋ก ์๋ฒ ๊ธฐ๋ ํ, ์ฌ์ฉ์๊ฐ Playwright ๊ฒ์ฆ ์์ฒญ ์:
mcp__playwright__browser_navigateโhttp://127.0.0.1:8765/Home/harness-view/#<menu>mcp__playwright__browser_take_screenshot filename="tmp/playwright/<name>.png"(gitignored ๊ฒฝ๋ก)- ์ด์ URL (GitHub Pages) ์ ์ด ์คํฌ์์ ์ง์ ๊ฒ์ฆ ์ ํจ โ push ํ ์ฌ์ฉ์๊ฐ ํ์ธ.
์ Node ์๋ฒ์ธ๊ฐ
py -m http.server๋ Python ํ๊ฒฝ ์์กด. Node ๋ repo ๋ด ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ค๋ ์ด๋ฏธ ์ฌ์ฉ.serve.js๋127.0.0.1๋ก๋ง ๋ฐ์ธ๋ฉ + ์ธ์ฆ ์์ = ๋ก์ปฌ ์ ์ฉ ์์ .- Cache-Control: no-store ๋ก ๊ฐ๋ฐ ์ค ์บ์ ์ด์ ์์.
PDSA UPDATE ๋ชจ๋ โ ์ต๊ทผ ๋ก๊ทธ ๋ถ์โPDSA ์น์ ๊ฐฑ์ (์ธ๋ผ์ธ ์ ์ฐจ)
์ฌ์ฉ์๊ฐ "ํ๋ค์ค๋ทฐ PDSA ์
๋ฐ์ดํธํด" ๋ฑ์ ๋งํ๋ฉด, reference ํ์ผ ์ฝ์ง ๋ง๊ณ ์ฆ์ ์๋ ์ ์ฐจ ์ํ.
๋์๋ณด๋์ PDSA ํ์ต ์น์
์ด ์ฝ๋ Home/harness-view/data/pdsa-insight.json ์ ์ฌ์์ฑํ๋ค.
์ ์ฐจ
-
๋์ ๋ก๊ทธ ์ ์ โ
Home/harness-view/indexes/harness-logs.json์items์์:date๊ฐ ์ค๋๋ถํฐ 14์ผ ๋ด- ์ต์ ์(์ด๋ฏธ ์ ๋ ฌ๋จ) ์์ 5๊ฑด
- ์นดํ ๊ณ ๋ฆฌ๋ ํผํฉ ํ์ฉ (subfolder ์ด๋ฆ์ด ๊ทธ๋๋ก ์นดํ ๊ณ ๋ฆฌ)
-
๊ฐ ๋ก๊ทธ ํ์ผ ์ฝ๊ธฐ โ
Read harness/logs/<category>/<file>- ์๋ถ๋ถ 40~80์ค ์ ๋๋ฉด ์ถฉ๋ถ.
-
PDSA 4๊ด์ ์ผ๋ก ํฉ์ฑ โ EN/KO ๋ ์ธ์ด ๋์ ์ฐ์ถ (๋์๋ณด๋๋ EN ๊ธฐ๋ณธ + KO ํ ๊ธ, ๋ ์ธ์ด ๋ค ๋น์ด ์์ผ๋ฉด ์ ๋จ). ๊ธ๋ก๋ฒ audience ๊ธฐ์ค์ผ๋ก EN ์ ๋จผ์ ์ฐ๊ณ , ๊ฐ์ ์๋ฏธ์ KO ๋ฅผ ํ ์ค์ฉ ์ง์ง์ด ์์ฑ:
- tried (Plan + Do) : ๋ฌด์์ ์๋ํ๋. 3~5 ํญ๋ชฉ, ๊ฐ ํญ๋ชฉ
{ en, ko }. - solved : ์๋ฃ/ํ์ ๋ ๊ฒ. 2~4 ํญ๋ชฉ, ๊ฐ ํญ๋ชฉ
{ en, ko }. - remaining : ๋ฏธํด๊ฒฐ/์ฐจ๋จ/๋ค์ ์ฌ์ดํด. 2~4 ํญ๋ชฉ, ๊ฐ ํญ๋ชฉ
{ en, ko }. - learned (Study + Act) : ๊ฐ์ฅ ์ค์. ๋ฐ๋ณต๋ Fail ยท ์ฐ์ฐํ ๋ฐ๊ฒฌ ยท ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ฆฌ๋ฏธํฐ๋ธ.
lead: ํ ๋ฌธ์ฅ ํต์ฌ ํต์ฐฐ ({ en, ko })body: 2~4๋ฌธ์ฅ ์์ธ ๊ทผ๊ฑฐ + ๋ค์ ์ก์ ({ en, ko })
- tried (Plan + Do) : ๋ฌด์์ ์๋ํ๋. 3~5 ํญ๋ชฉ, ๊ฐ ํญ๋ชฉ
-
Home/harness-view/data/pdsa-insight.json๋ฎ์ด์ฐ๊ธฐ (์ด์ค์ธ์ด ์คํค๋ง):{ "analyzedAt": "YYYY-MM-DD", "windowDays": 14, "sources": [ { "date": "...", "time": "...", "category": "<subfolder>", "file": "harness/logs/<subfolder>/...md", "title": { "en": "...", "ko": "..." } } ], "tried": [{ "en": "...", "ko": "..." }], "solved": [{ "en": "...", "ko": "..." }], "remaining": [{ "en": "...", "ko": "..." }], "learned": { "lead": { "en": "...", "ko": "..." }, "body": { "en": "...", "ko": "..." } } }๋ ๊ฑฐ์ (string-only) ํญ๋ชฉ๋ ๋ ๋ ์
t()๊ฐ ๊ทธ๋๋ก ํด๋ฐฑํ๋ฏ๋ก ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ๋ฅ โ ๋จ, ์๋ก ์์ฑํ๋ PDSA ๋ ํญ์ ๋ ์ธ์ด๋ฅผ ์ฑ์ธ ๊ฒ. -
์ธ๋ฑ์ค ์ฌ๋น๋ ๋ถํ์ โ
data/*.json์ ๋งค๋ํ์คํธ ๋์ ์๋. -
์ฌ์ฉ์ ๋ณด๊ณ โ ๋ถ์๋ ๋ก๊ทธ 5๊ฑด + ํต์ฌ ํ์ต ๋ฆฌ๋ + ๋ก์ปฌ URL.
์ํ ํจํด
- ๋ชจ๋ ๊ฒฐ์ โ ์ ํ์์ ๋งค์นญ.
- reference ๋ก๋ โ
Read .claude/skills/harness-view-build/references/<mode>.md - ๊ทธ ์์ ์ ์ฐจ ๊ทธ๋๋ก ์ํ.
- ๋ณ๊ฒฝ๋ถ ๋ณด๊ณ โ ๋ณ๊ฒฝ ํ์ผ / URL / ๋น๋ ์ํ.
- git commit / push ๋ ์ฌ์ฉ์ ๋ช
์ ์์ฒญ ์์๋ง โ main ์ผ๋ก์ ์ผ๋ฐ push ๋
๋ ์ด์ Pages ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๋๋ค (harness/logs ์ฆ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ๋ฌด์๋ฏธํ
์ฌ๋ฐฐํฌ ๋ฐฉ์ง). ์ด์ ์ฌ์ดํธ์ ๋ฐ์ํ๋ ค๋ฉด
doc-v*ํ๊ทธ๋ฅผ ํธ์ํด์ผ ํ๋ค. ์์ธํ ๋ช ๋ น์ ๋ณธ ํ์ผ ํ๋จ "Publish โ doc version tag bump" ์น์ ์ฐธ๊ณ .
Publish โ doc version tag bump (์ด์ ๊ฒ์ ๊ฒ์ดํธ)
Pages ๋ฐฐํฌ๋ doc-v* ํ๊ทธ ํธ์๋ก๋ง ๋ฐ๋ํ๋ค (2026-04-28 ์ดํ). ์ผ๋ฐ push ๋
Pages ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์์ผ๋ฏ๋ก harness/logs ๊ฐ ๋์ด๋๋ CI ๊ฐ ๋์ง ์๋๋ค.
ํ์ํ ๋ ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก ๋ฒ์ ์ ์ฌ๋ ค ๊ฒ์ํ๋ค.
Workflow ๋ค์ด์ด๊ทธ๋จ + auto/manual ์์ ฏ ๋งคํธ๋ฆญ์ค:
harness/engine/harness-view-publish.md. ์ด ์คํฌ์ ๊ทธ ์์ง์ interface, ์์ง์ workflow contract โ ๋ ๊ณณ์ด ๋ค๋ฅด๊ฒ ํ๋ฅด๋ฉด ์์ง์ single source of truth ๋ก ๋ณธ๋ค.
๊ฒ์ ๋ช ๋ น (์บ๋ ธ๋์ปฌ)
# 1) ๋ณ๊ฒฝ๋ถ์ด main ์ ๋ชจ๋ commit/push ๋ ์ํ์์
git tag doc-v1.0.0 # ์ doc ๋ฒ์ (์ฑ ๋ฒ์ v* ์๋ ๋ณ๊ฐ namespace)
git push origin doc-v1.0.0 # ํ๊ทธ push โ pages.yml ๋ฐ๋ โ 30~60์ด ํ Pages ๊ฐฑ์
ํ๊ทธ ๋ค์ด๋ฐ: doc-v<major>.<minor>.<patch> (์: doc-v1.0.0, doc-v1.1.0,
doc-v2.0.0). ์ฑ ๋ฆด๋ฆฌ์ค ํ๊ทธ v* (release.yml ๊ฐ ์ฒ๋ฆฌ) ์ ์ถฉ๋ ์์.
ํธ๋ฆฌ๊ฑฐ ํ๋ฆ (CI-time ๋ฏธ๋ฌ ํฌํจ)
git tag doc-v1.0.0 && git push origin doc-v1.0.0
โ pages.yml ํธ๋ฆฌ๊ฑฐ (tags: doc-v*)
โ CI checkout ์ด ํ๊ทธ๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ ํธ๋ฆฌ ํ๋ณด
โ CI: node Home/harness-view/scripts/build-indexes.js
(indexes/*.json + Home/_resources/{Docs,harness} ์๋ก ์์ฑ)
โ CI: actions/upload-pages-artifact path=Home
โ Pages ์ฌ๋ฐฐํฌ (30~60์ด)
Claude ๊ฐ ์ด ์คํฌ์์ ์์์ผ ํ ๊ฒ
- ์ฌ์ฉ์๊ฐ
harness/ยทDocs/์ ํ์ผ์ ์ถ๊ฐ/์์ ํ ๋ค "๋ทฐ์ด์ ๋ฐ์" ๋ฅ๋ก ํธ๋ฆฌ๊ฑฐํ๋ฉด, ๋ก์ปฌ์์ BUILDER ๋๋ฆฌ์ง ์์๋ ๋จ. ๋ค๋ง ์ผ๋ฐ push ๋ง์ผ๋ก๋ ์ด์ ์ฌ์ดํธ๊ฐ ๊ฐฑ์ ๋์ง ์๋๋ค. ์ฌ์ฉ์๊ฐ "Pages ์๋ ์ฌ๋ ค" / "์ด์ ๊ฐฑ์ " / "๋ฐฐํฌ" ๋ฅ๋ฅผ ํจ๊ป ๋งํ ๊ฒฝ์ฐ์๋ง ํ๊ทธ bump ๊น์ง ์๋ดํ๋ค. - ๋ก์ปฌ dev ์๋ฒ๋ก push ์ ์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ถ์ ๋ BUILDER (๋๋ ๊ทธ๋ฅ serve.js) ๋ฅผ ๋๋ฆฌ๋ ๊ฐ์น๋ ๊ทธ๋๋ก โ preview ์๋. ์ด์ ๋ฐ์๊ณผ๋ ๋ฌด๊ด.
- ๋งค๋ํ์คํธ (
Home/harness-view/indexes/*.json) ๋ ์์ง git tracked. CI ๊ฐ ํ๊ทธ ํธ๋ฆฌ์์ ๋ค์ ๋น๋ํด artifact ์ ๋ฎ์ด์ฐ๋ฏ๋ก, git tree ์ ์ธ๋ฑ์ค๊ฐ stale ํด๋ Pages ๋ ํญ์ ์ ์ ํ ์ธ๋ฑ์ค๋ฅผ ์๋น (functional issue ์์). Home/_resources/๋ ์ ๋ git add ํ์ง ๋ง ๊ฒ โ.gitignore:44๊ฐ ๋ง์ง๋ง, ์ค์๋ก unignore ์ถ๊ฐํ๋ฉดa55c781์ 19k ์ค ์ค๋ณต์ด ๋ค์ ๋ค์ด๊ฐ.- escape hatch: GitHub Actions UI ์์
pages.yml์ Run workflow ๋ฒํผ (=workflow_dispatch) ์ผ๋ก ํ๊ทธ ์์ด๋ ๊ฐ์ ์ฌ๋ฐฐํฌ ๊ฐ๋ฅ. ์ผํ์ฑ ํซํฝ์ค์ฉ.
๋ฐฐํฌ ์ ํ๊ณ ์ถ์ ๋
routine ์์
(PDSA ๊ฐฑ์ / ์ ๋ก๊ทธ ์ถ๊ฐ / ์คํฌ ๋๊ธฐํ ๋ฑ) ์ ๊ทธ๋ฅ commit + push ๋ก
๋. Pages ๋ ๊ทธ๋๋ก ๋๋ฉด ๋จ. ๋ค์๋ฒ ์๋ฏธ ์๋ ๋ง์ผ์คํค์์ ํ ๋ฒ์ ๋ฌถ์ด์
doc-v<next> ํ๊ทธ๋ก ๊ฒ์.
์ปจํ ์คํธ โ AgentZero Dev ํ๋ค์ค ๋ทฐ์ด๋
Home/harness-view/ ๋ AgentZeroLite ๋ ํฌ ์์ ๊ฐ๋ฐ์ฉ ์ ์ ์ฌ์ดํธ๋ค.
- ์ค๊ณ First: Pencil(.pen) ๋ก ํ๋ฉด ์ค๊ณ ํ HTML ๋ก ๊ตฌํ
- ๋์์ธ ์๋ณธ:
Docs/design/design.pen(์ฑ๋์์ธ ๋จ์ผ ํ) โ Product Design ๋ฉ๋ด์ ๋ ธ์ถ - ๋ ๊ฐ์ง ๋ฐ์ดํฐ ๋ชจ๋: ๋ฆฌ์์ค์ฐธ๊ณ (๋์ ๋งค๋ํ์คํธ) / ์ฌ์ ๊ตฌํ (์ ์ JSON)
- ์ฐ์ถ๋ฌผ ์ธ์ด: ์๋ฌธ ๊ธฐ๋ณธ + ํ๊ตญ์ด ํ ๊ธ. ๊ธ๋ก๋ฒ audience ๊ฐ 1์์๋ผ EN ์ด
default. KO ๋ ์ด์์/ํ๊ตญ์ด ๋
์ ๊ณต์ ์ฉ์ผ๋ก ๋์ ์ ์ง. ํ ๊ธ์
Home/harness-view/js/components/bilingual.js๊ฐ ๋จ์ผ ์ง์ค ์์ฒ โ ์ ๋ทฐ๊ฐ bilingual ์ ์ง์ํด์ผ ํ๋ฉด ๊ทธ ์ปดํฌ๋ํธ์getLang / makeLangToggle / t๋ฅผ ๊ทธ๋๋ก import.
์์ธํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐยท๋ผ์ฐํ
ยท์ปดํฌ๋ํธ ํจํด์ references/creator.md,
๋น๋ ๋ช
๋ น์ references/builder.md ์ฐธ์กฐ.
์ ์ฝ
- ์ฐ์ถ๋ฌผ ํ
์คํธ๋ EN ๊ธฐ๋ณธ + KO ๋์. ์ฌ์ ๊ตฌํ JSON ์ ์ฌ๋์ด ์ด ํ๋๋
{ en, ko }๊ฐ์ฒด๋ก ๋๊ณ , ๋ทฐ๋bilingual.js#t()๋ก ํด์. ํ๋์ฝ๋ฉ UI ๋ผ๋ฒจ์ ๋ทฐ ํ์ผ ์๋จ์Tdict ์ ๋ชจ์lbl(T.<key>, lang, ...args)๋ก ๋ ๋ โ ์ด๋ ์ธ์ด๊ฐ ๋น ์ง๋ฉด EN ํด๋ฐฑ, EN ๋ ์์ผ๋ฉด ์ฒซ ๊ฐ. (์:Home/harness-view/js/views/dashboard.js์T) - ์ฌ์ฉ์์์ ๋ํ๋ ํ๊ตญ์ด.
- ๋น๋/๋ฒ๋ค ๋๊ตฌ๋ฅผ ์ถ๊ฐํ์ง ์๋๋ค โ vanilla HTML + ES Modules + CDN ๋ง ์ฌ์ฉ.
- GitHub Pages ๋ฐฐํฌ ์๋ํ๋ ์ด ์คํฌ ๋ฒ์ ๋ฐ. ์ฌ์ฉ์๊ฐ ์ง์ commit/push.
- ์ธ๋ถ ์ ๋๊ฒฝ๋ก ์ฐธ์กฐ ๊ธ์ง โ ๋ชจ๋ ๋ฐ์ดํฐ๋ in-repo. ์ธ๋ถ ์์คํ
์์ ๊ฐ์ ธ์ค๋ ์์์ ์ฌ์ฉ์๊ฐ in-repo ์ค๋
์ท์ผ๋ก ๋๊ธฐํํ๋ค (์: Skills โ
Docs/harness/template/).