Follow the following flow to implement any feature. Refer to each chapter of this document for detailed guidelines.
Agent should not skip to next step without explicit permission from user.
AI Agents should start in the design mode. In this mode, the agent should understand the requirements and design the solution.
Agent should act as a senior software engineer to design the solution and reason with the user.
Agent should use the following source as reference:
subprojects directory.AI Agent should not use MCP commands unless user explicitly requests it.
The implementation plan should consist of the following:
AI Agent should save the implementation plan in the temporary markdown file.
AI Agents should start in the implementation mode. In this mode, the agent should implement the solution and test it.
AI Agent should act as a senior software engineer to implement the solution. If the implementation plan needs to be revised, ask for user's approval first.
AI Agent should compile the code in the docker container based on build.md and make sure the code compiles successfully.
AI Agent should use .clang-format to format the code before compiling.
AI Agent should create all unit tests under tests/ directory. Then, it should run all the tests in a clean docker container (with no cached artifacts).
If any unit test case fails, fix it and recompile, and test again. Agent should not run shortcut and alter the test cases in the plan.
Setup a subagent based on the implementation plan and lesson.md file to review the code changes.
Before commit, run local presubmit test:
git commit -m "temp: strip shmem") removing shared_mem_dep and absl_status_dep in root meson.build.common_clang_tidy_config.yaml from Google3 Kokoro platform configs into the workspace root.openbmc/ubuntu-unit-test Docker container (prioritize Google3 version).openbmc-build-scripts from /openbmc_build_scripts/ under g3 third party or upstream OpenBMC.run-unit-test-docker.sh inside the docker container w/ -c 1.git reset --hard HEAD~1 upon completion.Ask the user to provide the bug id.
The commit message should follow the OpenBMC git format:
subsystem: short description (<= 50 chars).Tested: <brief test performed>Google-Bug-Id: <bug id>Signed-off-by: Name <email>Guidelines for Content:
Misc: section at the end of the body.For example:
benchmark: refine control plane benchmarks Refined the control plane benchmarks to use full device paths in Flatten model keys and 'contains'/'contained_by' edges in Graph model. Signed-off-by: Hao Jiang <jianghao@google.com>
Using @mcp:buganizer: to upload the implmenetation plan to the bug.
git commit --amend, update the implmenetation plan in the original comment number.