Skip to content

State the governance boundary: keel enforces rulings, it does not issue them #280

Description

@eaitbrahim

This is the governance question that decides whether an international contributor base is an asset or a liability, and it is not technical.

Once contributors arrive from different madhāhib and jurisdictions they will disagree about rulings — what counts as riba exposure, whether a staking-derivative wrapper is permissible, how a governance token should be classified. In a religious context, ungoverned disagreement is far more corrosive than a technical argument. Left ambiguous, it fragments the project.

The architecture already answers it — make the answer explicit

keel does not issue rulings. Attestation is a human input that fails closed: the operator supplies sector, backing and yield with a source and an attributed name, and keel enforces that deterministically and records who said what. screen_asset never derives a ruling from price data, and attestation=None is a rejection, not a default pass.

That means keel can serve a Hanafi operator and a Shafi'i operator without the project taking a side, because the ruling lives in the attestation, not in the code.

Acceptance

  • A short, quotable statement of this in the README's first screen. Draft: "keel is not a fatwa engine. It is an enforcement engine for a ruling you supply."
  • The same statement in CONTRIBUTING.md, framed as what is and is not in scope for a PR
  • Explicit: PRs that change a default classification need a source and are discussed; PRs that change the mechanism are ordinary engineering
  • A stated route for disagreement that does not require the project to adjudicate — e.g. exceptions are attested locally, not merged upstream

Why this is Phase 6 and not later

Every other document written before this is decided will have to be rewritten afterwards.

Metadata

Metadata

Assignees

Labels

fiqhShariah basis, rulings encoded, scholarly reviewopen-sourceWork toward making keel genuinely open sourceprerequisiteBlocks other issues; do first

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions