Nano Banana Pro
Agent skill for nano-banana-pro
- `REPO-ROOT` refers to the root directory of the repository.
Sign in to like and favorite skills
REPO-ROOT refers to the root directory of the repository.SOLUTION-ROOT refers to the root directory of a solution (*.sln or *.slnx).REPO-ROOT/.github/Project.md.Leveraging the Knowledge Base, find knowledge and documents for this project in REPO-ROOT/.github/KnowledgeBase/Index.md.*.prompt.md file is referenced, take immediate action following the instructions in that file.If you are on Windows OS:
msbuild or other executable files directly.& absolute-path.ps1 parameters....If you are on Linux, offered powershell script files won't work and here are replacements:
*.sln, *.slnx, *.vcxitems, *.vcxproj, *.vcxproj.filters.cmake (as cmake is not in use), make, clang++, g++.gdb or lldb unless you can interact with it, otherwise a running debugger will cause subsequent building to fail.makefile files are generated out of these solution and project files.vmake files are in REPO-ROOT/Test/Linux or its sub folders.
vmake is directly in that folder, that is the only project you can and need to work on.*.vcxproj will have a corresponding folder containing the vmake for that project.makefile as they will be re-generated and your modification will be lost. Modify vmake instead. In vmake you can:
*.vcxitems or *.vcxproj project to add every file they usevmake file:
vmake --make to generate makefile according to the latest content in solution and project files.vbuild --build to incrementally build the project.vbuild --full-build to fully rebuild the project../Bin/UnitTest is generated after a successful vbuild.The C++ project in this repo is built and tested using its own msbuild wrappers. You must strictly follow the instructions in the following documents, otherwise it won't work properly.
REPO-ROOT/.github/Guidelines/SourceFileManagement.mdREPO-ROOT/.github/Guidelines/Building.mdREPO-ROOT/.github/Guidelines/Running-UnitTest.mdREPO-ROOT/.github/Guidelines/Running-CLI.md (to edit ...)REPO-ROOT/.github/Guidelines/Running-GacUI.md (to edit ...)REPO-ROOT/.github/Guidelines/Debugging.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/vlpp.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/gacui.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/gacui_frame.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/gacui_io.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/gacui_controls.mdREPO-ROOT/.github/KnowledgeBase/manual/unittest/gacui_snapshots.mdREPO-ROOT/.github/Guidelines/GacUIXmlResource.mdREPO-ROOT/.github/KnowledgeBase/Index.md under # Copy of Online Manual / ## GacUI, in the GacUI XML Resource item and all sub items.REPO-ROOT/.github/KnowledgeBase/Index.md under # Copy of Online Manual / ## Workflow Script, in the Syntax item and all sub items.If you need to find any document for the current working task, they are in the
REPO-ROOT/.github/TaskLogs folder:
Copilot_Scrum.mdCopilot_Task.mdCopilot_Planning.mdCopilot_Execution.mdCopilot_KB.md" or "markdown" in a markdown file.# Topic.If you need to find any script or log files, they are in the
REPO-ROOT/.github/Scripts folder:
copilotPrepare.ps1copilotBuild.ps1copilotExecute.ps1copilotDebug_Start.ps1copilotDebug_Stop.ps1copilotDebug_RunCommand.ps1Build.logExecute.log*.Windows.cpp and *.Linux.cpp naming convention, and keep them as small as possible.Import folder, they are dependencies.Release folder, they are generated release files.Source and Test folder.auto to define variables if it is doable. Use auto&& when the type is big or when it is a collection type.vint instead of int.L'x', L"x", wchar_t, const wchar_t and vl::WString, instead of std::string or std::wstring.vl::regex::Regex, here are important syntax differences with other regular expression implementation:
REPO-ROOT/.github/KnowledgeBase/Index.md for more information of how to choose correct C++ data types.#pragma once.Source folder:
using namespace statement, full name of types are always required.using namespace statement if necessary to prevent from repeating namespace everywhere.vl::stream:: is an exception, always use stream:: with using namespace vl;, DO NOT use using namespace vl::stream;.REPO-ROOT/.github/KnowledgeBase/Index.md, it is organized in this way:
## Guidance: A general guidance that plays a super important part repo-wide.## Project: A brief description of each project and its purpose.
### Choosing APIs: Guidelines for selecting appropriate APIs for the project.### Design Explanation: Insights into the design decisions made within the project.## Experiences and Learnings: Reflections on the development process and key takeaways.# Copy of Online Manual: A copy of the online manual so that you don't need network access. They are much more detailed, offering selectively important information.
## Project: A copy of online manual for that project, organized in the same way as the knowledge base.## Unit Testing.There are multiple categories under
Choosing APIs. Each category begins with a short and accurate title #### Category.
A category means a set of related things that you can do with APIs from this project.
Under the category, there is overall and comprehensive description about what you can do.
Under the description, there are bullet points and each item follow the format:
- Use CLASS-NAME for blahblahblah (If a function does not belong to a class, you can generate Use FUNCTION-NAME ...).
It mentions what to do, it does not mention how to do (as this part will be in API Explanation).
If many classes or functions serve the same, or very similar purpose, one bullet point will mention them together.
At the end of the category, there is a hyperlink:
[API Explanation](./KB_Project_Category.md) (no space between file name, all pascal case).
There are multiple topics under
Design Explanation. Each topic begins with a short and accurate title #### Topic.
A topic means a feature of this project, it will be multiple components combined.
Under the topic, there is overall and comprehensive description about what does this feature do.
Under the description, there are bullet points to provide a little more detail, but do not make it too long. Full details are supposed to be in the document from the hyperlink.
At the end of the topic, there is a hyperlink:
[Design Explanation](./KB_Project_Design_Topic.md) (no space between file name, all pascal case).
(to edit ...)