A ghost teammate bot that pretends to work but does absolutely nothing.
Project description
Python Package Exercise
Ghosty: Your Ghost Teammate Bot
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 toneintent(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 taskhours(int/float): Estimated hourscategory(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 viewinclude_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 nudgescold(bool): Whether or not if you want to push and scold Ghosty for worktired(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 textseriousness(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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e9d4a050c5e2aa3e72512788e8e9770d96bb93851211ef6c9459b0caf7cf1f8
|
|
| MD5 |
87ffb9f459f25a9cdabb695be72d9110
|
|
| BLAKE2b-256 |
8c4479bd9368fba599df63b6a11122323ed4e535c1b2d1481029c79160666da4
|
File details
Details for the file ghosty_teammate-0.0.9-py3-none-any.whl.
File metadata
- Download URL: ghosty_teammate-0.0.9-py3-none-any.whl
- Upload date:
- Size: 32.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6d3ccf5e146c6bff6163c275ef354b565707462840474a7b8b00bdf4207c822
|
|
| MD5 |
b722e411c4e33faefac8116a51c9089e
|
|
| BLAKE2b-256 |
9c55c95c54d1ca6ee06d5b2d5dc2d845e03bb71d4580adf3e386e165f10531ec
|