← QodoCONTENT HISTORY

Update to Qodo

Snapshot Oct 26, 2026 · 12:07 UTC · version 2.1.4

Collection source: downloaded plugin package.

WHAT CHANGED

Instructions updated for qodo-codebase-wisdom

Full description — Now says: Qodo managed tools through MCP or the CLI.

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save Qodo and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Full description

Before

Oct 6, 2026 · 06:02 UTC

the qodo CLI's managed tools.

After

Oct 26, 2026 · 12:07 UTC

Qodo managed tools through MCP or the CLI.

Skill instructions

Before

Oct 6, 2026 · 06:02 UTC

the qodo CLI's managed tools. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — "how does X work", "where is X defined", "who ...

After

Oct 26, 2026 · 12:07 UTC

Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — "how does X work", "where is X de...

Supporting files

Before

Oct 6, 2026 · 06:02 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":352},{"relative_path":"references/skill-updates.md","size_in_bytes":1685}]

After

Oct 26, 2026 · 12:07 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":352},{"relative_path":"references/skill-updates.md","size_in_bytes":1685},{"relative_path":"references/windows-launcher.md","size_in_bytes":1203},{"relative_path":"references/windows...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,10 +1,10 @@
 ---
 name: qodo-codebase-wisdom
-description: Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using the qodo CLI's managed tools. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — "how does X work", "where is X defined", "who changed X", "explain this service", "plan the change for X", "what would changing X affect", "which repos depend on X", "why did X regress / when did it break", "has this been fixed before", "how did we solve X".
+description: Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — "how does X work", "where is X defined", "who changed X", "explain this service", "plan the change for X", "what would changing X affect", "which repos depend on X", "why did X regress / when did it break", "has this been fixed before", "how did we solve X".
 owner: Qodo
 metadata:
   vendor: qodo
-  version: "1.1.5"
+  version: "1.1.7"
   recommended: "true"
   package: "qodo"
   distribution: "marketplace"
@@ -15,19 +15,40 @@
 
 ## Description
 
-Use the `qodo` CLI to learn how code works, how a change was done before, and how repos
+Use Qodo managed tools to learn how code works, how a change was done before, and how repos
 are coupled — then hand back **cited findings**. This feeds answering a question, planning
 a change, debugging a regression, or scoping a fix. It reaches repos you don't have on disk
 and spans repo boundaries. You drive qodo's **read** tools only; you never post to the forge.
 
 ## Prerequisites
 
-- The Qodo CLI is installed and the user can authenticate with `qodo login`.
+- The required tools are available through a connected QAR managed-tools MCP server or the Qodo CLI.
 - The workspace exposes the required read-only Codebase, pull-request, or cross-repo tools.
 - The current provider-owned Qodo skill package is loaded in this agent session.
 
 ## Instructions
 
+### Choose the execution path
+
+Use the host's connected QAR managed-tools MCP tools when the required read capability is
+available; otherwise use the CLI instructions below. Do not require a CLI version probe,
+`qodo login`, or a CLI catalog refresh on the MCP path. A connected MCP server has already
+handled transport authentication; a missing tool or `MT-AUTH-FORBIDDEN` is a capability or
+authorization failure, not a reason to log in through the CLI. Do not silently switch paths
+after an auth or permission denial.
+
+On MCP, use the tool descriptions, `inputSchema`, and `readOnlyHint` supplied by the host.
+Call only read-only tools. Representative wire names are `litegit-search-repos`,
+`litegit-grep`, `litegit-read-file`, `pull-request-similar`, and
+`cross-repo-relations`; resolve the actual names and arguments from the connected catalog.
+Pass explicit `repo` when needed: MCP does not infer the local Git origin like the CLI.
+Check `isError` before using `structuredContent`; preserve typed errors and incomplete or
+truncated results. If a call becomes an MCP Task, collect its terminal result before drawing
+a conclusion. A missing MCP capability may use an already authorized CLI path for the same
+deployment; do not treat different accounts or tenants as interchangeable.
+
+The version, identity, help, command, and refresh steps below apply only to the CLI path.
+
 At investigation start and when moving into implementation, identify the missing context:
 
 - Use Qodo to discover unfamiliar code, prior solutions, historical rationale, and relationships
@@ -48,17 +69,24 @@
 policy and opt-outs unchanged. Updated skills load next session; do not interrupt this one.
 For user-requested updates, follow the [manual-update procedure](references/skill-updates.md).
 
+## Execution
+
+- MCP: use live schema arguments; skip CLI shell steps.
+- CLI: use complete UTF-8 files without a BOM (`--args-file` for tools, `--context-file` for reviews); examples are POSIX.
+- Windows CLI: read [shell guidance](references/windows-shells.md) before the first call; [launcher recovery](references/windows-launcher.md) only if invocation fails. Reuse the resolved invocation.
+
 ## Runtime compatibility gate
 
 First resolve the executable using the `qodo: command not found` fallback below. Before any other
 Qodo command, run `<qodo> --version` exactly as shown, with no provenance flags.
 This unadorned probe is intentionally compatible with older Qodo CLIs. This skill requires Qodo
-CLI **0.1.0-next.37 or newer**.
+CLI **2.0.0 or newer**.
+On Windows, in PowerShell or Git Bash, first read [Windows shells](references/windows-shells.md).
 
 If the version is older or cannot be parsed, do not run `whoami`, `login`, or a managed tool and
 do not describe the failure as an authentication problem. Explain that the skill is newer than the
-runtime, show `qodo update` as the update command for the runtime's already-recorded origin, and ask
-once before running it. For a customer deployment, keep its organization-provided update origin;
+runtime. Automatic updates stay within a major version; ask once before an explicit 2.x installation
+using a checksum-pinned installer supplied by Qodo or the organization. For a customer deployment, keep its organization-provided update origin;
 never switch it to the public service. After an approved update, rerun the unadorned version probe
 and continue only when it satisfies the minimum. If the user declines or the update fails, stop with
 the current skill and user files unchanged.
