an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM
This report summarizes scanner evidence for aaif-goose/goose, a Rust project with 56,010 GitHub stars. SynthScan examined 644,051 lines of code across 2038 source files, recording 722 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 2.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 501 finding(s).
Are imports declared and package/API names verified? 58 finding(s).
Are wrappers, guards, and repeated structures necessary? 326 finding(s).
Which changes need focused human review? 722 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 722 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 46 | // ── Geometry ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 320 | // ── Per-session memory ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 340 | // ── Gestures ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 414 | // ── Hook ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 482 | // ── Shell styling ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/PipWindow.tsx | 515 | // ── Chrome ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/useDisplayMode.ts | 84 | // ── Mode transitions ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/useDisplayMode.ts | 131 | // ── Effects ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/desktop/src/components/McpApps/useDisplayMode.ts | 202 | // ── Derived state ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 133 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 135 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 142 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 144 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 1 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 3 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 21 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 23 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 36 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 38 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 62 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 64 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 104 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 106 | # ============================================================================ | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 160 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 162 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 190 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 192 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 230 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 232 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 280 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 282 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 323 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 325 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 385 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 387 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 429 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 431 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 515 | # ========================================================================= | COMMENT |
| MEDIUM | …ages/recipes/data/recipes/test-coverage-optimizer.yaml | 517 | # ========================================================================= | COMMENT |
| MEDIUM | …e-mcp/src/autovisualiser/templates/chart_template.html | 82 | // ── Palette ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …e-mcp/src/autovisualiser/templates/chart_template.html | 96 | // ── Chart rendering ───────────────────────────────────────── | COMMENT |
| MEDIUM | …e-mcp/src/autovisualiser/templates/chart_template.html | 285 | // ── Bootstrap ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 22 | // ── JSON-RPC helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 49 | // ── Size reporting ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 68 | // ── Theming ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 99 | // ── Default data extractor ────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 115 | // ── Read a computed CSS variable ──────────────────────────────────── | COMMENT |
| MEDIUM | …/src/autovisualiser/templates/assets/mcp-app-bridge.js | 147 | // ── Public API ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/tests/agent.rs | 1164 | // ── Check persisted state after reply 1 ───────────────── | COMMENT |
| MEDIUM | crates/goose/tests/agent.rs | 1216 | // ── Check persisted state after cancellation ──────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/toolshim.rs | 2112 | // ── Regression tests: malformed marker leakage ────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 63 | // ── Token persistence ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 146 | // ── Provider ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 229 | // ── Token management ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 320 | // ── HTTP ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 369 | // ── ProviderDef ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 407 | // ── Provider trait ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 544 | // ── KimiToken serde ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 560 | // ── Headers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/goose/src/providers/kimicode.rs | 597 | // ── Metadata ────────────────────────────────────────────────────────────── | COMMENT |
| 56 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/docs/gdk/hello-world.md | 46 | export OPENAI_API_KEY="your-api-key" | CODE |
| HIGH | documentation/docs/mcp/gotohuman-mcp.md | 30 | GOTOHUMAN_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/gotohuman-mcp.md | 30 | GOTOHUMAN_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/gotohuman-mcp.md | 60 | { key: "GOTOHUMAN_API_KEY", value: "<YOUR_API_KEY>" } | CODE |
| HIGH | documentation/docs/mcp/gotohuman-mcp.md | 60 | { key: "GOTOHUMAN_API_KEY", value: "<YOUR_API_KEY>" } | CODE |
| HIGH | documentation/docs/mcp/firecrawl-mcp.md | 31 | FIRECRAWL_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/firecrawl-mcp.md | 31 | FIRECRAWL_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/browserbase-mcp.md | 29 | BROWSERBASE_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/browserbase-mcp.md | 29 | BROWSERBASE_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/prompts-chat-mcp.md | 27 | PROMPTS_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/prompts-chat-mcp.md | 27 | PROMPTS_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | …umentation/docs/mcp/cloudinary-asset-management-mcp.md | 31 | CLOUDINARY_URL: cloudinary://<your_api_key>:<your_api_secret>@<your_cloud_name> | CODE |
| HIGH | …umentation/docs/mcp/cloudinary-asset-management-mcp.md | 64 | Obtain your <a href="https://console.cloudinary.com/settings/api-keys" target="_blank" rel="noopener noreferre | CODE |
| HIGH | documentation/docs/mcp/elevenlabs-mcp.md | 32 | ELEVENLABS_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/elevenlabs-mcp.md | 32 | ELEVENLABS_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/asana-mcp.md | 31 | ASANA_ACCESS_TOKEN: <YOUR_TOKEN> | CODE |
| HIGH | documentation/docs/mcp/tavily-mcp.md | 30 | TAVILY_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/tavily-mcp.md | 30 | TAVILY_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/brave-mcp.md | 32 | BRAVE_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/brave-mcp.md | 32 | BRAVE_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/google-maps-mcp.md | 30 | GOOGLE_MAPS_API_KEY: <YOUR_TOKEN> | CODE |
| HIGH | documentation/docs/mcp/agentql-mcp.md | 30 | AGENTQL_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/agentql-mcp.md | 30 | AGENTQL_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/exa-mcp.md | 27 | EXA_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/exa-mcp.md | 27 | EXA_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/square-mcp.md | 93 | ACCESS_TOKEN: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/square-mcp.md | 93 | ACCESS_TOKEN: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/nano-banana-mcp.md | 32 | GEMINI_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/mcp/nano-banana-mcp.md | 32 | GEMINI_API_KEY: <YOUR_API_KEY> | CODE |
| HIGH | documentation/docs/getting-started/providers.md | 358 | OPENAI_API_KEY=your-api-key | CODE |
| HIGH | documentation/docs/getting-started/providers.md | 374 | OPENAI_API_KEY=your-api-key | CODE |
| HIGH | documentation/docs/getting-started/providers.md | 551 | export CUSTOM_CORP_API_API_KEY="your-api-key" | CODE |
| HIGH | documentation/docs/getting-started/installation.md | 243 | echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc | CODE |
| HIGH | documentation/docs/getting-started/installation.md | 295 | export OPENAI_API_KEY={your_api_key} | CODE |
| HIGH | documentation/docs/getting-started/installation.md | 306 | echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc | CODE |
| HIGH | documentation/docs/getting-started/using-extensions.md | 329 | envs: { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } | CODE |
| HIGH | documentation/docs/getting-started/using-extensions.md | 687 | goose session --with-extension "GITHUB_PERSONAL_ACCESS_TOKEN=<YOUR_TOKEN> npx -y @modelcontextprotocol/server-github" | CODE |
| HIGH | documentation/docs/guides/environment-variables.md | 57 | export GOOSE_PROVIDER__API_KEY="your-api-key-here" | CODE |
| HIGH⚡ | …blog/2024-11-22-screenshot-driven-development/index.md | 202 | export OPENAI_API_KEY=your_api_key | CODE |
| HIGH⚡ | …blog/2024-11-22-screenshot-driven-development/index.md | 204 | export ANTHROPIC_API_KEY=your_api_key | CODE |
| HIGH | …s/recipes/data/recipes/subrecipes/secret-detector.yaml | 113 | * Example values: "your-api-key-here", "example", "test", "dummy" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/desktop/scripts/unregister-deeplink-protocols.js | 12 | function unregisterAllProtocolHandlers() { | CODE |
| LOW | ui/desktop/src/App.tsx | 79 | export function resolveSessionInitialMessage( | CODE |
| LOW | ui/desktop/src/desktopFileAccess.ts | 35 | export function isAuthorizedFileAccessRequest( | CODE |
| LOW | ui/desktop/src/main.ts | 355 | function getBackendCertificateTrusts(hostname: string): BackendCertificateTrust[] { | CODE |
| LOW | ui/desktop/src/main.ts | 956 | function requireRegularRendererWindow(event: IpcMainInvokeEvent): BrowserWindow { | CODE |
| LOW | ui/desktop/src/backendCertificateVerifier.ts | 10 | export function installBackendCertificateVerifiers( | CODE |
| LOW | ui/desktop/src/types/message.ts | 382 | export function getToolConfirmationContent( | CODE |
| LOW | ui/desktop/src/types/message.ts | 391 | export function getToolConfirmationRequestContent( | CODE |
| LOW | ui/desktop/src/types/message.ts | 408 | export function getAnyToolConfirmationData(message: Message): ToolConfirmationData | undefined { | CODE |
| LOW | ui/desktop/src/types/message.ts | 433 | export function getPendingToolConfirmationIds(messages: Message[]): Set<string> { | CODE |
| LOW | ui/desktop/src/liveVoice/useLiveVoice.test.ts | 50 | function LiveVoiceMediaSessionMock(onFailure) { | CODE |
| LOW | ui/desktop/src/recipe/consent.ts | 26 | export function subscribeRecipeConsentRequests(listener: () => void): () => void { | CODE |
| LOW | ui/desktop/src/recipe/consent.ts | 33 | export function getRecipeConsentRequestsSnapshot(): RecipeConsentRequest[] { | CODE |
| LOW | ui/desktop/src/utils/extensionErrorUtils.ts | 13 | export function createExtensionRecoverHints(errorMsg: string): string { | CODE |
| LOW | ui/desktop/src/utils/extensionErrorUtils.ts | 28 | export function formatExtensionErrorMessage( | CODE |
| LOW | ui/desktop/src/utils/nextChatExtensions.ts | 8 | export function createNextChatExtensionDraft( | CODE |
| LOW | ui/desktop/src/utils/nextChatExtensions.ts | 30 | export function isNextChatExtensionSelected( | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 255 | export function trackOnboardingProviderSelected(options: { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 277 | export function trackOnboardingSetupFailed( | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 348 | function getTrackableExtensionName(extensionName: string, isBuiltin: boolean): string | undefined { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 471 | export function trackRecipeDeeplinkCopied(success: boolean, errorDetails?: string): void { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 485 | export function trackRecipeExportedToFile(success: boolean, errorDetails?: string): void { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 503 | export function trackRecipeSlashCommandSet( | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 569 | export function trackUpdateCheckCompleted( | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 590 | export function trackUpdateDownloadStarted(version: string, method: UpdateMethod): void { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 602 | export function trackUpdateDownloadProgress(percent: number): void { | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 621 | export function trackUpdateDownloadCompleted( | CODE |
| LOW | ui/desktop/src/utils/analytics.ts | 649 | export function trackUpdateInstallInitiated( | CODE |
| LOW | ui/desktop/src/utils/autoUpdater.ts | 72 | export function registerUpdateIpcHandlers() { | CODE |
| LOW | ui/desktop/src/utils/toolCallChaining.ts | 8 | export function identifyConsecutiveToolCalls(messages: Message[]): number[][] { | CODE |
| LOW | ui/desktop/src/utils/csp.ts | 70 | export function shouldUpgradeInsecureRequests(externalBackend?: ExternalBackendConfig): boolean { | CODE |
| LOW | ui/desktop/src/utils/projectSessions.ts | 86 | function getDisambiguatedProjectLabel(workingDir: string): string { | CODE |
| LOW | ui/desktop/src/utils/platform_events.ts | 78 | export function registerPlatformEventHandlers(): () => void { | CODE |
| LOW | ui/desktop/src/utils/githubUpdater.ts | 221 | async function findUnexpectedInstallEntries(dir: string, exeName: string): Promise<string[]> { | CODE |
| LOW | ui/desktop/src/utils/keyboardShortcuts.ts | 12 | export function getNavigationShortcutText(intl?: IntlShape): string { | CODE |
| LOW | ui/desktop/src/components/ModelAndProviderContext.tsx | 66 | function patchAcpSessionProviderModel( | CODE |
| LOW | ui/desktop/src/components/messageRowContext.test.ts | 38 | function messageWithRequestedModel(id: string, requestedModel: string): Message { | CODE |
| LOW | …desktop/src/components/RecipeConsentModalContainer.tsx | 9 | export default function RecipeConsentModalContainer() { | CODE |
| LOW | …/desktop/src/components/RecipeParamsModalContainer.tsx | 11 | export default function RecipeParamsModalContainer(): React.ReactElement | null { | CODE |
| LOW | …esktop/src/components/GroupedExtensionLoadingToast.tsx | 76 | export function GroupedExtensionLoadingToast({ | CODE |
| LOW | …settings/providers/subcomponents/utils/StringUtils.tsx | 11 | export function ConfiguredProviderTooltipMessage(intl: IntlShape, name: string) { | CODE |
| LOW | …ettings/providers/modal/ProviderConfigurationModal.tsx | 179 | export default function ProviderConfigurationModal({ | CODE |
| LOW | …rc/components/settings/models/predefinedModelsUtils.ts | 4 | export function getPredefinedModelsFromEnv(): Model[] { | CODE |
| LOW | …rc/components/settings/models/predefinedModelsUtils.ts | 16 | export function shouldShowPredefinedModels(): boolean { | CODE |
| LOW | …c/components/settings/extensions/bundled-extensions.ts | 28 | export function getDeprecatedBundledExtensions(): DeprecatedBundledExtension[] { | CODE |
| LOW | …c/components/settings/extensions/bundled-extensions.ts | 36 | export async function pruneDeprecatedBundledExtensions( | CODE |
| LOW | ui/desktop/src/components/settings/extensions/utils.ts | 136 | function availableToolsOrUndefined(availableTools?: string[] | null): string[] | undefined { | CODE |
| LOW | …ettings/response_styles/ResponseStyleSelectionItem.tsx | 50 | export function ResponseStyleSelectionItem({ | CODE |
| LOW | …ts/context_management/CreditsExhaustedNotification.tsx | 86 | export function getCreditsExhaustedNotification( | CODE |
| LOW | …onents/context_management/SystemNotificationInline.tsx | 14 | export function getInlineSystemNotification( | CODE |
| LOW | …omponents/bottom_menu/BottomMenuExtensionSelection.tsx | 105 | function useExtensionMenuTransition() { | CODE |
| LOW | ui/desktop/src/hooks/useAutoSubmit.test.tsx | 44 | function renderChatWithSettingsRoute(props: AutoSubmitProps) { | CODE |
| LOW | ui/desktop/src/hooks/useFocusOnTyping.ts | 38 | function isSpaceActivatableControl(element: Element | null): boolean { | CODE |
| LOW | ui/desktop/src/hooks/useThrottledStreamingText.ts | 5 | export function useThrottledStreamingText( | CODE |
| LOW | ui/desktop/src/hooks/useNavigationSessions.test.tsx | 26 | function expectSingleSessionParameter(target: string) { | CODE |
| LOW | ui/desktop/src/acp/chatSessionController.ts | 75 | function createAcpCreditsExhaustedMessage(error: AcpCreditsExhaustedError): Message { | CODE |
| LOW | ui/desktop/src/acp/chatSessionController.ts | 92 | function assertNoPendingPromptCancellation(sessionId: string): void { | CODE |
| LOW | ui/desktop/src/acp/chatSessionController.ts | 99 | async function forkSessionWithEditedMessage( | CODE |
| LOW | ui/desktop/src/acp/schedules.ts | 44 | function clearInFlightScheduleReads(): void { | CODE |
| LOW | ui/desktop/src/acp/autocomplete.ts | 27 | export function availableCommandToDisplayItem( | CODE |
| 103 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/docs/mcp/neighborhood-mcp.md | 67 | ### Step 1: Find restaurants near you | COMMENT |
| LOW | documentation/docs/mcp/neighborhood-mcp.md | 116 | ### Step 2: Browse the menu | COMMENT |
| LOW | documentation/docs/mcp/neighborhood-mcp.md | 129 | ### Step 3: Add to cart and check out | COMMENT |
| LOW | documentation/docs/mcp/nostrbook-mcp.md | 94 | ### Step 1: Set Up Recipient Information (For Receiving Nutzaps) | COMMENT |
| LOW | documentation/docs/mcp/nostrbook-mcp.md | 114 | ### Step 2: Building the Sender Functionality | COMMENT |
| LOW | documentation/docs/mcp/nostrbook-mcp.md | 153 | ### Step 3: Building the Recipient Functionality | COMMENT |
| LOW | documentation/docs/mcp/beads-mcp.md | 78 | ### Step 1: Plan the Project | COMMENT |
| LOW | documentation/docs/mcp/beads-mcp.md | 190 | ### Step 2: Build the Frontend | COMMENT |
| LOW | documentation/docs/mcp/beads-mcp.md | 266 | ### Step 3: Build the Backend | COMMENT |
| LOW | documentation/docs/mcp/beads-mcp.md | 345 | ### Step 4: Wire It All Together | COMMENT |
| LOW | documentation/docs/mcp/memory-mcp.md | 125 | ### Step 1: Teach goose Your API Standards | COMMENT |
| LOW | documentation/docs/mcp/memory-mcp.md | 155 | ### Step 2: Use Stored Knowledge to Create a New API Endpoint | COMMENT |
| LOW | documentation/docs/mcp/cloudflare-mcp.md | 63 | ### Step 1: Create API Token | COMMENT |
| LOW | documentation/docs/mcp/cloudflare-mcp.md | 75 | ### Step 2: Add MCP Server to goose | COMMENT |
| LOW | documentation/docs/mcp/knowledge-graph-mcp.md | 62 | ### Step 1: Teach goose About Security Patterns | COMMENT |
| LOW | documentation/docs/mcp/knowledge-graph-mcp.md | 129 | ### Step 2: Use Connected Knowledge for Code Review | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 20 | ## Step 1: Check Available Plans | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 40 | ## Step 2: Create a Service Instance | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 64 | ## Step 3: Create a Service Key | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 117 | ## Step 4: Identify Your Endpoint and API Key | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 132 | ## Step 5: Configure goose | COMMENT |
| LOW | documentation/docs/guides/tanzu-ai-services.md | 183 | ## Step 6: Select a Model | COMMENT |
| LOW | documentation/docs/tutorials/building-mcp-apps.md | 25 | ## Step 1: Initialize Your Project | COMMENT |
| LOW | documentation/docs/tutorials/building-mcp-apps.md | 61 | ## Step 2: Create the MCP Server | COMMENT |
| LOW | documentation/docs/tutorials/building-mcp-apps.md | 200 | ## Step 3: Create the App HTML | COMMENT |
| LOW | documentation/docs/tutorials/building-mcp-apps.md | 489 | ## Step 4: Add to goose Desktop | COMMENT |
| LOW | documentation/docs/tutorials/building-mcp-apps.md | 505 | ## Step 5: Test Your App | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 34 | ## Step 1: Initialize Your Project | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 65 | ## Step 2: Write Your MCP Server Code | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 175 | ## Step 3: Define Project Configuration | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 203 | ## Step 4: Test Your MCP Server | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 283 | ## Step 5: Integrate with goose | COMMENT |
| LOW | documentation/docs/tutorials/custom-extensions.md | 321 | ## Step 6: Use Your Extension in goose | COMMENT |
| LOW | documentation/docs/tutorials/subagents.md | 244 | ### Step 1: Install Dependencies | COMMENT |
| LOW | documentation/docs/tutorials/subagents.md | 250 | ### Step 2: Start the Server | COMMENT |
| LOW | documentation/docs/tutorials/subagents.md | 263 | ### Step 3: Open the App | COMMENT |
| LOW | documentation/docs/tutorials/subagents.md | 271 | ### Step 4: Test It | COMMENT |
| LOW | documentation/docs/tutorials/ralph-loop.md | 40 | ### Step 1: Start the Loop | COMMENT |
| LOW | documentation/docs/tutorials/ralph-loop.md | 56 | ### Step 2: Configure Models | COMMENT |
| LOW | documentation/docs/tutorials/ralph-loop.md | 93 | ### Step 3: Watch It Run | COMMENT |
| LOW⚡ | …-05-22-manage-local-host-conflicts-with-goose/index.md | 27 | # Step 1: list all open ports | COMMENT |
| LOW⚡ | …-05-22-manage-local-host-conflicts-with-goose/index.md | 30 | # Step 2: find a specific port | COMMENT |
| LOW⚡ | …-05-22-manage-local-host-conflicts-with-goose/index.md | 33 | # Step 3: kill the process | COMMENT |
| LOW | …-ci-issues-with-goose-a-practical-walkthrough/index.md | 64 | ### Step 1: Fetch CI Failure Details | COMMENT |
| LOW | …-ci-issues-with-goose-a-practical-walkthrough/index.md | 113 | ### Step 2: Request Fixes from goose | COMMENT |
| LOW | …-ci-issues-with-goose-a-practical-walkthrough/index.md | 140 | ### Step 3: Review the Changes | COMMENT |
| LOW | …oding-with-goose-building-apps-with-ai-agents/index.md | 36 | ### Step 1: Product Planning | COMMENT |
| LOW | …oding-with-goose-building-apps-with-ai-agents/index.md | 119 | ### Step 2: Project Management | COMMENT |
| LOW | …oding-with-goose-building-apps-with-ai-agents/index.md | 285 | ### Step 3: Technical Architecture | COMMENT |
| LOW | …oding-with-goose-building-apps-with-ai-agents/index.md | 295 | ### Step 4: Parallel Development | COMMENT |
| LOW | …oding-with-goose-building-apps-with-ai-agents/index.md | 323 | ### Step 5: Testing and Docs | COMMENT |
| LOW⚡ | documentation/blog/2026-02-06-rp-why-skill/index.md | 205 | ### Step 1: Initialize Your Baseline | COMMENT |
| LOW⚡ | documentation/blog/2026-02-06-rp-why-skill/index.md | 213 | ### Step 2: Check Your Current Session | COMMENT |
| LOW⚡ | documentation/blog/2026-02-06-rp-why-skill/index.md | 221 | ### Step 3: Track Your Progress | COMMENT |
| LOW | …ion/blog/2025-10-08-recipe-cookbook-generator/index.md | 247 | ## Step 1: Setup and Discovery | COMMENT |
| LOW | …ion/blog/2025-10-08-recipe-cookbook-generator/index.md | 255 | ## Step 2: Intelligent Session Analysis | COMMENT |
| LOW | …ion/blog/2025-10-08-recipe-cookbook-generator/index.md | 277 | ## Step 3: User Review Process | COMMENT |
| LOW | …ion/blog/2025-10-08-recipe-cookbook-generator/index.md | 295 | ## Step 4: Recipe Generation with Subagents | COMMENT |
| LOW | …ion/blog/2025-10-08-recipe-cookbook-generator/index.md | 311 | ## Step 5: Testing and Finalization | COMMENT |
| LOW | …blog/2024-11-22-screenshot-driven-development/index.md | 33 | ### Step 1: Create your UI | COMMENT |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | download_cli.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | documentation/docs/tutorials/ralph-loop.md | 181 | # Based on Geoffrey Huntley's technique | COMMENT |
| LOW | …mentation/src/pages/recipes/data/recipes/ralph-loop.sh | 1 | #!/bin/bash | COMMENT |
| LOW | crates/goose-roaming/examples/echo_roundtrip.rs | 1 | //! Minimal end-to-end example of the `goose-roaming` library API. | COMMENT |
| LOW | crates/goose-roaming/src/lib.rs | 1 | //! Peer-to-peer roaming transport for goose agents. | COMMENT |
| LOW | crates/goose-roaming/src/handshake.rs | 1 | //! The roaming handshake exchanged on a freshly-accepted bi-stream, before the | COMMENT |
| LOW | crates/goose-roaming/src/identity.rs | 1 | //! Persisted roaming node identity. | COMMENT |
| LOW | crates/goose-roaming/src/node.rs | 61 | /// use goose_roaming::{RoamingConfig, RoamingIdentity, RoamingNode}; | COMMENT |
| LOW | crates/goose-roaming/src/trust.rs | 1 | //! Local access-control state: which peer keys this node accepts inbound | COMMENT |
| LOW | crates/goose-roaming/src/card.rs | 1 | //! A **connection card**: the single, non-secret string you share with another | COMMENT |
| LOW | crates/goose-roaming/src/relay.rs | 1 | //! Relay configuration for the roaming endpoint. | COMMENT |
| LOW | crates/goose-roaming/src/relay.rs | 21 | /// Use a custom set of relay URLs, optionally with a bearer auth token | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 341 | /// Measured with goose's local tokenizer; always the sum of the segments. | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 381 | COMMENT | |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 621 | #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcResponse)] | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 1481 | /// containing `SKILL.md`; projects use the project file path; built-in | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 1541 | #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")] | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 1641 | /// `None` (or omitted), the source's existing properties are | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 1861 | pub name: String, | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests.rs | 1901 | /// Preferred replacement for a deprecated provider. | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_notifications.rs | 81 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_notifications.rs | 101 | pub input_tokens: Option<i32>, | COMMENT |
| LOW | crates/goose-sdk-types/src/custom_requests/recipe.rs | 221 | headers: HashMap<String, String>, | COMMENT |
| LOW | crates/goose-provider-types/src/conversation.rs | 561 | COMMENT | |
| LOW | crates/goose-provider-types/src/maybe_send.rs | 1 | //! `Send` and `Sync` bounds that apply natively but not on wasm32. | COMMENT |
| LOW | crates/goose-provider-types/src/base.rs | 141 | } | COMMENT |
| LOW | crates/goose-provider-types/src/base.rs | 261 | pub output_token_cost: Option<f64>, | COMMENT |
| LOW | crates/goose-provider-types/src/json.rs | 81 | /// | COMMENT |
| LOW | crates/goose-provider-types/src/formats/anthropic.rs | 261 | const EVENT_CONTENT_BLOCK_STOP: &str = "content_block_stop"; | COMMENT |
| LOW | crates/goose-provider-types/src/formats/openai.rs | 1161 | let truncated: String = text.chars().take(MAX_STREAM_ERROR_LEN).collect(); | COMMENT |
| LOW | crates/goose-provider-types/src/formats/openai.rs | 1201 | }); | COMMENT |
| LOW | crates/goose-provider-types/src/formats/openai.rs | 1841 | COMMENT | |
| LOW | crates/goose-provider-types/src/conversation/message.rs | 161 | /// for this tool call. Used to make the title survive session reload. | COMMENT |
| LOW | crates/goose-provider-types/src/conversation/message.rs | 821 | /// than free-form so metadata that is not shaped like notes fails to load | COMMENT |
| LOW | crates/goose-provider-types/src/conversation/message.rs | 841 | /// without matching user-visible text. Never sent to providers. | COMMENT |
| LOW | crates/goose-providers/src/declarative.rs | 121 | } | COMMENT |
| LOW | crates/goose-providers/src/declarative.rs | 181 | pub auth: Option<AuthConfig>, | COMMENT |
| LOW | crates/goose-providers/src/ollama.rs | 61 | /// All values that the Ollama provider reads out of the global config are | COMMENT |
| LOW | crates/goose-providers/src/api_client.rs | 141 | COMMENT | |
| LOW | crates/goose-local-inference/src/lib.rs | 601 | /// | COMMENT |
| LOW | …cal-inference/src/llamacpp/inference_emulated_tools.rs | 1 | //! Tool call emulation for models without native tool-calling support. | COMMENT |
| LOW | …mance/expected-failures-2026-07-28-0.2.0-alpha.10.yaml | 1 | # MCP conformance baseline: known-failing client scenarios. | COMMENT |
| LOW | …mance/expected-failures-2025-11-25-0.2.0-alpha.10.yaml | 1 | # MCP conformance baseline: known-failing client scenarios. | COMMENT |
| LOW | …p-conformance/expected-failures-2025-11-25-0.1.16.yaml | 1 | # MCP conformance baseline: known-failing client scenarios. | COMMENT |
| LOW | crates/goose-cli/src/cli.rs | 1101 | COMMENT | |
| LOW | crates/goose-cli/src/cli.rs | 1121 | /// that does not declare its own `model:` in frontmatter. | COMMENT |
| LOW | crates/goose-cli/src/cli.rs | 1141 | /// running the review. | COMMENT |
| LOW | crates/goose-cli/src/cli.rs | 1161 | /// (e.g. PR intent, commit-message context, "this is a refactor, | COMMENT |
| LOW | crates/goose-cli/src/cli.rs | 1181 | #[arg(long = "check-scope", short = 's', value_name = "DIR")] | COMMENT |
| LOW | crates/goose-cli/src/bin/generate_manpages.rs | 1 | //! Generate manpages for the goose CLI. | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 1 | //! `goose roam` — peer-to-peer agent access over iroh. | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 61 | /// header. We default to these rather than iroh's public n0 relays so roaming | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 141 | #[command(visible_alias = "card")] | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 161 | /// sessions (new/list/load/prompt) backed by this node's session store. | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 181 | /// real work, prefer `bridge` (drive the remote agent from Zed or any other | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 201 | /// The task/question to send to the remote agent. Omit when using | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 221 | /// subprocess). Use `--listen` to accept a single TCP connection instead. | COMMENT |
| LOW | crates/goose-cli/src/commands/roam.rs | 261 | /// Friendly nickname (defaults to a short id if omitted). | COMMENT |
| LOW | crates/goose-cli/src/commands/roam_proxy.rs | 1 | //! Transparent ACP proxy: splice a local ACP transport to a remote roaming stream. | COMMENT |
| LOW | crates/goose-cli/src/commands/roam_full_bridge.rs | 1 | //! The roaming host adapter: serve goose's **full** ACP surface to each | COMMENT |
| 79 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/docs/tutorials/custom-extensions.md | 143 | except Exception as e: | CODE |
| LOW | documentation/scripts/community_stars.py | 80 | except Exception as e: | CODE |
| LOW | documentation/scripts/community_stars.py | 99 | except Exception as e: | CODE |
| MEDIUM | documentation/scripts/community_stars.py | 100 | print(f"Error: Could not load team list file from {TEAMS_FILE_URL}") | CODE |
| MEDIUM | documentation/scripts/community_stars.py | 200 | print(f"Error: {e}") | CODE |
| LOW | documentation/scripts/community_stars.py | 267 | except Exception as e: | CODE |
| LOW | evals/harbor/runner.py | 205 | except Exception as error: | CODE |
| MEDIUM | evals/harbor/reporter.py | 409 | print(f"Error class: {exception_class}") | CODE |
| LOW | …oose-mcp/src/tutorial/tutorials/build-mcp-extension.md | 293 | except Exception as e: | CODE |
| LOW⚡ | …flow_recipes/release_risk_check/release_risk_report.py | 397 | except Exception as e: | CODE |
| LOW | examples/mcp-wiki/src/mcp_wiki/server.py | 59 | except Exception as e: | CODE |
| LOW | scripts/diagnostics-viewer.py | 221 | except Exception as e: | CODE |
| LOW | scripts/diagnostics-viewer.py | 230 | except Exception as e: | CODE |
| LOW | scripts/diagnostics-viewer.py | 313 | except Exception: | CODE |
| LOW | scripts/diagnostics-viewer.py | 329 | except Exception: | CODE |
| LOW | scripts/diagnostics-viewer.py | 484 | except Exception: | CODE |
| MEDIUM | scripts/diagnostics-viewer.py | 898 | print(f"Error: Directory '{diagnostics_dir}' not found", file=sys.stderr) | CODE |
| LOW | scripts/provider-error-proxy/proxy.py | 600 | except Exception as stream_error: | CODE |
| LOW | scripts/provider-error-proxy/proxy.py | 616 | except Exception as e: | CODE |
| LOW | scripts/provider-error-proxy/proxy.py | 754 | except Exception as e: | CODE |
| LOW⚡ | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 83 | except Exception as e: | CODE |
| MEDIUM⚡ | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 84 | print(f"Error processing {csv_file}: {str(e)}") | CODE |
| MEDIUM | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 138 | print(f"Error: Benchmark directory {benchmark_dir} does not exist or is not a directory") | CODE |
| LOW | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 178 | except Exception as e: | CODE |
| MEDIUM | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 179 | print(f"Error: {str(e)}") | CODE |
| LOW⚡ | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 68 | except Exception as e: | CODE |
| MEDIUM⚡ | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 69 | print(f"Error checking session file {session_file}: {str(e)}") | CODE |
| LOW | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 179 | except Exception as e: | CODE |
| MEDIUM | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 180 | print(f"Error processing {eval_file}: {str(e)}") | CODE |
| MEDIUM | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 279 | print(f"Error: Benchmark directory {benchmark_dir} does not exist or is not a directory") | CODE |
| MEDIUM | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 30 | print("Error: openai package not found. Please install it with: pip install openai") | CODE |
| MEDIUM | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 101 | print(f"Error parsing OpenAI response as JSON (attempt {retry_count}/{max_retries}): {str(e)}") | CODE |
| LOW | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 108 | except Exception as e: | CODE |
| MEDIUM⚡ | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 143 | print(f"Error parsing tie-breaker response as JSON (attempt {retry_count}/{max_retries}): {str(e | CODE |
| LOW⚡ | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 150 | except Exception as e: | CODE |
| LOW⚡ | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 160 | except Exception as e: | CODE |
| MEDIUM⚡ | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 163 | print(f"Error evaluating with OpenAI: {str(e)}") | CODE |
| LOW | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 253 | except Exception as e: | CODE |
| MEDIUM | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 254 | print(f"Error: {str(e)}") | CODE |
| MEDIUM | …ess-scripts/llm-judges/calculate_final_scores_vibes.py | 60 | print(f"Error: eval-results.json not found in current directory") | CODE |
| LOW | …ess-scripts/llm-judges/calculate_final_scores_vibes.py | 82 | except Exception as e: | CODE |
| MEDIUM | …ess-scripts/llm-judges/calculate_final_scores_vibes.py | 83 | print(f"Error calculating final score: {str(e)}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …og/2026-01-05-agentic-guardrails-and-controls/index.md | 256 | <meta property="og:url" content="https://goose-docs.ai/blog/2026/01/05/agent-guardrails-cors-model" /> | CODE |
| MEDIUM | …n/blog/2026-02-24-goose-grant-goose-in-a-pond/index.md | 19 | The project is being built by [Jarida](https://jarida-io.web.app/), a team of five developers based in Nairobi, Kenya, l | CODE |
| MEDIUM | …mentation/blog/2026-04-07-goose-moves-to-aaif/index.md | 11 | Block has donated goose to the [Agentic AI Foundation (AAIF)](https://aaif.io/) at the Linux Foundation, alongside Anthr | CODE |
| MEDIUM | …tation/blog/2026-09-16-agentic-state-machines/index.md | 13 | [goose launched](https://github.com/aaif-goose/goose/blob/dd126afa6c73fe01ad4991a6b45a6d027cb02b29/README.md) a long tim | CODE |
| MEDIUM | …umentation/blog/2026-05-05-goose-as-conductor/index.md | 17 | ## What is orchestration? | COMMENT |
| MEDIUM⚡ | documentation/blog/2025-02-17-agentic-ai-mcp/index.md | 152 | <meta property="og:url" content="https://goose-docs.ai/blog/2025/02/17/agentic-ai-mcp" /> | CODE |
| MEDIUM⚡ | documentation/blog/2025-02-17-agentic-ai-mcp/index.md | 154 | <meta property="og:image" content="https://goose-docs.ai/assets/images/agentic-ai-with-mcp-1e3050cc8d8ae7a620440e871ad | CODE |
| MEDIUM⚡ | documentation/blog/2025-02-17-agentic-ai-mcp/index.md | 159 | <meta name="twitter:image" content="https://goose-docs.ai/assets/images/agentic-ai-with-mcp-1e3050cc8d8ae7a620440e871a | CODE |
| MEDIUM | …tion/blog/2026-01-30-5-tips-building-mcp-apps/index.md | 12 | [MCP Apps](https://modelcontextprotocol.io/docs/extensions/apps) allow you to render interactive UI directly inside any | CODE |
| MEDIUM | …g/2025-08-25-mcp-ui-future-agentic-interfaces/index.md | 13 | In a recent [Wild Goose Case episode](https://www.youtube.com/live/GS-kmreZDgU), we dove deep into MCP-UI with its creat | CODE |
| MEDIUM | …g/2025-08-25-mcp-ui-future-agentic-interfaces/index.md | 141 | <meta property="og:url" content="https://goose-docs.ai/blog/2025/08/25/mcp-ui-future-agentic-interfaces" /> | CODE |
| MEDIUM | …blog/2025-08-18-understanding-context-windows/index.md | 18 | ## What is a context window? | COMMENT |
| MEDIUM | …blog/2025-08-18-understanding-context-windows/index.md | 56 | ## How Goose automatically manages your context window | COMMENT |
| MEDIUM | …blog/2025-08-18-understanding-context-windows/index.md | 62 | ## How to manage your context window | COMMENT |
| MEDIUM | …mentation/blog/2026-02-07-context-engineering/index.md | 137 | ## The real skill is orchestration | COMMENT |
| MEDIUM | crates/goose-provider-types/src/cache_semantics.rs | 66 | // breakpoints to the last human turn and re-bill the growing agentic | COMMENT |
| MEDIUM | crates/goose-cli/src/cli.rs | 1157 | #[arg(long = "no-orchestrate")] | COMMENT |
| MEDIUM | …/tests/mcp_replays/github-mcp-serverstdio.results.json | 14 | "text": "<div align=\"center\">\n\n# goose\n\n_a local, extensible, open source AI agent that automates engine | CODE |
| MEDIUM | crates/goose/src/providers/codex.rs | 1101 | r#"{"type":"error","message":"Codex ran out of room in the model's context window and could not finish the t | CODE |
| MEDIUM | crates/goose/src/providers/claude_code.rs | 628 | // Only a few agentic choices; fetched dynamically via fetch_supported_models. | COMMENT |
| MEDIUM | crates/goose/src/providers/claude_code.rs | 1094 | r#"{"type":"error","error":"context window exceeded"}"#, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | documentation/docs/assets/docs.js | 157 | // console.log("parent > tabbed-block", e.target.parentElement.previousElementSibling.previousElementSibling.querySelec | COMMENT |
| CRITICAL | documentation/docs/assets/docs.js | 159 | // const codeClass = e.target.parentElement.previousElementSibling.previousElementSibling.querySelectorAll('.tabbed-bl | COMMENT |
| CRITICAL | documentation/docs/assets/docs.js | 191 | const code = e.target.parentElement.previousSibling.previousSibling.querySelector('.language-' + CSS.escape(language)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test_acp_client.py | 70 | # Check if this is a notification (has 'method' but no 'id') | COMMENT |
| LOW | ui/desktop/src/bin/node-setup-common.sh | 100 | # Check if hermit binary exists and download if not | COMMENT |
| LOW | ui/desktop/src/bin/node-setup-common.sh | 124 | # Check if hermit environment is already initialized (only run init on first setup) | COMMENT |
| LOW | ui/desktop/src/bin/node-setup-common.sh | 178 | # Check if GOOSE_NPM_REGISTRY is set and accessible | COMMENT |
| LOW | ui/desktop/src/bin/node-setup-common.sh | 184 | # Check if GOOSE_NPM_CERT is set and accessible | COMMENT |
| LOW | documentation/docs/docker/docker-compose.yml | 24 | # Set GOOGLE_API_KEY to your own API key | COMMENT |
| LOW | documentation/scripts/community_stars.py | 73 | # Check if any org matches Block orgs (case-insensitive) | COMMENT |
| LOW | documentation/scripts/community_stars.py | 333 | # Check if user is in a Block org (with caching) | COMMENT |
| LOW | documentation/scripts/community_stars.py | 368 | # Print results | COMMENT |
| LOW | scripts/run-benchmarks.sh | 179 | # Check if jq is installed | COMMENT |
| LOW | scripts/diagnostics-viewer.py | 74 | # Check if this is a truncated string node | COMMENT |
| LOW | scripts/diagnostics-viewer.py | 401 | # Check if this is a JSONL file | COMMENT |
| LOW | scripts/test_compaction.sh | 296 | # Check if port is listening using /dev/tcp | COMMENT |
| LOW | scripts/test_compaction.sh | 309 | # Check if proxy is running and ready | COMMENT |
| LOW | scripts/provider-error-proxy/proxy.py | 525 | # Check if this request should always be forwarded | COMMENT |
| LOW | scripts/provider-error-proxy/proxy.py | 538 | # Check if we should inject an error | COMMENT |
| LOW | scripts/provider-error-proxy/proxy.py | 582 | # Check if this is a streaming response (SSE) | COMMENT |
| LOW | scripts/provider-error-proxy/proxy.py | 674 | # Check if it's a decimal (percentage as 0.0-1.0) | COMMENT |
| LOW | …ench-postprocess-scripts/llm-judges/run_vibes_judge.sh | 35 | # Check if LLM judge succeeded | COMMENT |
| LOW | …ench-postprocess-scripts/llm-judges/run_vibes_judge.sh | 44 | # Check if score calculation succeeded | COMMENT |
| LOW | .github/workflows/quarantine.yml | 26 | # Check if PR author is in the quarantine list | COMMENT |
| LOW | .github/workflows/goose-release-notes.yml | 256 | # Check if everything fits in one message (no thread needed) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mentation/src/pages/recipes/data/recipes/rpi-plan.yaml | 15 | ### Step 1: Context Gathering & Initial Analysis | COMMENT |
| LOW | …mentation/src/pages/recipes/data/recipes/rpi-plan.yaml | 51 | ### Step 2: Research & Discovery | COMMENT |
| LOW | …mentation/src/pages/recipes/data/recipes/rpi-plan.yaml | 87 | ### Step 3: Plan Structure Development | COMMENT |
| LOW | …mentation/src/pages/recipes/data/recipes/rpi-plan.yaml | 108 | ### Step 4: Detailed Plan Writing | COMMENT |
| LOW | …tation/src/pages/recipes/data/recipes/rpi-iterate.yaml | 13 | ### Step 1: Read and Understand Current Plan | COMMENT |
| LOW | …tation/src/pages/recipes/data/recipes/rpi-iterate.yaml | 25 | ### Step 2: Research If Needed | COMMENT |
| LOW | …tation/src/pages/recipes/data/recipes/rpi-iterate.yaml | 40 | ### Step 3: Present Understanding and Approach | COMMENT |
| LOW | …tation/src/pages/recipes/data/recipes/rpi-iterate.yaml | 62 | ### Step 4: Update the Plan | COMMENT |
| LOW | …tation/src/pages/recipes/data/recipes/rpi-iterate.yaml | 81 | ### Step 5: Sync and Review | COMMENT |
| LOW | crates/goose-sdk/examples/acp_client.rs | 101 | // Step 1: Initialize | COMMENT |
| LOW | crates/goose-sdk/examples/acp_client.rs | 115 | // Step 2: Create a session and send the prompt | COMMENT |
| LOW⚡ | workflow_recipes/release_risk_check/recipe.yaml | 6 | ## Step 1: Generate the heuristic report | COMMENT |
| LOW⚡ | workflow_recipes/release_risk_check/recipe.yaml | 14 | ## Step 2: AI review of MEDIUM and HIGH risk PRs | COMMENT |
| LOW | workflow_recipes/release_risk_check/recipe.yaml | 93 | ## Step 3: Generate the final report | COMMENT |
| LOW⚡ | …flow_recipes/release_risk_check/release_risk_report.py | 356 | # Step 1: Find the release PR | COMMENT |
| LOW⚡ | …flow_recipes/release_risk_check/release_risk_report.py | 366 | # Step 2: Get PR body and extract linked PR numbers | COMMENT |
| LOW | …flow_recipes/release_risk_check/release_risk_report.py | 379 | # Step 3: Fetch details for each PR in parallel | COMMENT |
| LOW⚡ | …flow_recipes/release_risk_check/release_risk_report.py | 404 | # Step 4: Filter and assess | COMMENT |
| LOW | …flow_recipes/release_risk_check/release_risk_report.py | 423 | # Step 5: Generate report | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | download_cli.sh | 254 | # Create a temporary directory for extraction | COMMENT |
| MEDIUM | ui/desktop/src/images/prepare.sh | 7 | # Create main application icons from icon.svg | COMMENT |
| MEDIUM | scripts/run-benchmarks.sh | 85 | # Create a results summary file | COMMENT |
| MEDIUM | scripts/goose-db-helper.sh | 744 | echo " # Create a backup" | CODE |
| MEDIUM⚡ | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 75 | df_subset = df[selected_columns].copy() # Create a copy to avoid SettingWithCopyWarning | CODE |
| MEDIUM | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 94 | # Create a row with basic identification | COMMENT |
| MEDIUM | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 207 | # Create a dataframe from all rows | COMMENT |
| MEDIUM | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 229 | # Create a minimal dataframe with just the grouping columns | COMMENT |
| MEDIUM | .github/workflows/build-cli-linux.yml | 184 | # Create a directory for the package contents | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …umentation/blog/2025-08-04-mcp-jupyter-server/index.md | 57 | > <span style={{color: '#059669', fontWeight: 'bold'}}>AI:</span> "Perfect! I'll create histograms for age and income, p | CODE |
| HIGH | …umentation/blog/2025-08-04-mcp-jupyter-server/index.md | 77 | > <span style={{color: '#059669', fontWeight: 'bold'}}>AI:</span> "I'll add L2 regularization and test different alpha v | CODE |
| HIGH | …umentation/blog/2025-08-04-mcp-jupyter-server/index.md | 97 | > <span style={{color: '#059669', fontWeight: 'bold'}}>AI:</span> "Done! I've updated the column reference and converted | CODE |
| HIGH | crates/goose-provider-types/src/formats/ollama.rs | 265 | let content = r#"I'll create the file for you. | CODE |
| HIGH | crates/goose-provider-types/src/formats/ollama.rs | 325 | let content = r#"I'll create a file at /tmp/hello.txt with the content "hello". | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/scripts/community_stars.py | 86 | CODE | |
| LOW | documentation/scripts/community_stars.py | 141 | CODE | |
| LOW | documentation/scripts/community_stars.py | 184 | CODE | |
| LOW | documentation/automation/gdk-api/generate.py | 294 | CODE | |
| LOW | evals/harbor/reporter.py | 379 | CODE | |
| LOW | crates/goose-sdk/examples/uniffi/provider.py | 20 | CODE | |
| LOW | crates/goose-sdk/scripts/gdk-release.py | 103 | CODE | |
| LOW | …flow_recipes/release_risk_check/release_risk_report.py | 202 | CODE | |
| LOW | …flow_recipes/release_risk_check/release_risk_report.py | 347 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 86 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 202 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 278 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 516 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 604 | CODE | |
| LOW | scripts/diagnostics-viewer.py | 283 | CODE | |
| LOW | scripts/provider-error-proxy/proxy.py | 624 | CODE | |
| LOW | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 23 | CODE | |
| LOW | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 40 | CODE | |
| LOW | …ipts/bench-postprocess-scripts/generate_leaderboard.py | 111 | CODE | |
| LOW | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 46 | CODE | |
| LOW | …bench-postprocess-scripts/prepare_aggregate_metrics.py | 72 | CODE | |
| LOW | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 34 | CODE | |
| LOW | …ess-scripts/llm-judges/calculate_final_scores_vibes.py | 12 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/diagnostics-viewer.py | 484 | except Exception: | CODE |
| HIGH | scripts/diagnostics-viewer.py | 423 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/diagnostics-viewer.py | 430 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/diagnostics-viewer.py | 639 | except json.JSONDecodeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/docs/guides/environment-variables.md | 186 | # Disable automatic AI-generated session naming (useful for CI/headless runs) | COMMENT |
| HIGH | .github/workflows/goose-release-notes.yml | 4 | # Updates the GitHub release with AI-generated categorized notes and posts to Discord. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …s/goose-provider-types/src/formats/openai_responses.rs | 3127 | "content": [{"type": "refusal", "refusal": "I'm unable to assist."}] | CODE |
| MEDIUM | …s/goose-provider-types/src/formats/openai_responses.rs | 3134 | assert_eq!(t.text, "I'm unable to assist."); | CODE |
| MEDIUM | crates/goose-cli/src/commands/review/orchestrator.rs | 924 | "Sure, here are the findings:\n{\"findings\":[]}\n\nLet me know if you need more."; | CODE |
| MEDIUM | crates/goose/src/providers/sagemaker_tgi.rs | 270 | // This is a basic implementation - for production use, consider using a proper HTML parser | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/desktop/electron-builder.nsis.yml | 40 | # Per-user updates never elevate, and packing the helper would write into the packaged directory. | COMMENT |
| MEDIUM | crates/goose-cli/src/commands/review/orchestrator.rs | 227 | /// the same robust JSON extraction and error reporting. | COMMENT |
| MEDIUM | …/tests/mcp_replays/github-mcp-serverstdio.results.json | 14 | "text": "<div align=\"center\">\n\n# goose\n\n_a local, extensible, open source AI agent that automates engine | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/src/pages/community/data/README.md | 17 | "name": "John Doe", | CODE |
| LOW | …se-providers/src/declarative/definitions/lemonade.json | 31 | "placeholder": "http://localhost:13305" | CODE |
| LOW | …se-providers/src/declarative/definitions/lmstudio.json | 31 | "placeholder": "http://localhost:1234/v1/chat/completions" | CODE |
| LOW | …providers/src/declarative/definitions/atomic_chat.json | 31 | "placeholder": "http://localhost:1337", | CODE |
| LOW | crates/goose-cli/src/commands/recipe.rs | 473 | assert_eq!(map.get("email"), Some(&"user@example.com".to_string())); | CODE |
| LOW | crates/goose/acp-schema.json | 2371 | "placeholder": { | CODE |
| LOW | crates/goose/src/providers/gcpauth.rs | 673 | client_email: "test@test.com".to_string(), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/automation/gdk-api/generate.py | 13 | CODE | |
| LOW | evals/harbor/runner.py | 3 | CODE | |
| LOW | evals/harbor/cmd.py | 17 | CODE | |
| LOW | evals/harbor/reporter.py | 3 | CODE | |
| LOW | evals/harbor/agent.py | 3 | CODE | |
| LOW | crates/goose-sdk/scripts/gdk-release.py | 7 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | evals/harbor/agent.py | 137 | result = await self.exec_as_agent(environment, command="id -u && id -g", timeout_sec=10) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ipts/bench-postprocess-scripts/llm-judges/llm_judge.py | 35 | Evaluate response using OpenAI's API. Args: prompt: System prompt for evaluation text: Text to | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | download_cli.sh | 13 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test_subrecipes.sh | 45 | // TODO: Add error handling | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/provider-error-proxy/proxy.py | 44 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/provider-error-proxy/proxy.py | 510 | async def handle_request(self, request: Request) -> Response: | CODE |