Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"*.trx",
"*.spdx.json",
"package-lock.json",
"yarn.lock"
"yarn.lock",
"AGENT_REPORT_*.md"
]
}
7 changes: 7 additions & 0 deletions .github/agents/requirements-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ Invoke the requirements-agent for:

### Test Coverage Strategy

- **All requirements MUST be linked to tests** - this is enforced in CI
- **Not all tests need to be linked to requirements** - tests may exist for:
- Exploring corner cases
- Testing design decisions
- Failure-testing scenarios
- Implementation validation beyond requirement scope
- **Self-validation tests** (`BuildMark_*`): Preferred for command-line behavior, features
that ship with the product
- **Unit tests**: For internal component behavior, isolated logic
Expand All @@ -54,4 +60,5 @@ Follow the `requirements.yaml` structure:

- Mix requirements with implementation details
- Create requirements without test linkage
- Expect all tests to be linked to requirements (some tests exist for other purposes)
- Change code directly (delegate to developer agents)
9 changes: 9 additions & 0 deletions .github/agents/test-developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,15 @@ public void ClassName_MethodUnderTest_Scenario_ExpectedBehavior()
- Clear failure messages for assertions
- Consider edge cases and error conditions

### Tests and Requirements

- **All requirements MUST have linked tests** - this is enforced in CI
- **Not all tests need requirements** - tests may be created for:
- Exploring corner cases not explicitly stated in requirements
- Testing design decisions and implementation details
- Failure-testing and error handling scenarios
- Verifying internal behavior beyond requirement scope

### BuildMark-Specific

- **NOT self-validation tests** - those are handled by Software Developer Agent
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ docs/quality/codeql-quality.md
docs/quality/*.html
docs/buildnotes.md
docs/buildnotes/*.html

# Agent report files
AGENT_REPORT_*.md
14 changes: 14 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"config": {
"default": true,
"MD003": { "style": "atx" },
"MD007": { "indent": 2 },
"MD013": { "line_length": 120 },
"MD033": false,
"MD041": false
},
"ignores": [
"node_modules",
"**/AGENT_REPORT_*.md"
]
}
8 changes: 0 additions & 8 deletions .markdownlint.json

This file was deleted.

14 changes: 13 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ Project-specific guidance for agents working on BuildMark - a .NET CLI tool for

## Requirements

- Link ALL requirements to tests (prefer `BuildMark_*` self-validation tests for command-line behavior)
- All requirements MUST be linked to tests (prefer `BuildMark_*` self-validation tests for command-line behavior)
- Not all tests need to be linked to requirements (tests may exist for corner cases, design testing, failure-testing, etc.)
- Enforced in CI: `dotnet reqstream --requirements requirements.yaml --tests "test-results/**/*.trx" --enforce`
- When adding features: add requirement + link to test
- See Requirements Agent for detailed test coverage strategy
Expand Down Expand Up @@ -95,3 +96,14 @@ lint.bat # Windows
# Pack as NuGet tool
dotnet pack --configuration Release
```

## Agent Report Files

When agents need to write report files to communicate with each other or the user, follow these guidelines:

- **Naming Convention**: Use the pattern `AGENT_REPORT_xxxx.md` (e.g., `AGENT_REPORT_analysis.md`, `AGENT_REPORT_results.md`)
- **Purpose**: These files are for temporary inter-agent communication and should not be committed
- **Exclusions**: Files matching `AGENT_REPORT_*.md` are automatically:
- Excluded from git (via .gitignore)
- Excluded from markdown linting
- Excluded from spell checking