Interface Breaking Change Check v0.1.2
This document fixes the v0.1.2 canonical interface review result before the 0.1.2 package line is published. The review covered AIKernel.Core, AIKernel.Control, AIKernel.Providers, AIKernel.Tools, AIKernel.Wasm, and AIKernel.Doom as source repositories, but only contract-level surfaces were eligible for AIKernel.NET.
Result
No breaking change is required for the stable v0.1.1 AIKernel.NET public API.
The v0.1.2 canonical surface is added laterally:
- Existing v0.1.1 public type names remain present.
- Existing v0.1.1 method signatures are not intentionally changed by this
- New cognition, Topos, CTG carrier, runtime, provider, and scenario contracts
- Doom-specific and browser-specific implementation contracts stay outside the
review.
are new public types.
canonical AIKernel.NET surface.
One pre-release naming consolidation was applied before publication:
ICTGCanon->ICtgCanonICTGRuleset->ICtgRulesetICTGDecisionGate->ICtgDecisionGate
This is not a stable v0.1.1 breaking change because the all-caps names existed only in the local v0.1.2 development surface.
Review Method
- Compared the current AIKernel.NET public type set against the
v0.1.1tag. - Verified that candidate removals from the mechanical scan were parser
- Reviewed cross-repository implementation-specific interfaces and mapped them
- Kept implementation logic, old inventory Category C logic, WebGPU/WebAudio
artifacts caused by positional record formatting; the corresponding source records are still present.
to canonical abstractions only when the vocabulary was scenario-neutral.
details, Doom route names, and provider implementation details out of AIKernel.NET.
Interface Decision List
Cognition Pipeline
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
IAisthesis |
No | New lateral interface for sensory capture. | Implementations may opt in without changing existing APIs. |
IPhantasia |
No | New lateral interface for representation. | No existing caller is forced to migrate. |
INous |
No | New lateral interface for cognition labels and hints. | Does not replace any existing evaluator. |
ITelos |
No | New lateral interface for TELOS/OBJECTIVE/PRIORITY proposals. | Existing policy interfaces remain intact. |
IKairosScheduler |
No | New lateral interface for timing windows. | Does not own gate or action logic. |
IKinesisActuator |
No | New lateral interface for abstract action emission. | Scenario-specific input emitters remain local adapters. |
IChronosRecorder |
No | New lateral interface for chronological traces. | Existing replay interfaces remain intact. |
ISemanticMemory |
No | New lateral interface for semantic memory snapshots. | Implementations can bridge existing memory stores. |
IPhaseInference |
No | New lateral interface for phase inference. | Scenario-specific phase rules stay outside AIKernel.NET. |
IObjectiveInference |
No | New lateral interface for objective inference. | Existing Control policies are not renamed. |
Topos / Triadic Vectors
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
ILogosVector |
No | New lateral vector contribution interface. | No existing vector API is removed. |
IPathosVector |
No | New lateral vector contribution interface. | No gate or reject reason logic is duplicated. |
IEthosVector |
No | New lateral vector contribution interface. | Purpose scoring stays carrier-level. |
IDecisionVector |
No | New lateral vector composition interface. | It composes observed carriers and does not replace CTG gates. |
IToposEvaluator |
No | New lateral interface for Topos carrier evaluation. | Implementations adapt rather than changing existing Control APIs. |
CTG Carrier Surface
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
ICouncilVote |
No | New lateral interface for vote carrier production. | It does not generate gate decisions. |
ICtgCanon |
No | New lateral interface; casing aligned with existing Ctg* DTOs before publication. |
Pre-release users of ICTGCanon should rename. |
ICtgRuleset |
No | New lateral interface; casing aligned with existing Ctg* DTOs before publication. |
Pre-release users of ICTGRuleset should rename. |
ICtgDecisionGate |
No | New lateral interface; casing aligned with existing Ctg* DTOs before publication. |
Pre-release users of ICTGDecisionGate should rename. |
Provider Surface
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
IModelProvider |
No | Existing interface preserved. | No migration required. |
IEmbeddingProvider |
No | Existing interface preserved. | No migration required. |
IQueryAugmentor |
No | Existing interface preserved. | No migration required. |
IQueryDecomposer |
No | Existing interface preserved. | No migration required. |
IQueryRouter |
No | Existing interface preserved. | No migration required. |
IVisionProvider |
No | New lateral modality provider. | Implementations can wrap existing perception providers. |
IAudioProvider |
No | New lateral modality provider. | Implementations can wrap existing audio providers. |
Runtime Surface
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
IWasmRuntime |
No | New portable runtime abstraction. | AIKernel.Wasm keeps its implementation-local runtime interface until adapters are added. |
IWasmBuffer |
No | New portable buffer abstraction. | Browser/WebGPU details remain outside AIKernel.NET. |
IWasmExecutionContext |
No | New portable execution context abstraction. | Host-specific context stays in AIKernel.Wasm. |
Scenario Surface
| Interface | BreakingChange | Reason | Impact |
|---|---|---|---|
IScenarioPerception |
No | New scenario-neutral replacement for prompt-level IDoomPerception. |
Doom-specific perception adapters remain in AIKernel.Doom. |
IScenarioActionEmitter |
No | New scenario-neutral replacement for prompt-level IDoomActionEmitter. |
Doom input mapping remains in AIKernel.Doom. |
IScenarioRuntimeStatus |
No | New scenario-neutral replacement for prompt-level IDoomRuntimeStatus. |
Doom runtime status can be projected into the neutral DTO. |
IScenarioHudState |
No | New scenario-neutral replacement for prompt-level IDoomHudState. |
Doom HUD details remain scenario-local. |
DTO / Snapshot / Carrier Decision List
| Type Family | BreakingChange | Reason | Impact |
|---|---|---|---|
| Cognition DTOs | No | New AIKernel.Dtos.Cognition records. |
No existing DTO constructor is changed. |
| Runtime DTOs | No | New AIKernel.Dtos.Runtime WebAssembly records. |
Host-specific DTOs stay outside the canonical surface. |
| Scenario DTOs | No | New AIKernel.Dtos.Scenarios records. |
Doom-specific fields are not promoted. |
| Cognition enums | No | New AIKernel.Enums.Cognition enums with Unknown = 0. |
Existing enum values are not renamed or deleted. |
Migration Guide: Pre-release CTG Casing Consolidation
Why
The all-caps ICTG* interface names did not match the existing codebase style, which uses Ctg for type names such as CtgDecisionGateRequest, CtgDecisionGateResult, and ICtgGovernanceService. Keeping both spellings would create needless canonical debt.
What Changed
| Before | After |
|---|---|
ICTGCanon |
ICtgCanon |
ICTGRuleset |
ICtgRuleset |
ICTGDecisionGate |
ICtgDecisionGate |
Migration Steps
- Replace all
ICTGCanonreferences withICtgCanon. - Replace all
ICTGRulesetreferences withICtgRuleset. - Replace all
ICTGDecisionGatereferences withICtgDecisionGate. - Keep method calls and DTO usage unchanged.
Before / After
// Before\npublic sealed class CanonReader : ICTGCanon\n{\n}\n\n// After\npublic sealed class CanonReader : ICtgCanon\n{\n}
Migration Guide: Doom Prompt Names to Scenario-Neutral Contracts
Why
The v0.1.2 canonical interface package must not contain Doom-specific names. Scenario-specific vocabulary belongs in AIKernel.Doom. The canonical surface uses scenario-neutral contracts that other demos can also implement.
What Changed
| Prompt Name | Canonical Name |
|---|---|
IDoomPerception |
IScenarioPerception |
IDoomActionEmitter |
IScenarioActionEmitter |
IDoomRuntimeStatus |
IScenarioRuntimeStatus |
IDoomHudState |
IScenarioHudState |
Migration Steps
- Keep Doom-specific detection and route labels in AIKernel.Doom.
- Project Doom state into
ScenarioPerceptionSnapshot, - Implement the scenario-neutral interfaces only at the adapter boundary.
ScenarioActionRequest, ScenarioRuntimeStatus, and ScenarioHudState.
Before / After
// Before\npublic interface IDoomPerception\n{\n ValueTask<DoomPerceptionSnapshot> SenseAsync(CancellationToken cancellationToken);\n}\n\n// After\npublic sealed class DoomScenarioPerceptionAdapter : IScenarioPerception\n{\n public ValueTask<ScenarioPerceptionSnapshot> CaptureAsync(\n ScenarioPerceptionRequest request,\n CancellationToken cancellationToken);\n}
Stability Reasons
- The canonical additions are opt-in and do not require existing implementations
- Result-like records use optional failure envelope fields only in the new
- New enums use
Unknown = 0and do not rename or delete existing enum values. - Providers remain capability adapters; SDK wrappers and scenario runtimes stay
- Control and Core retain their implementation responsibility: AIKernel.NET
to add members.
v0.1.2 carrier surface.
out of AIKernel.NET.
defines contracts only.
development/interface-breaking-change-check-v0.1.2.md