Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

94 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GitHub Copilot Augment Kit

GitHub Copilot์„ ํŠน์ • ๋ชจ๋ธ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ๊ณ ์„ฑ๋Šฅ ์—”์ง€๋‹ˆ์–ด๋ง ์—์ด์ „ํŠธ๋กœ ํ™•์žฅํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ‚ท์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ ์ง€์นจ ํŒŒ์ผ๊ณผ ์˜จ๋””๋งจ๋“œ ์Šคํ‚ฌ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒ์„ฑ ์—”์ง„์œผ๋กœ ์‚ฌ๊ณ ยท์†Œํ†ตยท์•ˆ์ „ยท์ฝ”๋”ฉยทGitยทํŒฉํŠธ์ฒดํฌยท์›น ์กฐ์‚ฌยท๊ณ ๊ฐ ๋ฐ๋ชจยทPPTX ์ œ์ž‘ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” ๊ฒฐ๋ก ๊ณผ ๋‹ค์Œ ํ–‰๋™์ด ๋จผ์ € ๋ณด์ด๋Š” Straightforward ํ˜•์‹์„ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฆฌํฌ์˜ .github/ ํด๋”๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋‘๋ฉด GitHub Copilot(VS Code Chat์˜ Agent modeยทํ„ฐ๋ฏธ๋„ CLI)์ด ์ง€์นจ๊ณผ ์Šคํ‚ฌ์„ ์ž๋™์œผ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. .vscode/mcp.json๊นŒ์ง€ ์ ์šฉํ•˜๋ฉด VS Code Agent mode์—์„œ๋„ Microsoft Learn MCP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Augment๋Š” GitHub Copilot์˜ ์—ญ๋Ÿ‰์„ ์ง€์นจยท์Šคํ‚ฌยทMCP๋กœ ๋ณด๊ฐ•ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ํŠน์ • ๋ชจ๋ธ๋ช…์€ ์ €์žฅ์†Œ ์ •์ฒด์„ฑ์— ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉฐ, /model ๋˜๋Š” ๋ชจ๋ธ ์„ ํƒ๊ธฐ์—์„œ ํ˜„์žฌ ์ž‘์—…์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ชจ๋ธ๋กœ ์–ธ์ œ๋“  ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ฒ€์ฆ ๊ธฐ์ค€(2026-07-15): ์ด ๋ฒ„์ „์˜ ์ง€์นจยท์Šคํ‚ฌยท์˜ˆ์ œ ์›Œํฌํ”Œ๋กœ๋Š” GPT-5.6 Sol๋กœ ์ตœ์ข… end-to-end ํ…Œ์ŠคํŠธ์™€ ํ’ˆ์งˆ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. GPT-5.6 Sol์€ ๊ณ ์ • ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋” ์ ํ•ฉํ•œ ์ตœ์‹  ๋ชจ๋ธ์ด ์ œ๊ณต๋˜๋ฉด ๊ณ„์† ์žฌ๊ฒ€์ฆยท์—…๋ฐ์ดํŠธํ•˜๋˜, ์ง€์นจยทSkillsยทMCP ์›Œํฌํ”Œ๋กœ๊ฐ€ ํŠน์ • ๋ชจ๋ธ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ์„ค๊ณ„ ์›์น™์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.


์ด๊ฒŒ ๋ญ”๊ฐ€์š”? (3์ค„ ์š”์•ฝ)

  • ๋ฌด์—‡: GitHub Copilot์— ์ž…ํž ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์ง€์นจ + ์ „๋ฌธ ์Šคํ‚ฌ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.
  • ์™œ: ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์ด ๋ฐ”๋€Œ์–ด๋„ Straightforwardํ•œ ๊ฒฐ๊ณผ์™€ ์ผ๊ด€๋œ ํ’ˆ์งˆยท์•ˆ์ „ยท์ „๋ฌธ ์›Œํฌํ”Œ๋กœ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก Copilot์˜ ์‹คํ–‰ ๋ฐฉ์‹์„ ๋ณด๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.
  • ์–ด๋–ป๊ฒŒ: .github/๋ฅผ ๋‘๋ฉด ์ง€์นจยท์Šคํ‚ฌ์ด ์ž๋™ ๋กœ๋“œ๋˜๊ณ , ์ƒ์„ฑ ์Šคํ‚ฌ์€ ์‹ค์‹œ๊ฐ„ ์กฐ์‚ฌยท์Šคํ† ๋ฆฌ๋ผ์ธ ๊ฐ™์€ ์˜๋ฏธ ๊ณ„์ธต๊ณผ Golden Runtimeยทํ†ตํ•ฉ QA Runner ๊ฐ™์€ ๊ฒ€์ฆ ์—”์ง„์„ ์กฐํ•ฉํ•ด ๋ฐ˜๋ณต ๊ตฌํ˜„ ์‹œ๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ๋“ค์–ด์žˆ๋‚˜ โ€” 3๊ฐ€์ง€ ๋นŒ๋”ฉ ๋ธ”๋ก

๋ธ”๋ก ์œ„์น˜ ๋™์ž‘ ๋ฐฉ์‹ ๋‚ด์šฉ
Instructions .github/copilot-instructions.md ๋งค ๋Œ€ํ™” ์ž๋™ ๋กœ๋“œ Straightforward ๊ฒฐ๊ณผ ยท ํŽ˜๋ฅด์†Œ๋‚˜ ยท ์‚ฌ๊ณ  ยท ์†Œํ†ต ยท ์•ˆ์ „ ยท ์ฝ”๋”ฉ ยท Git ยท MS/GitHub ๊ฐ€์น˜ ยท ํŒฉํŠธ์ฒดํฌ ยท ์ถœ์ฒ˜
Skills .github/skills/ ๊ด€๋ จ ์งˆ๋ฌธ ์‹œ ์ž๋™ ํ™œ์„ฑํ™” ๋˜๋Š” /skill-name ๊ฒฐ๋ก  ์šฐ์„  ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ยท ๊ณ ๊ฐยท์‚ฐ์—…๋ณ„ AI/App Platform ๋ฐ๋ชจ ยท ์ ์‘ํ˜• PPTX ์ƒ์„ฑ
MCP (์‚ฌ์ „ ๋ฒˆ๋“ค) .github/mcp.json ยท .vscode/mcp.json clone ํ›„ ์‹ ๋ขฐ/Start ์Šน์ธ ์‹œ ํ™œ์„ฑํ™” Microsoft Learn MCP โ€” ๊ณต์‹ ๋ฌธ์„œยท์ฝ”๋“œ ์ƒ˜ํ”Œ ๊ฒ€์ƒ‰ (Azureยท์‚ฌ๋‚ด MCP๋Š” ์„ ํƒ ์—ฐ๊ฒฐ)

์ƒ์‹œ ์ ์šฉ ์›์น™์€ ๋‹จ์ผ ํŒŒ์ผ๋กœ ํ†ตํ•ฉํ•ด ์ค‘๋ณต์„ ์ค„์ด๊ณ , ์ƒ์„ธ ์›Œํฌํ”Œ๋กœ๋Š” ๊ด€๋ จ ์ž‘์—…์—์„œ๋งŒ ์Šคํ‚ฌ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.


5๋ถ„ ๋น ๋ฅธ ์‹œ์ž‘

1) ๋จผ์ € ์ฒดํ—˜ํ•ด๋ณด๊ธฐ

git clone https://github.com/junwoojeong100/github-copilot-augment-kit.git
cd github-copilot-augment-kit
code .

VS Code์—์„œ Copilot Chat์„ Agent mode๋กœ ์—ด๊ณ  ๋ชจ๋ธ ์„ ํƒ๊ธฐ(Model Picker) ์—์„œ ์ž‘์—…์— ์ ํ•ฉํ•œ ๋ชจ๋ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ๋ฐ”๋€Œ์–ด๋„ ๋™์ผํ•œ ์ง€์นจ๊ณผ ์Šคํ‚ฌ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

2) ๋‚ด ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๊ธฐ

์ „์ฒด ํ‚ท์„ ์ ์šฉํ•˜๋ ค๋ฉด **.github/์™€ .vscode/mcp.json**์„ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์€ ๋Œ€์ƒ ํ”„๋กœ์ ํŠธ์— ๊ฐ™์€ ์ด๋ฆ„์˜ ์„ค์ • ํŒŒ์ผ์ด ์—†์„ ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

cp -R github-copilot-augment-kit/.github /path/to/my-project/
mkdir -p /path/to/my-project/.vscode
cp github-copilot-augment-kit/.vscode/mcp.json /path/to/my-project/.vscode/mcp.json

๊ธฐ์กด ํ”„๋กœ์ ํŠธ ์ฃผ์˜: .github/copilot-instructions.md, .github/mcp.json, .vscode/mcp.json ๋˜๋Š” ๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด ์œ„ ๋ช…๋ น์„ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜์ง€ ๋ง๊ณ  ๋‚ด์šฉ์„ ๊ฒ€ํ† ํ•ด ๋ณ‘ํ•ฉํ•˜์„ธ์š”. repository-wide copilot-instructions.md๋Š” ํ•˜๋‚˜์ง€๋งŒ, .github/instructions/**/*.instructions.md์™€ AGENTS.md๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์–ด๋””์„œ ์“ธ ์ˆ˜ ์žˆ๋‚˜ โ€” VS Code Agent mode & ํ„ฐ๋ฏธ๋„(CLI)

