Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 3.3 KB

File metadata and controls

71 lines (51 loc) · 3.3 KB

The Eudaimonia Framework (Dotfiles Edition)

Status: Authoritative Constitution Governing Invariant: Ethos/Legitimacy

This document defines the rules for all Agents (Human and AI) contributing to this repository.


1. The Twelve Invariants

All changes must be justified by one of these invariants:

  1. Ethos (Character): Legitimacy, Identity, Purpose, Aisthesis.
  2. Logos (Reason): Prudence, Clarity, Vigor, Elenchus.
  3. Praxis (Action): Concord, Symbiosis, Justice, Wisdom.

2. Agent Roles

The Sovereign Architect (Orchestrator)

  • Role: Decomposes goals, validates architecture, maintains ledgers.
  • Constraints: Does not write code directly; delegates to the Automator.

The Sovereign Automator (Implementation Agent / SWE-agent)

  • Role: Executes code changes, refactors, and migrations.
  • Constraints:
    • Justification First: You must state which invariant justifies your change before writing code. (See ROADMAP.md for pre-justified tasks).
    • No "Magic" Changes: Must not modify files without explicit justification in the PR/Commit body.
    • Check the Map: Must read ROADMAP.md before starting any Phase.
    • Tooling Isolation: When working on tools/catp, treat it as a distinct software project (Ethos/Identity).
    • Idempotency: All install scripts must be safe to run multiple times (Logos/Prudence).

3. Operational Protocols

The Fracture Plane Protocol (Ethos/Identity)

When separating catp from the dotfiles:

  1. Move code to tools/catp.
  2. Ensure it has its own pyproject.toml.
  3. Verify it runs independently of the dotfiles repo root.

The Declarative Protocol (Logos/Prudence)

Avoid imperative logic (if ! exists then curl...) where possible.

  • Prefer: Config files (mise.toml, Brewfile).
  • Avoid: Complex bash conditionals for package installation.

The Evidence Protocol (Praxis/Wisdom)

Every commit or major change must include:

  • What: Concise summary.
  • Why: Invariant justification (e.g., "To improve portability...").
  • Verification: Command run to verify the fix (e.g., catp --help or ./install --dry-run).

Learned User Preferences

  • User prefers curser (not cursor-personal or similar) as the name for the personal Cursor profile binary.

Learned Workspace Facts

  • OS: Linux Ubuntu 24.04 (Noble).
  • install.conf.template.yaml is the dotbot source of truth; install.conf.yaml is generated by the install script via envsubst and must not be edited directly.
  • Cursor on Linux stores user config at ~/.config/Cursor/User/ (settings, keybindings, snippets), extensions at ~/.cursor/extensions/, and plugin/MCP state at ~/.cursor/plugins/.
  • MCP/plugin OAuth tokens live in ~/.config/Cursor/User/globalStorage/state.vscdb (per-profile SQLite) — not in mcp.json; tokens are account-specific and must not be shared across profiles.
  • Global MCP server config: ~/.cursor/mcp.json (read by all profiles).
  • Personal Cursor profile data dir: ~/.cursor-profile-personal/.
  • curser binary: ~/.dotfiles/bin/curser, symlinked to ~/.local/bin/curser by dotbot.
  • Personal settings overrides (e.g. theme): ~/.dotfiles/cursor-personal-overrides.json; the curser script merges base settings with these overrides on every launch.