Agent docs

This commit is contained in:
Andy Howard
2026-09-10 11:35:25 +01:00
parent 623437055a
commit 8c00dc50a3
3 changed files with 41 additions and 4 deletions
+17 -2
View File
@@ -4,7 +4,7 @@
`BusinessMgr.sln` contains the `SaBusinessMgrCoreWebControl` administration app and `SaBusinessMgrCoreWebPortal` user portal. Shared code is divided among `SaBusMgrStandardBase`, `SaBusMgrStandardDbas`, `SaBusMgrCoreProcs`, and `SaBusMgrCoreWeb`. Tests live in `SaBusMgrTest_Control` and `SaBusMgrTest_Portal`. Web-project assets are under `Views`, `Localisation`, and `wwwroot`.
The solution also requires the sibling `..\..\Common-VS\Workspace` projects. Preserve this relative layout when cloning or configuring a build agent.
The solution also requires the sibling `..\..\Common-VS\Workspace` projects. Preserve this relative layout because BusinessMgr uses direct project references. Read the Common repository guidance when a task changes or depends on those shared projects.
## Build, Test, and Development Commands
@@ -20,13 +20,26 @@ dotnet run --project SaBusinessMgrCoreWebPortal
Use `--configuration Release` for release validation. After code changes, run `dotnet build BusinessMgr.sln` where practical and report validation that could not be completed. Both launch profiles default to ports 5000/5001; override ports to run them together.
For changes to Common public APIs, target frameworks, packages, or shared behavior, validate the directly affected Common project before BusinessMgr. Coordinate framework upgrades across the dependency boundary. When the repositories cannot move atomically, consume a temporary compatible target from Common, migrate BusinessMgr, and remove the old Common target only after no in-scope consumer requires it.
## Coding Style & Naming Conventions
Match existing C# conventions: tabs, braces on new lines, top-of-file `using` directives, PascalCase public members, and established `Sbm`/`Sacs` prefixes. Tests use descriptive names such as `Test_Application_ControlDatabase`. No repository-wide formatter is configured, so follow nearby code. Target the framework versions declared in project files. Do not upgrade frameworks or NuGet packages unless explicitly requested.
Processes derived from `SaProcess_Base` must actively poll `IsInterrupted` during long-running loops and before expensive or blocking stages, then exit promptly when cancellation is requested.
Use Windows CRLF line endings for C# source, Visual Studio project files, configuration files, PowerShell or command scripts, and general documentation. Use LF for web assets and files commonly consumed by Unix tooling, including SVG, HTML, CSS, JavaScript, shell scripts, and YAML. Follow `.gitattributes` as the authoritative policy and preserve the configured ending when editing files.
Use Windows CRLF line endings for C# source, Visual Studio project files, configuration files, PowerShell or command scripts, and general documentation. Use LF for web assets and files commonly consumed by Unix tooling, including SVG, HTML, CSS, JavaScript, shell scripts, and YAML. Follow `.gitattributes` as the authoritative policy. Whenever a file is created or edited, normalize that file to its required line ending as part of the edit, before validation and handoff; do not defer normalization as a separate cleanup step.
New Markdown documents containing tables must include this document-level style so header and data cells are top aligned:
```html
<style>
table th,
table td {
vertical-align: top;
}
</style>
```
## Testing Guidelines
@@ -36,6 +49,8 @@ Tests use MSTest with Moq and coverlet. Add `[TestClass]` and `[TestMethod]` att
Do not edit generated files or build output under `bin`, `obj`, or `TestResults`. Change source inputs instead. Before implementing a significant architectural change, describe the proposed design, affected projects, compatibility implications, and migration approach, then wait for agreement.
Treat every affected Git workspace as an independent change set. Check its status before editing, preserve unrelated changes, and report validation separately for each workspace.
## Conversation Tracking
Read `docs/topics.md` and `docs/component-reviews.md` before starting repository review or follow-up work. Update them when a conversation identifies, starts, completes, or reprioritises work, or when a component is reviewed. Follow the tracking conventions in `docs/README.md` and use ISO `YYYY-MM-DD` dates.