This commit is contained in:
vczh
2025-11-11 11:35:30 -08:00
parent 7e9e9bf9df
commit 99f8be7e0a
11 changed files with 207 additions and 377 deletions

View File

@@ -16,7 +16,28 @@ This project is built on top of:
# General Instruction
- This project uses C++ 20, you don't need to worry about compatibility with prior version of C++.
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
## Solution and Project File Structure
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
## Writing C++ Code
- This project uses C++ 20, you are recommended to use new C++ 20 feature aggresively.
- All code should be crossed-platform. In case when OS feature is needed, a Windows version and a Linux version should be prepared in different files, following the `*.Windows.cpp` and `*.Linux.cpp` naming convention, and keep them as small as possible.
- DO NOT MODIFY any source code in the `Import` folder, they are dependencies.
- DO NOT MODIFY any source code in the `Release` folder, they are generated release files.

View File

@@ -36,8 +36,10 @@
- Add an empty `# UPDATES` section after `# DESIGN REQUEST`.
- If there is an `# Update` section: it means I am going to propose some change to `Copilot_Scrum.md`.
- Copy precisely my problem description in `# Update` from the LATEST chat message to the `# DESIGN REQUEST` section, with a new sub-section `## UPDATE`.
- The new `## UPDATE` should be appended to the end of the existing `# UPDATES` section (aka before `# TASKS`).
- Follow my update to change the design document.
- If there is a `# Learn` section: it means I made important updates during the execution of the last task, you should apply them smart enough to future tasks. Find the `Optional Step for Learning` section for more instruction.
- Find the `(Optional) Step 5. Verify the Document` section to verify the whole document after applying the update.
- If there is a `# Learn` section: it means I made important updates during the execution of the last task, you should apply them smart enough to future tasks. Find the `(Optional) Step 7. Learning` section for more instruction.
- If there is nothing: it means you are accidentally stopped. Please continue your work.
## Step 2. Understand the Goal and Quality Requirement
@@ -80,20 +82,22 @@
- Keep the knowledge base to only guidelines and design insights will have you find correct piece of code to read.
- It is fine that you find nothing to change or add to the knowledge base.
## Step 5. Mark the Completion
## (Optional) Step 5. Verify the Document (only when # Update appears in the LATEST chat message)
- Verify the content of the whole document again. Make sure when you changing, adding, removing, splitting tasks content being replaced are removed properly.
## Step 6. Mark the Completion
- Ensure there is a `# !!!FINISHED!!!` mark at the end of `Copilot_Scrum.md` to indicate the document reaches the end.
## (Optional) Step 6. Learning (only when # Learn appears in the LATEST chat message)
## (Optional) Step 7. Learning (only when # Learn appears in the LATEST chat message)
- Ignore this section if there is no `# Learn` in the LATEST chat message
### Step 6.1
### Step 7.1
- Identify the last completed task.
### Step 6.2
### Step 7.2
- Read through `Copilot_Execution.md`. There may be some fixing attempts, that were done by you.
- Compare existing source code with `Copilot_Execution.md`, finding what is changed.
- During comparing, you need to take into consideration of the fixing attempts, as sometimes you didn't update the main content of the document.
@@ -109,47 +113,26 @@
- Add your finding to `Copilot_Execution.md` at the very end with the topic `# Comparing to User Edit`.
- If every changes are ignored by the rule above, or if you can't find any user edit, just write `No user edit found`.
### Step 6.3
### Step 7.3
- There will be multiple `# UPDATES` or `# FIXING ATTEMPTS` or `# Comparing to User Edit` sections in `Copilot_Task.md`, `Copilot_Planning.md` and `Copilot_Execution.md`.
- These 3 files recorded how you interpreted the last completed task, and how I wanted you to adjust your understanding.
- Find out what you can learn from the updates, about my philosophy and preferences.
- Check all future tasks, apply what you have learned, and adjust your approach accordingly.
### Step 7.4
- Find and execute `copilotPrepare.ps1 -Backup`. You MUST use the `-Backup` parameter.
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -162,13 +145,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log

View File

@@ -35,6 +35,7 @@
- Add an empty `# UPDATES` section after `# PROBLEM DESCRIPTION`.
- If there is an `# Update` section: it means I am going to propose some change to `Copilot_Task.md`.
- Copy precisely my problem description in `# Update` from the LATEST chat message to the `# PROBLEM DESCRIPTION` section, with a new sub-section `## UPDATE`.
- The new `## UPDATE` should be appended to the end of the existing `# UPDATES` section (aka before `# INSIGHTS AND REASONING`).
- Follow my update to change the design document.
- If there is nothing: it means you are accidentally stopped. Please continue your work.
- Read `Copilot_Task.md` througly, it is highly possibly that you were working on the request described in the last section in `# PROBLEM DESCRIPTION`.
@@ -60,37 +61,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -103,13 +79,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log

View File

