Copilot에 대한 더 나은 사용자 정의 지침을 작성하기위한 5 가지 팁
내 물건을 읽거나 전에 내 프레젠테이션 중 하나를 들었다면, 내 으스스한 농담을 들었을 것입니다.
그러나이 농담에 대한 나의 요점은 심각합니다. Copilot은 올바른 상황을 줄 때 가장 잘 작동합니다. 새로운 팀원처럼, 그것은 당신의 마음을 읽을 수 없습니다 (때로는 가능한 느낌이 들더라도).
Copilot은 자신이하고있는 일과 어떻게하는지 알아낼 수 있습니다. 그러나 필수 요소, 즉 당신이 구축하는 것, 사용중인 스택, 따라야 할 규칙 등의 필수 요소를 설명하면 혼란과 실수를 피할 수 있습니다.
이것이 지시 사항 파일이 중요한 이유입니다. 그들은 Copilot에게 배경을 부여 할 수있는 기회, 나머지 팀이 프로젝트에 대한 경험에서 가지고있는 제도적 지식을 제공 할 수있는 기회입니다.
Copilot의 중심은입니다 copilot-instructions.md
모든 Copilot 채팅 또는 에이전트 요청에서 읽는 파일.
그렇다면 어떻게 제작되어야합니까?
빈 페이지 문제를 피하기 위해 모든 명령어 파일에 5 가지 사항이 포함되어 있습니다 (Copilot이 파일 자체를 작성하는 데 도움이되는 방법에 대한 보너스 팁).
우리가 시작하기 전에
자세한 내용을 얻기 전에 공유하고 싶은 중요한 팁 중 하나는 물건을 지나치게 생각하지 않는 것입니다. 지침 파일을 작성하는 특정 처방 방법은 없습니다. 생성 AI의 특성은 확률 론적이며, 동일한 요청이 실제로 다른 결과를 렌더링 할 수 있음을 의미합니다. 당신의 목표는 스케일을 기울여 가능한 한 자주 원하는 대답을 찾는 데 도움이되는 것입니다.
아래 5 가지 섹션 (및 보너스 팁)은 요구 사항이 아니라 권장 사항입니다. 내 경험상,이 섹션을 갖거나 최소한이 섹션에서 표시된 주요 정보는 지침 파일에서 Copilot의 제안 품질을 크게 증가시킵니다.
이를 출발점으로 사용하고 Project, 모델 및 Coplot 경험을 바탕으로 실험하고 탐색해야합니다.
Github Copilot에게 프로젝트 개요를 제공하십시오
앱이 무엇인지 모르는 경우 앱에 대한 코드를 작성하기가 어렵습니다! Github Copilot도 마찬가지이며 프로젝트 개요 지침 파일이 매우 유용 할 수있는 곳입니다.
지침 파일의 헤더는 앱의 엘리베이터 피치 여야합니다. 앱이란 무엇입니까? 청중은 누구입니까? 주요 기능은 무엇입니까? 길이 일 필요는 없으며 무대를 설정하기 위해 몇 문장 만 있습니다.
다음은 지침 파일에 대한 프로젝트 개요의 예입니다.
# Contoso Companions
This is a website to support pet adoption agencies. Agencies are onboarded into the application, where they can manage their locations, available pets, and publicize events. Potential adoptors can search for pets available in their area, discover agencies, and submit adoption applications.
위의 예는 명확하고 직접적이며 간단합니다. Magna Carta를 쓸 필요는 없지만 Copilot에게 높은 수준에서 달성하려는 일에 대한 컨텍스트를 제공하는 것이 중요합니다. 그리고이 예제 앱은 완전히 새로운 애완 동물을 입양하도록 설득하는 방법이 아닙니다 (진지하게, 그것은 단지 나 자신에게 말하는 것이 아닙니다).
프로젝트에서 사용중인 기술 스택을 식별하십시오
당신이 만들고있는 것을 식별 한 후에는 다음을 식별해야 할 것은 당신이 그것을 만들기 위해 사용하는 것입니다. 여기에는 사용중인 백엔드 및 프론트 엔드 기술, 호출하는 API 및 타겟팅하는 테스트 스위트가 포함됩니다. 결국, 웹 사이트를 만들기위한 프레임 워크의 수는 항상 증가하고 있습니다. 시점에있는 경우? 이 블로그 게시물을 읽기 시작한 이후 3 개의 새로운 JavaScript 프레임 워크가 시작되었을 것입니다!
지침 파일을 만들 때 내면의 George RR Martin을 채널링 할 필요는 없습니다. 대신 사용중인 기술을 강조하는 목록을 작성하고 사용 방법에 대한 메모를 추가 할 수 있습니다. 이것은 Copilot이 코드를 생성하는 환경을 이해하는 데 도움이 될 것입니다.
다음은 참조를위한 내 작품의 빠른 예입니다.
## Tech stack in use
### Backend
- Flask is used for the API
- Data is stored in Postgres, with SQLAlchemy as the ORM
- There are separate database for dev, staging and prod
- For end to end testing, a new database is created and populated,
then removed after tests are complete
### Frontend
- Astro manages the core site and routing
- Svelte is used for interactivity
- TypeScript is used for all front-end code
### Testing
- Unittest for Python
- Vitest for TypeScript
- Playwright for e2e tests
코딩 가이드 라인을 설명하십시오
첫 번째 풀 요청을 만들기 전에 따라야 할 지침을 알아야합니다. 이 중 일부는 코드를 작성하는 방법에 관한 것입니다. 예를 들어 JavaScript 또는 TypeScript에 세미콜론을 사용하고 있습니까? 파이썬에 대한 힌트를 입력 하시겠습니까? 탭이나 공백? (유일한 정답은 예, 예, 공간입니다. 질문을받지 않을 것입니다.)
프로젝트 구조에 따라 지침을 기술 스택 지침 파일에 통합 할 수 있습니다. 그러나 나는 일반적으로 가이드 라인에 대한 별도의 섹션을 좋아합니다. 많은 사람들이 사용중인 모든 언어에 적용되므로. 더 읽기 쉬운 것으로 생각되어 유지 가능성에 중요하며 언어와 프레임 워크 간의지도가 종종 있습니다.
특정 유형의 파일에 대한 가이드 라인에는 .instructions 파일 사용을 고려할 수도 있습니다. .astro
또는 .jsx
파일 또는 패턴과 일치 할 수있는 단위 테스트 /tests/test_*.py
.
다음은 저의 작품의 또 다른 예입니다.
## Project and code guidelines
- Always use type hints in any language which supports them
- JavaScript/TypeScript should use semicolons
- Unit tests are required, and are required to pass before PR
- Unit tests should focus on core functionality
- End-to-end tests are required
- End-to-end tests should focus on core functionality
- End-to-end tests should validate accessibility
- Always follow good security practices
- Follow RESTful API design principles
- Use scripts to perform actions when available
프로젝트 구조를 설명하십시오
코드를 작성하는 수많은 프레임 워크와 방법이있는 것처럼 프로젝트를 구성하는 무한한 방법이 있습니다. 예를 들어, 모노 포포 구조에서 프론트 엔드는 프론트 엔드라는 폴더에있을 수 있습니다. 또는 프론트 엔드. 또는 front_end. 또는 클라이언트. 또는 웹…
나는 당신이 이것이 어디로 가는지 본다고 생각합니다.
그리고 Copilot은 확실히 그것을 알아낼 수 있지만 빠른 LS 명령은 답을 공개 할 수 있습니다. 그러나 커스텀 지침에 프로젝트 구조를 나열하면 Copilot을 약간의 작업을 저장하고 폴더의 내용에 대해 조금 더 컨텍스트를 제공 할 수있는 기회를 제공합니다.
예는 다음과 같습니다.
## Project structure
- server/ : Flask backend code
- models/ : SQLAlchemy ORM models
- routes/ : API endpoints organized by resource
- tests/ : Unit tests for the API
- utils/ : Utility functions and helpers, including database calls
- client/ : Astro/Svelte frontend code
- src/components/ : Reusable Svelte components
- src/layouts/ : Astro layout templates
- src/pages/ : Astro pages and routes
- src/styles/ : CSS stylesheets
- scripts/ : Development, deployment and testing scripts
- docs/ : Project documentation to be kept in sync at all times
가용 리소스로 Github Copilot을 가리키십시오
거의 모든 프로젝트에는 개발을 돕기 위해 사용할 수있는 스크립트 또는 리소스 세트가 있습니다. 이들은 설정 또는 실행 테스트 또는 소프트웨어 공장을 간소화하여 코드 또는 템플릿을 생성하는 스크립트 일 수 있습니다. VS 코드 및 Copilot 코딩 에이전트에서 MCP 지원의 도입은 Copilot의 에이전트가 사용할 수있는 더 많은 도구를 열어줍니다.
우리는 이미 Copilot이 사용할 수있는 것을 발견 할 수 있음을 이미 설정했지만 사용자 정의 지침 파일을 통해 올바른 방향으로 몇 개의 포인터가 정확도와 속도를 높일 것입니다.
예는 다음과 같습니다.
## Resources
- scripts folder
- start-app.sh : Installs all libraries and starts the app
- setup-env.sh : Installs all libraries
- test-project.sh : Installs all libraries, runs unit and e2e tests
- MCP servers
- Playwright: Used for generating Playwright tests or interacting with site
- GitHub: Used to interact with repository and backlog
보너스 팁 : 사용자 정의 지침 파일 생성에 도움이되는 Github Copilot을 얻으십시오.
지침 파일을 만드는 완벽한 방법은 없으며, 무언가는 항상 아무것도 아닌 것보다 낫습니다. 즉, 우리 모두는 올바르게 또는 가능한 한 바로 가깝게 얻기를 원합니다. 바라건대 위의 지침이 당신에게 영감을 주셨기를 바랍니다!
그러나 여전히 실제로 글을 쓰는 문제가 있습니다. 그리고 그것은 여전히 우리가 시작한 빈 페이지 문제를 남길 수 있습니다.
다행히도 Copilot은 Copilot을 도울 수 있습니다!
IDE에서 Copilot 에이전트 모드 (또는 GitHub 저장소에서 Copilot에 문제를 할당하여 지침 파일을 작성하도록 요청할 수 있습니다. 이 파일을 그대로 사용하거나 적합한대로 편집 할 수 있습니다. Copilot의 문서에는 명령 파일을 생성하는 데 사용할 수있는 권장 프롬프트도 있습니다! 전체 권장 사항의 간소화 된 버전은 다음과 같습니다.
Your task is to "onboard" this repository to a coding agent by adding a .github/copilot-instructions.md file. It should contain information describing how the agent, seeing the repo for the first time, can work most efficiently.
You will do this task only one time per repository, and doing a good job can SIGNIFICANTLY improve the quality of the agent's work, so take your time, think carefully, and search thoroughly before writing the instructions.
## Goals
- Document existing project structure and tech stack.
- Ensure established practices are followed.
- Minimize bash command and build failures.
## Limitations
- Instructions must be no longer than 2 pages.
- Instructions should be broadly applicable to the entire project.
## Guidance
Ensure you include the following:
- A summary of what the app does.
- The tech stack in use
- Coding guidelines
- Project structure
- Existing tools and resources
## Steps to follow
- Perform a comprehensive inventory of the codebase. Search for and view:
- README.md, CONTRIBUTING.md, and all other documentation files.
- Search the codebase for indications of workarounds like 'HACK', 'TODO', etc.
- All scripts, particularly those pertaining to build and repo or environment setup.
- All project files.
- All configuration and linting files.
- Document any other steps or information that the agent can use to reduce time spent exploring or trying and failing to run bash commands.
## Validation
Use the newly created instructions file to implement a sample feature. Use the learnings from any failures or errors in building the new feature to further refine the instructions file.
위의 프롬프트를 사용하면 시간을 절약 할 수 있습니다. 그러나 더 중요한 것은 주어진 프로젝트에 대한 생각과 목표를 명확히하는 데 도움이 될 수 있습니다.
지침 파일의 마지막 단어
명확하게 말하면 지침을 제공한다고해서 완벽한 코드를 보장하지는 않습니다. 그러나 좋은 지침 파일을 갖는 것은 Copilot의 코드 제안 품질을 높이는 데 큰 첫 단계입니다. 당신이 나에게 물어 보면, a copilot-instructions.md
파일은 Copilot을 사용하는 모든 프로젝트의 요구 사항입니다.
그리고 다시 – 완벽 할 필요는 없습니다. 이 섹션부터 시작하여 다음을 구축 할 수있는 훌륭한 기초를 제공합니다.
- 당신이 짓는 것의 엘리베이터 피치
- 프레임 워크와 빌드에 사용하는 기술 스택
- 코딩 및 기타 프로젝트 지침
- 프로젝트 구조와 사물을 찾을 수있는 곳
- 자동화 및 작업에 사용할 수있는 리소스
거기에서 Copilot에 대한보다 구체적인 지침을 위해 .instructions 파일을 탐색 할 수 있습니다. 그러나 그것은 모두 시작합니다 copilot-instructions.md
.
문서를 읽으십시오 Github Copilot의 사용자 정의 지침에 대한 자세한 내용은>
작성자가 작성했습니다
Post Comment