<environment_context>
  <cwd>C:\GitCode\paiban</cwd>
  <approval_policy>on-request</approval_policy>
  <sandbox_mode>workspace-write</sandbox_mode>
  <network_access>restricted</network_access>
  <shell>powershell.exe</shell>
</environment_context>


Generate a file named AGENTS.md that serves as a contributor guide for this repository.
Your goal is to produce a clear, concise, and well-structured document with descriptive headings and actionable explanations for each section.
Follow the outline below, but adapt as needed — add sections if relevant, and omit those that do not apply to this project.

Document Requirements

- Title the document "Repository Guidelines".
- Use Markdown headings (#, ##, etc.) for structure.
- Keep the document concise. 200-400 words is optimal.
- Keep explanations short, direct, and specific to this repository.
- Provide examples where helpful (commands, directory paths, naming patterns).
- Maintain a professional, instructional tone.

Recommended Sections

Project Structure & Module Organization

- Outline the project structure, including where the source code, tests, and assets are located.

Build, Test, and Development Commands

- List key commands for building, testing, and running locally (e.g., npm test, make build).
- Briefly explain what each command does.

Coding Style & Naming Conventions

- Specify indentation rules, language-specific style preferences, and naming patterns.
- Include any formatting or linting tools used.

Testing Guidelines

- Identify testing frameworks and coverage requirements.
- State test naming conventions and how to run tests.

Commit & Pull Request Guidelines

- Summarize commit message conventions found in the project’s Git history.
- Outline pull request requirements (descriptions, linked issues, screenshots, etc.).

(Optional) Add other sections if relevant, such as Security & Configuration Tips, Architecture Overview, or Agent-Specific Instructions.


Summary: auto


**Preparing to create AGENTS.md documentation**

I’m mapping out how to explore the repo structure carefully to tailor the AGENTS.md doc. Since this involves inspecting directories, existing docs, and maybe package info, I want to set up a multi-step plan before diving into writing. The plan will start with repository inspection using PowerShell commands executed properly to fit the environment.


Review repository layout and existing configs to tailor guidance

Draft AGENTS.md with project-specific instructions

Validate word count and adjust for clarity


Output: Plan updated


**Gathering repository structure**


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\nd-----          2025/9/4     22:09                .claude                                                                                \r\nd-----         2025/9/22     21:01                .codebuddy                                                                                \r\nd-----          2025/9/2     23:28                .cursor                                                                                \r\nd-----          2025/9/2     23:28                .idea                                                                                \r\nd-----         2025/9/22     21:00                NPP.SmartSchedue.Api                                                                                \r\nd-----         2025/9/22     21:00                NPP.SmartSchedue.Api.Contracts                                                                               \r\nd-----         2025/9/22     21:00                NPP.SmartSchedue.Host                                                                                \r\nd-----         2025/9/22     21:00                NPP.SmartSchedue.Tests                                                                                \r\n-a----          2025/9/2     23:28            340 .dockerignore                                                                                \r\n-a----          2025/9/2     23:28           2581 .gitattributes                                                                                \r\n-a----          2025/9/2     23:28           7399 .gitignore                                                                                \r\n-a----          2025/9/2     23:28           5146 CLAUDE.md                                                                                \r\n-a----          2025/9/2     23:28           1092 LICENSE                                                                                \r\n-a----          2025/9/4     22:50           9921 NOTIFICATION_SYSTEM_README.md                                                                                \r\n-a----          2025/9/2     23:28           2746 NPP.SmartSchedue.sln                                                                                \r\n-a----          2025/9/2     23:28           1032 NPP.SmartSchedue.sln.EasyRun.json                                                                            \r\n-a----          2025/9/2     23:28            459 settings.local.json                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.3}}