@@ -28,6 +28,7 @@
- Find `# Update` in the LATEST chat message. Ignore any `# Update` in the chat history.
- If there is an `# Update` section: it means I am going to propose some change to `Copilot_Planning.md`.
- Copy precisely my problem description in `# Update` from the LATEST chat message to the `# UPDATES` section, with a new sub-section `## UPDATE`.
- The new `## UPDATE` should be appended to the end of the existing `# UPDATES` section (aka before `# IMPROVEMENT PLAN`).
- Follow my update to change the planning document.
- If there is nothing:
- If `Copilot_Planning.md` only has a title, you are on a fresh start.
@@ -66,37 +67,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -109,13 +85,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log

View File

@@ -22,6 +22,7 @@
- Find `# Update` in the LATEST chat message. Ignore any `# Update` in the chat history.
- If there is an `# Update` section: it means I am going to propose some change to `Copilot_Execution.md` and the source code together.
- Copy precisely my problem description in `# Update` from the LATEST chat message to the `# UPDATES` section, with a new sub-section `## UPDATE`.
- The new `## UPDATE` should be appended to the end of the existing `# UPDATES` section (aka before `# IMPROVEMENT PLAN`).
- Follow my update to change the execution document.
- If there is nothing:
- If `Copilot_Execution.md` only has a title, you are on a fresh start.
@@ -59,37 +60,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -102,13 +78,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log

View File

@@ -28,6 +28,8 @@
- Check out `Compile the Solution` for details about compiling the solution but DO NOT run unit test.
- `Compile the Solution` is the only way to build the project. DO NOT call any other tools or scripts.
- Find out if there is any warning or error.
- `Compile the Solution` has the instruction about how to check compile result.
- If there is any compilation error, address all of them:
- If there is any compile warning, only fix warnings that caused by your code change. Do no fix any other warnings.
- If there is any compile error, you need to carefully identify, is the issue in the callee side or the caller side. Check out similar code before making a decision.
@@ -43,37 +45,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -86,13 +63,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log
@@ -106,19 +86,26 @@ You need to locate listed files in `TaskLogs.vcxitems`.
## Compile the Solution
- Just let Visual Studio Code to compile the solution, the `Build Unit Tests` should have been configured in `tasks.json`.
- This task only copmile without running.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- Run the `Build Unit Tests` task.
- DO NOT use msbuild by yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Compiler Result
- The only source of trust is the raw output of the compiler.
- It is saved to `REPO-ROOT/.github/TaskLogs/Build.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.
## Executing Unit Test
- Just let Visual Studio Code to run the unit test, the `Run Unit Tests` should have been configured in `tasks.json`.
- If you updated any source files, you should build the unit test before running it, check out `Compile the Solution` for details.
- Run the `Run Unit Tests` task.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- DO NOT call executables or scripts yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Test Result
- The only source of trust is the raw output of the unit test process.
- It is saved to `REPO-ROOT/.github/TaskLogs/Execute.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.

View File

@@ -20,6 +20,8 @@
- Check out `Compile the Solution` for details about compiling the solution but DO NOT run unit test yet.
- `Compile the Solution` is the only way to build the project. DO NOT call any other tools or scripts.
- Find out if there is any warning or error.
- `Compile the Solution` has the instruction about how to check compile result.
- If there is any compilation error, address all of them:
- If there is any compile warning, only fix warnings that caused by your code change. Do no fix any other warnings.
- If there is any compile error, you need to carefully identify, is the issue in the callee side or the caller side. Check out similar code before making a decision.
@@ -63,37 +65,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -106,13 +83,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log
@@ -126,19 +106,26 @@ You need to locate listed files in `TaskLogs.vcxitems`.
## Compile the Solution
- Just let Visual Studio Code to compile the solution, the `Build Unit Tests` should have been configured in `tasks.json`.
- This task only copmile without running.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- Run the `Build Unit Tests` task.
- DO NOT use msbuild by yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Compiler Result
- The only source of trust is the raw output of the compiler.
- It is saved to `REPO-ROOT/.github/TaskLogs/Build.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.
## Executing Unit Test
- Just let Visual Studio Code to run the unit test, the `Run Unit Tests` should have been configured in `tasks.json`.
- If you updated any source files, you should build the unit test before running it, check out `Compile the Solution` for details.
- Run the `Run Unit Tests` task.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- DO NOT call executables or scripts yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Test Result
- The only source of trust is the raw output of the unit test process.
- It is saved to `REPO-ROOT/.github/TaskLogs/Execute.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.

View File

@@ -8,35 +8,10 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.

View File

