Update OpenWiki documentation and claims
Some checks failed
Build / build (pull_request) Has been cancelled
Some checks failed
Build / build (pull_request) Has been cancelled
Reference AGENTS.md in CLAUDE.md and record verification claims for the architecture overview and operations runbook. Signed-off-by: Tim Krampitz <Tim.Krampitz@live.com>
This commit is contained in:
82
openwiki/.claims/operations/runbook.json
Normal file
82
openwiki/.claims/operations/runbook.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:5389d38dcacf5b524555f17ca858a9e10106a078dd4c0c728b661386db1a9df2",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_26d0b751207c4d5b8e6d388c90eaf669",
|
||||
"statement": "The SlipItIn.Server.Tests project uses xUnit as the test framework, Moq for mocking dependencies, and EF Core InMemory for isolated database contexts targeting net10.0.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/SlipItIn.Server.Tests.csproj#L1-L24",
|
||||
"version": "repo-lines-v1:sha256:629d0dd4e27bacd5339d63ae351decad7b2b34d6e363d4c2c054d01c2ecb80e1:eyJzZWxlY3RlZExpbmVDb3VudCI6MjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijg4YWZmMzdmYzg4YWFiODM0YjQ2ZDQ3MTk2NmM0MmQ5NGM5Y2U0MzhhNWM0YzkwYjMyOGU2ZDI0Mzg3OWI3MGEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdlYjcwMjU3NTkzZGEwNmY2ODJhM2RkZGE1NGE5ZDI2MGQ0ZmM1MTRmNjQ1MjM3ZjVjYTc0YjA4ZjhkYTYxYTYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjczM2NlYjI1ZTIyMDgzNzgyMzdhYTNlMmY2ZmNlZTM3ZTE1MThlMzk1MGExZTJlYzgyN2QwNjgwYzI2NDVhOTMifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_1ce4b53277a7491cb6db61bc1b4f7b40",
|
||||
"statement": "TestDbHelper.CreateFactory() creates a unique InMemory database per test via Guid.NewGuid(), ensuring complete test isolation for all test classes.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/TestDbHelper.cs#L12-L18",
|
||||
"version": "repo-lines-v1:sha256:fb006bf0c6e5859dac64f65fafbb8343db47c78c986bbdf146c32db7044251b6:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNWQ1NGE1YWM1YTYxN2Q0NjE0NDg0YWViMzgxMTUyZjc2M2EzNDkwMDg5M2QwNzAzMzYwYTc5ZDk2NGUzNjg2MCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiMTQxOWE2ZGNjMDRlMjEzYTNjN2E3N2E0NTZiMDFlNzZkMWVmNzhjZDAwYmJlYzFkOGY4MTQ1OGZlOTNlZGM1NiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMjU0MTc3ZTM4MTFiMWE2OWIwYmM5MDVjZDI5Mjk2ZDRjZjdiMTcyMGEzMWQwODY4NTcwNDk4OTZmNjMzYzI5MiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiY2JhNjY0N2QwMGVjNWI0ODBlNjYyYjdiMTY4ZTlhYzY5NDc2ZTg5MDdkODEzMGM2MWQ5ZDI3ODlmNjVmMDBmOSJ9"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_e739f028ae944fdda6bdbece1cb45b51",
|
||||
"statement": "Jwt:Key has no default in production configuration; in non-development environments a missing or short (less than 32 char) key causes a startup InvalidOperationException.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server/Program.cs#L24-L37",
|
||||
"version": "repo-lines-v1:sha256:d25ada09392171a160b04ea576cca0ebd042681d55ffa5fad372c750fcd9e75d:eyJzZWxlY3RlZExpbmVDb3VudCI6MTQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjU1MzZiNWQ3ODQyYjVhYjgwZTJjMGIyN2JhYjMzZjlmNDE3MmE2MmIyMTQ2MmRkZDA2NDZhOGM1MGZjODBmMTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImUyMmZhYTUzNWJkMmVhM2Q1MmU3NDFlZDQ1NDQzNWI3ZmU0OWU4MzU4NmU5NDNkOThkODJiYmZiMjRkMWY1YzUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRkYWRlZGRjZDdjMzA5MGFmMDI0MWM1ZGFiYTExN2E0Nzk4ZTU1OGU4YjQwNjQ5ZjU2MmQ1YzQzYWM1MTQxZTQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmMDU1YzhjZjNkMjI5MzkxODY2NGU5NDVlNDIyODRhNjhmZjQyMDBiNGEwMDYyYTQ5YWIxM2NhYTgxMjQyNTMifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_c13a8df4af4345b68e40ab4ba95d109f",
|
||||
"statement": "The CI workflow builds the server stack projects with Release configuration and the MAUI client with Debug configuration, then runs server tests in Release.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://.github/workflows/build.yml#L28-L40",
|
||||
"version": "repo-lines-v1:sha256:8bb502095ab57d36f4be6522f6941fbf4284b199210de17c3f473164d3316d7c:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4M2FhN2YyNzY2MmUwODljZjU0YjBjYWVhOTQ3ZGFjNzI0MWJhOWRiYzc0MTRhZTZmY2ZhMWViMjhkNTJhNTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImY1MWI2NmM2MDcwMWY0YTUxMWE1YmFlZDY2ZWFmMWFjYzJhN2EwZmM5NDQ2MDE1MDMxN2U1ZGM3N2E3MDg1ZGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjljMmFjMDNkNmRiZmJkMTQ0ZTg5YTViNTM5YjVhYmJlZmVjZjZhMWQxODg3OWFiMGJlMzYwOGM4M2Q1MGYxYjEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjowLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_f68c2ed07f3b4f9f9c899291de56124a",
|
||||
"statement": "On Aspire launch, Program.cs automatically applies EF Core migrations and calls DbSeeder.SeedAsync to populate initial users and phrases when the database is empty.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server/Program.cs#L116-L121",
|
||||
"version": "repo-lines-v1:sha256:16925ea3cd8dbeb515e18474d5172957806fa02bef1d4070331d55bc6f3f45ce:eyJzZWxlY3RlZExpbmVDb3VudCI6NiwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiOTNmYjQ4ZDcxMGRmZGEyMDFjNTM0ODg3MDEyYWQ5NjYxYjBjN2RjZTU0ODdjYTFlMmRhMGNlYzFmMmU3Yzg2NSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZTIyZmFhNTM1YmQyZWEzZDUyZTc0MWVkNDU0NDM1YjdmZTQ5ZTgzNTg2ZTk0M2Q5OGQ4MmJiZmIyNGQxZjVjNSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNTk1YmY3MTIwNTM3ZmFiOGI0YWVjZWUxNDRlODQwZWVjNDJiYWJkNjJkM2YwYzJmZDMxYWFlM2Q0MDc3MTEyNSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNWM3MjJkZTIyM2VkMDYwNzU1NDRmMmNmZjVkYzM5OGRjMjJjNjY2ODhiOGY5MzhhYzU4ZDFjMjljNGI4YjExZCJ9"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_684e6b8a21e2409990461d5ad54a109e",
|
||||
"statement": "GameServiceTests covers business logic (create/join/start game, deal cards, submit slip, challenge resolution, game state), GameHubTests covers SignalR hub behavior with mocked IGameService, AuthControllerTests covers registration/login/me endpoints, and DbSeederTests covers seed idempotency.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/AuthControllerTests.cs#L1-L17",
|
||||
"version": "repo-lines-v1:sha256:ae5410c6ed58240961e547295c52a166d4f92097e058fd55d7bd5662319f15a0:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI3NWM5ZTU2YzE0ZTgwZmY3ZWZlODNmNDQzZmQ4YzY4MGIwNzgxYTNmNWQ2MmU1N2JiOWI3MWRjMGU1YTIxYzkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk2YjMxY2JmNGUzYTI3MTZhMDAyMWJiNDU1OTdmOWMxY2IwYjMwYjRlM2QzZDc1NzMwZjIyMTc0Y2VmNmI4MmMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjAyYTQyZmUzNmM1MTY3YzIzNTAxOThmNmZkZjYwOGUwNjJhYTgyODE3NzI5ZDFkZDRjMzBhYzlmM2NhNGVjYjUifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/DbSeederTests.cs#L1-L8",
|
||||
"version": "repo-lines-v1:sha256:78405718fae114f2d1ac469e76a7f7e766fe5fe477461d5709fe20919317edb2:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiODI1ZWYzYjZhMGMwNTM4MTAwNzMyNjZmMjJmNDE0ODlkOTc5NDE2ODk3NjI4MjA2MjFmYThlNzRjMmYwMTlkNCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZmE2ZWZmMDIwMTUyMzgxY2RlZmY1NzEzYTFmZmYwNWRjZTUxN2NjMmFiNTM3YTcxZjUwYmY5NTNiMjVkYWVkMSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjAsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZGVjM2IzMDRiZjIxYTdiYmRkZjE3ZWRkZGEyNDcwNWVjMzA5OTFlZDY1ZjcxY2ZiNGI3OTQ2NWQwMWNkZGI0MyJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/GameHubTests.cs#L1-L18",
|
||||
"version": "repo-lines-v1:sha256:2aebd88a387ba57ca7c688410d187ac0e9090f706e85a0d601957c0943b21c9f:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjVjOWEzNmMzYzcxMmRlN2ZlOTBlOTEwM2QwZTUyNmExOGE4ZjkwMThjMTY2ODk5ZGQxOTdmNmU4OGZhMzRmYjIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjczN2NlMmFiZTQ2YTYxNjU0NDFmMDcyM2IyN2NmOGU0ZTI0NDFiNGI2YTE0NTliZjk1MjI5ODFhZWVkM2NmYmIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQwNzAzZWMyMTNiZTBmZGEzYTJhZjVhOTExMTkxYTlkM2Q5ZDQ4YmVlOTNlNTdkMTFiNDI2Njg1MzdjYWQ4MTIifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://SlipItIn.Server.Tests/GameServiceTests.cs#L1-L17",
|
||||
"version": "repo-lines-v1:sha256:b692d4f82ed745136c692ff69ff4eb7ddc5fdea9c4b3b5769d1eed52c76f685f:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjIwYWZmMTQ0YmQwNjM0M2U0MGM5MTMwMTM0YzU0YzYzNmRiMTcwYzBiZGQ3YzZjOTNhYjcwYTBjYjY1N2YwZDQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE0MTlhNmRjYzA0ZTIxM2EzYzdhNzdhNDU2YjAxZTc2ZDFlZjc4Y2QwMGJiZWMxZDhmODE0NThmZTkzZWRjNTYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImJiNjQyNDNhZDEzODFmZjU1N2QwM2Q4MDU2MDVhNTI2ODRjYmZiZmJjMTBiYzMxNDdkOTg1YjBkZThmY2Q3NDQifQ"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.0",
|
||||
"at": "2026-09-07T15:04:46.288Z"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user