ADR-001: Extract Manager Interfaces to API

Context

The Wikantik platform was originally a fork of Apache JSPWiki. In the legacy architecture, all core logic (page management, reference tracking, group management, etc.) was contained within the monolithic wikantik-main module.

When the Model Context Protocol (MCP) servers were introduced, they needed to interact with these core managers. However, depending directly on wikantik-main was problematic:

  1. Circular Dependencies: Modules like wikantik-rest and the MCP servers would end up in complex dependency loops.
  2. Testing Overhead: Testing an MCP tool required bootstrapping the entire WikiEngine, which was slow and fragile.
  3. Tight Coupling: It was impossible to use the MCP tools in a lightweight environment or with in-memory stubs.

Decision

We decided to extract the core "contracts" of the wiki engine into a lightweight, logic-free module: wikantik-api.

The following interfaces were moved from wikantik-main to wikantik-api:

Additionally, core data models (WikiPage, WikiContext) and exceptions (VersionConflictException) were also moved to the API module.

Consequences

Positive

Negative

See Also