--- name: investigate-first description: Diagnose defects or trace ownership when the cause or responsible boundary is unclear. --- # Investigate First Establish expected and observed behavior, relevant constraints, and what would resolve the question. Locate the owning repository and read its instructions, source, direct callers, tests, and relevant architecture. Follow evidence to the smallest boundary that explains the behavior. Reproduce the symptom when practical. Use logs, traces, persisted state, or a focused invocation to distinguish a cause from a plausible source-only explanation. Consult history when a regression or earlier design decision matters. Identify the important assumption that makes a proposed change safe, and check it through source or executable evidence where possible. When repeated fixes fail the same check, revisit their shared assumption before another variation. Choose an observation that distinguishes the leading explanations; for uneven load or ownership, compare the affected actors. Follow the result to the owning cause rather than adding compensating retries, delays, or guards. A failed hypothesis is evidence to narrow the investigation, not a reason to expand the task. For repeated remote-source research, [source research](references/source-research.md) provides an optional cache helper with explicit revisions. Use it when reuse helps; ordinary local searches need no extra tool. For timing failures, [condition-based observation](references/condition-based-observation.md) describes a bounded readiness check. Report the supported cause or strongest remaining hypothesis, its evidence, affected boundary, and next useful action. Expand the explanation only where uncertainty or impact needs it. Investigation remains read-only unless implementation is authorized.