Skip to content

Build the policy framework (ADR 005) #100

@monkeypants

Description

@monkeypants

Context

ADR 005 (Doctrine and Policy Separation) defines a clear distinction:

  • Doctrine is axiomatic and universal — applies to all Julee solutions
  • Policy is strategic and adoptable — represents implementation choices

The ADR specifies infrastructure that doesn't yet exist:

  • [tool.julee] configuration in pyproject.toml for policy adoption
  • Framework-default policies auto-adopted when [tool.julee] is present
  • skip_policies configuration to opt out of defaults
  • CLI commands: julee-admin policy list, policy verify, policy adopt, policy skip
  • Policy packages under core/policies/ with metadata (slug, name, description, framework_default, requires)

Some policies are already mentioned as candidates: sphinx-documentation, test-organization, mcp-framework, temporal-pipelines, postgresql-patterns.

This is the enabler for all future strategic architectural rules. Without it, everything must be either universal doctrine (too rigid) or undocumented convention (too loose).

Acceptance criteria

  • Policy entity and metadata model defined in core/entities/
  • Policy discovery mechanism (scan core/policies/ packages)
  • [tool.julee] configuration reading from pyproject.toml
  • Framework-default policy resolution (auto-adopt unless skipped)
  • At least one policy migrated from current doctrine (e.g., temporal-pipelines or sphinx-documentation)
  • julee-admin policy list and julee-admin policy verify commands
  • Doctrine test for policy infrastructure itself

Related

  • ADR 005: docs/ADRs/005-doctrine-and-policy.md
  • Tier 4 priority (infrastructure enabler for iterative refinement)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions