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.9.tar.gz (47.3 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.9-py3-none-any.whl (32.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ghosty_teammate-0.0.9.tar.gz
  • Upload date:
  • Size: 47.3 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.9.tar.gz
Algorithm Hash digest
SHA256 9e9d4a050c5e2aa3e72512788e8e9770d96bb93851211ef6c9459b0caf7cf1f8
MD5 87ffb9f459f25a9cdabb695be72d9110
BLAKE2b-256 8c4479bd9368fba599df63b6a11122323ed4e535c1b2d1481029c79160666da4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ghosty_teammate-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e6d3ccf5e146c6bff6163c275ef354b565707462840474a7b8b00bdf4207c822
MD5 b722e411c4e33faefac8116a51c9089e
BLAKE2b-256 9c55c95c54d1ca6ee06d5b2d5dc2d845e03bb71d4580adf3e386e165f10531ec

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