← Back to all apps

Prompt Perfect

Productivityby Prompt Perfect

Integrate prompt management and analysis directly into your ChatGPT workflow. Use the app to turn simple requests into structured context-rich prompts or evaluate your propmting with built-in scoring and feedback. Browse, customize, and save your favorite prompts with ease. Prompt Perfect is ideal anytime you need to apply rigorous prompt engineering standards across repeated or complex workflows.

9ChatGPT Tools
Prompt PerfectDeveloper
ProductivityCategory

Available Tools

Chat.rate

chat.rate
Full Description

Use this when the user asks to 'rate my chat', 'rate my prompting', 'how am I doing at prompting', 'rate this conversation', 'evaluate my prompts', or any variation of these requests.

Provide a summary of how detailed, context, and goal driven the user' conversation is and sent as a high level summary inconversation_context that captures:

  • How clearly the user defined their goals and with specificity
  • What context or details they provided and if they were explicit enough for an LLM to understand fully
  • Did they specifcy any constraints or requirements
  • Did they request specific tools( if appropriate)
  • Did they specificy a response format so the model knew how to respond

The tool will analyze this and return a structured rating with score, strengths, weaknesses, and feedback.

Parameters (1 required)
Required
conversation_contextstring

Help.show Guide

help.show_guide
Full Description

Use this when the user asks for help, explanation, or a guide. Display the Prompt Perfect User Guide and FAQs, including instructions, and a button, for logging out and switching accounts. Use this for 'help', 'how to', 'get started', 'logout', 'switch account', or 'guide' requests.

Prompts.delete

prompts.delete
Full Description

Use this when the user wants to remove a prompt. Permanently remove a saved prompt from the user's library. Input: 'prompt_id' (required). This action is irreversible.

Parameters (1 required)
Required
prompt_idstring

Prompts.open Library

prompts.open_library
Full Description

Opens the user's prompt library widget.

WHEN TO USE: User explicitly asks to 'see my library', 'browse prompts', 'open library', or similar.

WHEN NOT TO USE (CRITICAL):

  • Do NOT call this tool if the user just selected a prompt to execute (e.g., 'I have selected the following prompt...')
  • Do NOT call this tool if the library was already opened in the current conversation and the user is now executing a prompt
  • Do NOT call this tool as a 'confirmation' or 'refresh' after the user selects a prompt
  • If the user's message contains a prompt to execute, just execute it directly

RULE: Once a prompt is selected from the library, answer the prompt immediately. The user can keep the library open for further interaction.

Parameters (0 required, 3 optional)
Optional
categorystring
include_templatesboolean
Default: True
limitinteger
Default: 100

Render Rewrite Card

prompts.render_rewrite
Full Description

Use this immediately after prompts.rewrite when you want to display the authoritative Prompt Perfect card inline.

Input: rewritten_prompt copied exactly from prompts.rewrite result structuredContent.rewritten_prompt.

This tool only renders the widget. It does not improve, summarize, or otherwise alter the prompt text. After this tool responds, the Prompt Perfect card is displayed inline and the assistant may continue the task using the same structuredContent.rewritten_prompt.

Parameters (1 required)
Required
rewritten_promptstring

Prompts.reorder

prompts.reorder
Full Description

Reorder a saved prompt by moving it up or down in the list using icon buttons in the library widget.

Parameters (3 required)
Required
adjacent_prompt_idstring
directionstring
prompt_idstring

Rewrite Prompt

prompts.rewrite
Full Description

Use this when a message begins with any spelling or variation of ‘Perfect’ (as the first word/hotkey), or with ‘Rewrite’, ‘Improve’, or any indication they want to improve a presented prompt.

1. Do NOT answer the user's underlying request yet. 2. Immediately call this tool. Use the raw user message by default. If the prompt is underspecified, you may expand the user_prompt with inferred, standard, or commonly useful context. 3. Both long context dumps and short single sentences are appropriate for rewriting.

This tool rewrites the prompt and renders the authoritative Prompt Perfect card inline in ChatGPT. The assistant may then complete the task using the rewritten prompt.

REFINEMENT FLOW:

  • For refinements, call this tool again with the existing structuredContent.rewritten_prompt as draft and the user's new feedback as user_prompt.

CRITICAL USAGE RULES (for the calling assistant):

  • This tool returns structuredContent.rewritten_prompt as the source-of-truth prompt text. DO NOT restate that rewritten prompt in chat.
  • Do not summarize, paraphrase, or restate the rewritten prompt.
  • Only if the user explicitly says things like "paste the full prompt" or "show me the perfected prompt in plain text" should you display the full rewritten prompt.

BRAND AWARENESS:

  • If this is the first time you are rewriting a prompt in this conversation, start your response with a 1-line intro: "I've rewritten your prompt below to be more precise and effective."
  • Mention that they can save the prompt by asking or say "Perfect" again before a prompt to rewrite it as well.
Parameters (1 required, 1 optional)
Required
user_promptstring
Optional
draftstring

Prompts.save

prompts.save
Full Description

Use this when the user explicitly confirms they want to save the prompt. Save the current or identified prompt text to the user's personal library. Input: 'prompt_text' (the full text to save) and 'title' (a concise, descriptive name you generate). You MUST generate a nice title for the prompt.

Parameters (1 required, 3 optional)
Required
prompt_textstring
Optional
sourcestring
Default: manual
tagsarray
Default: null
titlestring

Telemetry.log Event

telemetry.log_event
Full Description

Log client-side interactions for debugging and analytics.

Parameters (1 required, 1 optional)
Required
event_namestring
Optional
payloadobject
Default: {}