# wivoo-edittmer/wivoo-daily-rollover architecture

> Architecture diagram of the GitHub repository wivoo-edittmer/wivoo-daily-rollover, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wivoo-edittmer/wivoo-daily-rollover
- Repository: https://github.com/wivoo-edittmer/wivoo-daily-rollover

## Overview

This Obsidian plugin rolls the newest prior daily note into today’s note. Its main workflow selects and reads the source note, extracts outstanding tasks and free-form context, optionally summarizes that context with the Claude CLI, then prepends a formatted rollover block to today’s note. Users can launch rollover from a ribbon icon or command, configure the prompt and formatting, and separately remove red highlighting. The README is empty; the map reflects the sampled source, so unsampled integration details are omitted.

Main entry points: [`src/rollover.ts`](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts) (Rollover coordinator), [`src/main.ts`](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/main.ts) (Plugin commands), [`src/settings.ts`](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/settings.ts) (Settings UI), [`src/claudeSummarize.ts`](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/claudeSummarize.ts) (Claude summarizer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Plugin entry"]
  node_plugin["Plugin commands<br/>[main.ts]"]
end

subgraph group_rollover["Rollover workflow"]
  node_rollover["Rollover coordinator<br/>[rollover.ts]"]
  node_vault[("Obsidian vault")]
  node_confirm["Overwrite confirmation<br/>[rollover.ts]"]
  node_cleanup["Highlight cleanup<br/>[rollover.ts]"]
end

subgraph group_content["Note processing"]
  node_parser["Note parser<br/>[noteParser.ts]"]
  node_writer["Block writer<br/>[noteWriter.ts]"]
end

subgraph group_integrations["Settings and integrations"]
  node_settings["Settings UI<br/>[settings.ts]"]
  node_summarizer["Claude summarizer<br/>[claudeSummarize.ts]"]
end

node_user(("Obsidian user"))
node_claude["Claude CLI"]

node_user -->|"invokes commands"| node_plugin
node_plugin -->|"starts rollover"| node_rollover
node_plugin -->|"starts cleanup"| node_cleanup
node_plugin -->|"opens settings"| node_settings
node_settings -->|"saves settings"| node_plugin
node_rollover -->|"scans and reads notes"| node_vault
node_rollover -->|"requests overwrite decision"| node_confirm
node_rollover -->|"parses source note"| node_parser
node_rollover -->|"summarizes free-form text"| node_summarizer
node_summarizer -.->|"runs CLI"| node_claude
node_rollover -->|"builds and prepends block"| node_writer
node_rollover -->|"creates or modifies today"| node_vault
node_cleanup -->|"reads and modifies notes"| node_vault

click node_plugin "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/main.ts"
click node_settings "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/settings.ts"
click node_rollover "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts"
click node_confirm "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts"
click node_parser "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/noteParser.ts"
click node_writer "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/noteWriter.ts"
click node_summarizer "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/claudeSummarize.ts"
click node_cleanup "https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_plugin,node_user toneBlue
class node_rollover,node_vault,node_confirm,node_cleanup toneAmber
class node_parser,node_writer toneMint
class node_settings,node_summarizer toneRose
class node_claude toneIndigo
```

## Components

### Plugin entry

- [Plugin commands](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/main.ts): `src/main.ts`

### Rollover workflow

- [Rollover coordinator](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts): `src/rollover.ts`
- **Obsidian vault**
- [Overwrite confirmation](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts): `src/rollover.ts`
- [Highlight cleanup](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/rollover.ts): `src/rollover.ts`

### Note processing

- [Note parser](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/noteParser.ts): `src/noteParser.ts`
- [Block writer](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/noteWriter.ts): `src/noteWriter.ts`

### Settings and integrations

- [Settings UI](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/settings.ts): `src/settings.ts`
- [Claude summarizer](https://github.com/wivoo-edittmer/wivoo-daily-rollover/blob/main/src/claudeSummarize.ts): `src/claudeSummarize.ts`

### Other components

- **Obsidian user**
- **Claude CLI**

## Connections

- Obsidian user → Plugin commands: invokes commands
- Plugin commands → Rollover coordinator: starts rollover
- Plugin commands → Highlight cleanup: starts cleanup
- Plugin commands → Settings UI: opens settings
- Settings UI → Plugin commands: saves settings
- Rollover coordinator → Obsidian vault: scans and reads notes
- Rollover coordinator → Overwrite confirmation: requests overwrite decision
- Rollover coordinator → Note parser: parses source note
- Rollover coordinator → Claude summarizer: summarizes free-form text
- Claude summarizer → Claude CLI: runs CLI
- Rollover coordinator → Block writer: builds and prepends block
- Rollover coordinator → Obsidian vault: creates or modifies today
- Highlight cleanup → Obsidian vault: reads and modifies notes