**Examining .NET project structure**


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Api\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\nd-----          2025/9/4     23:11                bin                                                                                \r\nd-----          2025/9/2     23:28                Core                                                                                \r\nd-----          2025/9/4     23:11                obj                                                                                \r\nd-----          2025/9/4     22:38                Repositories                                                                                \r\nd-----         2025/9/22     21:00                Services                                                                                \r\n-a----          2025/9/2     23:28            596 key.snk                                                                                \r\n-a----         2025/9/22     21:00           2016 NPP.SmartSchedue.Api.csproj                                                                                \r\n-a----         2025/9/22     21:00           4377 ServiceCollectionExtensions.cs                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Checking for test projects**


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\nd-----          2025/9/4     23:11                bin                                                                                \r\nd-----          2025/9/4     23:11                obj                                                                                \r\nd-----          2025/9/2     23:28                Services                                                                                \r\n-a----          2025/9/2     23:28           7587 BaseControllerTest.cs                                                                                \r\n-a----         2025/9/22     21:00           1176 NPP.SmartSchedue.Tests.csproj                                                                                \r\n-a----          2025/9/2     23:28              0 SchedulingDataViewer.cs                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Requesting more context about host project**


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Host\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\nd-----         2025/9/22     21:00                .config                                                                                \r\nd-----          2025/9/4     23:11                bin                                                                                \r\nd-----         2025/9/22     21:00                ConfigCenter                                                                                \r\nd-----          2025/9/2     23:28                InitData                                                                                \r\nd-----          2025/9/4     23:11                obj                                                                                \r\nd-----         2025/9/22     21:00                Properties                                                                                \r\nd-----          2025/9/2     23:28                wwwroot                                                                                \r\n-a----          2025/9/2     23:28            158 appsettings.Development.json                                                                                \r\n-a----         2025/9/22     21:00           4036 appsettings.json                                                                                \r\n-a----          2025/9/2     23:28            597 Dockerfile                                                                                \r\n-a----          2025/9/2     23:28           4037 nlog.config                                                                                \r\n-a----          2025/9/2     23:28           2899 NPP.SmartSchedue.Host.csproj                                                                                \r\n-a----         2025/9/22     21:00           4511 Program.cs                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Inspecting project structure and test setup**