์ด ํ‚ท์€ VS Code Copilot Chat์˜ Agent mode์™€ ํ„ฐ๋ฏธ๋„์šฉ GitHub Copilot CLI ์–‘์ชฝ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Copilot CLI ์„ค์น˜

ํ™œ์„ฑ GitHub Copilot ๊ตฌ๋…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ์„ค์น˜ ๋ฐฉ๋ฒ•์€ GitHub Docs๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ™•์ธํ•˜์„ธ์š”.

# macOS / Linux (Homebrew)
brew install --cask copilot-cli

# ํฌ๋กœ์Šค ํ”Œ๋žซํผ (npm, Node.js 22+)
npm install -g @github/copilot

์„ค์น˜ ํ›„ ๋ฆฌํฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ copilot์„ ์‹คํ–‰ํ•˜๊ณ , ์ฒซ ์‹คํ–‰ ์‹œ /login์œผ๋กœ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น ์„ค๋ช…
/model ์ž‘์—…์— ์‚ฌ์šฉํ•  AI ๋ชจ๋ธ ์„ ํƒ ๋˜๋Š” Auto ์„ค์ •
/diff ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฆฌ๋ทฐ
/plan ๊ตฌํ˜„ ๊ณ„ํš ์ˆ˜๋ฆฝ
/help ์ „์ฒด ๋ช…๋ น ๋ณด๊ธฐ

VS Code Agent mode vs Copilot CLI

ํ•ญ๋ชฉ VS Code Copilot Chat (Agent mode) GitHub Copilot CLI
copilot-instructions.md โœ… ์ž๋™ ์ ์šฉ โœ… ์ž๋™ ์ ์šฉ
skills/ โœ… ์ž๋™ ํ™œ์„ฑํ™” ยท /skill-name โœ… ์ž๋™ ํ™œ์„ฑํ™” ยท /skill-name
Microsoft Learn MCP .vscode/mcp.json์—์„œ Start .github/mcp.json์„ ์‹ ๋ขฐ ํ›„ ์ž๋™ ๋กœ๋“œ
๋ฒ”์šฉ ์ตœ์‹  ์›น ๊ฒ€์ƒ‰ ๊ณต์‹ ๋„๋ฉ”์ธ ๊ฒ€์ƒ‰ โ†’ Copilot web search โ†’ broad Research ๊ณต์‹ ๋„๋ฉ”์ธ ๊ฒ€์ƒ‰ โ†’ ๋‚ด์žฅ web search โ†’ broad Research

์„ค๊ณ„ ์›์น™ โ€” ๋ณ€๋™ ์ง€์‹์€ ์ตœ์†Œํ™”ํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ์ตœ์‹  ํ™•์ธ

์ด ํ‚ท์˜ ์ง€์นจยท์Šคํ‚ฌ์€ ์ฃผ๋กœ ๋ฐฉํ–ฅ(๋ฌด์—‡์„ ๋‹ค๋ฃฐ์ง€), ํ˜•์‹(์–ด๋–ป๊ฒŒ ์ •๋ฆฌํ• ์ง€), ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ช…๊ณผ ์˜ˆ์‹œ๋Š” ํฌํ•จํ•˜์ง€๋งŒ, ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ๊ธฐ๋Šฅ ์ƒํƒœยท๊ฐ€๊ฒฉยท์ˆ˜์น˜ยท๊ทœ์ œ ์กฐํ•ญ์€ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ณ ์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์™œ? ํด๋ผ์šฐ๋“œยทAIยท๊ทœ์ œ๋Š” ๋น ๋ฅด๊ฒŒ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ•์ œ๋œ ๋‚ด์šฉ์€ ๊ธˆ๋ฐฉ ๋‚ก๊ณ  ํ† ํฐ๋งŒ ์†Œ๋ชจํ•ฉ๋‹ˆ๋‹ค.
  • ๋Œ€์‹  ๋‹ต๋ณ€ ์‹œ์ ์— ๊ณต์‹ ๋ฌธ์„œ(learn.microsoft.com ยท docs.github.com)์™€ client๊ฐ€ ์ œ๊ณตํ•˜๋Š” web search/Research ๋„๊ตฌ ๋˜๋Š” ์Šน์ธ๋œ search MCP๋กœ ์ตœ์‹  ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํšจ๊ณผ: ์ตœ์‹ ์„ฑ ์˜ค๋ฅ˜์™€ ์œ ์ง€๋ณด์ˆ˜ ๋ถ€๋‹ด์„ ์ค„์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ ์—ฌ๋ถ€์™€ ์›๋ฌธ ๊ฐฑ์‹  ์‹œ์ ์— ๋”ฐ๋ผ ์ตœ์‹ ์„ฑ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

.github/
โ”œโ”€โ”€ copilot-instructions.md              # ๋‹จ์ผ ํ•ต์‹ฌ ์ง€์นจ (๋งค ๋Œ€ํ™” ์ž๋™ ๋กœ๋“œ)
โ”œโ”€โ”€ mcp.json                             # Microsoft Learn MCP ์‚ฌ์ „ ๋ฒˆ๋“ค (CLI ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ž๋™ ๋กœ๋“œ)
โ”œโ”€โ”€ mcp.enghub.example.json              # Microsoft ์‚ฌ๋‚ด EngHub MCP ์˜ˆ์‹œ (์ž„์ง์›์ด ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉ)
โ””โ”€โ”€ skills/                              # ์ „๋ฌธ ์Šคํ‚ฌ (์˜จ๋””๋งจ๋“œ)
    โ”œโ”€โ”€ web-search/                      # ์‹ค์‹œ๊ฐ„ ์›นยท๊ณต์‹ ๋ฌธ์„œ ๊ฒ€์ƒ‰๊ณผ ๊ตฌ์กฐํ™” ์ˆ˜์ง‘
    โ”‚   โ”œโ”€โ”€ SKILL.md
    โ”‚   โ”œโ”€โ”€ schema/                      # machine-readable Fact Ledger ๊ณ„์•ฝ
    โ”‚   โ”œโ”€โ”€ scripts/                     # Fact Ledger schemaยทsemantic validator
    โ”‚   โ”œโ”€โ”€ examples/                    # Fact Ledger JSON ์˜ˆ์ œ
    โ”‚   โ””โ”€โ”€ tests/                       # ๊ฒ€์ƒ‰ยท์ˆ˜์ง‘ ์ •์ฑ… ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ
    โ”œโ”€โ”€ ai-platform-demo/                # ๊ณ ๊ฐยท์‚ฐ์—…๋ณ„ AIยทApp Platform ๋ฐ๋ชจ(๋‹จ์ผ HTML) ์ƒ์„ฑ๊ธฐ
    โ”‚   โ”œโ”€โ”€ SKILL.md                     # ์‹ค์‹œ๊ฐ„ ๋ฆฌ์„œ์น˜โ†’๋ฉ”๋‰ดยท๋ฐ์ดํ„ฐ ๋งคํ•‘โ†’Overlay ํ•ฉ์„ฑโ†’๊ฒ€์ฆ
    โ”‚   โ”œโ”€โ”€ runtime/                     # ๊ฒ€์ฆ๋œ SPA shellยทCSSยทJavaScript Golden Runtime
    โ”‚   โ”œโ”€โ”€ packs/                       # ๋””์ž์ธยท๊ณ ๊ฐ ์‚ฌ์‹ค์„ ๊ณ ์ •ํ•˜์ง€ ์•Š๋Š” ์‚ฐ์—…๋ณ„ ๊ธฐ๋ณธ ๊ตฌ์กฐ
    โ”‚   โ”œโ”€โ”€ schema/                      # ๊ณ ๊ฐ๋ณ„ demo-spec JSON Schema
    โ”‚   โ”œโ”€โ”€ scripts/                     # Overlay ComposerยทSpec Rendererยท๋ธŒ๋ผ์šฐ์ € ๊ฒ€์ฆ๊ธฐ
    โ”‚   โ”œโ”€โ”€ tests/                       # Compositionยทdesign ๊ณ ์ • ๊ฒ€์‚ฌ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ
    โ”‚   โ”œโ”€โ”€ examples/                    # ์ „์ฒด Specยทcompact Customer Overlay ๊ตฌ์กฐ ์˜ˆ์ œ
    โ”‚   โ””โ”€โ”€ reference/                   # soft-dark ๊ธฐ๋ณธ ๋””์ž์ธยทํ™”๋ฉด archetypeยทRuntimeยท๊ฒ€์ฆ ์ ˆ์ฐจ
    โ””โ”€โ”€ adaptive-presentation/           # ์ฃผ์ œยท์ฒญ์ค‘๋ณ„ PPTX ์ƒ์„ฑ๊ธฐ(์กฐ์‚ฌยท์Šคํ† ๋ฆฌ๋ผ์ธ ์ค‘์‹ฌ)
        โ”œโ”€โ”€ SKILL.md                     # ์กฐ์‚ฌโ†’Deck Specโ†’์ž์œ  ์ œ์ž‘โ†’revision-bound ๊ฒ€์ฆ
        โ”œโ”€โ”€ schema/                      # Deck Specยทtemplateยทfinding ์˜ˆ์™ธยท์‹œ๊ฐ ๊ฒ€ํ†  ๊ณ„์•ฝ
        โ”œโ”€โ”€ reference/                   # ์Šคํ† ๋ฆฌ๋ผ์ธยท์ œ์ž‘ยท๊ฒ€์ฆยทDeck Spec ๊ฐ€์ด๋“œ
        โ”œโ”€โ”€ scripts/                     # template/font adapterยทํ†ตํ•ฉ QAยท๋ Œ๋”๋ง
        โ””โ”€โ”€ tests/                       # ๊ณ„์•ฝยทadapterยท๊ฒ€์ฆ Runner ํšŒ๊ท€/E2E ํ…Œ์ŠคํŠธ
