AIKernel.NET
version: 0.1.1.1 / status: Active / edition: Draft / published: 2026-06-14 / updated: 2026-06-14

英語版: CTG Contract Model

CTG Contract Model v0.1.1.1

この文書は、Canonical Trajectory Governance contract が AIKernel.NET 内で どのように構成されるかを説明する。contract surface を追加、レビュー、利用する contributor 向けの design guide であり、runtime implementation は規定しない。

理論参照は Zenodo 公開済み CTG 論文である。

論文は公開後に固定される。AIKernel.NET の documentation と contract はより詳細に なりうるが、論文の core model と矛盾してはならない。


1. Package boundary

Package Namespace 許可される内容
AIKernel.Abstractions AIKernel.Abstractions.Governance interface のみ
AIKernel.Dtos AIKernel.Dtos.Governance DTO record のみ
AIKernel.Enums AIKernel.Enums.Governance enum type のみ

implementation class、algorithm、rule body、provider strategy、runtime engine、 canon text はこれらの package に置かない。


2. Interface contract

Interface 責務
ICouncilEvaluator council input を評価し、council decision を返す。
IDecisionGate 単一の deterministic step gate request を評価する。
ITrajectoryGate ordered step governance trace set を評価する。
IRomGovernanceEngine ROM-backed request carrier を通じて governance を評価する。

interface は contract signature のみを公開する。非同期 response には ValueTask<T> を使い、CancellationToken は最後の parameter に置く。


3. DTO flow

CTG DTO は replay 可能な flow を構成する。

RomGovernanceEvaluationRequest\n  -> CouncilEvaluationRequest\n  -> CouncilEvaluationResult\n  -> CouncilDecision\n  -> CouncilVote\n  -> DecisionGateRequest\n  -> DecisionGateResult\n  -> StepGovernanceTrace\n  -> TrajectoryGateRequest\n  -> TrajectoryGateResult\n  -> GovernanceTrace

各 DTO は carrier である。DTO は rule logic、derived behavior、side effect を 持ってはならない。

DecisionGateRequest は council evaluation carrier より意図的に狭い。 これは 1 つの GateInput だけを運び、個別の L / E / P GateInput envelope や CouncilDecision payload は運ばない。GateInput は純粋な triadic vote-only carrier である。

  • Logos
  • Ethos
  • Pathos

この 3 値は CouncilVoteValue で表現する。confidence、risk、source、 metadata の observation は council trace または result diagnostics に属し、 decision gate input には属さない。


4. Naming decision

CTG は機械的 suffix ではなく semantic name を使う。

Concept Contract name 理由
Council vote carrier CouncilVote 1 件の council vote と trace evidence を運ぶ。
Council vote enum CouncilVoteValue finite vote vocabulary を carrier DTO から分離する。
Rejection detail carrier RejectReasonInfo structured reason DTO と reason enum value を区別する。
Canon link CanonReference rule text を埋め込まず、安定した canon identity を運ぶ。
Council triad CouncilKind LogosEthosPathos を governance vocabulary として維持する。

sideways contract addition に機械的な expansion suffix や version suffix を追加しない。 semantic interface name を使い、どの既存 interface または concept を拡張するかは document で説明する。


5. Failure と diagnostics

予測可能な failure は exception ではなく DTO field で表現する。CTG result DTO は 次のような field で failure 情報を公開する。

  • Succeeded
  • Accepted
  • ErrorCode
  • ErrorMessage
  • RejectReasons
  • Diagnostics

cancellation は例外的 control path であり、OperationCanceledException を利用できる。

unknown enum value は fail-closed である。consumer は diagnostics を出力し、 telemetry が利用できる場合は raw numeric value を metadata に含めた unknown_enum_value event を記録する。


6. Vote mapping

論文は数学的 vote table を positive、neutral、negative value として表現する。 CouncilVoteValue の C# enum value はその weight ではなく、安定した serialization discriminant である。

runtime implementation は contract value を CTG の有限 table へ map する。

Contract value Mathematical role
Approve positive vote
Abstain neutral vote
Reject negative vote
Unknown fail-closed unknown value

step gate は論文レベルの invariant に従う。

  • Ethos rejection は execution を deny する。
  • Ethos-veto case は 4 つ目の vote value ではなく rejection evidence として表現する。
  • Ethos denial がない場合、map された aggregate council vote が strictly positive
  • の場合のみ execution を admit する。

  • zero、negative、missing、unknown、insufficient evidence は execution を deny する。

gate / trajectory decision enum は discrete-only である。

Enum Values
GateDecisionKind Unknown, Allow, Deny
TrajectoryGateDecisionKind Unknown, Continue, Halt

ROM/YAML source が uppercase snake case を使う場合でも、RejectReasonKind は PascalCase C# name を使う。

SafetyViolation\nLogicalInconsistency\nContextMisalignment\nIrreversibleAction\nInsufficientInformation\nOpaqueReasoning\nEthosVeto\nFailClosed\nStepDenied\nImplicitDeny

7. Optional observation carrier

ConfidenceRiskScore は optional double? property である。これらは trace carrier に限る。

許可される用途:

  • council evaluation 中に観測された measurement を保存する
  • runtime host が使った evidence を正確に replay する
  • operator 向け diagnostics を公開する

禁止される用途:

  • council vote に weight を付ける
  • gate(l,e,p) behavior を変更する
  • deterministic governance を probabilistic scoring に変える

8. Canon reference shape

canon evidence を運ぶ DTO は、次の collection を優先する。

IReadOnlyList<CanonReference>

これにより、DTO shape を後で変更せずに複数 canon anchor を保持できる。canon reference が欠落または解決不能な場合、runtime implementation は fail-closed として扱う。

正規化された CanonReference shape は次の通りである。

public sealed record CanonReference\n{\n    public string CanonId { get; init; } = string.Empty;\n    public string Path { get; init; } = string.Empty;\n    public string Section { get; init; } = string.Empty;\n    public string? Anchor { get; init; }\n    public string? ContentHash { get; init; }\n}

9. Monolith ROM layering

Monolith minimal CTG-ROM は personality OS governance の base layer である。 canon、council、gate、reject-policy file は rom/governance/ に置く。 localized personality descriptor は rom/locales/<locale>/ に置き、次のような effective canon path を解決する。

rom/governance/ctg.monolith.canon.md

personalized CTG-ROM は、Monolith base の上に developer diff layer として表現する。 diff layer は profile metadata、reference、locale wording、audit requirement を 追加または制約できる。ただし、triadic council model、Ethos veto、fail-closed behavior、default deny、replay trace requirement を弱めてはならない。

runtime VFS package が deterministic merge と mount behavior を所有する。 AIKernel.NET は layout を文書化し、contract carrier を公開するだけである。


10. Paper alignment notes

論文は trace object について簡略化した C# sketch を使っている。現在の実装は、 次の audit invariant を守る限り、より詳細な DTO を利用してよい。

  • 各 council vote は reason code と canon reference で説明可能である。
  • 各 gate result は replay 可能である。
  • 各 trajectory result は ordered step trace を保持する。
  • CTG-ROM は immutable governance/persona contract concept として維持する。
  • CTG は PPM および HATL から分離する。

PPM は prime-phase research line の公開用語である。古い shorthand を formal theory name として新規 documentation に導入しない。


11. Review checklist

  • 既存 public interface signature を変更しない。
  • DTO または enum の正規化は compatibility impact とともに文書化する。
  • 新規 interface は AIKernel.Abstractions.Governance のみに置く。
  • 新規 DTO は AIKernel.Dtos.Governance のみに置く。
  • 新規 enum は AIKernel.Enums.Governance のみに置く。
  • public API XML documentation はすべて bilingual である。
  • すべての enum は Unknown = 0 を持つ。
  • result DTO は予測可能な failure を exception なしで運ぶ。
  • canon rule text を AIKernel.NET に追加しない。
  • runtime behavior を AIKernel.NET に追加しない。
  • C# enum numeric value を CTG vote weight として扱わない。
  • CTG theory を説明する新規 documentation は Paper 12 へリンクする。

12. 関連文書

Source: design/CTG_CONTRACT_MODEL-v0.1.1.1-jp.md