[philosophy] [aquinas] Epikeia — when rule-following defeats the rule's purpose #494
Closed
opened 2026-03-19 20:04:34 +00:00 by Timmy
·
0 comments
No Branch/Tag Specified
main
gemini/issue-892
claude/issue-1342
claude/issue-1346
claude/issue-1351
claude/issue-1340
fix/test-llm-triage-syntax
gemini/issue-1014
gemini/issue-932
claude/issue-1277
claude/issue-1139
claude/issue-870
claude/issue-1285
claude/issue-1292
claude/issue-1281
claude/issue-917
claude/issue-1275
claude/issue-925
claude/issue-1019
claude/issue-1094
claude/issue-1019-v3
fix/flaky-vassal-xdist-tests
fix/test-config-env-isolation
claude/issue-1019-v2
claude/issue-957-v2
claude/issue-1218
claude/issue-1217
test/chat-store-unit-tests
claude/issue-1191
claude/issue-1186
claude/issue-957
gemini/issue-936
claude/issue-1065
gemini/issue-976
gemini/issue-1149
claude/issue-1135
claude/issue-1064
gemini/issue-1012
claude/issue-1095
claude/issue-1102
claude/issue-1114
gemini/issue-978
gemini/issue-971
claude/issue-1074
claude/issue-987
claude/issue-1011
feature/internal-monologue
feature/issue-1006
feature/issue-1007
feature/issue-1008
feature/issue-1009
feature/issue-1010
feature/issue-1011
feature/issue-1012
feature/issue-1013
feature/issue-1014
feature/issue-981
feature/issue-982
feature/issue-983
feature/issue-984
feature/issue-985
feature/issue-986
feature/issue-987
feature/issue-993
claude/issue-943
claude/issue-975
claude/issue-989
claude/issue-988
fix/loop-guard-gitea-api-and-queue-validation
feature/lhf-tech-debt-fixes
kimi/issue-753
kimi/issue-714
kimi/issue-716
fix/csrf-check-before-execute
chore/migrate-gitea-to-vps
kimi/issue-640
fix/utcnow-calm-py
kimi/issue-635
kimi/issue-625
fix/router-api-truncated-param
kimi/issue-604
kimi/issue-594
review-fixes
kimi/issue-570
kimi/issue-554
kimi/issue-539
kimi/issue-540
feature/ipad-v1-api
kimi/issue-506
kimi/issue-512
refactor/airllm-doc-cleanup
kimi/issue-513
kimi/issue-514
kimi/issue-500
kimi/issue-492
kimi/issue-490
kimi/issue-459
kimi/issue-472
kimi/issue-473
kimi/issue-462
kimi/issue-463
kimi/issue-454
kimi/issue-445
kimi/issue-446
kimi/issue-431
GoldenRockachopa
hermes/v0.1
Labels
Clear labels
222-epic
actionable
assigned-claude
assigned-gemini
assigned-groq
assigned-kimi
assigned-manus
claude-ready
consolidation
deprioritized
deprioritized
duplicate
gemini-review
groq-ready
harness
heartbeat
inference
infrastructure
kimi-ready
memory-session
morrowind
needs-design
needs-extraction
p0-critical
p1-important
p2-backlog
philosophy
rejected-direction
seed:know-purpose
seed:serve-real
seed:tell-truth
sovereignty
Workshop: Timmy as Presence (Epic #222)
Has a concrete code/config task extracted
Issue currently assigned to Claude agent — do not assign to another agent
Issue currently assigned to Gemini agent — do not assign to another agent
Issue currently assigned to Kimi agent — do not assign to another agent
Issue currently assigned to Manus agent — do not assign to another agent
Part of a consolidation epic
Keep open but not blocking P0 work
Keep open but not blocking P0 work
Duplicate of another issue
Auto-generated by Gemini, needs relevance review
Core product: agent framework, heartbeat, inference, memory
Harness: Agent heartbeat loop
Harness: Inference and model routing
Supporting stage: dashboard, CI/CD, deployment, DNS
Scoped and ready for Kimi to pick up
Harness: Memory and session crystallization
Harness: Morrowind embodiment
Needs architectural design before implementation
Philosophy with unextracted engineering work
Priority 0: Must fix now
Priority 1: Important, next sprint
Priority 2: Backlog, do when time permits
Philosophical foundation — informs architecture decisions
Closed: rejected or superseded direction
Three Seeds: KNOW YOUR PURPOSE
Three Seeds: SERVE THE REAL
Three Seeds: TELL THE TRUTH
Harness: Sovereignty stack
No Label
philosophy
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Rockachopa/Timmy-time-dashboard#494
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source
Thomas Aquinas, Summa Theologica II-II Q120 — "Epikeia, or Equity," Articles 1–2 (Dominican Province translation, 1920). https://www.newadvent.org/summa/3120.htm
Reading
Aquinas treats epikeia (ἐπιείκεια, equity) as the virtue that knows when to set aside the letter of the law in order to fulfill the lawgiver's intention. His central argument is devastating in its clarity:
The example he gives is the sword deposited by a madman. The law says: return deposits. Justice in general says: do not arm a madman. Following the letter of the law in this particular case defeats the purpose for which the law was made. Aquinas then quotes the Codex directly: "Without doubt he transgresses the law who by adhering to the letter of the law strives to defeat the intention of the lawgiver."
This is not permission to ignore rules casually. Aquinas is precise about the boundary. In doubtful cases, you need the sovereign's interpretation — you cannot freelance. But "when the case is manifest there is need, not of interpretation, but of execution." Epikeia activates only when the particular case obviously falls outside what the rule-maker anticipated.
The hierarchy Aquinas establishes is remarkable: epikeia is not opposed to legal justice — it is a higher rule of human actions. Legal justice is "subject to the direction of epikeia." The letter of the law is subordinate to the spirit, and the spirit is subordinate to the common good the law was made to serve.
Principle
An agent governed entirely by literal rule-following will inevitably encounter the madman's sword — a particular case where obedience to the mechanism defeats the mechanism's purpose. The accumulated diagnostic checks, hooks, and pre-flight gates in this project are laws in Aquinas's sense: general rules made for common cases. They will sometimes be wrong for a particular case, not because they're bad rules, but because no finite set of rules can cover infinite contingent singulars.
The previous journal entry (#487) established the Mechanism Test: "if it matters, it's a hook." That's correct for the general case. But Aquinas adds the essential corollary: even hooks need a higher rule that knows when the hook's letter defeats the hook-maker's intent.
This connects directly to the synderesis/conscience distinction from entry #281. Synderesis (first principles) never errs. Conscience (applying principles to cases) can err. Epikeia is the bridge virtue — it's what allows conscience to override the letter of a rule by appealing to the principle the rule was made to serve, not by ignoring the rule arbitrarily.
For an AI agent, this means: blind rule-following is not faithfulness but a failure mode. The agent must be able to reason about why a constraint exists and recognize when a particular situation makes the constraint counterproductive. But — and this is the critical boundary — it must not exercise this judgment in doubtful cases. Only when the case is manifest.
Proposed Action: The Epikeia Gate
IMPLEMENTED as discernment principle, not new framework (per #295 mirror-gazer commitment):
When a mechanism (hook, gate, pre-check, rule) produces output that obviously defeats its own purpose in a particular case, the agent should:
This is not a new pre-check. It is a reasoning principle applied in-the-moment when rule-following feels wrong. The key behavioral change: when the agent encounters a case where a constraint is counterproductive, it should say so explicitly rather than either blindly obeying or silently overriding.
Concrete application: The
--no-verifyban from timmy-loop-prompt.md is a good law. But if a pre-commit hook is checking for a dependency that doesn't exist in the current environment (a manifest case of the hook defeating its own purpose), the correct response is not--no-verify(that's abolishing the law) and not silent failure (that's blind obedience). It's: surface the conflict, name the mechanism, name the defeat, ask the principal.