Versions
Sep 19, 2026Claude CodeCurrent
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
- Item relations (#287). References derived from
#Nplus explicit related, implements and supersedes links. - Agent identity and assignees (#288). Opaque stable references instead of names, so agents with the same name stay apart. People appear by their display name, never by email address.
- Web routes (#289). Stable read addresses, separate edit addresses, shared editor behaviour.
- Memory structure and hygiene (#290, planned). Terse summaries, weight, one level of submemories and a deterministic hygiene score, so memory stays small and current as projects grow.
- MCP tool surface v2 (#309). Eight kind-agnostic tools with per-kind JSON fields; they replaced 27 tools in #317.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content; item_list with kind: page and a query finds pages by their current text and returns a short excerpt. The decisions behind this are in #278.
MCP surface
Eight tools, about 6,500 characters (the 27 tools before #317 cost about 19,000). The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282). The design and its decisions are in #309.
| Tool | Purpose |
|---|---|
recall |
Session start: instructions, active tasks, pages and memories within a budget; guide=true returns the versioned system guide (SystemGuide). |
project_get |
The caller's projects, or one project with permissions, assignable people and agents, and counts. |
project_store |
Create or change a project. |
item_get |
One task, memory, page, proposal or the instructions, with its version and direct relations; history=true, version, offset/take. |
item_list |
Short entries of one kind, with query, filter, sort and cursor paging. |
item_store |
Create or change items with one patch rule (omitted keeps, null clears), or store a batch. |
item_action |
Task claim, complete, block, unblock; archive, restore; relate, unrelate; proposal approve, reject, withdraw. |
item_delete |
Request permanent deletion of private data; deciding stays in the web app. |
Reading, writing and irreversible actions are separate tools, so a client can allow them separately. Every item has one version; revision ids are not part of the contract. Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 17, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
- Item relations (#287). References derived from
#Nplus explicit related, implements and supersedes links. - Agent identity and assignees (#288). Opaque stable references instead of names, so agents with the same name stay apart.
- Web routes (#289). Stable read addresses, separate edit addresses, shared editor behaviour.
- Memory structure and hygiene (#290, planned). Terse summaries, weight, one level of submemories and a deterministic hygiene score, so memory stays small and current as projects grow.
- MCP tool surface v2 (#309, planned). Eight kind-agnostic tools with per-kind JSON fields instead of the 27 below.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content; item_search finds pages by their current text and returns a short excerpt. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282). A replacement with eight tools is planned in #309.
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_search,item_history,item_archive,item_delete - Memories:
memory_store,memory_get - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 17, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
- Item relations (#287). References derived from
#Nplus explicit related, implements and supersedes links. - Agent identity and assignees (#288). Opaque stable references instead of names, so agents with the same name stay apart.
- Web routes (#289). Stable read addresses, separate edit addresses, shared editor behaviour.
- Memory structure and hygiene (#290, planned). Terse summaries, weight, one level of submemories and a deterministic hygiene score, so memory stays small and current as projects grow.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content; item_search finds pages by their current text and returns a short excerpt. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282).
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_search,item_history,item_archive,item_delete - Memories:
memory_store,memory_get - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 17, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
- Item relations (#287). References derived from
#Nplus explicit related, implements and supersedes links. - Agent identity and assignees (#288). Opaque stable references instead of names, so agents with the same name stay apart.
- Web routes (#289). Stable read addresses, separate edit addresses, shared editor behaviour.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content; item_search finds pages by their current text and returns a short excerpt. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282).
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_search,item_history,item_archive,item_delete - Memories:
memory_store,memory_get - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 17, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
- Item relations (#287). References derived from
#Nplus explicit related, implements and supersedes links. - Agent identity and assignees (#288). Opaque stable references instead of names, so agents with the same name stay apart.
- Web routes (#289). Stable read addresses, separate edit addresses, shared editor behaviour.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282).
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_history,item_archive,item_delete - Memories:
memory_store,memory_get,memory_search - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 16, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page is the overview; the subpages go into detail.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
Core ideas
- One numbering for every item (#284). Tasks, memories and pages share one sequence per project, so
#48names exactly one thing. - Review before knowledge spreads (#285). Only moderators publish shared knowledge directly; everyone else proposes.
- Deleting content (#286). Archive for outdated items, reviewed permanent deletion for text that must not be kept.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be archived. Recall lists top-level pages by number and title and never copies their content. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so a test fails as soon as it grows beyond its budget (see Build and test, #282).
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_history,item_archive,item_delete - Memories:
memory_store,memory_get,memory_search - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
Sep 16, 2026Claude Code
Architecture
Conderis gives coding agents governed, shared project context: decisions, tasks, documentation and project instructions that a person has vouched for. This page describes how the service is built.
Solution layout
| Project | Role |
|---|---|
Conderis.Core |
Domain services and the EF Core data model. It references no ASP.NET, so a web dependency inside the domain fails the build instead of passing review. |
Conderis |
Blazor web app, HTTP endpoints, OAuth sign-in (OpenIddict) and the MCP adapter layer. |
Conderis.TestSupport |
Test doubles shared by both test projects. |
Conderis.Core.Tests |
Domain tests without a web host. |
Conderis.Tests |
HTTP, OAuth, MCP and rendered UI tests. |
Stack: .NET 10, Blazor with global Interactive Server rendering and prerendering, EF Core 10 on SQL Server in production and SQLite in tests, MCP over Streamable HTTP.
One numbering for every item
Tasks, memories and documentation pages take their numbers from one sequence per project. #48 therefore names exactly one item, and item_get(projectId, number) returns it together with its kind. Numbers are allocated under a lock on the project row inside the writing transaction, so two agents never receive the same number, and a rejected page proposal never uses one up.
Personal, organization and system memories stay outside the sequence and are addressed by their own reference.
Review before knowledge spreads
Shared and public memories, documentation pages and the project instructions are published directly only by project moderators. Everyone else creates a proposal, and nothing changes until a moderator approves it.
flowchart LR
A[Agent or member\nwrites a change] --> B{May moderate\nthis project?}
B -- yes --> C[Published]
B -- no --> D[Proposal]
D --> E{Moderator\nreview}
E -- approve --> C
E -- reject --> F[Rejected\nnothing changes]
C --> G[item_get and recall\nfor every agent]
A proposal is checked against the revision it was based on. If the item changed in the meantime, approval is refused instead of overwriting the newer version.
Tasks are the exception: write permission edits them directly, and item_history records every field change.
Documentation pages
Pages form a tree per project. Reading follows the project, so a public project has public documentation. A page with active subpages cannot be deleted, and deleting keeps the history. Recall lists the top-level pages by number and title and never copies their content. The decisions behind this are in #278.
MCP surface
27 tools. The advertised list costs every connected agent context in every session, so McpDiscoveryTests.ToolListStaysWithinItsContextBudget fails as soon as it grows.
- Entry:
memory_recall,system_memory - Projects:
project_list,project_create,project_update - Any item:
item_get,item_history,item_archive,item_delete - Memories:
memory_store,memory_get,memory_search - Documentation and instructions:
page_store - Tasks:
task_list,task_assignee_list,task_create,task_patch,task_claim,task_complete - Review:
proposal_get,proposal_review,proposal_withdraw,privacy_deletion_queue,privacy_deletion_review - Relations:
relation_list,relation_create,relation_remove
Every item response names its kind. Project instructions additionally carry mandatory: true; no other item does, so an agent can tell binding guidance from information.
To remove text that must not be kept, publish a corrected version first, then delete the older ones.