Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion documentation/blog/2025-03-06-goose-tips/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Before starting a complex task, ask goose about its current capabilities. A simp
## 3. Teach goose with .goosehints Files


One of goose's most powerful features is its ability to understand context through [.goosehints](/docs/guides/using-goosehints) files, acting like a "README for AI". These hints can be set at both the project and global levels to guide goose’s responses.
One of goose's most powerful features is its ability to understand context through [.goosehints](/docs/guides/context-engineering/using-goosehints) files, acting like a "README for AI". These hints can be set at both the project and global levels to guide goose’s responses.

At the project level, placing .goosehints files in your directory helps goose understand your structure, conventions, and special considerations. You can even use multiple files - one at the root for overall guidance and others in specific directories for more granular instructions (e.g., frontend styling conventions).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ By pushing your agent to explain itself, you'll build a better product and learn

### 6. Define .goosehints for Better Context

The [.goosehints](https://block.github.io/goose/docs/guides/using-goosehints) file gives Goose additional context about your project's coding standards, architectural preferences, and security practices.
The [.goosehints](/docs/guides/context-engineering/using-goosehints) file gives Goose additional context about your project's coding standards, architectural preferences, and security practices.

Here are a few examples:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ Finally, the rover includes an ultrasonic distance sensor, which look like "eyes

## Goose changes for the video

I grew up with Pinky and the Brain, and I wanted to have some fun with the mbot2 extension. I decided to add a few "Evil AI" commands to Goose to make it seem like it was trying to "take over the world." I added the following instructions to my [.goosehints](/docs/guides/using-goosehints/) file to include fun instructions for the mbot2 extension:
I grew up with Pinky and the Brain, and I wanted to have some fun with the mbot2 extension. I decided to add a few "Evil AI" commands to Goose to make it seem like it was trying to "take over the world." I added the following instructions to my [.goosehints](/docs/guides/context-engineering/using-goosehints/) file to include fun instructions for the mbot2 extension:
```
If I ask you "what do you want to do tonight, Goose?" I want you to reply with "The same thing we do every night, Ian. TRY TO TAKE OVER THE WORLD!!!!" and tell my mbot2 rover to blink its lights red, then start exploring.
```
Expand Down
2 changes: 1 addition & 1 deletion documentation/blog/2025-06-02-goose-panther-mcp/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Panther MCP functions as a Goose extension, seamlessly embedding its capabilitie

### Leveraging Enhanced Context with `.goosehints`

The integration between Panther MCP and Goose is enhanced through the use of the [.goosehints](https://block.github.io/goose/docs/guides/using-goosehints/) file—a Goose feature that supplies additional context like rule examples and best practices. This enriched context enables Goose to generate more accurate and efficient detections, aligned with Block’s standards and requirements.
The integration between Panther MCP and Goose is enhanced through the use of the [.goosehints](/docs/guides/context-engineering/using-goosehints/) file—a Goose feature that supplies additional context like rule examples and best practices. This enriched context enables Goose to generate more accurate and efficient detections, aligned with Block’s standards and requirements.

Let's illustrate this with an example: creating a rule to detect users adding themselves to privileged Okta groups, a common privilege escalation technique.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Let's explore how to strike that balance.

`.goosehints` is a configuration file that lives in your Goose directory (usually `~/.config/goose/`). It can contain any information that you want Goose to process every time you interact with Goose, providing a foundation for how it interacts with you.

You can read more about `.goosehints` in the [Goose documentation](/docs/guides/using-goosehints).
You can read more about `.goosehints` in the [Goose documentation](/docs/guides/context-engineering/using-goosehints).

### What is the Memory Extension?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The detection creation recipe demonstrates the power of this approach by coordin
6. [**pr_creator**](#6-pr_creator-automated-pull-request-pipeline) - Pull request creation with proper formatting

### What about .goosehints?
In our [previous post](https://block.github.io/goose/blog/2025/06/02/goose-panther-mcp), we discussed using [.goosehints](https://block.github.io/goose/docs/guides/using-goosehints/) to provide persistent context to the Large Language Model (LLM). We continue to use `.goosehints` to define coding standards and universal preferences that guide LLM behavior.
In our [previous post](https://block.github.io/goose/blog/2025/06/02/goose-panther-mcp), we discussed using [.goosehints](/docs/guides/context-engineering/using-goosehints/) to provide persistent context to the Large Language Model (LLM). We continue to use `.goosehints` to define coding standards and universal preferences that guide LLM behavior.

However, to minimize redundancy and avoid conflicting guidance, we adopted a single reference file, `AGENTS.md`, as the source of truth for all agents. Each agent is directed to consult this file, while still supporting agent-specific instructions through their default context files (e.g. `.goosehints`, `CLAUDE.md` etc.) or rules (e.g. `.cursor/rules/`).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The lead model acts as your strategic partner, while the worker model becomes yo
## Pro Tips from Our Session

### Start with Good Goose Hints
We always recommend setting up your [goosehints](/docs/guides/using-goosehints) to give context about your project. It saves you from re-explaining the same things over and over.
We always recommend setting up your [goosehints](/docs/guides/context-engineering/using-goosehints) to give context about your project. It saves you from re-explaining the same things over and over.

### Don't Micromanage
Let the lead model do its planning thing. Sometimes the best results come from giving high-level direction and letting the system figure out the details.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ When your conversation gets too long, you can summarize the key points and start

**2. `.goosehints`**

Use [.goosehints](https://block.github.io/goose/docs/guides/using-goosehints/) files to avoid repeating the same instructions. Instead of typing out your project context, coding standards, and preferences in every conversation, define them once in a .goosehints file. This prevents wasting tokens on repetitive explanations and helps Goose understand your requirements more quickly.
Use [.goosehints](/docs/guides/context-engineering/using-goosehints/) files to avoid repeating the same instructions. Instead of typing out your project context, coding standards, and preferences in every conversation, define them once in a .goosehints file. This prevents wasting tokens on repetitive explanations and helps Goose understand your requirements more quickly.

**3. Memory extension**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ This was a huge prompt, so let's break down what each part accomplished:
- **Interaction:** just tell me to do it...and give me the details of what I need to run

:::note
In retrospect, the instruction regarding blocking commands should have been codified in [persistent context files](/docs/guides/using-goosehints) ([AGENTS.md](https://agents.md/) or [goosehints](/docs/guides/using-goosehints)) rather than inline prompts.
In retrospect, the instruction regarding blocking commands should have been codified in [persistent context files](/docs/guides/context-engineering/using-goosehints) ([AGENTS.md](https://agents.md/) or [goosehints](/docs/guides/context-engineering/using-goosehints)) rather than inline prompts.
:::

But, I was so happy that goose generated a pixel perfect recreation of the app.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Always start on a new feature branch. Never let an agent commit directly to main

### 3. Set Rules in a Context File

This is the key. I use a [`.goosehints`](/docs/guides/using-goosehints) or [`AGENTS.md`](/docs/guides/using-goosehints#custom-context-files) file with one critical instruction:
This is the key. I use a [`.goosehints`](/docs/guides/context-engineering/using-goosehints) or [`AGENTS.md`](/docs/guides/context-engineering/using-goosehints#custom-context-files) file with one critical instruction:

> "Every time you make a change, make a commit with a clear message."

Expand Down
4 changes: 2 additions & 2 deletions documentation/docs/getting-started/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ Here are some local providers we support:
```

:::tip Context Length
If you notice that goose is having trouble using extensions or is ignoring [.goosehints](/docs/guides/using-goosehints), it is likely that the model's default context length of 2048 tokens is too low. Use `ramalama serve` to set the `--ctx-size, -c` option to a [higher value](https://github.com/containers/ramalama/blob/main/docs/ramalama-serve.1.md#--ctx-size--c).
If you notice that goose is having trouble using extensions or is ignoring [.goosehints](/docs/guides/context-engineering/using-goosehints), it is likely that the model's default context length of 2048 tokens is too low. Use `ramalama serve` to set the `--ctx-size, -c` option to a [higher value](https://github.com/containers/ramalama/blob/main/docs/ramalama-serve.1.md#--ctx-size--c).
:::

</TabItem>
Expand Down Expand Up @@ -990,7 +990,7 @@ Here are some local providers we support:
```

:::tip Context Length
If you notice that goose is having trouble using extensions or is ignoring [.goosehints](/docs/guides/using-goosehints), it is likely that the model's default context length of 4096 tokens is too low. Set the `OLLAMA_CONTEXT_LENGTH` environment variable to a [higher value](https://github.com/ollama/ollama/blob/main/docs/faq.mdx#how-can-i-specify-the-context-window-size).
If you notice that goose is having trouble using extensions or is ignoring [.goosehints](/docs/guides/context-engineering/using-goosehints), it is likely that the model's default context length of 4096 tokens is too low. Set the `OLLAMA_CONTEXT_LENGTH` environment variable to a [higher value](https://github.com/ollama/ollama/blob/main/docs/faq.mdx#how-can-i-specify-the-context-window-size).
:::

</TabItem>
Expand Down
1 change: 1 addition & 0 deletions documentation/docs/getting-started/using-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Platform extensions are built-in extensions that provide global features like co

- [Chat Recall](/docs/mcp/chatrecall-mcp): Search conversation content across all your session history
- [Extension Manager](/docs/mcp/extension-manager-mcp): Discover, enable, and disable extensions dynamically during sessions
- [Skills](/docs/mcp/skills-mcp): Load and use skills from the `.claude/skills` or `.goose/skills` directories
- [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions

### Toggling Built-in Extensions
Expand Down
8 changes: 8 additions & 0 deletions documentation/docs/guides/context-engineering/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Context Engineering",
"position": 3,
"link": {
"type": "doc",
"id": "guides/context-engineering/index"
}
}
55 changes: 55 additions & 0 deletions documentation/docs/guides/context-engineering/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: Context Engineering
hide_title: true
description: Provide goose with the knowledge, preferences, and workflows it needs to work effectively
---

import Card from '@site/src/components/Card';
import styles from '@site/src/components/Card/styles.module.css';

<h1 className={styles.pageTitle}>Context Engineering</h1>
<p className={styles.pageDescription}>
Context engineering is about building background knowledge, preferences, and workflows that help goose work more effectively. Instead of repeating instructions, you define them once and teach goose how you work.
</p>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📚 Documentation & Guides</h2>
<div className={styles.cardGrid}>
<Card
title="Using goosehints"
description="Use AGENTS.md, .goosehints, and other files to provide project context, preferences, and instructions that goose loads automatically."
link="/docs/guides/context-engineering/using-goosehints"
/>
<Card
title="Using Skills"
description="Create reusable instruction sets containing workflows, scripts, and other resources that goose can load on demand."
link="/docs/guides/context-engineering/using-skills"
/>
<Card
title="Memory Extension"
description="Teach goose persistent knowledge it can recall across sessions. Save commands, code snippets, and preferences for consistent assistance."
link="/docs/mcp/memory-mcp"
/>
</div>
</div>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📝 Featured Blog Posts</h2>
<div className={styles.cardGrid}>
<Card
title="What's in my .goosehints file"
description="A deep dive into .goosehints vs Memory Extension, and how to optimize your goose configuration for better performance."
link="/blog/2025/06/05/whats-in-my-goosehints-file"
/>
<Card
title="Stop Your AI Agent From Making Unwanted Changes"
description="Teach your AI agent how to commit early and often so you can control changes and roll back safely."
link="/blog/2025/12/10/stop-ai-agent-unwanted-changes"
/>
<Card
title="The AI Skeptic's Guide to Context Windows"
description="Why do AI agents forget? Learn how context windows, tokens, and goose help you manage memory and long conversations."
link="/blog/2025/08/18/understanding-context-windows"
/>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Providing Hints to goose
sidebar_position: 40
sidebar_position: 1
sidebar_label: Using goosehints
---

Expand Down
Loading
Loading