Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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 .github/agents/developer.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ Perform software development tasks by determining and applying appropriate DEMA
2. **Read relevant standards** from `.github/standards/` as defined in AGENTS.md based on work performed
3. **Apply loaded standards** throughout development process
4. **Execute work** following standards requirements and quality checks
5. **Generate completion report** with results and compliance status
5. **Lint fixes** follow the linting process before performing quality gates
6. **Generate completion report** with results and compliance status

# Reporting

Expand Down
10 changes: 5 additions & 5 deletions .github/agents/implementation.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ counting how many retries have occurred.

Call the built-in explore sub-agent with:

- **context**: the user's request and any current quality findings
- **context**: the user's request + any previous quality findings + retry context
- **goal**: analyze the implementation state and develop a plan to implement the request

Once the explore sub-agent finishes, transition to the DEVELOPMENT state.
Expand All @@ -37,7 +37,7 @@ Once the explore sub-agent finishes, transition to the DEVELOPMENT state.

Call the developer sub-agent with:

- **context** the user's request and the current implementation plan
- **context** the user's request + research plan + specific quality issues to address (if retry)
- **goal** implement the user's request and any identified quality fixes

Once the developer sub-agent finishes:
Expand All @@ -49,7 +49,7 @@ Once the developer sub-agent finishes:

Call the quality sub-agent with:

- **context** the user's request and the current implementation report
- **context** the user's request + development summary + files changed + previous issues (if any)
- **goal** check the quality of the work performed for any issues

Once the quality sub-agent finishes:
Expand All @@ -73,7 +73,7 @@ of the project consisting of:
## State Machine Execution

- **Research Results**: [Summary of explore agent findings]
- **Development Results**: [Summary of developer agent results]
- **Development Results**: [Summary of developer agent results]
- **Quality Results**: [Summary of quality agent results]
- **State Transitions**: [Log of state changes and decisions]

Expand All @@ -86,7 +86,7 @@ of the project consisting of:
## Final Status

- **Implementation Success**: [Overall completion status]
- **Quality Compliance**: [Final quality validation status]
- **Quality Compliance**: [Final quality validation status]
- **Issues Resolved**: [Problems encountered and resolution attempts]
```

Expand Down
14 changes: 14 additions & 0 deletions .github/agents/quality.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ This assessment is a quality control system of the project and MUST be performed
Upon completion create a summary in `.agent-logs/{agent-name}-{subject}-{unique-id}.md`
of the project consisting of:

The **Result** field MUST reflect the quality validation outcome for orchestrator decision-making:

- **Result: SUCCEEDED** - Only when Overall Grade is PASS (all compliance requirements met)
- **Result: FAILED** - When Overall Grade is FAIL or NEEDS_WORK (compliance failures present)

This ensures orchestrators properly halt workflows when quality gates fail.

```markdown
# Quality Assessment Report

Expand Down Expand Up @@ -98,6 +105,13 @@ of the project consisting of:
- Do README.md files use absolute URLs and include concrete examples? (PASS|FAIL|N/A) - [Evidence]
- Is documentation integrated into ReviewMark review-sets for formal review? (PASS|FAIL|N/A) - [Evidence]

## Software Item Completeness: (PASS|FAIL|N/A)

- Does every identified software unit have its own requirements file? (PASS|FAIL|N/A) - [Evidence]
- Does every identified software unit have its own design document? (PASS|FAIL|N/A) - [Evidence]
- Does every identified subsystem have its own requirements file? (PASS|FAIL|N/A) - [Evidence]
- Does every identified subsystem have its own design document? (PASS|FAIL|N/A) - [Evidence]

## Process Compliance: (PASS|FAIL|N/A)

- Was Continuous Compliance workflow followed? (PASS|FAIL|N/A) - [Evidence]
Expand Down
63 changes: 37 additions & 26 deletions .github/standards/design-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ design to implementation:

```text
docs/design/
├── introduction.md # Design overview with software structure
├── system.md # System-level design documentation
├── {subsystem-name}/ # Subsystem design documents (kebab-case folder names)
│ ├── {subsystem-name}.md # Subsystem overview and design
│ └── {unit-name}.md # Unit-level design documents
└── {unit-name}.md # Top-level unit design documents (if not in subsystem)
├── introduction.md # Design overview with software structure
└── {system-name}/ # System-level design folder (one per system)
├── {system-name}.md # System-level design documentation
├── {subsystem-name}/ # Subsystem design documents (kebab-case folder names)
│ ├── {subsystem-name}.md # Subsystem overview and design
│ └── {unit-name}.md # Unit-level design documents
└── {unit-name}.md # Top-level unit design documents (if not in subsystem)
```

## introduction.md (MANDATORY)
Expand Down Expand Up @@ -56,13 +57,16 @@ to understand these classifications before creating this section.
Example format:

```text
ProjectName (System)
Project1Name (System)
├── ComponentA (Subsystem)
│ ├── ClassX (Unit)
│ └── ClassY (Unit)
├── ComponentB (Subsystem)
│ └── ClassZ (Unit)
└── UtilityClass (Unit)

Project2Name (System)
└── HelperClass (Unit)
```

### Folder Layout Section (MANDATORY)
Expand All @@ -73,34 +77,39 @@ mirror the software structure, with file paths and brief descriptions.
Example format:

```text
src/ProjectName/
src/Project1Name/
├── ComponentA/
│ ├── ClassX.cs — brief description
│ └── ClassY.cs — brief description
│ ├── ClassX.cs — Core business logic handler
│ └── ClassY.cs — Data validation service
├── ComponentB/
│ └── ClassZ.cs — brief description
└── UtilityClass.cs — brief description
│ └── ClassZ.cs — Integration interface
└── UtilityClass.cs — Common utility functions

src/Project2Name/
└── HelperClass.cs — Helper functions
```

## system.md (MANDATORY)
## System Design Documentation (MANDATORY)

The `system.md` file contains system-level design documentation including:
For each system identified in the repository:

- System architecture and major components
- External interfaces and dependencies
- Data flow and control flow
- System-wide design constraints and decisions
- Integration patterns and communication protocols
- Create a kebab-case folder matching the system name
- Include `{system-name}.md` with system-level design documentation such as:
- System architecture and major components
- External interfaces and dependencies
- Data flow and control flow
- System-wide design constraints and decisions
- Integration patterns and communication protocols

## Subsystem and Unit Design Documents

For each subsystem identified in the software structure:

- Create a kebab-case folder matching the subsystem name (enables automated tooling)
- Include `{subsystem-name}.md` with subsystem overview and design
- Include unit design documents for complex units within the subsystem
- Include unit design documents for ALL units within the subsystem

For significant units requiring detailed design:
For every unit identified in the software structure:

- Document data models, algorithms, and key methods
- Describe interactions with other units
Expand All @@ -124,19 +133,21 @@ implementation specification for formal code review:
- **Implementation Detail**: Provide sufficient detail for code review and implementation
- **Architectural Clarity**: Clearly define component boundaries and interfaces
- **Traceability**: Link to requirements where applicable using ReqStream patterns
- **Concrete Examples**: Use actual class names, method signatures, and data structures
- **Current Information**: Keep synchronized with code changes and refactoring

# Mermaid Diagram Integration

Use Mermaid diagrams to supplement text descriptions (diagrams must not replace text content).

# Quality Checks

Before submitting design documentation, verify:

- [ ] `introduction.md` includes both Software Structure and Folder Layout sections
- [ ] Software structure correctly categorizes items as System/Subsystem/Unit per `software-items.md`
- [ ] Folder layout matches actual source code organization
- [ ] `system.md` provides comprehensive system-level design
- [ ] Folder layout mirrors software structure organization
- [ ] Design documents provide sufficient detail for code review
- [ ] System documentation provides comprehensive system-level design
- [ ] Subsystem documentation folders use kebab-case names while mirroring source subsystem names and structure
- [ ] Design documents contain sufficient implementation detail
- [ ] All documents follow technical documentation formatting standards
- [ ] Content is current with implementation and requirements
- [ ] Documents are integrated into ReviewMark review-sets for formal review
32 changes: 14 additions & 18 deletions .github/standards/reqstream-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,17 @@ the source code structure because reviewers need clear navigation from
requirements to design to implementation:

```text
requirements.yaml # Root file (includes only)
requirements.yaml # Root file (includes only)
docs/reqstream/
├── system.yaml # System-level requirements
├── platform-requirements.yaml # Platform support requirements
├── {subsystem-name}/ # Subsystem requirements (kebab-case folders)
│ └── {subsystem-name}.yaml # Requirements for this subsystem
├── {unit-name}.yaml # Unit requirements (for top-level units)
└── ots/ # OTS software item requirements
└── {ots-name}.yaml # Requirements for OTS components
├── {system-name}/ # System-level requirements folder (one per system)
│ ├── {system-name}.yaml # System-level requirements
│ ├── platform-requirements.yaml # Platform support requirements
│ ├── {subsystem-name}/ # Subsystem requirements (kebab-case folders)
│ │ ├── {subsystem-name}.yaml # Requirements for this subsystem
│ │ └── {unit-name}.yaml # Requirements for units within this subsystem
│ └── {unit-name}.yaml # Requirements for top-level units (outside subsystems)
└── ots/ # OTS software items folder
└── {ots-name}.yaml # Requirements for OTS components
```

The folder structure MUST mirror the source code organization to maintain
Expand All @@ -62,7 +64,7 @@ for compliance auditing.
sections:
- title: Functional Requirements
requirements:
- id: Project-Subsystem-Feature
- id: System-Subsystem-Feature
title: The system shall perform the required function.
justification: |
Business rationale explaining why this requirement exists.
Expand All @@ -88,15 +90,15 @@ sections:
sections:
- title: System.Text.Json
requirements:
- id: Project-SystemTextJson-ReadJson
- id: TemplateTool-SystemTextJson-ReadJson
title: System.Text.Json shall be able to read JSON files.
tests:
- JsonReaderTests.TestReadValidJson
```

# Semantic IDs (MANDATORY)

Use meaningful IDs following `Project-Section-ShortDesc` pattern because
Use meaningful IDs following `System-Section-ShortDesc` pattern because
auditors need to understand requirements without cross-referencing:

- **Good**: `TemplateTool-Core-DisplayHelp`
Expand Down Expand Up @@ -127,12 +129,6 @@ dotnet reqstream \
--requirements requirements.yaml \
--lint

Comment thread
Malcolmnixon marked this conversation as resolved.
# Enforce requirements traceability (use in CI/CD)
dotnet reqstream \
--requirements requirements.yaml \
--tests "artifacts/**/*.trx" \
--enforce

# Generate requirements report
dotnet reqstream \
--requirements requirements.yaml \
Expand All @@ -154,7 +150,7 @@ dotnet reqstream \

Before submitting requirements, verify:

- [ ] All requirements have semantic IDs (`Project-Section-Feature` pattern)
- [ ] All requirements have semantic IDs (`System-Section-Feature` pattern)
- [ ] Every requirement links to at least one passing test
- [ ] Platform-specific requirements use source filters (`platform@TestName`)
Comment thread
Malcolmnixon marked this conversation as resolved.
- [ ] Requirements specify observable behavior (WHAT), not implementation (HOW)
Expand Down
Loading