Contributing to Jules Prompts

Contributions to this prompt library are welcome! The goal is to create a set of high-quality, general-purpose prompts that act as a “guiding light” for agents and developers, encoding best practices for common software engineering tasks.

If you have an idea for a new prompt or an improvement to an existing one, please open an issue to discuss it.

Prompt Philosophy: Tasks vs. Commands

This library contains two types of prompts, each designed for a different purpose:

Tasks

Tasks are high-level, multi-step prompts that define a complete piece of work for Jules. They act as a blueprint for a project, with a defined role, objective, and set of deliverables. Use a Task when you want Jules to take on a significant piece of work, such as auditing a repository or building a new feature.

Commands

Commands are granular, single-purpose prompts designed for quick, targeted actions. They are like command-line snippets for everyday development needs, such as refactoring a file or fixing a specific error. Use a Command when you need a quick intervention from Jules.

Development Setup

To set up a local development environment, run the following script:

script/setup.sh

This script will:

  1. Install the necessary Ruby gems.
  2. Install the necessary npm packages for testing.
  3. Run the test suite to verify the site.

How to Use

The prompts in this repository are designed to be used in two primary ways:

For Humans (Copy-Paste)

If you are a human interacting with an AI agent, the simplest way to use a prompt is to:

  1. Navigate to the prompt file you want to use (e.g., task_audit_repo.md).
  2. Copy the entire content of the file.
  3. Paste it into your agent’s instruction input.

For Agents (Programmatic Access)

AI agents can use the prompts.json file to discover and fetch prompts.

  1. Discover: Fetch and parse prompts.json to get a list of available prompts.
  2. Select: Choose a prompt based on its title and description.
  3. Execute: Fetch the content of the markdown file specified in the path field and use it as the master instruction.