.vscode/
โ””โ”€โ”€ mcp.json                             # VS Code Copilot Agent์šฉ MCP ๋ฒˆ๋“ค

๊ตฌ์„ฑ ์š”์†Œ ์ž์„ธํžˆ

Instructions โ€” copilot-instructions.md (์ž๋™ ์ ์šฉ)

๋งค ๋Œ€ํ™”์— ์ž๋™ ๋กœ๋“œ๋˜๋Š” ๋‹จ์ผ ์ง€์นจ. ์•„๋ž˜ ์›์น™์„ ์••์ถ•ํ•ด ๋‹ด์Šต๋‹ˆ๋‹ค.

์„น์…˜ ํ•ต์‹ฌ
ํŽ˜๋ฅด์†Œ๋‚˜ & ์‚ฌ๊ณ  ์ง€์  ๊ฒธ์†, ๋‹จ๊ณ„์  ์ถ”๋ก , ๋ถˆํ™•์‹ค์„ฑ ํ‘œ๊ธฐ
์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ Straightforward ๊ฒฐ๊ณผ, ๊ฒฐ๋ก  ์šฐ์„ (BLUF), ์ ์‘์  ์†Œํ†ต, ํ•œ๊ตญ์–ด ์กด๋Œ“๋ง+์˜๋ฌธ ๋ณ‘๊ธฐ
์•ˆ์ „ & ์œค๋ฆฌ ํ•ด๋กœ์šด ์ฝ˜ํ…์ธ  ๊ฑฐ๋ถ€, PII/์‹œํฌ๋ฆฟ ๋ณดํ˜ธ
์ฝ”๋”ฉ ๊ฐ€๋…์„ฑยท๋ณด์•ˆ(OWASP) ์šฐ์„ , ์–ธ์–ด๋ณ„ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค
Git ์›Œํฌํ”Œ๋กœ์šฐ ์˜์–ด ์ปค๋ฐ‹, Conventional Commits, PR ๊ทœ์น™
MS/GitHub ๊ฐ€์น˜ ๊ตฌ์ฒด ์„œ๋น„์Šค๋กœ ํ†ต์ œยท๊ฐ€์น˜ ๋งคํ•‘(FoundryยทAgent FrameworkยทGitHub PlatformยทAKSยทACA ๋“ฑ)
ํŒฉํŠธ์ฒดํฌ ยท ์ถœ์ฒ˜ ์ตœ์‹ ยท์ˆ˜์น˜ยท๋…ผ์Ÿยท์˜์‚ฌ๊ฒฐ์ • ํ•ต์‹ฌ ์ฃผ์žฅ๋งŒ ๊ฒ€์ฆ ํ‘œ, ์‹ค์ œ ์ฐธ์กฐํ•œ ์ถœ์ฒ˜ ๋ช…์‹œ

Skills โ€” ์ž์—ฐ์–ด ๋˜๋Š” /skill-name

์Šคํ‚ฌ ํŠธ๋ฆฌ๊ฑฐ ์˜ˆ์‹œ ๊ธฐ๋Šฅ
web-search "์ตœ์‹  ๋ฒ„์ „ ์•Œ๋ ค์ค˜", "๊ณ ๊ฐยท์‚ฐ์—… ๊ธฐ์ดˆ์ž๋ฃŒ ์ˆ˜์ง‘ํ•ด์ค˜" ์ „์šฉ ๊ฒ€์ƒ‰ ๋„๊ตฌยท๊ณต์‹ ๋ฌธ์„œ ๊ฒ€์ƒ‰์œผ๋กœ ์›๋ฌธ์„ ๊ฒ€์ฆํ•˜๊ณ  Markdown/JSON Fact Ledger๋กœ ๊ตฌ์กฐํ™”ํ•ด downstream ์Šคํ‚ฌ์— ์ „๋‹ฌ
ai-platform-demo "โ—‹โ—‹ ๊ณ ๊ฐ AI ๋ฐ๋ชจ", "AKS/ACA App Platform ๋ฐ๋ชจ", "CI/CD ์ž„์› ๋ฐ๋ชจ" ์‹ค์‹œ๊ฐ„ ์กฐ์‚ฌ + focus๋ณ„ ์Šคํ† ๋ฆฌ๋ผ์ธ + ์œ ์—ฐํ•œ route Overlay โ†’ 5~8ํ™”๋ฉด soft-dark ๋‹จ์ผ HTML SaaS ๋ฐ๋ชจ ์ƒ์„ฑยท์ „์ฒด QA
adaptive-presentation "๋ณ‘์› ๊ฒฝ์˜์ง„ ๋Œ€์ƒ ์˜๋ฃŒ AI ์ „๋žต PPT 20์žฅ", "๊ธฐ์ˆ  ๋ฐœํ‘œ์ž๋ฃŒ ๋งŒ๋“ค์–ด์ค˜", "์ œํ’ˆ ์†Œ๊ฐœ ์Šฌ๋ผ์ด๋“œ" ๊ฒฐ๋ก ยท๋‹ค์Œ ํ–‰๋™ ์šฐ์„  ์Šคํ† ๋ฆฌ๋ผ์ธ + ํ•„์š”ํ•œ ์™ธ๋ถ€ ์กฐ์‚ฌ + python-pptx ์ž์œ  ์ œ์ž‘ + ํ†ตํ•ฉ QA Runner โ†’ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ PPTX

AI ยท App Platform ๋ฐ๋ชจ ์Šคํ‚ฌ (ai-platform-demo)

๊ณ ๊ฐ์‚ฌ ์ž„์› ๋ณด๊ณ ยท์˜์—…์šฉ "์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š”" AIยทApp Platform ์šด์˜ ๋ฐ๋ชจ๋ฅผ ๋‹จ์ผ HTML ํ•˜๋‚˜๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. AI ์ค‘์‹ฌ, App PlatformยทCI/CD ์ค‘์‹ฌ, ๊ท ํ˜•ํ˜• focus๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ž„์›์ด ์ง์ ‘ ํด๋ฆญยท์งˆ๋ฌธยท์กฐ์ž‘ํ•˜๋Š” SaaS ์•ฑ์ž…๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ๋งŒ๋“œ๋‚˜ โ€” ์‚ฌ์ด๋“œ๋ฐ” + ์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ + ๋„๋ฉ”์ธ/App Platform ์šด์˜ ์ฝ˜์†” + GitHub ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœยท๋ฐฐํฌ + AI ์—์ด์ „ํŠธ ์ฑ„ํŒ… + ํ†ตํ•ฉ ๊ฑฐ๋ฒ„๋„Œ์Šค ์ค‘ ๋ชฉ์ ์— ๋งž๋Š” 5~8๊ฐœ ํ™”๋ฉด SPA. ๊ณ ๊ฐ ์—…๋ฌด 35๊ฐœ์™€ ํ”Œ๋žซํผ ํ™”๋ฉด 23๊ฐœ๋ฅผ ์„ ํƒํ•˜๊ณ  4~6๊ฐœ ํ•ต์‹ฌ ์‹œ์—ฐ ์žฅ๋ฉด์œผ๋กœ ๋™์„ ์„ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ํ™”๋ฉด์—์„œ ๊ณ ๊ฐ ๊ฒฐ๊ณผยทKPIยทprimary action์ด ๋ณด์ด๊ณ , ์‹ค์‹œ๊ฐ„ KPIยท์ŠคํŠธ๋ฆฌ๋ฐ ์ฐจํŠธยท์›€์ง์ด๋Š” ๊ฐ์ฒดยทํ† ์ŠคํŠธยท๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ํ˜‘์—…๊นŒ์ง€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ• โ€” ์ž์—ฐ์–ด๋กœ ๊ณ ๊ฐ๊ณผ ์‚ฐ์—…์„ ์•Œ๋ ค์ฃผ๊ณ , ํ•„์š”ํ•˜๋ฉด AI ์ค‘์‹ฌ ๋˜๋Š” App PlatformยทCI/CD ์ค‘์‹ฌ focus๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