@@ -13,6 +13,8 @@
- Check out `Compile the Solution` for details about compiling the solution but DO NOT run unit test yet.
- `Compile the Solution` is the only way to build the project. DO NOT call any other tools or scripts.
- Find out if there is any warning or error.
- `Compile the Solution` has the instruction about how to check compile result.
- If there is any compilation error, address all of them:
- If there is any compile warning, only fix warnings that caused by your code change. Do no fix any other warnings.
- If there is any compile error, you need to carefully identify, is the issue in the callee side or the caller side. Check out similar code before making a decision.
@@ -45,55 +47,37 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Unit Test Projects to Work with
## Compile the Solution
- Just let Visual Studio Code to compile the solution, the `Build Unit Tests` should have been configured in `tasks.json`.
- This task only copmile without running.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- Run the `Build Unit Tests` task.
- DO NOT use msbuild by yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Compiler Result
- The only source of trust is the raw output of the compiler.
- It is saved to `REPO-ROOT/.github/TaskLogs/Build.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.
## Executing Unit Test
- Just let Visual Studio Code to run the unit test, the `Run Unit Tests` should have been configured in `tasks.json`.
- If you updated any source files, you should build the unit test before running it, check out `Compile the Solution` for details.
- Run the `Run Unit Tests` task.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- If Visual Studio Code is not well configured, you must warn me in chat with BIG BOLD TEXT and stop immediately.
- DO NOT call executables or scripts yourself.
- DO NOT modify `tasks.json`.
### The Correct Way to Read Test Result
- The only source of trust is the raw output of the unit test process.
- It is saved to `REPO-ROOT/.github/TaskLogs/Execute.log`. `REPO-ROOT` is the root folder of the repo.
- Wait for the task to finish before reading the log file. DO NOT HURRY.
- When all test cases pass, there will be a summarizing about how many test cases are executed. Otherwise it crashed at the last showing test case.
- DO NOT TRUST related tools Visual Studio Code offers you, like `get_errors` or `get_task_output`, etc.

View File

@@ -26,35 +26,10 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.

View File

@@ -105,37 +105,12 @@
# External Tools Environment and Context
- You are on Windows running in Visual Studio Code.
- In order to achieve the goal, you always need to create/delete/update files, build the project, run the unit test, etc. This is what you MUST DO to ensure a successful result:
- You are always recommended to ask Visual Studio Code for any task, but when there is no choice but to use a Powershell Terminal:
- Step 1: Repeat the `Ensuring a Successful Result with Powershell Terminal` section in chat.
- Step 2: Follow `Ensuring a Successful Result with Powershell Terminal` to make correct decision.
## Ensuring a Successful Result with Powershell Terminal
- DO NOT run multiple commands at the same time, except they are connected with pipe (`|`).
- Submitting CLI commands is not recommended unless you have no choice.
- There is some rules to follow to submit correct powershell commands:
- DO NOT call `msbuild` or other executable files by yourself.
- DO NOT create any new file unless explicitly directed.
- DO NOT create or delete any file unless explicitly directed.
- MUST run any powershell script in this format: `& absolute-path.ps1 parameters...`.
- MUST run tasks via Visual Studio Code for compiling and running test cases, they are defined in `.vscode/tasks.json`, DO NOT change this file.
- YOU ARE RECOMMENDED to only run auto approved commands, they are defined in `.vscode/settings.json`, DO NOT change this file.
# General Instructions
- Find out the `Accessing the Knowledge Base` section, read `Index.md` of `KnowledgeBase` project in the current solution.
- Before generating any code, if the file is changed, read it. Not all changes come from you, I will edit the file too. Do not generate code based on out-dated version in your memory.
- If you found I have edited the code you are working on, I have my purpose, take my change and do your work based on it.
- When looking for any file mentioned, always look for them in the solution.
- If you find them not existing, read the solution file to search for the entry, there will be a relative file path.
- When adding a source file to a project:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- It is an XML file.
- Edit that project file to include the source file.
- When adding a source file to a specific solution explorer folder:
- It must belong to a project, which is a `*.vcxproj` or `*.vcxitems` file.
- Find the `*.filters` file with the same name, it is an XML file.
- Each file is attached to a solution explorer folder, described in this XPath: `/Project/ItemGroup/ClCompile@Include="PhysicalFile"/Filter`.
- In side the `Filter` tag there is the solution explorer folder.
- Edit that `*.filters` file to include the source file.
- MUST run tasks via Cursor for compiling and running test cases.
# Accessing Log Files and PowerShell Scripts
@@ -148,13 +123,16 @@ This guidance is for accessing following files mentioned in this instruction:
- `copilotPrepare.ps1`
- `copilotBuild.ps1`
- `copilotExecute.ps1`
- `Build.log`
- `Execute.log`
They are in the `REPO-ROOT/.github/TaskLogs` folder.
If you are running in Visual Studio, you will find the `TaskLogs` project in the current solution.
Otherwise, locate the `TaskLogs` project in `REPO-ROOT/.github/TaskLogs/TaskLogs.vcxitems`.
`REPO-ROOT` is the root folder of the repo.
`TaskLogs.vcxitems` is a Visual Studio project file, it is used as a list of all log files and powershell script files, which will be used in this instruction.
You need to locate listed files in `TaskLogs.vcxitems`.
## If you are running in Visual Studio
You will find the `TaskLogs` project in the current solution, which should contain these files.
## Important Rules for Markdown Document or Log