github re-analysis due

colindickson/oliver

github

Productivity tracker based on Oliver Burkeman's 3-3-3 technique

maintainer
colindickson
license
GPL-3.0
first seen
2026-06-09
last seen
2026-06-09
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 20 tools
transport counts 20 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • batch_log_work

    Atomically record multiple work log entries in one call — useful for backfilling historical work; all entries are validated before any writes

  • complete_task

    Mark a task as completed by ID

  • create_task

    Create a single task with a title, category (deep_work, short_task, maintenance), optional description, and tags

  • delete_task

    Delete a task by ID

  • get_analytics

    Get productivity analytics for the past N days

  • get_daily_plan

    Get all tasks for a given date (defaults to today)

  • get_project_defaults

    Get the default tags configured for a project (or list all projects with defaults)

  • get_recurring_days_off

    Get the configured recurring off weekdays (e.g. Saturday, Sunday)

  • get_work_logs

    Retrieve work logs for a date range (defaults to last 7 days), optionally filtered by type (commit, pr, review, research)

  • is_day_off

    Check if a date is a day off — via recurring weekday config or an explicit day-off record

  • list_days_off

    List all days marked as off, newest first

  • log_work

    Record work done on a project — project name, description, optional tags, optional date (defaults to today), and optional type (commit, pr, review, research)

  • mark_day_off

    Mark a day as off with a reason (sick_day, vacation, holiday, personal_day, weekend) and optional note

  • notify

    Push a notification to the Oliver UI (source + message, visible as a toast popup and in the bell inbox)

  • set_daily_plan

    Replace the full task list for a date with a new set of tasks

  • set_day_metadata

    Record weather condition, temperature, and moon phase for a day

  • set_project_default_tags

    Set default tags automatically applied when logging work for a project; replaces existing defaults, pass [] to clear

  • set_recurring_days_off

    Set which weekdays are always treated as off days

  • unmark_day_off

    Remove the off-day designation for a date

  • update_task

    Update a task's title, description, status, or tags by ID

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 962190e · analyzer v17 · 1d ago

skills & prompt files 1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