Output: {"output":"<Project Sdk=\"Microsoft.NET.Sdk\">\r\n    <PropertyGroup>\r\n        <Description>NPP.SmartSchedue���Կ�</Description>\r\n        <IsPackable>false</IsPackable>\r\n        <TargetFramework>net9.0</TargetFramework>\r\n    </PropertyGroup>\r\n\r\n    <ItemGroup>\r\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.14.1\"/>\r\n        <PackageReference Include=\"xunit\" Version=\"2.9.3\"/>\r\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"3.1.0\">\r\n            <PrivateAssets>all</PrivateAssets>\r\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\r\n        </PackageReference>\r\n        <PackageReference Include=\"Microsoft.AspNetCore.Mvc.Testing\" Version=\"9.0.5\"/>\r\n        <PackageReference Include=\"Microsoft.AspNetCore.TestHost\" Version=\"9.0.5\"/>\r\n        <PackageReference Include=\"Moq\" Version=\"4.20.72\"/>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n        <ProjectReference Include=\"..\\NPP.SmartSchedue.Host\\NPP.SmartSchedue.Host.csproj\"/>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n      <Folder Include=\"Controllers\\\" />\r\n      <Folder Include=\"Repositories\\\" />\r\n    </ItemGroup>\r\n\r\n</Project>\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Investigating project setup and style guidelines**


shell

Get-ChildItem -Path . -Filter '.editorconfig' -Recurse


Output: {"output":"","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Checking code style hints**


Get-Content -Path 'ServiceCollectionExtensions.cs' -TotalCount 40


Output: {"output":"using Microsoft.Extensions.DependencyInjection;\r\nusing Microsoft.Extensions.Configuration;\r\nusing NPP.SmartSchedue.Api.Contracts.Services.Personnel;\r\nusing NPP.SmartSchedue.Api.Services.Personnel;\r\nusing NPP.SmartSchedue.Api.Contracts.Services.Integration;\r\nusing NPP.SmartSchedue.Api.Services.Integration;\r\nusing NPP.SmartSchedue.Api.Contracts.Services.Equipment;\r\nusing NPP.SmartSchedue.Api.Services.Equipment;\r\nusing NPP.SmartSchedue.Api.Contracts.Domain.Equipment;\r\nusing NPP.SmartSchedue.Api.Repositories.Equipment;\r\nusing NPP.SmartSchedue.Api.Repositories.Personnel;\r\nusing NPP.SmartSchedue.Api.Contracts.Services.Notification;\r\nusing NPP.SmartSchedue.Api.Services.Notification;\r\nusing NPP.SmartSchedue.Api.Contracts.Domain.Notification;\r\nusing NPP.SmartSchedue.Api.Repositories.Notification;\r\nusing NPP.SmartSchedue.Api.Contracts;\r\nusing NPP.SmartSchedue.Api.Services.Integration.Algorithms;\r\nusing System;\r\nusing System.Linq;\r\nusing System.Net.Http;\r\nusing Polly;\r\n\r\nnamespace NPP.SmartSchedue.Api\r\n{\r\n    /// <summary>\r\n    /// 服务集合扩展方法\r\n    /// </summary>\r\n    public static class ServiceCollectionExtensions\r\n    {\r\n        /// <summary>\r\n        /// 注册人员约束相关服务\r\n        /// </summary>\r\n        public static IServiceCollection AddPersonnelConstraintServices(this IServiceCollection services)\r\n        {\r\n            return services;\r\n        }\r\n\r\n        /// <summary>\r\n        /// 注册设备相关Repository服务\r\n        /// </summary>\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Reviewing project structure and build commands**


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Api.Contracts\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\nd-----          2025/9/4     23:11                bin                                                                                \r\nd-----         2025/9/22     21:00                Core                                                                                \r\nd-----          2025/9/4     22:26                Domain                                                                                \r\nd-----          2025/9/4     23:11                obj                                                                                \r\nd-----          2025/9/2     23:28                Repositories                                                                                \r\nd-----         2025/9/22     21:00                Services                                                                                \r\n-a----          2025/9/2     23:28            596 key.snk                                                                                \r\n-a----         2025/9/22     21:00           3082 NPP.SmartSchedue.Api.Contracts.csproj                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Searching for .NET version**


Get-ChildItem -Filter 'global.json' -Recurse


Output: {"output":"","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Checking .NET version in project file**


Output: {"output":"<Project Sdk=\"Microsoft.NET.Sdk.Web\">\r\n    <PropertyGroup>\r\n        <Description>NPP.SmartSchedue�ӿ�����</Description>\r\n        <TargetFramework>net9.0</TargetFramework>\r\n    </PropertyGroup>\r\n\r\n    <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|AnyCPU'\">\r\n        <DocumentationFile></DocumentationFile>\r\n        <NoWarn>1701;1702;1591;8632;SYSLIB0020;CS8002;NU1902;NU1903;NU1904;</NoWarn>\r\n    </PropertyGroup>\r\n\r\n    <ItemGroup>\r\n        <Content Include=\"ConfigCenter\\createdbsql.txt\">\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </Content>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n        <ProjectReference Include=\"..\\NPP.SmartSchedue.Api\\NPP.SmartSchedue.Api.csproj\"/>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n        <InternalsVisibleTo Include=\"NPP.SmartSchedue.Tests\"/>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n        <PackageReference Include=\"DotNetCore.CAP.Dashboard\" Version=\"8.3.5\"/>\r\n        <PackageReference Include=\"DotNetCore.CAP.InMemoryStorage\" Version=\"8.3.5\"/>\r\n        <PackageReference Include=\"DotNetCore.CAP.MySql\" Version=\"8.3.5\" />\r\n        <PackageReference Include=\"DotNetCore.CAP.RabbitMQ\" Version=\"8.3.5\" />\r\n        <PackageReference Include=\"Savorboard.CAP.InMemoryMessageQueue\" Version=\"8.2.1\"/>\r\n        <PackageReference Include=\"FreeSql.Provider.MySql\" Version=\"3.5.207\"/>\r\n        <PackageReference Include=\"SkiaSharp.NativeAssets.Linux.NoDependencies\" Version=\"3.119.0\"/>\r\n        <PackageReference Include=\"ZhonTai.ApiUI\" Version=\"9.1.1\"/>\r\n    </ItemGroup>\r\n\r\n    <ItemGroup>\r\n        <Content Update=\"wwwroot\\*\\*\">\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </Content>\r\n        <Content Update=\"wwwroot\\*\\*\\*\\*\">\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </Content>\r\n        <Content Update=\"wwwroot\\*\\*\\*\\*\\*\">\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </Content>\r\n    </ItemGroup>\r\n    <ItemGroup>\r\n        <None Update=\"ip2region.xdb\">\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </None>\r\n    </ItemGroup>\r\n    <ItemGroup>\r\n        <None Include=\"..\\..\\..\\Frameworks\\Assets\\**\\*\">\r\n            <Link>%(RecursiveDir)/%(FileName)%(Extension)</Link>\r\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n        </None>\r\n    </ItemGroup>\r\n\r\n    <Target Name=\"AfterTargetsPublish\" AfterTargets=\"Publish\">\r\n        <ItemGroup>\r\n            <PackageReferenceXmlFiles Include=\"*\\*\\*\\*.xml\"/>\r\n            <PackageReferenceJsonFiles Include=\"*\\*\\*\\Resources\\*.json\"/>\r\n        </ItemGroup>\r\n        <Copy SourceFiles=\"@(PackageReferenceXmlFiles)\" DestinationFolder=\"$(PublishDir)\"/>\r\n        <Copy SourceFiles=\"@(PackageReferenceJsonFiles)\" DestinationFolder=\"$(PublishDir)Resources\"/>\r\n    </Target>\r\n</Project>\r\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Checking commit message conventions**


powershell.exe
-Command
git log -5 --oneline


Output: {"output":"2b3f9ac 123\n058d8ed 添加通知系统和工作任务分配功能\naac3443 123\n330bbd5 1\n0a2e2d9 123\n","metadata":{"exit_code":0,"duration_seconds":0.2}}


Summary: auto


**Planning repository guidelines document**

I'll gather details about the project structure, coding style, build and test commands to draft a 300-word `AGENTS.md` file with clear repository guidelines focused on commit messages, project layout, coding conventions, and instructions to improve PR quality.


Get-ChildItem -Recurse -File -Filter '*.cs' | Select-Object -First 5


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Api\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----         2025/9/22     21:00           4377 ServiceCollectionExtensions.cs                                                                                \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Api\\Core\\Attributes\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/2     23:28            398 AppTransactionAttribute.cs                                                                                \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Api\\Core\\Consts\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/2     23:28            247 ApiConsts.cs                                                                                \r\n-a----         2025/9/22     21:00           1363 CacheKeys.cs                                                                                \r\n-a----          2025/9/2     23:28            324 DbKeys.cs                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.3}}


**Reviewing project structure and testing conventions**


Output: {"output":"Get-Content : ָ��·�� Services\\SomeTestFile?? ����ĳ�����󲻴��ڣ������ѱ� -Include �� -Exclude �������˵���\r\n����λ�� ��:1 �ַ�: 1\r\n+ Get-Content -Path 'Services\\SomeTestFile??'\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : ObjectNotFound: (System.String[]:String[]) [Get-Content], Exception\r\n    + FullyQualifiedErrorId : ItemNotFound,Microsoft.PowerShell.Commands.GetContentCommand\r\n \r\n","metadata":{"exit_code":1,"duration_seconds":0.3}}


**Checking test locations**


powershell.exe
-Command
Get-ChildItem -Recurse -File


Output: {"output":"\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/2     23:28           7587 BaseControllerTest.cs                                                                                \r\n-a----         2025/9/22     21:00           1176 NPP.SmartSchedue.Tests.csproj                                                                                \r\n-a----          2025/9/2     23:28              0 SchedulingDataViewer.cs                                                                                \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\\bin\\Debug\\net9.0\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/4     23:11           1518 .msCoverageSourceRootsMapping_NPP.SmartSchedue.Tests                                                                  \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\\obj\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/4     23:11          11837 NPP.SmartSchedue.Tests.csproj.nuget.dgspec.json                                                                       \r\n-a----          2025/9/4     23:11           3693 NPP.SmartSchedue.Tests.csproj.nuget.g.props                                                                           \r\n-a----          2025/9/4     23:11           3199 NPP.SmartSchedue.Tests.csproj.nuget.g.targets                                                                         \r\n-a----          2025/9/4     23:11         688794 project.assets.json                                                                                \r\n-a----          2025/9/4     23:11          35770 project.nuget.cache                                                                                \r\n-a----          2025/9/4     23:09           1634 project.packagespec.json                                                                                \r\n-a----          2025/9/4     23:11             20 rider.project.restore.info                                                                                \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\\obj\\Debug\\net9.0\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/4     23:11            198 .NETCoreApp,Version=v9.0.AssemblyAttributes.cs                                                                        \r\n-a----          2025/9/4     23:11           1122 NPP.SmartSchedue.Tests.AssemblyInfo.cs                                                                                \r\n-a----          2025/9/4     23:11             66 NPP.SmartSchedue.Tests.AssemblyInfoInputs.cache                                                                       \r\n-a----          2025/9/4     23:11         319379 NPP.SmartSchedue.Tests.assets.cache                                                                                \r\n-a----          2025/9/4     23:11          67748 NPP.SmartSchedue.Tests.csproj.AssemblyReference.cache                                                                 \r\n-a----          2025/9/4     23:11            758 NPP.SmartSchedue.Tests.GeneratedMSBuildEditorConfig.editorconfig                                                      \r\n\r\n\r\n    Ŀ¼: C:\\GitCode\\paiban\\NPP.SmartSchedue.Tests\\Services\r\n\r\n\r\nMode                 LastWriteTime         Length Name                                                                                \r\n----                 -------------         ------ ----                                                                                \r\n-a----          2025/9/2     23:28            867 BaseTest.cs                                                                                \r\n-a----          2025/9/2     23:28           6239 EquipmentCalibrationIntegrationTest.cs                                                                                \r\n-a----          2025/9/2     23:28           4297 EquipmentMaintenanceIntegrationTest.cs                                                                                \r\n\r\n\r\n","metadata":{"exit_code":0,"duration_seconds":0.3}}


**Preparing documentation outline**


Output: Plan updated


**Composing AGENTS.md content**


@'
# Repository Guidelines

## Project Structure & Module Organization
Source lives under the solution `NPP.SmartSchedue.sln`. `NPP.SmartSchedue.Host` hosts the ASP.NET Core app, with environment settings in `appsettings*.json`, seed scripts in `ConfigCenter` and `InitData`, and static assets in `wwwroot`. Domain services sit in `NPP.SmartSchedue.Api`, organized into `Core` (attributes, constants), `Services` (business logic), and `Repositories` (data access). Shared contracts, DTOs, and interfaces reside in `NPP.SmartSchedue.Api.Contracts`; keep cross-project types there. Tests are in `NPP.SmartSchedue.Tests`, with reusable fixtures in `BaseTest` and service-focused integration suites under `Services`.

## Build, Test, and Development Commands
- `dotnet restore NPP.SmartSchedue.sln` restores all project dependencies.
- `dotnet build NPP.SmartSchedue.sln -c Release` validates compilation; use `-c Debug` during local iteration.
- `dotnet run --project NPP.SmartSchedue.Host` boots the API with the default profile; add `--launch-profile Development` when you need local CAP setups.
- `dotnet test NPP.SmartSchedue.Tests/NPP.SmartSchedue.Tests.csproj --logger "trx;LogFileName=test-results.trx"` exercises the xUnit suites and saves artifacts for PR review.

## Coding Style & Naming Conventions
Target .NET 9 defaults: four-space indentation, braces on new lines, and explicit namespaces. Use `PascalCase` for classes, public members, and DTOs, `camelCase` for locals and private fields, and prefix interfaces with `I` as seen in `Api.Contracts`. Suffix asynchronous methods with `Async`, and keep request/response models in the Contracts project. Run `dotnet format` before committing to enforce spacing and using-order consistency.

## Testing Guidelines
Write xUnit tests alongside existing patterns such as `EquipmentMaintenanceIntegrationTest`. Name new files `{Feature}Test.cs` or `{Feature}IntegrationTest.cs`, group helper logic in `BaseTest`, and rely on `Microsoft.AspNetCore.Mvc.Testing` for host bootstrapping. Aim to cover new service paths and repository edge cases; add mocks via Moq where external systems (CAP, RabbitMQ, MySQL) would otherwise be required.

## Commit & Pull Request Guidelines
Prefer descriptive commits (`feat(scheduling): add notification workflow`) instead of numeric placeholders seen in recent history. Bundle related changes, include migration or config adjustments in the same commit, and reference tracking IDs where relevant. Pull requests should outline the change, list manual or automated test evidence, mention configuration impacts (CAP, FreeSql, message queues), and supply screenshots for any UI updates under `wwwroot`.

## Configuration & Environment Notes
Keep secrets out of `appsettings.json`; use user secrets or environment variables for connection strings and CAP brokers. Document any required RabbitMQ or MySQL endpoints in the PR. When adding assets or scripts, mirror the structure under `ConfigCenter`, `InitData`, and `wwwroot` so the publish targets continue copying them correctly.
'@ | Set-Content -Encoding UTF8 AGENTS.md


Output: {"output":"","metadata":{"exit_code":0,"duration_seconds":0.2}}


**Checking word count efficiently**


(Get-Content AGENTS.md | Measure-Object -Word).Words


Output: {"output":"386\r\n","metadata":{"exit_code":0,"duration_seconds":0.3}}


**Updating plan status**

I'm updating the plan to mark step 2 as completed and step 3 as in progress, noting I've validated the word count and adjusted for clarity. This keeps the process organized and transparent as I move forward.


Output: Plan updated


**Preparing final summary message**

I'll create a clear final response referencing the created `AGENTS.md` file at line 1, summarize its content and word count, and suggest logical next steps like running a build or reviewing the document. I'll keep it plain text with bullet points for easy reading.


- Created `AGENTS.md:1` documenting repository guidelines tailored to the solution layout, build/test workflow, coding standards, review expectations, and configuration practices (≈386 words).
- Included concrete examples for dotnet commands, directory locations, naming patterns, and PR requirements so new contributors can follow consistent workflows across `NPP.SmartSchedue.*` projects.

Next steps: 1) Share the guide with the team for validation, 2) Run `dotnet build`/`dotnet test` to confirm nothing regressed before opening a PR.