Skip to content

chore(skill): add menlo-persistence agentskills.io skill#250

Merged
DigiBanks99 merged 1 commit intomainfrom
skill/243-menlo-persistence
Apr 12, 2026
Merged

chore(skill): add menlo-persistence agentskills.io skill#250
DigiBanks99 merged 1 commit intomainfrom
skill/243-menlo-persistence

Conversation

@DigiBanks99
Copy link
Copy Markdown
Owner

Summary

Adds the menlo-persistence agentskills.io skill to skills/menlo-persistence/ so that AI-assisted agents can implement future EF Core + PostgreSQL persistence slices correctly and consistently, without re-deriving architectural conventions from scratch on each task.

Closes #243

What's in the skill

SKILL.md covers:

  • Project layout: Menlo.Application is the sole EF Core project; domain model stays in Menlo.Lib
  • Slice interface pattern: feature handlers inject IUserContext / IBudgetContext etc., never MenloDbContext directly
  • Entity type config conventions: ToTable with schema, numeric(18,4) for monetary values, automatic snake_case via EFCore.NamingConventions, no HasColumnName() calls
  • Strongly typed IDs: uuid mapping via central value converters in ConfigureConventions
  • ISoftDeletable: contract + SoftDeleteInterceptor + global query filter in OnModelCreating
  • IAuditable: contract + AuditingInterceptor (fires on EntityState.Added / Modified)
  • AddMenloApplication(): DI registration with interceptors + scoped slice interface registrations
  • TestContainers-only testing policy (in-memory EF Core is prohibited)
  • Migration commands with exact --project / --startup-project flags

references/patterns.md provides full working C# code examples for every convention: MenloDbContext skeleton, DI extension, both interceptors, slice interface, entity type config, TestContainers fixture, and example integration tests.

evals/evals.json contains 3 benchmark evals with 24 graded assertions:

  1. BudgetEntry full persistence slice (entity + config + interface + DI + migration)
  2. IUserContext integration tests (TestContainers, fresh scopes, soft-delete, audit)
  3. HouseholdMember entity (schema placement, typed ID, ISoftDeletable, IHouseholdContext)

Benchmark results (iteration 1)

With skill Without skill Delta
Pass rate 100% 66% +34pp

Key failures in the without-skill baseline:

  • Missing PostgreSQL schema in ToTable (e.g., "budget" schema omitted)
  • Wrong decimal precision: numeric(18,2) instead of numeric(18,4)
  • Manual HasColumnName() calls instead of relying on snake_case convention
  • Repository pattern used instead of slice context interface
  • EnsureCreated instead of MigrateAsync in test fixtures
  • Wrong --project flag in migration commands

Acceptance criteria

Adds the menlo-persistence skill to skills/menlo-persistence/ so
AI-assisted agents can implement future EF Core + PostgreSQL
persistence slices correctly and consistently without re-deriving
the architectural conventions from scratch.

The skill covers:
- Project layout: Menlo.Application as the sole EF Core project,
  domain model staying in Menlo.Lib
- Slice interface pattern (IUserContext, IBudgetContext, etc.) —
  feature handlers never inject MenloDbContext directly
- Entity type configuration conventions: ToTable with schema,
  numeric(18,4) for monetary values, automatic snake_case via
  EFCore.NamingConventions, no manual HasColumnName() calls
- Strongly typed ID → uuid mapping via central value converters
- ISoftDeletable contract + SoftDeleteInterceptor + global query
  filter wired in OnModelCreating
- IAuditable contract + AuditingInterceptor (EntityState.Added /
  Modified)
- AddMenloApplication() DI registration pattern with interceptors
  and slice interface scoped registrations
- TestContainers-only testing policy (in-memory EF Core prohibited)
- Migration commands with exact --project / --startup-project flags

Also includes:
- references/patterns.md: full working C# code examples for every
  convention (DbContext skeleton, DI extension, interceptors, slice
  interface, entity type config, TestContainers fixture, example
  integration tests)
- evals/evals.json: 3 benchmark evals (BudgetEntry full slice,
  IUserContext integration tests, HouseholdMember entity) with 24
  graded assertions; iteration-1 results: 100% with-skill vs 66%
  without-skill (delta +34pp)

Co-authored-by: Copilot <[email protected]>
@DigiBanks99 DigiBanks99 force-pushed the skill/243-menlo-persistence branch from b53dead to 5eb4594 Compare April 12, 2026 19:46
@DigiBanks99 DigiBanks99 merged commit 690190f into main Apr 12, 2026
9 checks passed
@DigiBanks99 DigiBanks99 deleted the skill/243-menlo-persistence branch April 12, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(skill): Create agentskills.io EF Core + PostgreSQL persistence skill

1 participant