Skip to content

Add README section: interfaces, boundaries, key flows, directory purpose #1486

@tyler-dane

Description

@tyler-dane

Goal: Give AI agents and humans a single, authoritative, repo-local overview of how Compass is structured and where to make changes.

Proposed scope & tasks:

T1: Inventory current high-level docs

Scan:
SwitchbackTech/compass/README.md
SwitchbackTech/compass-docs (any “Architecture” or “Overview” docs)
SwitchbackTech/.github for existing org-wide guidelines
Note overlaps and gaps (especially around backend/web/core boundaries).
T2: Document directory structure & responsibilities in compass

In SwitchbackTech/compass/README.md (or a new docs/architecture.md linked from README) add:
Short explanation of each major directory:
packages/backend/ – APIs, integrations, background jobs.
packages/web/ – React UI, routing, state management.
packages/core/ – shared domain logic: time, events, scheduling, recurrence rules, etc.
packages/scripts/ or root scripts/ – CLI tools and maintenance tasks.
Any infra/config dirs (e.g. infra/, .github/workflows/).
For each, explicitly specify “AI-safe” responsibilities (e.g., “extend API endpoints here”, “add new calendar views here”).
T3: Describe key flows in one or two diagrams/text flows

Add a “Key Flows” section:
Example flows:
“External event sync → backend → core processing → storage → UI refresh”
“Task creation/edit → validation → persistence → notifications (if any)”
Use bullet-step sequences (good for agents) and, optionally, a simple ASCII or mermaid diagram.
T4: Define integration boundaries

Document where external systems are integrated:
Calendars (Google, etc.)
Notifications (email, push)
Clarify:
Where integration code lives (e.g. packages/backend/src/integrations/*).
What “safe extension points” are (e.g. adding another provider).
T5: Explicit guidance for AI agents

Add a subsection like “Working with Compass using AI agents” that:
Links to .claude, .cursor, .cursorrules, AGENTS.md if present.
Specifies which files to read first before making changes.
Mentions standard scripts to run (lint, test, typecheck) before/after changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    planningNon-code activities that help efficiency and focus

    Type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions