
セキュリティ研究者向けのContract LinkMLコンパイラ
宣言的意図 → 決定論的実行契約 → エージェント / ハーネス
Decretum は構造化された意図を、エージェントとハーネスのための決定論的実行契約に変換します。
Decretum はドメイン中立な宣言的実行コンパイラです。スキーマ、レシピ、プロファイル、プロバイダ/統合レジストリ、ディスカバリ、検証、ポリシー、および決定論的解決を組み合わせて、ポータブルな実行契約を生成します。
セキュリティリサーチは Decretum の参照ドメインであり、アーキテクチャ上の境界ではありません。同じコンパイラモデルで、ソフトウェアエンジニアリング、インフラストラクチャ自動化、データエンジニアリング、インシデント対応、科学実験、その他の再現可能な技術的作業を記述できます。
Decretum はランタイムではありません。何を実行できるかを定義し、ポータブルな実行契約を生成します。作業の実行、エージェント/研究者の対話管理、証拠の収集、所見の維持、レポートの生成は行いません。
コンパイル後、Decretum は停止します。契約は外部のハーネスまたはエージェントランタイムに渡されます。
実行時に新しいケイパビリティや変更された要件が必要になった場合、リクエストは検証、解決、再コンパイルのために Decretum に戻されます。
Schema = 何が存在するか / 意味的境界
Recipe = 何をすべきか
Profile = 実行特性と設定
Registry = 利用可能な実装
Resolver = 決定論的ケイパビリティバインディング
Compiler = ポータブル契約生成
Harness = 実際の実行と対話
Store = 永続的な実行/リサーチメモリ
重要な分離は次のとおりです:
DECRETUM
宣言的実行コンパイラ
|
+---------------+---------------+
| | |
Schema Recipe Profile
"何が" "何を" "どのように"
| | |
+---------------+---------------+
|
Resolver
|
capability + provider + integration
+ harness + readiness + policy
|
v
実行契約
|
v
外部ハーネス/エージェント
|
+------------+------------+
| | |
実行 対話 永続化
| | |
+------------+------------+
|
Store
コンパイラコアはドメイン中立です。ドメイン固有のセマンティクスは、コンパイラの分岐ではなくレジストリとスキーマに存在します。
例:
ドメインパックはケイパビリティ、スキーマ、レシピ、プロファイル、プロバイダメタデータを提供します。コアのリゾルバ/コンパイラのセマンティクスは変更しません。
Markdown は説明には優れています。しかし、決定論的な実行インターフェースではありません。
Decretum は次を分離します:
人間の意図
|
v
構造化スキーマ + レシピ + プロファイル
|
v
検証済みの解決
|
v
ポータブルな実行契約
|
v
エージェント / ハーネスによる実行
これにより、エージェントに機械可読な境界を与えつつ、実装上の選択をレシピの外に保つことができます。
ソフトウェアタスクでも同じコンパイラを使用できます:
apiVersion: decretum.dev/v1
kind: ExecutionRecipe
domain: software_engineering
id: build-user-service
name: Build User Service
version: "1.0"
objective: Build and validate a Python service.
capabilities:
- source.read
- source.modify
- dependency.install
- test.execute
- artifact.build
- container.build
profiles:
infrastructure: local-dev
language: python
testing: pytest
container: docker
agent: coding-agent
completion:
required:
- tests_pass
- artifact_built
- container_built
同じ意図を別の設定セットに対してコンパイルできます:
profiles:
infrastructure: isolated-dev-vm
testing: pytest
container: podman
agent: enterprise-coding-agent
レシピは意図を記述します。プロファイルは設定を表現します。プロバイダレジストリは実際に何が利用可能かを決定します。
id: suspicious-network-investigation
name: Suspicious Network Investigation
version: "1.0"
role: threat_researcher
objective: Determine whether the sample creates unexpected network activity.
capabilities:
- process.observe
- network.capture
- artifact.collect
infrastructure_profile: isolated-linux-vm
instrumentation_profile: linux-network-observation
harness_profile: interactive-research
レシピには Lima/Docker のライフサイクル、MCP 実装、エージェントプロンプト、ランタイム固有のコードは含まれません。
Decretum はステップ 9〜10 を実行しません。
DISCOVER
|
PROPOSE
|
SEMANTIC REVIEW
|
APPROVE
|
CANONICAL CAPABILITY
|
PROVIDER IMPLEMENTATIONS
ディスカバリはケイパビリティを提案できますが、正規のセマンティクスを暗黙に変更することはできません。
git clone https://github.com/Opposum0112/Decretum.git
cd Decretum
uv sync
decretum capabilities discover
decretum validate recipes/<recipe>.yaml
decretum resolve recipes/<recipe>.yaml
decretum compile recipes/<recipe>.yaml
Decretum の validate/resolve/compile パスでは、作業は一切実行されません。
Capability
|
Provider
|
Integration
|
Execution surface
|
Harness compatibility
|
Host/provider readiness
|
Policy compatibility
|
READY / BLOCKED
Decretum は意図的に次のものにはなりません:
代わりに:
Decretum
= 宣言的意図 -> 決定論的契約
Harness / Agent
= 対話的実行環境
Store
= 永続的な実行またはリサーチメモリ
詳細な境界については ARCHITECTURE.md、docs/execution-contract.md、docs/domain-model.md を参照してください。
セマンティクスを所有するレイヤーでコントリビュートしてください:
プロバイダの追加は通常、コンパイラの分岐ではなくレジストリの作業を必要とすべきです。
新しいケイパビリティについては、正規の承認を求める前に、そのセマンティクスを説明し、既存のケイパビリティとの違いを明確にしてください。
Decretum/
├── schema/
│ ├── capability_registry.yaml
│ ├── provider_registry.yaml
│ ├── profile_registry.yaml
│ └── sec_research_metamodel.yaml # reference security domain
├── recipes/
├── docs/
│ └── domain-model.md
├── sec_agent/
│ ├── capability_registry.py
│ ├── capability_discovery.py
│ ├── profile_registry.py
│ ├── resolver.py
│ ├── policy.py
│ ├── compiler.py
│ ├── harness.py
│ └── replay.py
└── tests/