// 합의
copilot-instructions.md
Copilot이 이 리포지토리에서 어떻게 행동해야 하는지.
GitHub Copilot CLI 사용자를 위한
사용자 지정 지침은 Copilot에게 어떻게 행동해야 하는지 알려주지만, 저장소에 무엇이 있는지는 알려주지 않습니다. Maguyva는 코드베이스를 인덱싱하고 MCP를 통해 다시 제공하여, GitHub Copilot CLI가 이미 코드를 읽은 것처럼 편집하도록 합니다.
Free 등급: 리포지토리 3개, 인덱싱된 리포지토리 라인 최대 5만 줄, 카드 등록 불필요.
행동에는 지침을 사용하세요. 최신 코드베이스 사실에는 Maguyva를 사용하세요.네 가지 개념. 각각 하나의 역할을 합니다.
// 합의
Copilot이 이 리포지토리에서 어떻게 행동해야 하는지.
// 전송 계층
Copilot이 외부 도구와 컨텍스트에 접근하는 방법.
// 코드베이스
근거 있는 리포지토리 사실을 반환하는 MCP 서버.
// 누가 비용을 내는가
에이전트는 좌석 비용을 내지 않습니다. 요금제 보기
# .github/copilot-instructions.md
- 기존 모듈 경계를 우선하세요.
- 머지를 제안하기 전에 저장소의 테스트 명령을 실행하세요.
- 파일 경로를 지어내지 마세요. 새 패키지를 만들기 전에 먼저 물어보세요.지속적인 지침은 .github/copilot-instructions.md에 속해야 합니다. 그곳은 다음 항목에 적합한 위치입니다:
그 파일은 저장소의 조회 가능한 인덱스였던 적이 없습니다. Copilot에게 어떻게 작업할지는 알려주지만, 무엇이 있는지는 알려주지 않습니다.
Copilot이 markdown 파일만으로는 해결할 수 없는 네 가지 실패 모드.
Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. 낯선 트리에서의 첫 편집은 파일 구조에 대한 추측일 뿐입니다.
지난 분기의 인증 흐름을 설명하는 지침 블록은 누군가 세션 스토어를 분리하는 날 명백히 틀린 것이 됩니다. Copilot will prefer the file you committed over the code that shipped.
“이것을 임포트하는 것은 무엇인가요?” is a graph question. 지침은 모든 호출자를 나열할 수 없으며, 여러분도 그것을 원하지 않을 것입니다.
저장소의 더 많은 내용을 지침에 욱여넣는 것은 추론 토큰을 오래된 스냅샷과 맞바꾸는 일입니다. 몇 KB를 넘어서면 더 나쁜 지도에 비용을 지불하는 셈입니다.
Copilot은 이미 지침과 도구로 사고합니다.
copilot-instructions.md
합의
Copilot의 행동 방식
MCP
채널
도달 방식
Maguyva
코드베이스 사실
보이는 것
사용자 지정 지침은 Copilot에게 어떻게 행동해야 하는지 알려줍니다.
Maguyva는 Copilot에게 조회 가능한 코드 지도를 제공합니다.
diff를 수락하기 전에 지도에 물어보세요.
// workflow 01
copilot> normalizePhoneNumber는 E.164를 어떻게 처리하나요? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← 실제 구현 test/util/phone.spec.ts:14 jest.mock(...) ← 스텁 → Copilot이 모의 객체가 아니라 구현을 엽니다. [exit 0]
이름은 거짓말을 합니다. 모의 객체는 실제 코드를 가립니다. Maguyva는 테스트 모의 객체보다 실제 구현을 상위에 배치합니다.
// workflow 02
copilot> 무엇이 QueueDispatcher.publish를 호출하나요? graph::callers(QueueDispatcher.publish) src/billing/* 내 3건 src/audit/* 내 1건 src/notifications/* 내 1건 → diff는 실제 임포터를 근거로 합니다. [exit 0]
패키지 간 호출 지점이 바로 표시됩니다. diff는 Copilot의 grep이 아니라 실제 임포터를 근거로 합니다.
// workflow 03
copilot> rename PaymentClient → BillingClient graph::callers(PaymentClient) 7개 패키지에서 12건 참조 graph::importers(src/payments/client.ts) 9개 임포터 graph::extends(PaymentClient) 2개 하위 클래스 (RetryClient, MockClient) → Copilot이 파일 목록을 포함한 마이그레이션을 제안합니다. [exit 0]
Copilot은 편집을 시작하기 전에 의존 요소에 대해 Maguyva에 물어봅니다. 마이그레이션 목록은 Copilot의 기억이 아니라 실제 그래프를 근거로 반환됩니다.
세 단계로 끝. Free 등급: 리포지토리 3개, 인덱싱된 리포지토리 라인 최대 5만 줄, 카드 등록 불필요.
// step 01
답을 평가할 수 있도록 이미 알고 있는 저장소를 선택하세요. 무료로 가입하고, GitHub를 연결한 다음, 인덱싱을 기다리세요.
// step 02
copilot mcp add --transport http --header "Authorization: Bearer mgv_xxxx" maguyva https://maguyva.tools/mcp~/.copilot/mcp-config.json
{
"mcpServers": {
"maguyva": {
"type": "http",
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer mgv_xxxx"
}
}
}
}// step 03
회사 전체로 시작하지 마세요. 이미 답을 알고 있는 질문을 하나 하고, 인용된 파일을 열어보세요.