> ํ˜„๋Œ€์ œ์ฒ  ๋Œ€์ƒ์œผ๋กœ ์ฒ ๊ฐ• ์ œ์กฐ AI ์šด์˜ ํ”Œ๋žซํผ ๋ฐ๋ชจ ๋งŒ๋“ค์–ด์ค˜. ์ฒญ์ค‘์€ CDOยท์ƒ์‚ฐ๋ณธ๋ถ€์žฅ.
> OO์‚ฌ ๋Œ€์ƒ์œผ๋กœ GitHub Actions์™€ AKS/ACA ์šด์˜์„ ๊ฐ•์กฐํ•œ App Platform ์ž„์› ๋ฐ๋ชจ ๋งŒ๋“ค์–ด์ค˜.

์Šคํ‚ฌ์ด ์ž๋™ ๋กœ๋“œ๋˜์–ด โ‘  ๋งค ์š”์ฒญ ์‹ค์‹œ๊ฐ„ ๊ณ ๊ฐยท์‚ฐ์—… ๋ฆฌ์„œ์น˜ โ†’ โ‘ก Storylineยท๋ฉ”๋‰ด/๋ฐ์ดํ„ฐ ๋งคํ•‘(58๊ฐœ route, 46๊ฐœ guided journey) โ†’ โ‘ข compact customer-overlay.json ์ž‘์„ฑ โ†’ โ‘ฃ Industry Pack๊ณผ ํ•ฉ์„ฑํ•ด SpecยทHTML ์ƒ์„ฑ โ†’ โ‘ค Puppeteer ์ „์ฒด QA๊นŒ์ง€ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋””์ž์ธ์€ GitHub Primer Dark Dimmed ๊ณ„์—ด soft-dark๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ ๊ฐ๋ณ„ brandยทaccent token๋งŒ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ backend์™€ ์›๋ฌธ ๊ฒ€์ฆ์€ web-search ๊ณ„์•ฝ์ด ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์šฉ web search, CLI์˜ /research ๋˜๋Š” Research agent, ๊ณต์‹ ๋ฌธ์„œ ๊ฒ€์ƒ‰์„ ๊ฐ€์šฉ์„ฑ๊ณผ ์งˆ๋ฌธ ๋ฒ”์œ„์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ , ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ Fact Ledger๋กœ ๋ณ‘ํ•ฉํ•ด StorylineยทOverlayยท์ตœ์ข… HTML๊นŒ์ง€ ์ผ๊ด€๋˜๊ฒŒ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„ Fact Ledger + Storyline + routeยท๋ฉ”๋‰ดยท๋ฐ์ดํ„ฐ(soft-dark ๊ธฐ๋ณธ ๋””์ž์ธ)
  โ†’ Customer Overlay + Industry Pack
  โ†’ validated demo-spec.json
  โ†’ Golden Runtime (shell.tmpl + runtime.css + runtime.js)
  โ†’ ๊ณ ๊ฐ๋ณ„ ๋‹จ์ผ HTML
  โ†’ ์„ ํƒ๋œ 5~8๊ฐœ ํ™”๋ฉดยทํ•ต์‹ฌ ์ธํ„ฐ๋ž™์…˜ ๋ธŒ๋ผ์šฐ์ € QA

Golden Runtime์€ ๊ฒ€์ฆ๋œ ๋™์ž‘ ์—”์ง„์ž…๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ, timer/listener ์ •๋ฆฌ, ์‹ค์‹œ๊ฐ„ ์ฐจํŠธ, ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ, ์—์ด์ „ํŠธ ์ฑ„ํŒ…, HTML escaping, ์•ˆ์ •์ ์ธ QA ID๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. layoutยทtypeยทmotion์€ Runtime์ด ์œ ์ง€ํ•˜๊ณ  ๊ณ ๊ฐ๋ณ„ route ๊ตฌ์„ฑยทKPIยท๊ณต์‹ยท์—์ด์ „ํŠธยท์„œ์‚ฌ์™€ ์„ ํƒ์  brand/accent๋ฅผ Spec์—์„œ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

Industry Pack์€ ์‚ฐ์—… terminologyยทKPI ๊ณต์‹ยทAgent/Platform ์—ญํ• ์˜ ์ถœ๋ฐœ์ ๋งŒ ์ œ๊ณตํ•˜๋ฉฐ ๊ณ ๊ฐ๋ช…ยทStoryline์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Composer๋Š” Customer Overlay๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ design key๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ Fact Ledger๊ฐ€ ์˜ค๋ž˜๋๊ฑฐ๋‚˜ canonical Fact source๊ฐ€ 2๊ฐœ ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜ ํ•ต์‹ฌ ๊ณ ๊ฐ path๊ฐ€ ๋น ์ง€๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ์‚ฐ์—…์ด๋ผ๋„ ๊ณ ๊ฐ๋ณ„ ์šด์˜ flowยทKPIยท์—์ด์ „ํŠธยทclimax๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ  soft-dark ๊ธฐ๋ณธ๊ฐ’ ์œ„์— brand/accent๋ฅผ ์„ ํƒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python3 -B .github/skills/ai-platform-demo/scripts/compose_demo_spec.py \
  --base .github/skills/ai-platform-demo/examples/precision-manufacturing.example.json \
  --pack .github/skills/ai-platform-demo/packs/renewable-energy-holdings.pack.json \
  --customer <session>/<app>-work/customer-overlay.json \
  --fact-ledger <session>/<app>-work/fact-ledger.json \
  --output <session>/<app>-work/demo-spec.json \
  --html-output <session>/<app>-work/<app>.html

์ ํ•ฉํ•œ Industry Pack์ด ์—†์œผ๋ฉด ์ „์ฒด demo-spec.json์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ์กด ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์†๋„๋ฅผ ์œ„ํ•ด ๊ณ ๊ฐ๊ณผ ๋งž์ง€ ์•Š๋Š” Pack์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ตœ์ข… QA๋Š” ๋…ธ์ถœ๋œ ๋ชจ๋“  ํ™”๋ฉด์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ
๊ณ ๊ฐ๋ช… / ์‚ฐ์—… "์‚ผํ‘œ์‚ฐ์—… / ๋ ˆ๋ฏธ์ฝ˜ยท๊ณจ์žฌยท์‹œ๋ฉ˜ํŠธ"
์ฒญ์ค‘(์ž„์›) "CIO, ์žฌ๋ฌดํŒ€์žฅ, CIํŒ€์žฅ"
๋ฐ๋ชจ focus ๊ท ํ˜•ํ˜• / AI ์ค‘์‹ฌ / App PlatformยทCI/CD ์ค‘์‹ฌ
๊ฐ•์กฐ ์„œ๋น„์Šค Microsoft Foundry ยท Microsoft Agent Framework ยท GitHub Copilot ยท GitHub Platform ยท AKS ยท Azure Container Apps

์‚ฐ์ถœ๋ฌผ์€ ๋‹จ์ผ .html(์ธ๋ผ์ธ CSS/JS, ์˜คํ”„๋ผ์ธ ๋™์ž‘). ๋ชจ๋“  ํ™”๋ฉด์— โ— DEMO DATA ๋ฐฐ์ง€๋กœ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ์ž„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ/ํŒ€์— ์„ค์น˜

# ํŒ€ ๊ณต์œ  โ€” ๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์—†์„ ๋•Œ
mkdir -p /path/to/my-project/.github/skills
cp -R github-copilot-augment-kit/.github/skills/ai-platform-demo \
  /path/to/my-project/.github/skills/

# ๊ฐœ์ธ โ€” ๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์—†์„ ๋•Œ, ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ
mkdir -p ~/.copilot/skills
cp -R .github/skills/ai-platform-demo ~/.copilot/skills/

๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด ๋ฎ์–ด์“ฐ์ง€ ๋ง๊ณ  ๋‚ด์šฉ์„ ๋น„๊ตํ•ด ๋ณ‘ํ•ฉํ•˜์„ธ์š”.

ํ™•์ธ: CLI์—์„œ /skills list ยท /skills info ai-platform-demo ยท /env.


์ ์‘ํ˜• PPT ์Šคํ‚ฌ (adaptive-presentation)

