Co-authored-by: Michael Neale <michael.neale@gmail.com> Co-authored-by: Wendy Tang <wendytang@squareup.com> Co-authored-by: Jarrod Sibbison <72240382+jsibbison-square@users.noreply.github.com> Co-authored-by: Alex Hancock <alex.hancock@example.com> Co-authored-by: Alex Hancock <alexhancock@block.xyz> Co-authored-by: Lifei Zhou <lifei@squareup.com> Co-authored-by: Wes <141185334+wesrblock@users.noreply.github.com> Co-authored-by: Max Novich <maksymstepanenko1990@gmail.com> Co-authored-by: Zaki Ali <zaki@squareup.com> Co-authored-by: Salman Mohammed <smohammed@squareup.com> Co-authored-by: Kalvin C <kalvinnchau@users.noreply.github.com> Co-authored-by: Alec Thomas <alec@swapoff.org> Co-authored-by: lily-de <119957291+lily-de@users.noreply.github.com> Co-authored-by: kalvinnchau <kalvin@block.xyz> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Rizel Scarlett <rizel@squareup.com> Co-authored-by: bwrage <bwrage@squareup.com> Co-authored-by: Kalvin Chau <kalvin@squareup.com> Co-authored-by: Alice Hau <110418948+ahau-square@users.noreply.github.com> Co-authored-by: Alistair Gray <ajgray@stripe.com> Co-authored-by: Nahiyan Khan <nahiyan.khan@gmail.com> Co-authored-by: Alex Hancock <alexhancock@squareup.com> Co-authored-by: Nahiyan Khan <nahiyan@squareup.com> Co-authored-by: marcelle <1852848+laanak08@users.noreply.github.com> Co-authored-by: Yingjie He <yingjiehe@block.xyz> Co-authored-by: Yingjie He <yingjiehe@squareup.com> Co-authored-by: Lily Delalande <ldelalande@block.xyz> Co-authored-by: Adewale Abati <acekyd01@gmail.com> Co-authored-by: Ebony Louis <ebony774@gmail.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Ebony Louis <55366651+EbonyLouis@users.noreply.github.com>
3.0 KiB
title, sidebar_position
| title | sidebar_position |
|---|---|
| Using Goosehints | 3 |
Providing Hints to Goose
.goosehints is a text file used to provide additional context about your project and improve the communication with Goose. The use of goosehints ensures that Goose understands your requirements better and can execute tasks more effectively.
:::info Developer extension required
To make use of the hints file, you need to have the developer extension enabled.
:::
This guide will walk you through creating and using your .goosehints file to streamline your workflow with custom instructions and context.
Creating your .goosehints file
Create a file named .goosehints and save the file in ~/.config/goose/.goosehints. If saved here, Goose will use this file for every session with you.
:::tip
You can also save .goosehints local to any directory. In this case, Goose will utilize the hints when working in that directory.
:::
The .goosehints file can include any instructions or contextual details relevant to your projects.
A good time to consider adding a .goosehints file is when you find yourself repeating prompts, or providing the same kind of instructions multiple times. It's also a great way to provide a lot of context which might be better suited in a file.
Setting up hints
The .goosehints file supports natural language and also follows jinja templating rules, so you can leverage templating to insert file contents or variables.
Here are some ways people have used hints to provide additional context to Goose:
-
Decision-Making: Specify if Goose should autonomously make changes or confirm actions with you first.
-
Validation Routines: Provide test cases or validation methods that Goose should perform to ensure changes meet project specifications.
-
Feedback Loop: Include steps that allow Goose to receive feedback and iteratively improve its suggestions.
-
Point to more detailed documentation: Indicate important files like
README.md,CONTRIBUTING.md, or others that Goose should consult for detailed explanations.
Like prompts, this is not an extensive list to shape your .goosehints file. You can include as much context as you need.
Example .goosehints file:
This is a simple example JavaScript web application that uses the Express.js framework. View [Express documentation](https://expressjs.com/) for extended guidance.
Go through the README.md for information on how to build and test it as needed.
Make sure to confirm all changes with me before applying.
Use the following custom values when needed:
{%include custom-config.js%}
Run tests with `npm run test` ideally after each change.
Best practices
- Keep file updated: Regularly update the
.goosehintsfile to reflect any changes in project protocols or priorities. - Be concise: Make sure the content is straightforward and to the point, ensuring Goose can quickly parse and act on the information.