Metadata-Version: 2.1
Name: prompt-generator
Version: 0.4.0
Summary: Prompt Generator is a flexible and user-friendly package that offers customizable scripts for generating effective and context-aware prompts. These prompts can be used to guide the writing, improvement, and debugging of code.
Author: Vincenzo Cascone
License: MIT License
        
        Copyright (c) 2023 Vince
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: repository, https://github.com/vincenzocascone/prompt-generator
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# Prompt Generator

Prompt Generator is a flexible and user-friendly package that offers customizable scripts for generating effective and
context-aware prompts. These prompts can be used to guide the writing, improvement, and debugging of code.

## Installation

Prompt Generator can be installed easily using pip, a package installer for Python:

```bash
pip install prompt-generator
```

## Features

- ### Generate Project Documentation

  This script generates a prompt that can be used to make the AI write documentation for the project.

  When executed without arguments it will ask for some info about the project, such as the name, description, root
  directory, paths to config files, main files, and docs specs.

  Instead of writing the info manually you can also provide the path to a JSON file that contains the prompt
  configuration.
  The JSON should have the following structure:

  ```
  {
    "name": "<string> (required)",
    "description": "<string> (required)",
    "target_audience": "<string> (optional)",
    "root_dir": "<string> (required)",
    "config_files": [
        {
            "path": "<string> (required)",
            "label": "<string> (optional)"
        },
        ...
    ] (optional),
    "main_files": [
        {
            "path": "<string> (required)",
            "label": "<string> (optional)"
        },
        ...
    ] (optional),
    "docs_specs": "<string> (optional)"
  }
  ```

  To utilize this script, use the following command in your terminal:

  ```bash
  pg docs_prompt [--config <path to config file>]
  ```

  Upon successful execution, the resultant prompt will be displayed in your terminal and copied to your clipboard for
  immediate use or future reference.

- ### Complete Tasks

  This script generates a prompt that can be used to help AI complete tasks for the project.

  It will ask for the project name, description or the path to README/docs, root directory, and optionally the paths and
  labels to the files related to the tasks. Finally, it will ask for the single task or task list.

  Instead of writing the info manually you can also provide the path to a JSON file that contains the prompt
  configuration.
  The JSON should have the following structure:

  ```
  {
    "project_overview": "<string> (optional)",
    "docs_path": "<string> (optional)",
    "relevant_files": [
      {
        "path": "<string> (required)",
        "label": "<string> (optional)"
      },
      ...
    ] (optional),
    "tasks": [
      "<string> (required)",
      ...
    ] (required)
  }
  ```

  To utilize this script, use the following command in your terminal:

  ```bash
  pg tasks_prompt [--config <path to config file>]
  ```

  Upon successful execution, the resultant prompt will be displayed in your terminal and copied to your clipboard for
  immediate use or future reference.

- ### Markdown Parser

  The Markdown Parser is a robust utility specifically designed to parse markdown files. It works by replacing all
  hyperlinks within a Markdown document with the actual content of the linked files. This function proves extremely
  useful if you maintain a collection of prompt files written in Markdown format, and these files contain references to
  other project documents.

  To utilize it, use the following command in your terminal:

  ```bash
  pg parse_md <path to the markdown file>
  ```

  Upon successful execution, the resultant parsed content will be displayed in your terminal and copied to your
  clipboard for immediate use or future reference.

- ### Directory Structure

  This tool provides a clear, nested representation of the structure of a directory in your project. It has been
  designed with gitignore compatibility, meaning it will respect the file exclusion rules defined in your project's
  .gitignore file. This makes it an essential tool for giving the AI a better understanding of the context of your
  project. The returned JSON is minified in order to be more token efficient.

  To utilize it, use the following command in your terminal. You can optionally provide the .gitignore file path using
  the -gitignore flag, if not provided, the script will search for a .gitignore file in the root directory:

  ```bash
  pg get_dir_structure <path to the directory> [--gitignore <path to the .gitignore file>]
  ```

  Upon successful execution, the resultant json will be displayed in your terminal and copied to your
  clipboard for immediate use or future reference.