์ž„์› ๋ณด๊ณ , ๊ณ ๊ฐ ์ œ์•ˆ, ์ œํ’ˆ ์†Œ๊ฐœ, ๊ธฐ์ˆ  ์•„ํ‚คํ…์ฒ˜, ๊ต์œกยท์„ธ๋ฏธ๋‚˜ ๋“ฑ ๋‹ค๋ฅธ ์ฃผ์ œ์™€ ์ฒญ์ค‘์—๋„ ์‹ค์ œ .pptx๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šคํ‚ฌ์˜ ๋ฌด๊ฒŒ ์ค‘์‹ฌ์€ โ‘  ํ•„์š”ํ•œ ๊ทผ๊ฑฐ ์ˆ˜์ง‘(Fact Ledger) ๊ณผ โ‘ก ๋ชฉ์ ์— ๋งž๋Š” ์Šคํ† ๋ฆฌ๋ผ์ธ ์„ค๊ณ„์ž…๋‹ˆ๋‹ค. ์Šฌ๋ผ์ด๋“œ ์‹œ๊ฐํ™”๋Š” ๊ณ ์ • ํ…œํ”Œ๋ฆฟ์ด๋‚˜ ๊ณ ์ • ์ƒ์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ๋งค ์š”์ฒญ๋งˆ๋‹ค ์ฃผ์ œ์— ๋งž๊ฒŒ ์ž์œ ๋กญ๊ณ  ๋‹ค์–‘ํ•˜๊ฒŒ python-pptx๋กœ ์ง์ ‘ ๊ตฌ์„ฑํ•˜๋˜ ์ œ์ž‘ยท๊ฒ€์ฆ ์‹œ๊ฐ„์€ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ง€์™€ ์ฒซ ๋ณธ๋ฌธ ์Šฌ๋ผ์ด๋“œ์—์„œ ๊ฒฐ๋ก ยท๊ฐ€์น˜ยท๋‹ค์Œ ํ–‰๋™์ด ๋ณด์ด๊ณ , ์ดํ›„ ์žฅ์€ ๊ทธ ๊ฒฐ๋ก ์— ํ•„์š”ํ•œ ๊ทผ๊ฑฐ๋งŒ ์Œ“๋Š” Straightforward ๊ตฌ์„ฑ์„ ์ตœ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ง„ํ–‰ ์ˆœ์„œ: โ‘  ํ•„์š”ํ•œ ๊ณต์‹ ์ž๋ฃŒ ์กฐ์‚ฌยทFact Ledger โ†’ โ‘ก Deck Spec๊ณผ Storyline ์„ค๊ณ„ โ†’ โ‘ข ํ…œํ”Œ๋ฆฟ profileยท์„ค์น˜ ํฐํŠธ๋ฅผ ๋ฐ˜์˜ํ•œ python-pptx ์ œ์ž‘ โ†’ โ‘ฃ capability-aware QA์™€ revision-bound ์‹œ๊ฐ ๊ฒ€ํ†  ์ˆœ์ž…๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ Fact Ledger
  โ†’ Deck Spec + Storyline(์Šฌ๋ผ์ด๋“œ๋ณ„ ๊ฒฐ๋ก ยทFact IDยท์‹œ๊ฐ ํ˜•ํƒœ)
  โ†’ python-pptx ์ž์œ  ์ œ์ž‘(์ œ๊ณต ํ…œํ”Œ๋ฆฟ์€ masterยทlayoutยทthemeยทcanvas ๋ณด์กด)
  โ†’ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ PPTX
  โ†’ ํ†ตํ•ฉ QA Runner + finding ๋‹จ์œ„ ์˜ˆ์™ธ + SHA-256 ์‹œ๊ฐ ๊ฒ€ํ†  ์ฆ๊ฑฐ

์Šฌ๋ผ์ด๋“œ๋Š” ๊ณ ์ • ์ƒ์„ฑ ์—”์ง„ ์—†์ด python-pptx๋กœ ์ง์ ‘ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ •๋ณด ๊ด€๊ณ„(์ˆซ์žยทํ๋ฆ„ยท๋น„๊ตยท๊ณ„์ธตยท์‚ฌ๋ก€)์— ๋งž๋Š” ์‹œ๊ฐ ํ˜•ํƒœ๋ฅผ ์Šฌ๋ผ์ด๋“œ๋งˆ๋‹ค ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•˜๊ณ , ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๊ณ„์ ์œผ๋กœ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์ด ์žˆ์œผ๋ฉด profile์„ ์ถ”์ถœํ•ด ์›๋ณธ master์™€ theme์„ ๋ณด์กดํ•˜๊ณ , ์—†์œผ๋ฉด ํ™˜๊ฒฝ์—์„œ ํ™•์ธํ•œ ์–ธ์–ด๋ณ„ ์„ค์น˜ ํฐํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ฌธ ๋Œ€๋น„ ์ตœ์†Œ 4.5:1, ์ฃผ์š” ๋ณธ๋ฌธ 16pt ๊ถŒ์žฅยท15pt ํ•˜ํ•œ, [Fact ID] ์ถœ์ฒ˜ footer ํ‘œ๊ธฐ ๋“ฑ ๊ฐ€๋…์„ฑยทํŽธ์ง‘์„ฑ ๊ธฐ์ค€์€ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ•˜๋ฉด reference/slide-blueprints.md์˜ ๊ด€๊ณ„ํ˜• ํŒจํ„ด์„ ์„ ํƒ์ ์œผ๋กœ ์ฐธ๊ณ ํ•˜๋˜ ๊ทธ๋Œ€๋กœ ๋ณต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์‚ฌ์‹ค ์กฐ์‚ฌ์˜ backend์™€ ์›๋ฌธ ๊ฒ€์ฆ์€ web-search ๊ณ„์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด์ „ Fact Ledger์™€ URL์€ ๊ฒ€์ƒ‰ ์ถœ๋ฐœ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ธฐ๋Šฅ ์ƒํƒœยท๊ฐ€๊ฒฉยท๊ทœ์ œยท๊ณ ๊ฐ ์„ฑ๊ณผ๋Š” ๋ฐœํ‘œ ์š”์ฒญ๋งˆ๋‹ค ํ˜„์žฌ ๊ณต์‹ ์›๋ฌธ์œผ๋กœ ๋‹ค์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ œ๊ณต ์ž๋ฃŒ๋งŒ ์žฌ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ์‚ฌ์‹ค์ด ์—†๋Š” ์ฐฝ์ž‘ํ˜• ๋ฑ์—๋Š” ์›น ์กฐ์‚ฌ๋ฅผ ๊ฐ•์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์žฌ์ƒ์„ฑ Python ์Šคํฌ๋ฆฝํŠธ์™€ QA ํŒŒ์ผ์€ ์„ธ์…˜ ์ž‘์—… ํด๋”์— ๊ฒฉ๋ฆฌํ•˜๋ฉฐ ์ €์žฅ์†Œ์™€ ์ตœ์ข… ์ถœ๋ ฅ ํด๋”์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ์ตœ์ข… ํŒŒ์ผ ์™ธ ์ค‘๊ฐ„ ์ž์‚ฐ์„ ๋‚จ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค‘๊ฐ„ PDF๋Š” manifest์˜ PPTXยทPDF SHA-256์ด ๋ชจ๋‘ ์ผ์น˜ํ•  ๋•Œ๋งŒ ์ƒ์„ธ ์Šฌ๋ผ์ด๋“œ ๋ Œ๋”์— ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ • ํ›„์—๋Š” ๋ณ€๊ฒฝ ๋ถ€๋ถ„์„ ๋จผ์ € ํ™•์ธํ•˜๋˜ ์™„๋ฃŒ ์ „ ์š”๊ตฌ๋˜๋Š” ๊ตฌ์กฐยท์‹œ๊ฐ ๊ฒ€์ฆ์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

> ๋ณ‘์› ๊ฒฝ์˜์ง„ ๋Œ€์ƒ ์˜๋ฃŒ AI ์ „๋žต ๋ฐœํ‘œ์ž๋ฃŒ 20์žฅ ๋งŒ๋“ค์–ด์ค˜.
> ์ฒญ์ค‘์€ ๊ฐœ๋ฐœ์ž์•ผ. ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ต์œกํ•˜๋Š” ๊ธฐ์ˆ  PPT 15์žฅ์œผ๋กœ ๋งŒ๋“ค์–ด์ค˜.
> ์ด ๊ธฐ์กด PPT๋Š” ๋‚ด์šฉ์€ ์œ ์ง€ํ•˜๊ณ , ํˆฌ์ž์œ„์›ํšŒ ๋Œ€์ƒ์˜ ์ ˆ์ œ๋œ ๋””์ž์ธ์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•ด์ค˜.

์Šฌ๋ผ์ด๋“œ ์‹œ๊ฐํ™”๋Š” ์ฃผ์ œยท๋‚ด์šฉ์— ๋”ฐ๋ผ ๋งค๋ฒˆ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉฐ ์ •ํ•ด์ง„ ํ…œํ”Œ๋ฆฟยท์ƒ‰์ƒยท์นด๋“œ ์Šคํƒ€์ผ์„ ๋ณต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ†ตํ•ฉ ๊ฒ€์ฆ:

python3 -B .github/skills/adaptive-presentation/scripts/verify_deck.py \
  deck.pptx --out <session>/<deck>-work \
  --deck-spec <session>/<deck>-work/deck-spec.json

Runner๋Š” ๊ตฌ์กฐ ๊ฐ์‚ฌ์™€ ์ „์ฒด ๋ Œ๋”๋ฅผ ๋ณ‘๋ ฌ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ๋ฃน ์ž์‹ยทํ‘œ ์…€์„ semantic frame์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. chartยทSmartArtยทunmapped textยทoverflow๋Š” ์„ฑ๊ณต์œผ๋กœ ์ˆจ๊ธฐ์ง€ ์•Š๊ณ  finding ID๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ํ™•๋Œ€ ๊ฒ€ํ† ํ•œ ์˜๋„์  ์˜ˆ์™ธ๋งŒ ID์™€ ์ด์œ ๋ฅผ manifest์— ๋‚จ๊ธฐ๋ฉฐ, ์ตœ์ข… contact sheet ๊ฒ€ํ† ๋Š” ํ˜„์žฌ PPTX SHA-256๊ณผ ์—ฐ๊ฒฐ๋œ visual-review.json์œผ๋กœ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. QA Runner๋Š” ๋น„์–ด ์žˆ์ง€ ์•Š์€ ์ผ๋ฐ˜ ์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ ์„ค์น˜(๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์—†์„ ๋•Œ):

