Edictum Core Implementation

SkillProductivity

Implement features in the Edictum OSS core (src/edictum/). Use when the task touches pipeline, adapters, YAML engine, CLI, audit, envelope, or session. Core NEVER imports from ee/.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Edictum Core Implementation skill

What this skill tells your AI

The instructions your AI receives, as published by edictum-ai/edictum in .claude/skills/edictum-oss/SKILL.md and read by ahel’s review.

Read CLAUDE.md first. Understand the boundary principle before writing code.

Scope

Everything under src/edictum/ is the core library (MIT). This includes:

  • Pipeline (pipeline.py) — CheckPipeline, PreDecision, PostDecision
  • Envelope (envelope.py) — ToolCall, Principal, create_envelope()
  • Contracts (rules.py) — @precondition, @postcondition, @session_contract, Decision
  • YAML engine (yaml_engine/) — loader, evaluator, compiler (including sandbox compilation), templates
  • Adapters (adapters/) — all 7 framework adapters
  • Audit (audit.py) — AuditEvent, StdoutAuditSink, FileAuditSink, RedactionPolicy
  • Session (session.py) — Session, MemoryBackend
  • CLI (cli/) — validate, check, diff, replay, test
  • Telemetry (telemetry.py) — OTel spans, GovernanceTelemetry
  • Server SDK (server/) — client components for connecting to edictum-server

Architecture

Two deployment units:

  • Core (pip install edictum) — runs fully standalone. All 4 rule types (pre, post, session, sandbox), pipeline, 7 adapters, CLI, local audit, local approval.
  • Server (edictum-server) — separate deployment, coming soon. The Server SDK (pip install edictum[server]) provides the client-side connectivity.

Core provides protocols and interfaces. The server SDK provides HTTP-backed implementations.

What needs the server

Most features work without the server. These require it:

FeatureCoreServer
Rule evaluation (all 4 types)Yes--
outside: block / action: blockYes--
outside: ask / action: ask (dev)Yes (LocalApprovalBackend)--
outside: ask / action: ask (production)--Yes (ServerApprovalBackend)
Audit to stdout/file/OTelYes--
Centralized audit dashboard--Yes (ServerAuditSink)
Session tracking (single process)Yes (MemoryBackend)--
Session tracking (multi-process)--Yes (ServerBackend)
Hot-reload rules--Yes (ServerRuleSource)

Workflow

  1. Read CLAUDE.md — understand boundaries and dropped features
  2. Read the Linear ticket or user description
  3. Read relevant source files before proposing changes
  4. Scenarios & use cases — before implementing, write down:
    • What concrete scenarios does this feature enable?
    • What user personas benefit?
    • Does this overlap with existing features?
    • Does this surface related features that should be designed separately?
    • Include this analysis in BOTH:
      • The PR body under a ## Scenarios section
      • The docs page under a ## When to use this section (see .docs-style-guide.md page structure pattern)
  5. Scope with user — confirm approach before writing code
  6. Implement — small, focused changes
  7. Behavior test — every new/changed API parameter gets a test in tests/test_behavior/test_{module}_behavior.py
  8. Docs-code syncpytest tests/test_docs_sync.py -v
  9. Adapter parity — if touching adapters: pytest tests/test_adapter_parity.py -v
  10. Testpytest tests/ -v then ruff check src/ tests/
  11. Commit — conventional commits, no Co-Authored-By

Conventions

  • Frozen dataclasses for immutable data
  • All pipeline/session/audit methods are async
  • from __future__ import annotations in every file
  • Type hints everywhere
  • Test file per module: tests/test_{module}.py

Do NOT

  • Implement Redis/DB StorageBackend — dropped feature
  • Accept a parameter without testing its observable effect — if it's accepted, it must DO something testable
  • Document a feature that doesn't exist in code — pytest tests/test_docs_sync.py -v catches this
  • Ship an adapter change without running parity checks — pytest tests/test_adapter_parity.py -v

Signals

GitHub stars
31
Forks
6
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
edictum-oss
Source
github.com/edictum-ai/edictum