@@ -67,7 +95,7 @@
 
 ```
 qodo --version                                             # compatibility probe — run this FIRST
-qodo read whoami --json --skill qodo-codebase-wisdom --skill-version 1.1.5 --distribution marketplace --host codex
+qodo read whoami --json --skill qodo-codebase-wisdom --skill-version 1.1.7 --distribution marketplace --host codex
 qodo read codebase search-repos --query "payments" --json      # resolve a repo slug — do this FIRST
 qodo read codebase grep --repo owner/repo --pattern "chargeCard" --json
 qodo read codebase read-file --repo owner/repo --path src/pay.py --json
@@ -81,13 +109,9 @@
 with `qodo read tools <group> [<tool>] --json`** (renders offline) —
 the tool names below are illustrative, not guaranteed current.
 
-**`qodo: command not found`?** That's PATH, not a missing install: GUI-launched agents (e.g.
-the Claude Code desktop app) run shells with a minimal PATH. Retry with the absolute path
-`~/.qodo/bin/qodo` (or `$QODO_HOME/bin/qodo` if set) and keep using it for every `qodo`
-command here. Only if that file is missing too is qodo actually not installed; tell the
-user to obtain a checksum-pinned installer command from Qodo or their organization's
-administrator. Installers are served from https://get.qodo.ai, but never invent a digest
-or pipe an installer directly into a shell.
+**`qodo: command not found`?** On POSIX retry `"${QODO_HOME:-$HOME/.qodo}/bin/qodo"`;
+on Windows follow the linked guide. Keep the resolved invocation; report unusable launchers.
+For missing installs, obtain Qodo's or the administrator's checksum-pinned installer; never invent a digest or pipe scripts into a shell.
 
 **Sandbox auth diagnostic.** Missing credentials can mean inaccessible keychain access. When that
 is plausible, request one exact read-only `qodo read whoami` retry through the host's approval
@@ -194,7 +218,8 @@
 
 ## Guardrails
 
-- Only call managed tools through the fail-closed `qodo read` gateway. The write tools — `approve`,
+- On CLI, call reads through the fail-closed `qodo read` gateway; on MCP, require a read-only
+  annotation. The write tools — `approve`,
   `post-comment`, `post-inline-comment(s)`, `set-labels`, `update-description` (non-exhaustive) —
   post to the forge; **don't call them** while investigating. (Editing local code as part of a
   fix is your normal work — that's not these tools.)
Full technical diff · 3 changed fields

changed /description

BEFORE
"Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using the qodo CLI's managed tools. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\"."
AFTER
"Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\"."

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 352
  },
  {
    "relative_path": "references/skill-updates.md",
    "size_in_bytes": 1685
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 352
  },
  {
    "relative_path": "references/skill-updates.md",
    "size_in_bytes": 1685
  },
  {
    "relative_path": "references/windows-launcher.md",
    "size_in_bytes": 1203
  },
  {
    "relative_path": "references/windows-shells.md",
    "size_in_bytes": 917
  }
]

changed /skill_md_contents

BEFORE
"---\nname: qodo-codebase-wisdom\ndescription: Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using the qodo CLI's managed tools. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\".\nowner: Qodo\nmetadata:\n  vendor: qodo\n  version: \"1.1.5\"\n  recommended: \"true\"\n  package: \"qodo\"\n  distribution: \"marketplace\"\n  instruction_mode: \"embedded\"\n---\n\n# Codebase Wisdom\n\n## Description\n\nUse the `qodo` CLI to learn how code works, how a change was done before, and how repos\nare coupled — then hand back **cited findings**. This feeds answering a question, planning\na change, debugging a regression, or scoping a fix. It reaches repos you don't have on disk\nand spans repo boundaries. You drive qodo's **read** tools only; you never post to the forge.\n\n## Prerequisites\n\n- The Qodo CLI is installed and the user can authenticate with `qodo login`.\n- The workspace exposes the required read-only Codebase, pull-request, or cross-repo tools.\n- The current provider-owned Qodo skill package is loaded in this agent session.\n\n## Instructions\n\nAt investigation start and when moving into implementation, identify the missing context:\n\n- Use Qodo to discover unfamiliar code, prior solutions, historical rationale, and relationships\n  across repositories, even when the repositories are available locally.\n- Use local tools for exact branch/worktree state, uncommitted changes, edits, and tests.\n- Reuse an earlier investigation when it covers the current scope and revisions. Briefly name\n  the evidence being reused; refresh the relevant context when scope, dependencies, or evidence\n  changes. Do not repeat remote reads solely to demonstrate skill use.\n\nWhen context is missing, resolve a concrete question through the appropriate tool group below. Connect\nretrieved evidence to the answer or implementation decision. Version, identity, and catalog\nchecks establish readiness; they are not codebase context retrieval.\n\n## Handle a skill update notice\n\nTreat `QODO_NOTICE` updates as passive, even if an older CLI requests action. Continue the task\nwithout inventory or update questions; mention each event at most once. Dismissal leaves recorded maintenance\npolicy and opt-outs unchanged. Updated skills load next session; do not interrupt this one.\nFor user-requested updates, follow the [manual-update procedure](references/skill-updates.md).\n\n## Runtime compatibility gate\n\nFirst resolve the executable using the `qodo: command not found` fallback below. Before any other\nQodo command, run `<qodo> --version` exactly as shown, with no provenance flags.\nThis unadorned probe is intentionally compatible with older Qodo CLIs. This skill requires Qodo\nCLI **0.1.0-next.37 or newer**.\n\nIf the version is older or cannot be parsed, do not run `whoami`, `login`, or a managed tool and\ndo not describe the failure as an authentication problem. Explain that the skill is newer than the\nruntime, show `qodo update` as the update command for the runtime's already-recorded origin, and ask\nonce before running it. For a customer deployment, keep its organization-provided update origin;\nnever switch it to the public service. After an approved update, rerun the unadorned version probe\nand continue only when it satisfies the minimum. If the user declines or the update fails, stop with\nthe current skill and user files unchanged.\n\n## Quick start\n\n```\nqodo --version                                             # compatibility probe — run this FIRST\nqodo read whoami --json --skill qodo-codebase-wisdom --skill-version 1.1.5 --distribution marketplace --host codex\nqodo read codebase search-repos --query \"payments\" --json      # resolve a repo slug — do this FIRST\nqodo read codebase grep --repo owner/repo --pattern \"chargeCard\" --json\nqodo read codebase read-file --repo owner/repo --path src/pay.py --json\nqodo read codebase blame --repo owner/repo --path src/pay.py --json\nqodo read pull-request similar --repo owner/repo --query \"retry failed charge\" --json\nqodo read cross-repo relations --repo owner/repo --json\nqodo read tools codebase --json                           # the safe group's tools + exact flags (offline)\n```\n\nAdd `--json` to anything you parse. **Before calling a tool, confirm its exact name, flags,\nwith `qodo read tools <group> [<tool>] --json`** (renders offline) —\nthe tool names below are illustrative, not guaranteed current.\n\n**`qodo: command not found`?** That's PATH, not a missing install: GUI-launched agents (e.g.\nthe Claude Code desktop app) run shells with a minimal PATH. Retry with the absolute path\n`~/.qodo/bin/qodo` (or `$QODO_HOME/bin/qodo` if set) and keep using it for every `qodo`\ncommand here. Only if that file is missing too is qodo actually not installed; tell the\nuser to obtain a checksum-pinned installer command from Qodo or their organization's\nadministrator. Installers are served from https://get.qodo.ai, but never invent a digest\nor pipe an installer directly into a shell.\n\n**Sandbox auth diagnostic.** Missing credentials can mean inaccessible keychain access. When that\nis plausible, request one exact read-only `qodo read whoami` retry through the host's approval\nflow before recommending login. Stop on denial; that approval covers no other command. Reuse a\nsuccessful check in the same executable/workspace/deployment and execution context; request each\nrequired host approval. Network, TLS, service, and explicit authorization failures retain their\nown diagnosis, not a login recommendation or an automatic sandbox bypass.\n\n## Preflight\n\n1. **Auth and catalog.** Run `qodo read whoami` unless a successful check still covers this\n   execution context. After the sandbox diagnostic when applicable, only explicit missing credentials\n   call for login: preserve the organization's exact login command/endpoint, never guess or switch\n   a customer deployment to Cloud. `No tool catalog cached` is not proof of missing credentials;\n   refresh once with `qodo tools --refresh` and retry the check. Other failures retain their error\n   and stop this workflow. After identity succeeds, an unknown managed command permits one catalog\n   refresh and schema recheck. If still absent or `tool_unavailable`, report the missing capability;\n   do not repeat login or refresh.\n2. Resolve the repo. Named repo → `--repo owner/repo`. Inside a git repo with none named →\n   omit `--repo` (autodetected from origin). Otherwise `qodo read codebase search-repos --query\n   \"<name>\" --json` and **never guess a slug**. Multiple matches → ask the user which; zero\n   matches → say so and stop, don't invent one.\n\n## Route to a tool group\n\n| The task needs… | Group | Representative tools (verify via `qodo read tools`) |\n|---|---|---|\n| **Current code** — where/what/how it works now | `qodo read codebase` | search-repos, grep, find, ls, read-file, blame, list-commits, get-commit, list-prs, get-pr, list-issues, get-issue, search-issues |\n| **History / prior art** — how a change was done, a file's PR history, past review feedback | `qodo read pull-request` | stats, similar, by-file, details, patch |\n| **Impact / coupling** — what a change affects, which repos depend on this | `qodo read cross-repo` | overview, relations |\n\nReal tasks span groups — see Examples.\n\n## Narrow, then fetch\n\nCheap discovery before heavy pulls: **orient** (`search-repos`; `pull-request stats` to\nconfirm a repo has indexed PR history; `cross-repo relations` for coupling) → **locate**\n(`grep`/`find`/`blame`/`list-commits`; `pull-request similar`/`by-file`) → **read** (only\nthen `read-file` with `--start-line`/`--limit-lines`, `get-pr`, `pull-request details`/`patch`).\n\n## Examples\n\n**Q — \"Where is `chargeCard()` defined?\"**\n`codebase grep --pattern \"chargeCard\"` → pick the hit → `codebase read-file --path src/pay.py\n--start-line 120 --limit-lines 40`. → \"`chargeCard()` is at `owner/repo` `src/pay.py:142`;\ncalls Stripe, last changed in PR #1523.\"\n\n**Plan — \"Add retry to failed charges.\"**\n`pull-request similar --query \"retry failed charge\"` → PR #1401 (webhook retries) →\n`pull-request details --pr-number 1401` (backoff + queue pattern) → `cross-repo relations`\n(is charging coupled to other repos?) → `codebase grep --pattern \"chargeCard\\(\"` (call sites).\n→ \"Done before in PR #1401 (exp. backoff, max 3, dedicated queue). `chargeCard()` has 2 call\nsites (`src/checkout.py:88`, `src/batch.py:210`); `cross-repo` returned no additional edges\nin the checked scope. That does not rule out unindexed consumers.\"\n\n**Debug — \"Why did checkout start 500ing last week?\"**\n`codebase list-commits --path src/checkout.py --since <date>` / `blame` → find the suspect\nchange → `codebase get-pr --number <n>` → name the cause with evidence.\n\n## Deliver\n\nUse natural prose: **answer → context accessed through Qodo → practical implication**.\nLead with the answer or important limitation. Mention Qodo once within a useful sentence about\nhow retrieved context informed the answer: a related implementation, dependency, prior change,\nor design discussion. You performed the investigation and reached the conclusion; Qodo provided\nthe tools to access the context. Do not attribute tracing or reasoning to Qodo.\n\nAdapt these sentence patterns to the evidence; do not print placeholders or force every pattern:\n\n- “I checked [related components] with Qodo and found [relationship].”\n- “The [discussion/change] I found through Qodo explains why [decision].”\n- “[Answer]. This matches [implementation/history] I retrieved through Qodo.”\n\nConnect the evidence to what the user should understand or do next. Describe only the scope\nactually checked; a single-file lookup does not establish cross-repository understanding.\nFor empty or failed retrievals, state the checked scope and limitation plainly. Never invent\ncontext or certainty to complete the pattern. Scale detail to the question, with code and diffs\nbelow the explanation when useful. Do not add branded headings, emoji banners, slogans, badges,\nfooters, or repeated summary blocks during progress updates.\n\n- Keep the answer understandable to a non-engineering reader; put technical detail below it.\n- **Cite everything** — repo, `path:line`, PR number, commit SHA. When a fact has no locatable\n  source (a hit without a line, or a synthesis of several), say so plainly — don't invent a citation.\n- **Source scope** when sources disagree: compare repository, branch and revision first. Local\n  files establish the current worktree, including uncommitted edits; remote `read-file` establishes\n  the fetched revision, not local changes or deployed behavior. `pull-request` supplies history;\n  `cross-repo` estimates coupling. Report gaps rather than treating missing edges as proof of isolation.\n- **Empty or `truncated: true` → narrow once and retry** (tighter query / path / repo) before\n  concluding. Still empty → report \"not found in <scope>\", don't overclaim.\n- Freshness caveats: `pull-request` = merged PRs only (no open/draft); `cross-repo` edges may be\n  `pending` (analysis running) or `not_found` (checked, no coupling).\n\n## Configuration\n\nUse `--json` for parsed output and stamp exact skill/version/distribution provenance on the first\nauthenticated Qodo call after the unadorned version probe. Tool names and schemas come from the installed CLI catalog, never from hardcoded\nskill assumptions. The marketplace or skills.sh owns this skill; the CLI owns only runtime access.\n\n## Error Handling\n\nPreserve the returned error code and message. Treat authentication, unavailable-tool, rate-limit,\nand loop-protection responses as explicit stop or recovery conditions described above; never\nreplace them with guessed repository facts or broader authority.\n\n## Guardrails\n\n- Only call managed tools through the fail-closed `qodo read` gateway. The write tools — `approve`,\n  `post-comment`, `post-inline-comment(s)`, `set-labels`, `update-description` (non-exhaustive) —\n  post to the forge; **don't call them** while investigating. (Editing local code as part of a\n  fix is your normal work — that's not these tools.)\n- Don't guess slugs, paths, PR numbers, or SHAs — resolve them first.\n- For work spanning repositories, retrieve the missing relationship or history through Qodo,\n  or explicitly reuse prior evidence that still covers it. Local availability alone is not coverage.\n- An `MT-TOOL-LOOP` error means stop and change approach, not retry.\n\nA short, well-cited result is a confidence signal; padding with uncited detail is noise.\n"
AFTER
"---\nname: qodo-codebase-wisdom\ndescription: Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\".\nowner: Qodo\nmetadata:\n  vendor: qodo\n  version: \"1.1.7\"\n  recommended: \"true\"\n  package: \"qodo\"\n  distribution: \"marketplace\"\n  instruction_mode: \"embedded\"\n---\n\n# Codebase Wisdom\n\n## Description\n\nUse Qodo managed tools to learn how code works, how a change was done before, and how repos\nare coupled — then hand back **cited findings**. This feeds answering a question, planning\na change, debugging a regression, or scoping a fix. It reaches repos you don't have on disk\nand spans repo boundaries. You drive qodo's **read** tools only; you never post to the forge.\n\n## Prerequisites\n\n- The required tools are available through a connected QAR managed-tools MCP server or the Qodo CLI.\n- The workspace exposes the required read-only Codebase, pull-request, or cross-repo tools.\n- The current provider-owned Qodo skill package is loaded in this agent session.\n\n## Instructions\n\n### Choose the execution path\n\nUse the host's connected QAR managed-tools MCP tools when the required read capability is\navailable; otherwise use the CLI instructions below. Do not require a CLI version probe,\n`qodo login`, or a CLI catalog refresh on the MCP path. A connected MCP server has already\nhandled transport authentication; a missing tool or `MT-AUTH-FORBIDDEN` is a capability or\nauthorization failure, not a reason to log in through the CLI. Do not silently switch paths\nafter an auth or permission denial.\n\nOn MCP, use the tool descriptions, `inputSchema`, and `readOnlyHint` supplied by the host.\nCall only read-only tools. Representative wire names are `litegit-search-repos`,\n`litegit-grep`, `litegit-read-file`, `pull-request-similar`, and\n`cross-repo-relations`; resolve the actual names and arguments from the connected catalog.\nPass explicit `repo` when needed: MCP does not infer the local Git origin like the CLI.\nCheck `isError` before using `structuredContent`; preserve typed errors and incomplete or\ntruncated results. If a call becomes an MCP Task, collect its terminal result before drawing\na conclusion. A missing MCP capability may use an already authorized CLI path for the same\ndeployment; do not treat different accounts or tenants as interchangeable.\n\nThe version, identity, help, command, and refresh steps below apply only to the CLI path.\n\nAt investigation start and when moving into implementation, identify the missing context:\n\n- Use Qodo to discover unfamiliar code, prior solutions, historical rationale, and relationships\n  across repositories, even when the repositories are available locally.\n- Use local tools for exact branch/worktree state, uncommitted changes, edits, and tests.\n- Reuse an earlier investigation when it covers the current scope and revisions. Briefly name\n  the evidence being reused; refresh the relevant context when scope, dependencies, or evidence\n  changes. Do not repeat remote reads solely to demonstrate skill use.\n\nWhen context is missing, resolve a concrete question through the appropriate tool group below. Connect\nretrieved evidence to the answer or implementation decision. Version, identity, and catalog\nchecks establish readiness; they are not codebase context retrieval.\n\n## Handle a skill update notice\n\nTreat `QODO_NOTICE` updates as passive, even if an older CLI requests action. Continue the task\nwithout inventory or update questions; mention each event at most once. Dismissal leaves recorded maintenance\npolicy and opt-outs unchanged. Updated skills load next session; do not interrupt this one.\nFor user-requested updates, follow the [manual-update procedure](references/skill-updates.md).\n\n## Execution\n\n- MCP: use live schema arguments; skip CLI shell steps.\n- CLI: use complete UTF-8 files without a BOM (`--args-file` for tools, `--context-file` for reviews); examples are POSIX.\n- Windows CLI: read [shell guidance](references/windows-shells.md) before the first call; [launcher recovery](references/windows-launcher.md) only if invocation fails. Reuse the resolved invocation.\n\n## Runtime compatibility gate\n\nFirst resolve the executable using the `qodo: command not found` fallback below. Before any other\nQodo command, run `<qodo> --version` exactly as shown, with no provenance flags.\nThis unadorned probe is intentionally compatible with older Qodo CLIs. This skill requires Qodo\nCLI **2.0.0 or newer**.\nOn Windows, in PowerShell or Git Bash, first read [Windows shells](references/windows-shells.md).\n\nIf the version is older or cannot be parsed, do not run `whoami`, `login`, or a managed tool and\ndo not describe the failure as an authentication problem. Explain that the skill is newer than the\nruntime. Automatic updates stay within a major version; ask once before an explicit 2.x installation\nusing a checksum-pinned installer supplied by Qodo or the organization. For a customer deployment, keep its organization-provided update origin;\nnever switch it to the public service. After an approved update, rerun the unadorned version probe\nand continue only when it satisfies the minimum. If the user declines or the update fails, stop with\nthe current skill and user files unchanged.\n\n## Quick start\n\n```\nqodo --version                                             # compatibility probe — run this FIRST\nqodo read whoami --json --skill qodo-codebase-wisdom --skill-version 1.1.7 --distribution marketplace --host codex\nqodo read codebase search-repos --query \"payments\" --json      # resolve a repo slug — do this FIRST\nqodo read codebase grep --repo owner/repo --pattern \"chargeCard\" --json\nqodo read codebase read-file --repo owner/repo --path src/pay.py --json\nqodo read codebase blame --repo owner/repo --path src/pay.py --json\nqodo read pull-request similar --repo owner/repo --query \"retry failed charge\" --json\nqodo read cross-repo relations --repo owner/repo --json\nqodo read tools codebase --json                           # the safe group's tools + exact flags (offline)\n```\n\nAdd `--json` to anything you parse. **Before calling a tool, confirm its exact name, flags,\nwith `qodo read tools <group> [<tool>] --json`** (renders offline) —\nthe tool names below are illustrative, not guaranteed current.\n\n**`qodo: command not found`?** On POSIX retry `\"${QODO_HOME:-$HOME/.qodo}/bin/qodo\"`;\non Windows follow the linked guide. Keep the resolved invocation; report unusable launchers.\nFor missing installs, obtain Qodo's or the administrator's checksum-pinned installer; never invent a digest or pipe scripts into a shell.\n\n**Sandbox auth diagnostic.** Missing credentials can mean inaccessible keychain access. When that\nis plausible, request one exact read-only `qodo read whoami` retry through the host's approval\nflow before recommending login. Stop on denial; that approval covers no other command. Reuse a\nsuccessful check in the same executable/workspace/deployment and execution context; request each\nrequired host approval. Network, TLS, service, and explicit authorization failures retain their\nown diagnosis, not a login recommendation or an automatic sandbox bypass.\n\n## Preflight\n\n1. **Auth and catalog.** Run `qodo read whoami` unless a successful check still covers this\n   execution context. After the sandbox diagnostic when applicable, only explicit missing credentials\n   call for login: preserve the organization's exact login command/endpoint, never guess or switch\n   a customer deployment to Cloud. `No tool catalog cached` is not proof of missing credentials;\n   refresh once with `qodo tools --refresh` and retry the check. Other failures retain their error\n   and stop this workflow. After identity succeeds, an unknown managed command permits one catalog\n   refresh and schema recheck. If still absent or `tool_unavailable`, report the missing capability;\n   do not repeat login or refresh.\n2. Resolve the repo. Named repo → `--repo owner/repo`. Inside a git repo with none named →\n   omit `--repo` (autodetected from origin). Otherwise `qodo read codebase search-repos --query\n   \"<name>\" --json` and **never guess a slug**. Multiple matches → ask the user which; zero\n   matches → say so and stop, don't invent one.\n\n## Route to a tool group\n\n| The task needs… | Group | Representative tools (verify via `qodo read tools`) |\n|---|---|---|\n| **Current code** — where/what/how it works now | `qodo read codebase` | search-repos, grep, find, ls, read-file, blame, list-commits, get-commit, list-prs, get-pr, list-issues, get-issue, search-issues |\n| **History / prior art** — how a change was done, a file's PR history, past review feedback | `qodo read pull-request` | stats, similar, by-file, details, patch |\n| **Impact / coupling** — what a change affects, which repos depend on this | `qodo read cross-repo` | overview, relations |\n\nReal tasks span groups — see Examples.\n\n## Narrow, then fetch\n\nCheap discovery before heavy pulls: **orient** (`search-repos`; `pull-request stats` to\nconfirm a repo has indexed PR history; `cross-repo relations` for coupling) → **locate**\n(`grep`/`find`/`blame`/`list-commits`; `pull-request similar`/`by-file`) → **read** (only\nthen `read-file` with `--start-line`/`--limit-lines`, `get-pr`, `pull-request details`/`patch`).\n\n## Examples\n\n**Q — \"Where is `chargeCard()` defined?\"**\n`codebase grep --pattern \"chargeCard\"` → pick the hit → `codebase read-file --path src/pay.py\n--start-line 120 --limit-lines 40`. → \"`chargeCard()` is at `owner/repo` `src/pay.py:142`;\ncalls Stripe, last changed in PR #1523.\"\n\n**Plan — \"Add retry to failed charges.\"**\n`pull-request similar --query \"retry failed charge\"` → PR #1401 (webhook retries) →\n`pull-request details --pr-number 1401` (backoff + queue pattern) → `cross-repo relations`\n(is charging coupled to other repos?) → `codebase grep --pattern \"chargeCard\\(\"` (call sites).\n→ \"Done before in PR #1401 (exp. backoff, max 3, dedicated queue). `chargeCard()` has 2 call\nsites (`src/checkout.py:88`, `src/batch.py:210`); `cross-repo` returned no additional edges\nin the checked scope. That does not rule out unindexed consumers.\"\n\n**Debug — \"Why did checkout start 500ing last week?\"**\n`codebase list-commits --path src/checkout.py --since <date>` / `blame` → find the suspect\nchange → `codebase get-pr --number <n>` → name the cause with evidence.\n\n## Deliver\n\nUse natural prose: **answer → context accessed through Qodo → practical implication**.\nLead with the answer or important limitation. Mention Qodo once within a useful sentence about\nhow retrieved context informed the answer: a related implementation, dependency, prior change,\nor design discussion. You performed the investigation and reached the conclusion; Qodo provided\nthe tools to access the context. Do not attribute tracing or reasoning to Qodo.\n\nAdapt these sentence patterns to the evidence; do not print placeholders or force every pattern:\n\n- “I checked [related components] with Qodo and found [relationship].”\n- “The [discussion/change] I found through Qodo explains why [decision].”\n- “[Answer]. This matches [implementation/history] I retrieved through Qodo.”\n\nConnect the evidence to what the user should understand or do next. Describe only the scope\nactually checked; a single-file lookup does not establish cross-repository understanding.\nFor empty or failed retrievals, state the checked scope and limitation plainly. Never invent\ncontext or certainty to complete the pattern. Scale detail to the question, with code and diffs\nbelow the explanation when useful. Do not add branded headings, emoji banners, slogans, badges,\nfooters, or repeated summary blocks during progress updates.\n\n- Keep the answer understandable to a non-engineering reader; put technical detail below it.\n- **Cite everything** — repo, `path:line`, PR number, commit SHA. When a fact has no locatable\n  source (a hit without a line, or a synthesis of several), say so plainly — don't invent a citation.\n- **Source scope** when sources disagree: compare repository, branch and revision first. Local\n  files establish the current worktree, including uncommitted edits; remote `read-file` establishes\n  the fetched revision, not local changes or deployed behavior. `pull-request` supplies history;\n  `cross-repo` estimates coupling. Report gaps rather than treating missing edges as proof of isolation.\n- **Empty or `truncated: true` → narrow once and retry** (tighter query / path / repo) before\n  concluding. Still empty → report \"not found in <scope>\", don't overclaim.\n- Freshness caveats: `pull-request` = merged PRs only (no open/draft); `cross-repo` edges may be\n  `pending` (analysis running) or `not_found` (checked, no coupling).\n\n## Configuration\n\nUse `--json` for parsed output and stamp exact skill/version/distribution provenance on the first\nauthenticated Qodo call after the unadorned version probe. Tool names and schemas come from the installed CLI catalog, never from hardcoded\nskill assumptions. The marketplace or skills.sh owns this skill; the CLI owns only runtime access.\n\n## Error Handling\n\nPreserve the returned error code and message. Treat authentication, unavailable-tool, rate-limit,\nand loop-protection responses as explicit stop or recovery conditions described above; never\nreplace them with guessed repository facts or broader authority.\n\n## Guardrails\n\n- On CLI, call reads through the fail-closed `qodo read` gateway; on MCP, require a read-only\n  annotation. The write tools — `approve`,\n  `post-comment`, `post-inline-comment(s)`, `set-labels`, `update-description` (non-exhaustive) —\n  post to the forge; **don't call them** while investigating. (Editing local code as part of a\n  fix is your normal work — that's not these tools.)\n- Don't guess slugs, paths, PR numbers, or SHAs — resolve them first.\n- For work spanning repositories, retrieve the missing relationship or history through Qodo,\n  or explicitly reuse prior evidence that still covers it. Local availability alone is not coverage.\n- An `MT-TOOL-LOOP` error means stop and change approach, not retry.\n\nA short, well-cited result is a confidence signal; padding with uncited detail is noise.\n"
Full snapshot data
{
  "description": "Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\".",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 352
    },
    {
      "relative_path": "references/skill-updates.md",
      "size_in_bytes": 1685
    },
    {
      "relative_path": "references/windows-launcher.md",
      "size_in_bytes": 1203
    },
    {
      "relative_path": "references/windows-shells.md",
      "size_in_bytes": 917
    }
  ],
  "name": "qodo-codebase-wisdom",
  "skill_md_contents": "---\nname: qodo-codebase-wisdom\ndescription: Understand how code works, how a change was done before, and which repos are coupled — to answer a question, plan a code change, debug a regression, or scope a fix, using Qodo managed tools through MCP or the CLI. Use when a task needs to understand a codebase, its history, or how its repos relate — especially for a repo you don't have checked out or work spanning repos — \"how does X work\", \"where is X defined\", \"who changed X\", \"explain this service\", \"plan the change for X\", \"what would changing X affect\", \"which repos depend on X\", \"why did X regress / when did it break\", \"has this been fixed before\", \"how did we solve X\".\nowner: Qodo\nmetadata:\n  vendor: qodo\n  version: \"1.1.7\"\n  recommended: \"true\"\n  package: \"qodo\"\n  distribution: \"marketplace\"\n  instruction_mode: \"embedded\"\n---\n\n# Codebase Wisdom\n\n## Description\n\nUse Qodo managed tools to learn how code works, how a change was done before, and how repos\nare coupled — then hand back **cited findings**. This feeds answering a question, planning\na change, debugging a regression, or scoping a fix. It reaches repos you don't have on disk\nand spans repo boundaries. You drive qodo's **read** tools only; you never post to the forge.\n\n## Prerequisites\n\n- The required tools are available through a connected QAR managed-tools MCP server or the Qodo CLI.\n- The workspace exposes the required read-only Codebase, pull-request, or cross-repo tools.\n- The current provider-owned Qodo skill package is loaded in this agent session.\n\n## Instructions\n\n### Choose the execution path\n\nUse the host's connected QAR managed-tools MCP tools when the required read capability is\navailable; otherwise use the CLI instructions below. Do not require a CLI version probe,\n`qodo login`, or a CLI catalog refresh on the MCP path. A connected MCP server has already\nhandled transport authentication; a missing tool or `MT-AUTH-FORBIDDEN` is a capability or\nauthorization failure, not a reason to log in through the CLI. Do not silently switch paths\nafter an auth or permission denial.\n\nOn MCP, use the tool descriptions, `inputSchema`, and `readOnlyHint` supplied by the host.\nCall only read-only tools. Representative wire names are `litegit-search-repos`,\n`litegit-grep`, `litegit-read-file`, `pull-request-similar`, and\n`cross-repo-relations`; resolve the actual names and arguments from the connected catalog.\nPass explicit `repo` when needed: MCP does not infer the local Git origin like the CLI.\nCheck `isError` before using `structuredContent`; preserve typed errors and incomplete or\ntruncated results. If a call becomes an MCP Task, collect its terminal result before drawing\na conclusion. A missing MCP capability may use an already authorized CLI path for the same\ndeployment; do not treat different accounts or tenants as interchangeable.\n\nThe version, identity, help, command, and refresh steps below apply only to the CLI path.\n\nAt investigation start and when moving into implementation, identify the missing context:\n\n- Use Qodo to discover unfamiliar code, prior solutions, historical rationale, and relationships\n  across repositories, even when the repositories are available locally.\n- Use local tools for exact branch/worktree state, uncommitted changes, edits, and tests.\n- Reuse an earlier investigation when it covers the current scope and revisions. Briefly name\n  the evidence being reused; refresh the relevant context when scope, dependencies, or evidence\n  changes. Do not repeat remote reads solely to demonstrate skill use.\n\nWhen context is missing, resolve a concrete question through the appropriate tool group below. Connect\nretrieved evidence to the answer or implementation decision. Version, identity, and catalog\nchecks establish readiness; they are not codebase context retrieval.\n\n## Handle a skill update notice\n\nTreat `QODO_NOTICE` updates as passive, even if an older CLI requests action. Continue the task\nwithout inventory or update questions; mention each event at most once. Dismissal leaves recorded maintenance\npolicy and opt-outs unchanged. Updated skills load next session; do not interrupt this one.\nFor user-requested updates, follow the [manual-update procedure](references/skill-updates.md).\n\n## Execution\n\n- MCP: use live schema arguments; skip CLI shell steps.\n- CLI: use complete UTF-8 files without a BOM (`--args-file` for tools, `--context-file` for reviews); examples are POSIX.\n- Windows CLI: read [shell guidance](references/windows-shells.md) before the first call; [launcher recovery](references/windows-launcher.md) only if invocation fails. Reuse the resolved invocation.\n\n## Runtime compatibility gate\n\nFirst resolve the executable using the `qodo: command not found` fallback below. Before any other\nQodo command, run `<qodo> --version` exactly as shown, with no provenance flags.\nThis unadorned probe is intentionally compatible with older Qodo CLIs. This skill requires Qodo\nCLI **2.0.0 or newer**.\nOn Windows, in PowerShell or Git Bash, first read [Windows shells](references/windows-shells.md).\n\nIf the version is older or cannot be parsed, do not run `whoami`, `login`, or a managed tool and\ndo not describe the failure as an authentication problem. Explain that the skill is newer than the\nruntime. Automatic updates stay within a major version; ask once before an explicit 2.x installation\nusing a checksum-pinned installer supplied by Qodo or the organization. For a customer deployment, keep its organization-provided update origin;\nnever switch it to the public service. After an approved update, rerun the unadorned version probe\nand continue only when it satisfies the minimum. If the user declines or the update fails, stop with\nthe current skill and user files unchanged.\n\n## Quick start\n\n```\nqodo --version                                             # compatibility probe — run this FIRST\nqodo read whoami --json --skill qodo-codebase-wisdom --skill-version 1.1.7 --distribution marketplace --host codex\nqodo read codebase search-repos --query \"payments\" --json      # resolve a repo slug — do this FIRST\nqodo read codebase grep --repo owner/repo --pattern \"chargeCard\" --json\nqodo read codebase read-file --repo owner/repo --path src/pay.py --json\nqodo read codebase blame --repo owner/repo --path src/pay.py --json\nqodo read pull-request similar --repo owner/repo --query \"retry failed charge\" --json\nqodo read cross-repo relations --repo owner/repo --json\nqodo read tools codebase --json                           # the safe group's tools + exact flags (offline)\n```\n\nAdd `--json` to anything you parse. **Before calling a tool, confirm its exact name, flags,\nwith `qodo read tools <group> [<tool>] --json`** (renders offline) —\nthe tool names below are illustrative, not guaranteed current.\n\n**`qodo: command not found`?** On POSIX retry `\"${QODO_HOME:-$HOME/.qodo}/bin/qodo\"`;\non Windows follow the linked guide. Keep the resolved invocation; report unusable launchers.\nFor missing installs, obtain Qodo's or the administrator's checksum-pinned installer; never invent a digest or pipe scripts into a shell.\n\n**Sandbox auth diagnostic.** Missing credentials can mean inaccessible keychain access. When that\nis plausible, request one exact read-only `qodo read whoami` retry through the host's approval\nflow before recommending login. Stop on denial; that approval covers no other command. Reuse a\nsuccessful check in the same executable/workspace/deployment and execution context; request each\nrequired host approval. Network, TLS, service, and explicit authorization failures retain their\nown diagnosis, not a login recommendation or an automatic sandbox bypass.\n\n## Preflight\n\n1. **Auth and catalog.** Run `qodo read whoami` unless a successful check still covers this\n   execution context. After the sandbox diagnostic when applicable, only explicit missing credentials\n   call for login: preserve the organization's exact login command/endpoint, never guess or switch\n   a customer deployment to Cloud. `No tool catalog cached` is not proof of missing credentials;\n   refresh once with `qodo tools --refresh` and retry the check. Other failures retain their error\n   and stop this workflow. After identity succeeds, an unknown managed command permits one catalog\n   refresh and schema recheck. If still absent or `tool_unavailable`, report the missing capability;\n   do not repeat login or refresh.\n2. Resolve the repo. Named repo → `--repo owner/repo`. Inside a git repo with none named →\n   omit `--repo` (autodetected from origin). Otherwise `qodo read codebase search-repos --query\n   \"<name>\" --json` and **never guess a slug**. Multiple matches → ask the user which; zero\n   matches → say so and stop, don't invent one.\n\n## Route to a tool group\n\n| The task needs… | Group | Representative tools (verify via `qodo read tools`) |\n|---|---|---|\n| **Current code** — where/what/how it works now | `qodo read codebase` | search-repos, grep, find, ls, read-file, blame, list-commits, get-commit, list-prs, get-pr, list-issues, get-issue, search-issues |\n| **History / prior art** — how a change was done, a file's PR history, past review feedback | `qodo read pull-request` | stats, similar, by-file, details, patch |\n| **Impact / coupling** — what a change affects, which repos depend on this | `qodo read cross-repo` | overview, relations |\n\nReal tasks span groups — see Examples.\n\n## Narrow, then fetch\n\nCheap discovery before heavy pulls: **orient** (`search-repos`; `pull-request stats` to\nconfirm a repo has indexed PR history; `cross-repo relations` for coupling) → **locate**\n(`grep`/`find`/`blame`/`list-commits`; `pull-request similar`/`by-file`) → **read** (only\nthen `read-file` with `--start-line`/`--limit-lines`, `get-pr`, `pull-request details`/`patch`).\n\n## Examples\n\n**Q — \"Where is `chargeCard()` defined?\"**\n`codebase grep --pattern \"chargeCard\"` → pick the hit → `codebase read-file --path src/pay.py\n--start-line 120 --limit-lines 40`. → \"`chargeCard()` is at `owner/repo` `src/pay.py:142`;\ncalls Stripe, last changed in PR #1523.\"\n\n**Plan — \"Add retry to failed charges.\"**\n`pull-request similar --query \"retry failed charge\"` → PR #1401 (webhook retries) →\n`pull-request details --pr-number 1401` (backoff + queue pattern) → `cross-repo relations`\n(is charging coupled to other repos?) → `codebase grep --pattern \"chargeCard\\(\"` (call sites).\n→ \"Done before in PR #1401 (exp. backoff, max 3, dedicated queue). `chargeCard()` has 2 call\nsites (`src/checkout.py:88`, `src/batch.py:210`); `cross-repo` returned no additional edges\nin the checked scope. That does not rule out unindexed consumers.\"\n\n**Debug — \"Why did checkout start 500ing last week?\"**\n`codebase list-commits --path src/checkout.py --since <date>` / `blame` → find the suspect\nchange → `codebase get-pr --number <n>` → name the cause with evidence.\n\n## Deliver\n\nUse natural prose: **answer → context accessed through Qodo → practical implication**.\nLead with the answer or important limitation. Mention Qodo once within a useful sentence about\nhow retrieved context informed the answer: a related implementation, dependency, prior change,\nor design discussion. You performed the investigation and reached the conclusion; Qodo provided\nthe tools to access the context. Do not attribute tracing or reasoning to Qodo.\n\nAdapt these sentence patterns to the evidence; do not print placeholders or force every pattern:\n\n- “I checked [related components] with Qodo and found [relationship].”\n- “The [discussion/change] I found through Qodo explains why [decision].”\n- “[Answer]. This matches [implementation/history] I retrieved through Qodo.”\n\nConnect the evidence to what the user should understand or do next. Describe only the scope\nactually checked; a single-file lookup does not establish cross-repository understanding.\nFor empty or failed retrievals, state the checked scope and limitation plainly. Never invent\ncontext or certainty to complete the pattern. Scale detail to the question, with code and diffs\nbelow the explanation when useful. Do not add branded headings, emoji banners, slogans, badges,\nfooters, or repeated summary blocks during progress updates.\n\n- Keep the answer understandable to a non-engineering reader; put technical detail below it.\n- **Cite everything** — repo, `path:line`, PR number, commit SHA. When a fact has no locatable\n  source (a hit without a line, or a synthesis of several), say so plainly — don't invent a citation.\n- **Source scope** when sources disagree: compare repository, branch and revision first. Local\n  files establish the current worktree, including uncommitted edits; remote `read-file` establishes\n  the fetched revision, not local changes or deployed behavior. `pull-request` supplies history;\n  `cross-repo` estimates coupling. Report gaps rather than treating missing edges as proof of isolation.\n- **Empty or `truncated: true` → narrow once and retry** (tighter query / path / repo) before\n  concluding. Still empty → report \"not found in <scope>\", don't overclaim.\n- Freshness caveats: `pull-request` = merged PRs only (no open/draft); `cross-repo` edges may be\n  `pending` (analysis running) or `not_found` (checked, no coupling).\n\n## Configuration\n\nUse `--json` for parsed output and stamp exact skill/version/distribution provenance on the first\nauthenticated Qodo call after the unadorned version probe. Tool names and schemas come from the installed CLI catalog, never from hardcoded\nskill assumptions. The marketplace or skills.sh owns this skill; the CLI owns only runtime access.\n\n## Error Handling\n\nPreserve the returned error code and message. Treat authentication, unavailable-tool, rate-limit,\nand loop-protection responses as explicit stop or recovery conditions described above; never\nreplace them with guessed repository facts or broader authority.\n\n## Guardrails\n\n- On CLI, call reads through the fail-closed `qodo read` gateway; on MCP, require a read-only\n  annotation. The write tools — `approve`,\n  `post-comment`, `post-inline-comment(s)`, `set-labels`, `update-description` (non-exhaustive) —\n  post to the forge; **don't call them** while investigating. (Editing local code as part of a\n  fix is your normal work — that's not these tools.)\n- Don't guess slugs, paths, PR numbers, or SHAs — resolve them first.\n- For work spanning repositories, retrieve the missing relationship or history through Qodo,\n  or explicitly reuse prior evidence that still covers it. Local availability alone is not coverage.\n- An `MT-TOOL-LOOP` error means stop and change approach, not retry.\n\nA short, well-cited result is a confidence signal; padding with uncited detail is noise.\n"
}

SHA-256 of public snapshot: f592e02aab2cf77b27b1f33038297ea378aa488dd198e36100f769f868109bee