investigate-contract

SkillDev tools

Lets your agent inspect code and documents during investigate mode without changing anything.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the investigate-contract skill

About this capability

Read-only guarantee + interactive-vs-autonomous (--auto) behavior for investigate modes. Internal helper invoked by the investigate mode of feat / fix — not meant to be run on its own.

What this skill tells your AI

The instructions your AI receives, as published by ossappscollective/oss-documentscanner in .claude/skills/investigate-contract/SKILL.md and read by ahel’s review.

Applies whenever a skill runs with --investigate. The domain-specific output (a plan, or a bug triage) and any labeling live in the calling skill; this is the shared contract.

Read-only (enforce yourself)

Investigate mode is strictly read-only: never edit code, never create a branch, never commit. Nothing at the tool level blocks you here, so hold the line yourself. The only writes you make are the GitHub-issue comment (gh issue comment, via the save-plan-to-github skill) and, in autonomous mode, a label the calling skill may add (gh issue edit --add-label). Other hard limits (no force-push, no destructive shell) are enforced by .claude/settings.json deny/ask rules — if a tool call is blocked, do not work around it.

Interactive vs autonomous

--investigate is interactive by default; --investigate --auto is autonomous. The analysis is identical — only the human-in-the-loop differs:

Interactive (--investigate)Autonomous (--investigate --auto)
QuestionsMay ask 1-2 targeted questions when a material ambiguity changes the outputNever ask — record the assumption and proceed
Use caseWhile the user is at their machineUnattended batch (e.g. nightly)

Record assumptions instead of blocking

When the issue is underspecified, don't stall. Interactive: ask only the question(s) that materially change the output; for everything minor, state the assumption explicitly in the posted block (under an "Assumptions" heading) and proceed. Autonomous: never ask — always record the assumption and continue. A reader seeing your assumptions is far more useful than a half-done investigation waiting on input.

Review before posting (interactive only)

The posted block is the deliverable — but in interactive mode the user is sitting with you, so let them shape it before it lands on the issue. Draft the plan, present it in chat, fold in their edits, and post the comment only once they approve. Posting an unreviewed plan and asking for validation after it's already on the issue is backwards when a human is right there to catch a wrong assumption or a missing constraint first.

For the in-chat review, show every section expanded — don't wrap sections in <details> collapsibles (those hide content the user wants to see now). Keep the tables/bullets as-is. Assemble the final comment (with <details> around the long sections) only at the moment you post it, after approval.

Autonomous (--auto) is the exception: there's no human to ask, so post directly — the gh issue comment call is the deliverable and the only write. Never block an unattended run waiting on approval.

Signals

GitHub stars
2k
Forks
121
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
investigate-contract-ossappscollective
Source
github.com/ossappscollective/oss-documentscanner