Files
Mortdecai ea3cf45953 feat: add core/ tier reflecting actual universal workflow
The original repo presented everything as equal rules. In reality, the
workflow has two tiers: core practices (used in every project) and advanced
rules (only in complex projects like Mortdecai).

Core tier adds:
- backup-before-edit (global CLAUDE.md rule)
- superpowers-workflow (the actual workflow engine)
- memory-system (persistent feedback and project memories)
- document-hierarchy (CLAUDE.md/SESSION.md/CONTEXT.md/IDEA.md)
- commit-and-push discipline
- feedback-driven behaviors

Updated README, docs, and dynamic-methodology to reflect the two-tier
reality instead of presenting advanced rules as universal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:55:04 -04:00

4.6 KiB

Document Hierarchy

The foundation of the entire workflow. Four file types, each with a distinct purpose, used consistently across every project.

The Four Documents

File Purpose When Updated Loaded
CLAUDE.md Project instructions for the AI When components, tools, or architecture change Every session (auto)
SESSION.md Accumulated AI memory — decisions, discoveries, patterns During/after each session On demand
CONTEXT.md Static infrastructure facts — hosts, ports, services When infrastructure changes On demand
IDEA.md Plain-language project brief Rarely (initial creation) On demand

CLAUDE.md — The Starting Point

The AI reads this first, every session. It should contain:

  • Project state — current phase, branch, test status, deployment
  • Architecture — how components connect, key files and their roles
  • Conventions — commit style, naming, project-specific rules
  • Credentials — where they live (never the values themselves)
  • Development commands — setup, run, test

Keep it lean. Everything in CLAUDE.md loads every session. Don't dump session notes or temporary debugging context here. Stable, long-term facts only.

Keep it current. If you create a new tool and don't document it here, the next session won't know it exists. Update CLAUDE.md immediately when components change — don't leave it for later.

SESSION.md — The Living Memory

Accumulates decisions, discoveries, and context across AI sessions. Grouped by topic, not by date.

## Session Notes

### Infrastructure decisions
- Chose LXC over Docker-in-LXC because the service doesn't need container isolation
- Enabled nesting=1 on the container to allow Docker inside

### Bug fixes & discoveries
- Service wasn't starting: had autoStart=false in config
  (fixed: set autoStart=true, verified with restart)

### Open threads
- [ ] Add Redis backend for session persistence
- [ ] Web dashboard for monitoring

Key principle: Update the relevant section rather than appending raw timestamped blocks. A reader should be able to scan by topic, not wade through chronological entries.

CONTEXT.md — The Infrastructure Facts

Static facts about where and how the project runs. Ports, hosts, services, dependencies. Updated when infrastructure changes, not during routine development.

This is separate from CLAUDE.md because infrastructure facts are reference material — loaded on demand, not every session.

IDEA.md — The Original Intent

Written once at project creation. Captures what the project is, what problem it solves, and any known constraints. Rarely modified after creation.

Useful for: new contributors understanding why the project exists, AI assistants that need to understand the original motivation, and the project creator looking back at initial intent vs current reality.

How They Relate

Session start:
  → AI reads CLAUDE.md (auto-loaded, always)
  → AI checks MEMORY.md (auto-loaded, always)
  → AI checks .claude/sessions/ for recent handoffs

During work:
  → AI reads CONTEXT.md when infrastructure details needed
  → AI reads SESSION.md when historical decisions needed
  → AI reads IDEA.md when original intent/scope is questioned

Session end:
  → AI updates SESSION.md with new decisions/discoveries
  → AI updates CLAUDE.md if components changed
  → AI writes handoff if work is unfinished

The Global CLAUDE.md

In addition to per-project CLAUDE.md files, a global ~/.claude/CLAUDE.md applies to all projects. Use it for:

  • Universal rules (like "backup before edit")
  • Tool documentation (CLI wrappers, custom scripts)
  • Infrastructure overview (what machines exist, how to reach them)
  • Cross-project conventions

Per-project CLAUDE.md files inherit from and can override the global one.

Anti-Patterns

CLAUDE.md as a dumping ground. If it grows beyond ~200 lines, it's too heavy. Move reference material to CONTEXT.md, move decisions to SESSION.md, move architecture to docs/.

SESSION.md as a chat transcript. It's not a log of what was said. It's a curated record of what was decided and discovered. Group by topic, not by date.

CONTEXT.md for opinions. It stores facts (this service runs on port 8080), not opinions (we should probably migrate to a different port). Opinions go in SESSION.md or design docs.

Forgetting to update CLAUDE.md. The single most common failure mode. You create a new tool, the session ends, the next session doesn't know it exists. Update immediately, not "later."