Skip to main content

A ghost teammate bot that pretends to work but does absolutely nothing.

Project description

Python Package Exercise

Ghosty: Your Ghost Teammate Bot

Build Status PyPI version

PyPI Project Page: https://pypi.org/project/ghosty-teammate/

Ghosty is a Python package that simulates a ghost teammate — the kind who gets assigned tasks, never does anything, and always has an excuse. Install it, assign Ghosty some work, and watch absolutely nothing happen.


Installation

pip install ghosty-teammate

Usage

greet(presence=None, intent=None, teammate=None, blocker=None)

Ghosty greets the team. All parameters are optional — calling with no arguments returns a random message.

  • presence (str): "active" or "reappearing" — affects the opening tone
  • intent (str): one of "catch_up", "ask_about_teammate", "promise_progress", "encourage", "question_minor_detail"
  • teammate (str): name to mention when intent is "ask_about_teammate"
  • blocker (str): blocker to mention when intent is "promise_progress"
from ghosty import ghosty

ghosty.greet()
ghosty.greet(presence="active", intent="ask_about_teammate", teammate="Alice")
ghosty.greet(presence="reappearing", intent="promise_progress", blocker="a merge conflict")

assign(task_name, hours, category="medium")

Assign Ghosty a task. It will be logged to the task board and promptly ignored.

  • task_name (str): Name of the task
  • hours (int/float): Estimated hours
  • category (str): Priority level — "low", "medium", "high", or "critical". Default: "medium"
ghosty.assign("Fix login bug", 3, category="high")
ghosty.assign("Write documentation", 2, category="low")

check_in(task_name=None, include_completed=False)

View the task board. Pass a task name to see details on a specific task, or leave it empty to see everything.

  • task_name (str): Optional — name of a specific task to view
  • include_completed (bool): Whether to show completed tasks. Default: False
ghosty.check_in()                              # view all active tasks
ghosty.check_in("Fix login bug")               # view one task
ghosty.check_in(include_completed=True)        # include completed tasks

nudge(task_name, scold=False, tired=False)

Nudge Ghosty on a specific task. Each regular nudge increases progress by 20%; with scolding, the progress is increased by 30%; with tiredness, it increases 10% only. If it possible that Ghosty would get slack once the progress is over 60%. It would also become angry if you nudge and scold it more than 3 times, or nudge and scold it when it is tired. Without a nudge, nothing will ever happen.

  • task_name (str): Name of the task to nudge
  • scold (bool): Whether or not if you want to push and scold Ghosty for work
  • tired (bool): Whether or not if Ghosty is tired
ghosty.nudge("Fix login bug")

`IAmSorry(task_name)

A function that lets you say sorry to Ghosty. If ghosty is angry, it wuld get back to work after you say sorry. If it is not angry, it would consider you a weirdo.

  • task_name (str): Name of the task
ghosty.IAmSorry("Fix login bug")

excuse(reason, seriousness="medium")

Ask Ghosty to justify why no progress has been made.

  • reason (str): The excuse text
  • seriousness (str): How serious the excuse is — "low", "medium", or "high". Default: "medium"
ghosty.excuse("my cat sat on my keyboard", seriousness="medium")
ghosty.excuse("the wifi stopped believing in me", seriousness="high")

remove_task(task_name)

Remove a specific task from the board.

  • task_name (str): Name of the task to remove
ghosty.remove_task("Fix login bug")

clear_completed()

Remove all tasks that have reached 100% progress.

ghosty.clear_completed()

Example Program

See src/ghosty/__main__.py for a complete example using all functions.

Run it with:

python -m ghosty

Contributing

Setup

git clone https://github.com/swe-students-spring2026/3-package-blue_whale.git
cd 3-package-blue_whale
pipenv install --dev
pipenv shell

Running Tests

pipenv run pytest

Building the Package

pipenv run python -m build

Configuration

This project does not use any secret configuration files such as .env or similar files. No additional configuration is required to run or contribute to this project.


Team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ghosty_teammate-0.0.8.tar.gz (47.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ghosty_teammate-0.0.8-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file ghosty_teammate-0.0.8.tar.gz.

File metadata

  • Download URL: ghosty_teammate-0.0.8.tar.gz
  • Upload date:
  • Size: 47.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ghosty_teammate-0.0.8.tar.gz
Algorithm Hash digest
SHA256 e374f364cc8e2fc36bdb3364f51ec887576597bd670d86d6625c9b1be5644a16
MD5 6762059135c39a9d6c7d2b52d17e994b
BLAKE2b-256 348d690a89ef8072a880f34257f0688673be49f6ad40461f97134b6d900ce27d

See more details on using hashes here.

File details

Details for the file ghosty_teammate-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for ghosty_teammate-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 53ceed4099771c7ad232d22a059645f87555fe9006dfd524a15cffeb714dc95a
MD5 83405c752c3bc719d71d38e28630b097
BLAKE2b-256 b5b98a75d141d84770a09a71387909d2d2e518d49a3fca205cc8637956770d9d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page