database 88

  • db colindickson-oliver-962190e/backend/alembic/env.py :9 from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
  • db colindickson-oliver-962190e/backend/alembic/versions/05e245953ef6_add_mcp_logs.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/2ba492a38cff_add_template_schedules.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/6893952f5742_add_project_defaults.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/7bd81dfc9cbf_add_work_logs.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/8108a2a45bc3_add_task_templates.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/847ac691d267_add_constraints_and_indexes.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/997abbf9cd55_initial_schema.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/9e4799353a2b_add_parent_goal_id_to_goals.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/a1b2c3d4e5f6_add_tags.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/a2b3c4d5e6f7_add_goals.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/a3b4c5d6e7f8_add_rolled_from_task_id_to_tasks.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/a4b5c6d7e8f9_add_archived_at_to_goals.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/af8fbba5b772_add_version_column_to_settings.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/b1c2d3e4f5a6_add_daily_notes_roadblocks_day_ratings.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/b5e44acfc9a9_add_notification_model.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/c1d2e3f4a5b6_add_day_offs.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/cc4d1e2f3a5b_pol7_hardening.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/d7e8f9a0b1c2_add_index_on_tasks_status_remove_redundant_days_date_index.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/dc68ad4bbc2b_make_day_id_and_category_nullable_for_.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/e1f2a3b4c5d6_add_log_type_to_work_logs.py :11 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/fa8bb402873f_auto.py :12 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/alembic/versions/fdd13b9cc096_add_day_metadata.py :13 import sqlalchemy as sa
  • db colindickson-oliver-962190e/backend/app/api/analytics.py :6 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/backlog.py :10 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/api/days.py :12 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/api/goals.py :6 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/mcp_logs.py :6 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/notifications.py :11 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/project_defaults.py :4 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/reminders.py :11 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/settings.py :6 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/api/tags.py :6 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/tasks.py :13 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/api/templates.py :6 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/timer.py :11 from sqlalchemy.ext.asyncio import AsyncSession
  • db colindickson-oliver-962190e/backend/app/api/work_logs.py :12 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/database.py :12 from sqlalchemy.ext.asyncio import (
  • db colindickson-oliver-962190e/backend/app/main.py :13 from sqlalchemy.exc import IntegrityError
  • db colindickson-oliver-962190e/backend/app/models/daily_note.py :8 from sqlalchemy import DateTime, ForeignKey, Text
  • db colindickson-oliver-962190e/backend/app/models/day.py :8 from sqlalchemy import Date, DateTime
  • db colindickson-oliver-962190e/backend/app/models/day_metadata.py :7 from sqlalchemy import Float, ForeignKey, String
  • db colindickson-oliver-962190e/backend/app/models/day_off.py :7 from sqlalchemy import ForeignKey, String, Text
  • db colindickson-oliver-962190e/backend/app/models/day_rating.py :7 from sqlalchemy import CheckConstraint, ForeignKey, Integer
  • db colindickson-oliver-962190e/backend/app/models/goal.py :8 from sqlalchemy import (
  • db colindickson-oliver-962190e/backend/app/models/mcp_log.py :7 from sqlalchemy import Boolean, DateTime, Index, String, Text
  • db colindickson-oliver-962190e/backend/app/models/notification.py :7 from sqlalchemy import Boolean, DateTime, Index, String
  • db colindickson-oliver-962190e/backend/app/models/project_default.py :3 from sqlalchemy import String
  • db colindickson-oliver-962190e/backend/app/models/reminder.py :8 from sqlalchemy import Boolean, DateTime, ForeignKey, Index, Integer, String
  • db colindickson-oliver-962190e/backend/app/models/roadblock.py :8 from sqlalchemy import DateTime, ForeignKey, Text
  • db colindickson-oliver-962190e/backend/app/models/setting.py :5 from sqlalchemy import Integer, String
  • db colindickson-oliver-962190e/backend/app/models/tag.py :5 from sqlalchemy import Column, ForeignKey, Index, Integer, String, Table, UniqueConstraint
  • db colindickson-oliver-962190e/backend/app/models/task.py :8 from sqlalchemy import CheckConstraint, DateTime, ForeignKey, Index, Integer, String
  • db colindickson-oliver-962190e/backend/app/models/task_template.py :7 from sqlalchemy import Column, Date, DateTime, ForeignKey, Integer, String, Table
  • db colindickson-oliver-962190e/backend/app/models/timer_session.py :8 from sqlalchemy import CheckConstraint, DateTime, ForeignKey, Integer
  • db colindickson-oliver-962190e/backend/app/models/work_log.py :8 from sqlalchemy import Column, DateTime, Enum, ForeignKey, Index, Integer, String, Table, Text
  • db colindickson-oliver-962190e/backend/app/services/analytics_service.py :12 from sqlalchemy import func, or_, select, Integer
  • db colindickson-oliver-962190e/backend/app/services/day_service.py :13 from sqlalchemy import func, select
  • db colindickson-oliver-962190e/backend/app/services/goal_service.py :7 from sqlalchemy import func, select
  • db colindickson-oliver-962190e/backend/app/services/mcp_log_service.py :9 from sqlalchemy import delete, select
  • db colindickson-oliver-962190e/backend/app/services/notification_service.py :9 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/project_default_service.py :3 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/reminder_service.py :11 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/settings_service.py :12 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/tag_service.py :5 from sqlalchemy import func, select
  • db colindickson-oliver-962190e/backend/app/services/task_service.py :7 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/template_service.py :8 from sqlalchemy import func, select
  • db colindickson-oliver-962190e/backend/app/services/timer_service.py :16 from sqlalchemy import select
  • db colindickson-oliver-962190e/backend/app/services/work_log_service.py :7 from sqlalchemy import select
  • db colindickson-oliver-962190e/mcp-server/db.py :3 from sqlalchemy import create_engine
  • db colindickson-oliver-962190e/mcp-server/models/base.py :1 from sqlalchemy.orm import declarative_base
  • db colindickson-oliver-962190e/mcp-server/models/daily_note.py :3 from sqlalchemy import Column, DateTime, ForeignKey, Integer, Text
  • db colindickson-oliver-962190e/mcp-server/models/day.py :3 from sqlalchemy import Column, Date, DateTime, Integer
  • db colindickson-oliver-962190e/mcp-server/models/day_metadata.py :1 from sqlalchemy import Column, Float, ForeignKey, Integer, String
  • db colindickson-oliver-962190e/mcp-server/models/day_off.py :1 from sqlalchemy import Column, ForeignKey, Integer, String, Text
  • db colindickson-oliver-962190e/mcp-server/models/day_rating.py :1 from sqlalchemy import Column, ForeignKey, Integer
  • db colindickson-oliver-962190e/mcp-server/models/goal.py :3 from sqlalchemy import Column, Date, DateTime, ForeignKey, Integer, String, Table
  • db colindickson-oliver-962190e/mcp-server/models/mcp_log.py :5 from sqlalchemy import Boolean, DateTime, String, Text
  • db colindickson-oliver-962190e/mcp-server/models/notification.py :3 from sqlalchemy import Boolean, DateTime, String
  • db colindickson-oliver-962190e/mcp-server/models/project_default.py :1 from sqlalchemy import Column, Integer, String, UniqueConstraint
  • db colindickson-oliver-962190e/mcp-server/models/roadblock.py :3 from sqlalchemy import Column, DateTime, ForeignKey, Integer, Text
  • db colindickson-oliver-962190e/mcp-server/models/setting.py :1 from sqlalchemy import Column, String
  • db colindickson-oliver-962190e/mcp-server/models/tag.py :3 from sqlalchemy import Column, ForeignKey, Integer, String, Table
  • db colindickson-oliver-962190e/mcp-server/models/task.py :1 from sqlalchemy import Column, DateTime, ForeignKey, Integer, String
  • db colindickson-oliver-962190e/mcp-server/models/task_template.py :3 from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, Table
  • db colindickson-oliver-962190e/mcp-server/models/timer_session.py :1 from sqlalchemy import Column, DateTime, ForeignKey, Integer
  • db colindickson-oliver-962190e/mcp-server/models/work_log.py :3 from sqlalchemy import Column, DateTime, Enum, ForeignKey, Integer, String, Table, Text
  • db colindickson-oliver-962190e/mcp-server/tools/analytics.py :6 from sqlalchemy import func, select

tool registrations 21

  • get_daily_plan_tool colindickson-oliver-962190e/mcp-server/server.py :32
  • set_daily_plan_tool colindickson-oliver-962190e/mcp-server/server.py :38
  • create_task_tool colindickson-oliver-962190e/mcp-server/server.py :44
  • update_task_tool colindickson-oliver-962190e/mcp-server/server.py :57
  • delete_task_tool colindickson-oliver-962190e/mcp-server/server.py :70
  • complete_task_tool colindickson-oliver-962190e/mcp-server/server.py :76
  • add_task_to_backlog colindickson-oliver-962190e/mcp-server/server.py :82
  • get_analytics_tool colindickson-oliver-962190e/mcp-server/server.py :98
  • set_day_metadata_tool colindickson-oliver-962190e/mcp-server/server.py :104
  • mark_day_off_tool colindickson-oliver-962190e/mcp-server/server.py :120
  • unmark_day_off_tool colindickson-oliver-962190e/mcp-server/server.py :130
  • list_days_off_tool colindickson-oliver-962190e/mcp-server/server.py :136
  • get_recurring_days_off_tool colindickson-oliver-962190e/mcp-server/server.py :142
  • set_recurring_days_off_tool colindickson-oliver-962190e/mcp-server/server.py :148
  • is_day_off_tool colindickson-oliver-962190e/mcp-server/server.py :157
  • notify_tool colindickson-oliver-962190e/mcp-server/server.py :163
  • log_work_tool colindickson-oliver-962190e/mcp-server/server.py :169
  • batch_log_work_tool colindickson-oliver-962190e/mcp-server/server.py :189
  • get_work_logs_tool colindickson-oliver-962190e/mcp-server/server.py :209
  • get_project_defaults_tool colindickson-oliver-962190e/mcp-server/server.py :225
  • set_project_default_tags_tool colindickson-oliver-962190e/mcp-server/server.py :232

declared dependencies 10

  • fastapi@==0.115.0
  • uvicorn@[standard]==0.30.6
  • sqlalchemy@[asyncio]==2.0.36
  • alembic@==1.13.3
  • pydantic@==2.9.2
  • aiosqlite@==0.20.0
  • asyncpg@==0.30.0
  • httpx@==0.27.2
  • pytest@==8.3.3
  • pytest-asyncio@==0.24.0