Skip to content

Latest commit

 

History

History
75 lines (50 loc) · 2.86 KB

File metadata and controls

75 lines (50 loc) · 2.86 KB

Contributing to SafeWebCore

Thank you for your interest in contributing!

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

Development Setup

Prerequisites

  • .NET 10 SDK
  • Visual Studio 2026 or later / VS Code with C# Dev Kit

Build

dotnet build

Test

dotnet test

AI-assisted development (BMad)

This repository is set up for the BMad Method: the skills live in .agents/skills (used by Cline and GitHub Copilot) and the project runtime lives in _bmad/.

  • Install or update: npx skills update, then ask your coding agent to run bmad setup.
  • Ask for a skill by name, for example bmad-build for a change that fits one session, bmad-review to review a diff or PR, bmad-qa-generate-e2e-tests for missing end-to-end coverage, or bmad for help and status.
  • See docs/development/bmad-workflow.md for the full workflow, commands and guardrails. BMad does not override this file or the backward compatibility policy below.

Coding Standards

  • Target .NET 10 / C# 14
  • Use modern C# features (primary constructors, collection expressions, Lock class)
  • Follow the conventions in .editorconfig
  • Async methods must end with Async suffix
  • All public APIs must have XML documentation
  • All roadmap work must preserve 100% backward compatibility unless an explicit exception is approved

Backward Compatibility Policy

This repository treats backward compatibility as a hard requirement for normal releases.

  • Read docs/development/backward-compatibility-policy.md before changing public APIs, defaults, presets, or configuration behavior.
  • Prefer additive, opt-in changes over behavioral changes to existing consumers.
  • Keep existing registration methods, presets, and configuration paths working.

Public API surface changes

We use Microsoft.CodeAnalysis.PublicApiAnalyzers to track public surface via PublicAPI.Shipped.txt and PublicAPI.Unshipped.txt.

  • Removing or renaming a symbol listed in PublicAPI.Shipped.txt is a hard error (RS0037).
  • During the initial adoption phase, new undeclared public symbols (RS0016) and symbols listed but not found (RS0017) are warnings.
  • Add intentional new public API to PublicAPI.Unshipped.txt and promote it to Shipped.txt on release.
  • See the library .csproj files for the current analyzer configuration.

Reporting Issues

Use GitHub Issues with the provided templates.

Code of Conduct

Be respectful and constructive. We follow the Contributor Covenant.