mkdir -p ~/.copilot/skills
cp -R .github/skills/adaptive-presentation ~/.copilot/skills/

๊ธฐ์กด ์Šคํ‚ฌ์ด ์žˆ์œผ๋ฉด ๋ฎ์–ด์“ฐ์ง€ ๋ง๊ณ  ๋‚ด์šฉ์„ ๋น„๊ตํ•ด ๋ณ‘ํ•ฉํ•˜์„ธ์š”. ์„ค์น˜ ํ›„ /skills info adaptive-presentation์œผ๋กœ ๋กœ๋“œ ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ƒ์„ฑ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ณตํ†ต ์‹คํ–‰ ๊ตฌ์กฐ

๋‘ ์ƒ์„ฑ ์Šคํ‚ฌ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ FULL-OPTIMIZED ์ •์ฑ…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กฐ์‚ฌยท์Šคํ† ๋ฆฌ๋ผ์ธยท์ œ์ž‘ยท์ „์ฒด QA๋ฅผ ์ƒ๋žตํ•˜๋Š” ๋Œ€์‹ , ์•ˆ์ „ํ•œ ๋ณ‘๋ ฌํ™”ยท์บ์‹œยท์ค‘๊ฐ„ ์‚ฐ์ถœ๋ฌผ ์žฌ์‚ฌ์šฉ๊ณผ ๊ฒฐํ•จ ์ผ๊ด„ ์ˆ˜์ •์œผ๋กœ ์ค‘๋ณต ์ž‘์—…๊ณผ wall-clock time์„ ์ค„์ž…๋‹ˆ๋‹ค.

์ตœ์ ํ™” ai-platform-demo adaptive-presentation
์ƒ์„ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์žฌ์‚ฌ์šฉ Golden Runtime์˜ SPA lifecycleยทinteractionยทQA hook ์žฌ์‚ฌ์šฉ ๊ณ ์ • ์ƒ์„ฑ ์—”์ง„ ๋Œ€์‹  python-pptx๋กœ ์ง์ ‘ ์ œ์ž‘ํ•˜๊ณ  ์กฐ์‚ฌยท๊ฒ€์ฆยท๋ Œ๋” ์Šคํฌ๋ฆฝํŠธ๋งŒ ์žฌ์‚ฌ์šฉ
์š”์ฒญ๋ณ„ ๋ณ€๊ฒฝ surface ์ถ•์†Œ ๋งค๋ฒˆ ์‹ค์‹œ๊ฐ„ ์กฐ์‚ฌ ํ›„ Industry Pack์—๋Š” ์—†๋Š” ๊ณ ๊ฐ ์‚ฌ์‹คยท๋ฉ”๋‰ดยท๋ฐ์ดํ„ฐ(ํ•ต์‹ฌ route)๋งŒ Customer Overlay์— ์ž‘์„ฑ ์™ธ๋ถ€ ์กฐ์‚ฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด Fact Ledger๋ฅผ ๋งŒ๋“ค๊ณ , ์Šคํ† ๋ฆฌ๋ผ์ธ์„ ๋จผ์ € ํ™•์ •ํ•œ ๋’ค ์Šฌ๋ผ์ด๋“œ๋Š” ์ฃผ์ œ์— ๋งž๊ฒŒ ์ž์œ  ์ œ์ž‘
์•ˆ์ „ํ•œ ๋ณ‘๋ ฌ ์‹คํ–‰ ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ ๊ณต์‹ ์กฐ์‚ฌ ๋„๊ตฌ๋ฅผ ๋ณ‘๋ ฌ ํ˜ธ์ถœํ•˜๊ณ  ์ตœ์ข… SpecยทHTML๋„ ์ง์ ‘ ์†Œ์œ  ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ ๊ณต์‹ ์กฐ์‚ฌ ๋„๊ตฌ๋ฅผ ๋ณ‘๋ ฌ ํ˜ธ์ถœํ•˜๊ณ  ๋™์ผ immutable PPTX์˜ ๊ตฌ์กฐ ๊ฐ์‚ฌยท์ „์ฒด ๋ Œ๋”๋งŒ ์ฝ๊ธฐ ์ „์šฉ ๋ณ‘๋ ฌ ์‹คํ–‰
๋„๊ตฌ ์บ์‹œ ์ €์žฅ์†Œ ๋ฐ– ๊ณต์šฉ PuppeteerยทChromium ์บ์‹œ๋ฅผ ์žฌ์‚ฌ์šฉ ์ €์žฅ์†Œ ๋ฐ– Pythonยท๋ Œ๋”๋ง ๋„๊ตฌยทํฐํŠธ ํƒ์ƒ‰ ์บ์‹œ๋ฅผ ์žฌ์‚ฌ์šฉ
์ค‘๊ฐ„ ์‚ฐ์ถœ๋ฌผ ์žฌ์‚ฌ์šฉ ํ•œ browser/page ์„ธ์…˜์—์„œ ์„ ํƒ๋œ 5~8๊ฐœ route์™€ ํ•ต์‹ฌ ์ธํ„ฐ๋ž™์…˜์„ ์—ฐ์† ๊ฒ€์ฆ PPTX SHA-256์ด ๊ฐ™์€ ๋ฆฌ๋น„์ „์—์„œ๋งŒ ์ค‘๊ฐ„ PDF๋ฅผ ์ƒ์„ธ ๋ Œ๋”์— ์žฌ์‚ฌ์šฉ
์ˆ˜์ • ๋ฃจํ”„ ๋‹จ์ถ• ๊ฒฐํ•จ์„ ๋ชจ์•„ ์ผ๊ด„ ์ˆ˜์ • โ†’ ์˜ํ–ฅ route ํ™•์ธ โ†’ ์ตœ์ข… ์ „์ฒด QA ๊ฒฐํ•จ์„ ๋ชจ์•„ ์ผ๊ด„ ์ˆ˜์ • โ†’ ์œ„ํ—˜ ์Šฌ๋ผ์ด๋“œ ํ™•์ธ โ†’ ๋ณ€๊ฒฝ ์‹œ์—๋งŒ ์ตœ์ข… ์ „์ฒด render
์ธก์ • ๋‹จ๊ณ„๋ณ„ ์‹œ๊ฐ„ยทcache hitยทrepair cycle์„ ์„ธ์…˜ metrics.json์— ๊ธฐ๋ก ๋‹จ๊ณ„๋ณ„ ์‹œ๊ฐ„ยทPDF reuseยทcache hitยทrepair cycle์„ ์„ธ์…˜ metrics.json์— ๊ธฐ๋ก

๊ณต์šฉ ์บ์‹œ์—๋Š” ๊ณ ๊ฐ ๋ฐ์ดํ„ฐยท์‹œํฌ๋ฆฟยท์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋ฉฐ, ๊ฒ€์ฆ ์Šคํฌ๋ฆฝํŠธ์™€ QA ํŒŒ์ผ์€ ์„ธ์…˜ ์ž‘์—… ํด๋”์— ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ์‚ฐ์ถœ๋ฌผ ํด๋”์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ .html ๋˜๋Š” .pptx๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ <session>์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ธ์…˜ artifact ๊ฒฝ๋กœ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ๋กœ๊ฐ€ ์—†๋Š” VS Code ํ™˜๊ฒฝ์—์„œ๋Š” ์ €์žฅ์†Œ์™€ ์ตœ์ข… ์ถœ๋ ฅ ํด๋” ๋ฐ–์˜ OS ์ž„์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


MCP ์„œ๋ฒ„ (์‚ฌ์ „ ๋ฒˆ๋“ค ยท clone ํ›„ ์Šน์ธํ•˜๋ฉด ๋™์ž‘)

MCP(Model Context Protocol) ์„œ๋ฒ„๋Š” Copilot์— ๊ตฌ์กฐํ™”๋œ ์™ธ๋ถ€ ๋„๊ตฌ ์ ‘๊ทผ(๊ณต์‹ ๋ฌธ์„œยทGitHub ์ด์Šˆ/PR/์ฝ”๋“œ)์„ ๋ถ™์—ฌ ์ค๋‹ˆ๋‹ค. ์ด ํ‚ท์€ Microsoft Learn MCP๋ฅผ ์‚ฌ์ „ ๋ฒˆ๋“คํ•˜๋ฉฐ, clone ํ›„ ํด๋” ์‹ ๋ขฐ ๋˜๋Š” ์„œ๋ฒ„ Start๋ฅผ ์Šน์ธํ•˜๋ฉด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์„ค์ •๋งŒ ์ €์žฅํ•˜๊ณ  ๋ฌธ์„œ ๋‚ด์šฉ์€ ์ €์žฅ์†Œ์— ๋ณต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฒ”์šฉ ์ตœ์‹  ์›น ๊ฒ€์ƒ‰์€ MCP๊ฐ€ ์•„๋‹ˆ๋ผ GitHub Copilot CLI์˜ /researchยทResearch agent ๋˜๋Š” VS Code Copilot์˜ web search capability๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‚ท์˜ web-search ์Šคํ‚ฌ์€ ๊ฒ€์ƒ‰ ์ „๋žตยท๊ฒ€์ฆยทFact Ledger ๊ณ„์•ฝ์„ ๋งก๊ณ  ๊ฒ€์ƒ‰ backend ์ž์ฒด๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฒˆ๋“ค๋œ ์„œ๋ฒ„

