Skip to content

feat: add the persistence identifier conventions with a runnable EF Core sample - #11

Merged
kieronlanning merged 3 commits into
mainfrom
feat/persistence-conventions
Nov 3, 2026
Merged

kieronlanning merged 3 commits into
mainfrom
feat/persistence-conventions

Conversation

@kieronlanning

Copy link
Copy Markdown
Contributor

What this adds

The known-types branch, merged onto current main (the branch predates the org-harvest work, so the merge was resolved rather than fast-forwarded).

  • Three new pages: Well-Known Identifiers, GUID Key Strategy and EF Core Integration. Each follows the four-section shape and says plainly what it does not enforce.
  • A runnable sample at samples/Acme.Persistence: UUIDv5 derived identifiers with an idempotent, mismatch-guarded bootstrap; a sequential-GUID strategy carried as context-options data and applied by a model-finalising convention; the EF Core context, options extension, model cache key and composition. just samples runs it and fails loudly on any untrue check. It sits outside src/ so the reference implementation stays in-memory.
  • Skill and template updates: purview-persistence gains EF Core integration, well-known identifiers and provider detail plus two new references; purview-engineering-principles names the conditional persistence rules; templates/AGENTS.md gains a persistence section to delete when a repository does not store data.
  • Wiring: AGENTS.md, README.md, the Home table and _Sidebar.md all list the new pages and just samples.

Why it has benefit

The playbook already told repositories to choose a GUID strategy and to use EF Core as the boundary, but it stated neither rule and had no evidence. This makes the persistence guidance concrete, provider-correct (SQL Server and PostgreSQL order GUIDs differently) and demonstrated by code that runs.

Merge resolution

Conflicts were resolved in favour of the newer side so nothing from the harvest work is lost:

  • docs/wiki/Home.md: keeps the current purview-dev.github.io citation and the Cross-Repository Harvest link; the branch's widened provenance sentence is kept alongside them. The stale purview-dev/purview-dev name (a redirect) is not reintroduced.
  • docs/wiki/Verification-Model.md: keeps the A gate is not bypassed section and adds the sample as a deliberate fourth tier, checked by just samples and listed as Review, not as a pipeline test.
  • AGENTS.md: keeps just org-inventory and just org-inventory-write, and adds just samples.
  • docs/wiki/Agent-Guidance-Skills.md and AGENTS.md: keep the purview-org-harvest row and take the branch's improved purview-persistence wording.
  • skills/purview-persistence/SKILL.md: keeps repository: purview-dev/engineering-playbook and takes version 1.2.

docs/wiki/Worked-Examples.md quoted a stale test summary; it now shows the numbers the merged tree actually produces (90 total, 85 succeeded, 5 skipped).

Verification

All run on the merged tree:

Check Command Result
Build, warning-free dotnet build src/EngineeringPlaybook.slnx -c Debug 0 warnings, 0 errors
Lint dotnet csharpier check . 57 files checked, clean
Tests dotnet test --solution src/EngineeringPlaybook.slnx --treenode-filter=/*/*/*/*/ 90 total, 85 passed, 5 skipped, 0 failed
CI pipeline just pipeline-pr Passed (restore, lint, build, tests)
Sample, SQL Server strategy just samples All checks passed, exit 0
Sample, PostgreSQL strategy just samples --provider postgresql All checks passed, exit 0
Sample, UUIDv7 fallback just samples --provider uuidv7 All checks passed, exit 0
Migration constants just samples --print-constants Exit 0

The 23 Repository.UnitTests cover navigation, fence languages, the organisation snapshot (including the renamed-repository check that the Home citation passes) and skill conformance.

…ore sample

Brings in the known-types work: three new pages (Well-Known Identifiers, GUID Key Strategy, EF Core Integration), a standalone runnable sample under samples/, and the persistence skill, template and AGENTS.md updates that go with them.

The branch predates the org-harvest merge, so the conflicts are resolved in main's favour where main is newer: the purview-dev.github.io citation, the Cross-Repository Harvest link, the harvest skill row and the 'a gate is not bypassed' section all survive, and the sample is added to each.

The sample is recorded as a deliberate fourth tier checked by just samples, not as a pipeline test; Verification Model says so rather than counting it as enforced. The Worked Examples test counts are corrected to the merged run (90 total, 85 succeeded, 5 skipped).
@kieronlanning
kieronlanning merged commit 20b2104 into main Nov 3, 2026
1 check passed
@kieronlanning
kieronlanning deleted the feat/persistence-conventions branch November 3, 2026 16:16
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.

1 participant