.squad/skills/result-foundation/SKILL.md
Add or extend MoreSpeakers Domain Result types with explicit factory methods and structured errors.
npx skillsauth add cwoodruff/morespeakers-com result-foundationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when implementing or extending the approved Result-based exception handling migration in the Domain layer. It applies when expected failures need to flow through Data, Managers, and Web without losing structured context.
Error, Result, and Result<T> in src\MoreSpeakers.Domain\Models\, but expose them from the root MoreSpeakers.Domain namespace.IdentityResult: factory methods live on non-generic Result instead of exposing public constructors.readonly struct for Result and Result<T> to stay additive and allocation-conscious on the hot path.Error, and failure results throw if callers read Value.src\MoreSpeakers.Domain.Tests\ResultTests.cs, including success, failure, implicit conversion, and equality.Result signatures instead of inheriting generic IDataStore contracts that force sentinel returns.DbUpdateException; return typed Error codes for not-found/no-op outcomes and let unexpected exceptions propagate.Result values unchanged unless adding boundary validation or input normalization that belongs above persistence.var ok = Result.Success();var saved = Result.Success(user);var failed = Result.Failure<User>(new Error("users.save.failed", "Unable to save the user.", ex));Result<Guid> id = Guid.NewGuid();Result or Result<T>.null, false, empty collections) for expected failures once a Result-based path exists.Error can carry the underlying exception reference.tools
Cross-platform path handling and command patterns
development
Update tests when changing APIs — no exceptions
development
Core conventions and patterns used in the Squad codebase
tools
Find and resume interrupted Copilot CLI sessions using session_store queries