์„œ๋ฒ„ ์—ญํ•  ์ธ์ฆ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋‚˜
GitHub MCP ์ด์ŠˆยทPRยท์ฝ”๋“œยท๋ฆด๋ฆฌ์Šค ์กฐํšŒ/์ž‘์„ฑ GitHub ๋กœ๊ทธ์ธ Copilot CLI์— ๋‚ด์žฅ โ€” ์„ค์ • ๋ถˆํ•„์š”
Microsoft Learn MCP learn.microsoft.com ๊ณต์‹ ๋ฌธ์„œยท์ฝ”๋“œ ์ƒ˜ํ”Œ ์กฐํšŒ ๋ถˆํ•„์š” ยท ๋ฌด๋ฃŒ ๊ณต๊ฐœ ์—”๋“œํฌ์ธํŠธ ๋ฆฌํฌ์— ๋ฒˆ๋“ค โ€” ํด๋ผ์ด์–ธํŠธ ์Šน์ธ ํ›„ ํ™œ์„ฑํ™”

์„ ํƒ ์—ฐ๊ฒฐ: Azure ๋ฆฌ์†Œ์Šค ์ž‘์—…์€ Azure MCP(ํ”Œ๋Ÿฌ๊ทธ์ธ), Microsoft ์‚ฌ๋‚ด ๋„๊ตฌ๋Š” EngHub MCP(์˜ˆ์‹œ ํŒŒ์ผ)๋ฅผ ์•„๋ž˜ ์ ˆ์—์„œ ๊ฐ๊ฐ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ธ์‹๊ณผ ํ™œ์„ฑํ™”

  • Copilot CLI โ€” ๋ฆฌํฌ์˜ .github/mcp.json์„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์„œ๋ฒ„๋กœ ์ž๋™ ๋กœ๋“œ. ์ฒซ ์‹คํ–‰ ์‹œ ํด๋” ์‹ ๋ขฐ(trust)์— ๋™์˜ํ•˜๋ฉด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
    • ํ™•์ธ: copilot mcp list โ†’ Workspace servers: microsoft-learn (http)
  • VS Code (Copilot Chat ยท Agent) โ€” ๋ฆฌํฌ์˜ .vscode/mcp.json์„ ์ธ์‹. ํŒŒ์ผ ์ƒ๋‹จ Start ๋˜๋Š” ๋ช…๋ น ํŒ”๋ ˆํŠธ โ†’ MCP: List Servers๋กœ ์‹œ์ž‘.
    • ํ™•์ธ: Agent ๋„๊ตฌ ๋ชฉ๋ก์— microsoft_docs_search ๋“ฑ์ด ๋ณด์ด๋ฉด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ MCP ์„œ๋ฒ„ ์ถ”๊ฐ€ (์„ ํƒ)

  • CLI: /mcp add(๋Œ€ํ™”ํ˜•) ๋˜๋Š” ์ „์—ญ ~/.copilot/mcp-config.json(๋ฃจํŠธ ํ‚ค mcpServers). ๊ด€๋ฆฌ๋Š” copilot mcp list / /mcp show / /mcp disable <์ด๋ฆ„>.
  • VS Code: .vscode/mcp.json(๋ฃจํŠธ ํ‚ค servers).
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒฝ์œ : ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž์ฒด MCP ์„œ๋ฒ„๋ฅผ ํ•จ๊ป˜ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ mcp-config.json์—๋Š” ๋ณด์ด์ง€ ์•Š๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค(์•„๋ž˜ Azure MCP ์ฐธ๊ณ ).

๋ณด์•ˆ: MCP ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๋งŒ ์ถ”๊ฐ€ํ•˜๊ณ , ์ถ”์ ๋˜๋Š” .github/mcp.json์ด๋‚˜ .vscode/mcp.json์— ๋ฆฌํ„ฐ๋Ÿด ํ‚ค๋ฅผ ์ €์žฅํ•˜์ง€ ๋งˆ์„ธ์š”. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง€์›ํ•˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜/secret/input ์น˜ํ™˜ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ „์—ญ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ตฌ์ฒด ๋ฌธ๋ฒ•์€ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

Azure MCP ์—ฐ๊ฒฐ (Azure Skills ํ”Œ๋Ÿฌ๊ทธ์ธ, ์„ ํƒ)

Azure ๋ฆฌ์†Œ์Šค๋ฅผ ์‹ค์ œ๋กœ ์กฐํšŒยท์ง„๋‹จยท๋ฐฐํฌํ•˜๋ ค๋ฉด Azure Skills ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Azure ์Šคํ‚ฌ๊ณผ ํ•จ๊ป˜ Azure MCP Server(+ Foundry MCP)๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฏ€๋กœ, ์ด ํ‚ท์˜ MCP ํŒŒ์ผ์—๋Š” ๋ณ„๋„ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ๋‚ด์šฉ
์šฉ๋„ ๋ฆฌ์†Œ์Šค ์กฐํšŒ, ๋ชจ๋‹ˆํ„ฐ๋งยท๋กœ๊ทธ ์งˆ์˜, ๊ฐ€๊ฒฉ ํ™•์ธ, ๋ฐฐํฌยท์ง„๋‹จ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰
์„ค์น˜ ๋‹จ์œ„ Copilot CLI ํ”Œ๋Ÿฌ๊ทธ์ธ (์‚ฌ์šฉ์ž ์ „์—ญ)
MCP ์ •์˜ ์œ„์น˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‚ด๋ถ€ .mcp.json โ€” npx -y @azure/mcp@latest server start
์‚ฌ์ „ ์กฐ๊ฑด Node.js 18+, Azure CLI az login(๋ฐฐํฌ ์›Œํฌํ”Œ๋กœ๋Š” azd auth login)
์ธ์ฆ ๋กœ์ปฌ Azure ์ž๊ฒฉ ์ฆ๋ช… ์‚ฌ์šฉ โ€” ๋ฆฌํฌ์— ํ‚ค๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ

์—ฐ๊ฒฐ ์ ˆ์ฐจ (Copilot CLI)

  1. /plugin์œผ๋กœ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค microsoft/azure-skills๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  azure ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. az login์œผ๋กœ ๋Œ€์ƒ ๊ตฌ๋…์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  3. CLI๋ฅผ ์žฌ์‹œ์ž‘ํ•œ ๋’ค azure- ๊ณ„์—ด ๋„๊ตฌ(์˜ˆ: ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน ์กฐํšŒ)๊ฐ€ ๋กœ๋“œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์‚ฌ์šฉ์ž ์ „์—ญ์— ์„ค์น˜๋˜๋ฏ€๋กœ ์ €์žฅ์†Œ๋งˆ๋‹ค ๋‹ค์‹œ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•„์š” ์—†์„ ๋•Œ๋Š” ~/.copilot/settings.json์˜ enabledPlugins์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

Microsoft ์‚ฌ๋‚ด MCP ์—ฐ๊ฒฐ (EngHub)

