common-architecture-decisions

Indexes Architecture Decision Records covering test tooling, SDK architecture, and code quality decisions.

138|5|Updated Sep 19, 2024
One-click install
npx skills add https://github.com/macalbert/envilder --skill common-architecture-decisions-macalbert
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: common-architecture-decisions
Source: https://github.com/macalbert/envilder/tree/main/.github/skills/common-architecture-decisions
Command: npx skills add https://github.com/macalbert/envilder --skill common-architecture-decisions-macalbert

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When proposing changes or reviewing code in the Envilder project, contributors often lack context on why specific tools, patterns, and infrastructure were chosen, leading to inconsistent decisions and repeated debates. ## Core Features & Use Cases - ADR Index: Provides a searchable table of ten Architecture Decision Records covering acceptance test infrastructure, test tooling per stack, SDK architecture patterns, code quality tooling, monorepo structure, and trunk-based development. - Quick Reference Tables: Summarizes test double patterns per stack (Vitest, NSubstitute, unittest.mock) and container testing packages for AWS LocalStack and Azure Lowkey Vault. - Decision Rules: Lists concrete checks to perform before adding testing tools, changing SDK public APIs, modifying formatters, or altering acceptance test infrastructure. - Use Case: Before proposing a new mocking library for the TypeScript SDK, consult ADR-0002 to confirm Vitest is the established choice and avoid re-litigating a settled decision. ## Quick Start Ask the AI to check the architecture decision records before proposing a new testing tool or SDK design change.

Frequently Asked Questions about common-architecture-decisions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if a design decision was already made in this project?

Consult the ADR index table, which lists ten decisions with scope and key outcomes. Each entry links to a full document in docs/adr/ explaining context, decision, and consequences.

What test frameworks does Envilder use for each language stack?

ADR-0002 defines Vitest for TypeScript, xUnit with NSubstitute and AwesomeAssertions for .NET, and pytest with unittest.mock for Python. Check this ADR before adding any new testing tool.

How do I write a new Architecture Decision Record?

Follow the template in docs/adr/ with sections for Status, Context, Decision, Consequences, and When to Reconsider. Number ADRs sequentially and keep each one focused on a single decision.

What mocking library should I use for .NET tests?

Use NSubstitute for mocks and stubs, with Received() for verification and .Returns() for stubbing. Bogus handles fake data generation and AutoFixture provides dummies, per the quick reference table.

When should I propose a new ADR instead of reusing an existing one?

Propose a new ADR when introducing a tool or pattern not covered by existing records, or when a prior decision no longer fits. Amendments to settled decisions like test tooling require an ADR amendment or superseding record.