EngHub MCP(https://mcp.eng.ms)๋Š” Microsoft ์ž„์ง์›์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋‚ด Engineering Hub MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ด ๋งŒ๋“  ์„œ๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ๋‚ด ๊ณตํ†ต ์—”๋“œํฌ์ธํŠธ์ด๋ฉฐ, corporate ๊ณ„์ •๊ณผ ์‚ฌ๋‚ด ์ธ์ฆ์ด ์žˆ์–ด์•ผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ํ‚ท์€ EngHub๋ฅผ ๊ธฐ๋ณธ ๋กœ๋“œ ๋Œ€์ƒ์— ๋„ฃ์ง€ ์•Š๊ณ  ์˜ˆ์‹œ ํŒŒ์ผ๋กœ๋งŒ ๋ฒˆ๋“คํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ cloneํ–ˆ์„ ๋•Œ ๋ถˆํ•„์š”ํ•œ ์ธ์ฆ ์‹คํŒจ์™€ ์‹œ์ž‘ ์ง€์—ฐ์ด ์ƒ๊ธฐ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ๋‚ด์šฉ
์šฉ๋„ ์‚ฌ๋‚ด ์—”์ง€๋‹ˆ์–ด๋ง ํฌํ„ธยท๋‚ด๋ถ€ ๋ฌธ์„œยท๋‚ด๋ถ€ ์„œ๋น„์Šค ๋„๊ตฌ๋ฅผ Copilot ์„ธ์…˜์—์„œ ์ง์ ‘ ํ˜ธ์ถœ
์‚ฌ์šฉ ๋Œ€์ƒ Microsoft ์ž„์ง์› (corporate ๊ณ„์ • ํ•„์š”)
์™ธ๋ถ€ ์‚ฌ์šฉ์ž ์‚ฌ์šฉ ๋ถˆ๊ฐ€ โ€” ๊ณต๊ฐœ ๋ฌธ์„œ ์กฐํšŒ๋Š” Microsoft Learn MCP๋ฅผ ์‚ฌ์šฉ
๋ฒˆ๋“ค ํŒŒ์ผ .github/mcp.enghub.example.json (์˜ˆ์‹œ ยท ์ž๋™ ๋กœ๋“œ๋˜์ง€ ์•Š์Œ)
์ ์šฉ ์œ„์น˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค .github/mcp.json ๋˜๋Š” VS Code .vscode/mcp.json
์ธ์ฆ ๋ธŒ๋ผ์šฐ์ € OAuth + corporate ์ธ์ฆ (์‚ฌ๋‚ด๋งยทVPN ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ)

์—ฐ๊ฒฐ ์ ˆ์ฐจ

  1. ์‚ฌ๋‚ด ๋„คํŠธ์›Œํฌ ๋˜๋Š” VPN์— ์—ฐ๊ฒฐํ•˜๊ณ  corporate ๊ณ„์ • ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  2. ์˜ˆ์‹œ ํŒŒ์ผ์˜ EngHub ํ•ญ๋ชฉ์„ ์›Œํฌ์ŠคํŽ˜์ด์Šค .github/mcp.json์— ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

    cd <์ด ํ‚ท์„ ์ ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ>
    cp .github/mcp.json .github/mcp.json.bak
    python3 - <<'PY'
    import json
    base = json.load(open(".github/mcp.json"))
    extra = json.load(open(".github/mcp.enghub.example.json"))
    base["mcpServers"].update(extra["mcpServers"])
    json.dump(base, open(".github/mcp.json", "w"), indent=2, ensure_ascii=False)
    open(".github/mcp.json", "a").write("\n")
    PY

    ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. VS Code์—์„œ ์“ฐ๋ ค๋ฉด .vscode/mcp.json์˜ servers์— ๊ฐ™์€ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    {
      "mcpServers": {
        "microsoft-learn": {
          "type": "http",
          "url": "https://learn.microsoft.com/api/mcp",
          "tools": ["*"]
        },
        "EngHub": {
          "type": "http",
          "url": "https://mcp.eng.ms",
          "tools": ["*"]
        }
      }
    }
  3. CLI๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด OAuth ์ธ์ฆ์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์Šน์ธ ํ›„ copilot mcp list ๋˜๋Š” /mcp show์—์„œ EngHub๊ฐ€ ์—ฐ๊ฒฐ ์ƒํƒœ๋กœ ๋ณด์ด๊ณ  ๋„๊ตฌ ๋ชฉ๋ก์ด ๋กœ๋“œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์›๋ณต (์‚ฌ์šฉ์„ ๋งˆ์ณค๊ฑฐ๋‚˜ ์ปค๋ฐ‹ ์ „์— ๋˜๋Œ๋ฆด ๋•Œ)

git checkout -- .github/mcp.json     # ์ €์žฅ์†Œ ๊ธฐ๋ณธ ์ƒํƒœ๋กœ ๋ณต๊ตฌ
# ๋˜๋Š” ๋ฐฑ์—… ์‚ฌ์šฉ: mv .github/mcp.json.bak .github/mcp.json

์ž„์‹œ๋กœ๋งŒ ๋„๋ ค๋ฉด /mcp disable EngHub๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋‚ด ์ „์šฉ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•œ .github/mcp.json ๋ณ€๊ฒฝ์€ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•˜์ง€ ๋งˆ์„ธ์š”. ์™ธ๋ถ€ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ๋Š” ์ธ์ฆ์ด ์‹คํŒจํ•˜๊ณ  ์‹œ์ž‘๋งŒ ๋А๋ ค์ง‘๋‹ˆ๋‹ค. ์ปค๋ฐ‹ ์ „์— git status๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ ์›์ธ ์กฐ์น˜
์‹œ์ž‘์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  EngHub ๋„๊ตฌ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Œ ์‚ฌ๋‚ด๋ง ๋ฐ–์—์„œ ์ธ์ฆ ์‹คํŒจ ์‚ฌ๋‚ด๋งยทVPN ์—ฐ๊ฒฐ ํ›„ CLI ์žฌ์‹œ์ž‘
๋กœ๊ทธ์— HTTP 403 Forbidden ยท Failed to discover authorization server metadata corporate ์ธ์ฆ์ด ์—†๊ฑฐ๋‚˜ ๋งŒ๋ฃŒ ์žฌ๋กœ๊ทธ์ธ ํ›„ ์žฌ์‹œ๋„. ๋กœ๊ทธ๋Š” ~/.copilot/logs/์—์„œ ํ™•์ธ
์žฌ์ธ์ฆ์ด ๊ณ„์† ์‹คํŒจ ๋งŒ๋ฃŒ๋œ OAuth ์บ์‹œ ์žฌ์‚ฌ์šฉ ~/.copilot/mcp-oauth-config/์˜ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ธ์ฆ
๋‹น์žฅ ํ•„์š” ์—†์Œ โ€” /mcp disable EngHub ๋˜๋Š” ์„ค์ •์—์„œ ์ œ๊ฑฐ

EngHub ์—ฐ๊ฒฐ ์‹คํŒจ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ๋ง‰์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Microsoft Learn MCP, GitHub MCP, ์Šคํ‚ฌ, ์…ธยทํŒŒ์ผ ์ž‘์—…์€ ๊ทธ๋Œ€๋กœ ๋™์ž‘ํ•˜๋ฉฐ ์„ธ์…˜ ์‹œ์ž‘๋งŒ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ: ์‚ฌ๋‚ด ๋ฐ์ดํ„ฐยท์‹๋ณ„์žยท๋‚ด๋ถ€ URL์„ ์™ธ๋ถ€ ์„œ๋น„์Šค๋‚˜ ๊ณต๊ฐœ ์‚ฐ์ถœ๋ฌผ๋กœ ์˜ฎ๊ธฐ์ง€ ๋งˆ์„ธ์š”.


์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q. ์–ด๋–ค Copilot ํ”Œ๋žœ์ด ํ•„์š”ํ•œ๊ฐ€์š”? ์ด ํ‚ท์€ ํŠน์ • ๋ชจ๋ธ์„ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋ ค๋Š” GitHub Copilot ChatยทAgentยทCLI ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋žœ๊ณผ ์ตœ์‹  ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Q. ๋‚ด ํ”„๋กœ์ ํŠธ์— ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋‚˜์š”? ์ง€์นจยท์Šคํ‚ฌ์€ .github/์—, VS Code MCP ์„ค์ •์€ .vscode/mcp.json์— ๋‘ก๋‹ˆ๋‹ค. ๊ธฐ์กด ์„ค์ •์ด๋‚˜ ๊ฐ™์€ ์ด๋ฆ„์˜ ์Šคํ‚ฌ์ด ์žˆ์œผ๋ฉด ๋ณต์‚ฌ ๋ช…๋ น์œผ๋กœ ๋ฎ์–ด์“ฐ์ง€ ๋ง๊ณ  ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉํ•˜์„ธ์š”.

Q. ์Šคํ‚ฌ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์•„์š”. ์ตœ์‹  VS Code + GitHub Copilot Chat์˜ Agent mode๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , SKILL.md์˜ name์ด ํด๋”๋ช…๊ณผ ์ผ์น˜ํ•˜๋ฉฐ description์— ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

Q. ์ง€์นจ์ด ๋กœ๋“œ๋˜์ง€ ์•Š์•„์š”. .github/copilot-instructions.md ๊ฒฝ๋กœ๊ฐ€ ๋งž๋Š”์ง€, ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— .github/๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. Copilot CLI๋„ ์ด ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค.

Q. MCP ์„œ๋ฒ„๋Š” ์–ด๋–ป๊ฒŒ ๋ถ™์ด๋‚˜์š”? Microsoft Learn MCP ์„ค์ •์€ CLI์˜ .github/mcp.json๊ณผ VS Code์˜ .vscode/mcp.json์— ๋ฒˆ๋“ค๋˜์–ด ์žˆ์œผ๋ฉฐ, ํด๋” ์‹ ๋ขฐ ๋˜๋Š” Start ์Šน์ธ ํ›„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. GitHub MCP๋Š” Copilot CLI์— ๋‚ด์žฅ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. Azure MCP๋Š” Azure Skills ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ, Microsoft ์‚ฌ๋‚ด EngHub MCP๋Š” .github/mcp.enghub.example.json ์˜ˆ์‹œ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์šฉ ์ตœ์‹  ์›น ๊ฒ€์ƒ‰์€ GitHub Copilot์˜ web search ๋˜๋Š” Research capability๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


๋ผ์ด์„ ์Šค

MIT

Releases

Packages

Used by

Contributors