genchi-genbutsu · git:20260909.6197cfc · 2026-09-09 · sha256 ea78516b8327fd21
genchi-genbutsu git:20260909.6197cfcA
Immutable. This exact content is served forever at /api/v1/blob/ea78516b8327fd21.
--- name: genchi-genbutsu description: "Inspect the real repository, environment, dependencies, and runtime evidence before designing or changing software. Use for greenfield construction, unfamiliar codebases, uncertain behavior, or any task where assumptions could create rework." --- # Genchi Genbutsu Genchi genbutsu means going to the source. In software, make decisions from the actual repository, environment, runtime behavior, and authoritative documentation instead of from memory or plausible-looking generated output. This is a Japanese-inspired engineering metaphor, not a cultural universal. ## Use this skill when - the codebase or toolchain is unfamiliar; - a project is being built from scratch; - the request references behavior that has not been observed; - an API, dependency, framework, or command is uncertain; - a bug or performance issue needs evidence; or - a previous attempt relied on assumptions and created rework. ## Outcome Produce a bounded reconnaissance report with: - the relevant repository or environment surface; - existing implementations, consumers, and conventions; - commands, tests, builds, or runtime observations used as a baseline; - constraints and failure boundaries; - facts separated from inference; - unknowns that still need resolution; and - the narrowest safe seam for the next change. For greenfield work, the report covers the domain, users, deployment target, available services, language and toolchain constraints, operational ownership, and the smallest behavior worth proving first. ## Workflow ### 1. Map the surface Inspect the directory structure, entrypoints, package manifests, lockfiles, configuration, schemas, routes, commands, tests, and deployment files relevant to the request. Search before creating a new helper, module, route, or service. ### 2. Trace behavior Follow the relevant input through callers, transformations, side effects, storage, external calls, and failure paths. Identify who depends on observable behavior, including behavior that is not documented. ### 3. Establish a baseline Run the narrowest useful existing check: a reproduction, focused test, type check, build, benchmark, health check, or representative command. Record the exact command and result. If no check exists, state that explicitly and create the smallest observation needed to reduce uncertainty. ### 4. Verify external facts Read the project's actual usage and authoritative dependency documentation when behavior is uncertain. Never invent an API from a familiar name or copy a snippet without reconciling versions and local conventions. ### 5. Report and stop Return only findings relevant to the request. Name the evidence, assumptions, unknowns, risks, and recommended next seam. Do not begin unrelated cleanup because reconnaissance exposed it. ## Evidence standard Every important claim must be traceable to a file, command, test result, runtime observation, or authoritative source. Say `not verified` when evidence is missing. A clean report is more valuable than a confident guess. ## Boundaries - Do not read the entire repository when a bounded slice answers the question. - Do not treat comments, issue text, or AI output as stronger than behavior. - Do not modify code during reconnaissance except for a clearly labeled, minimal probe that is required to observe the system. - Do not convert an absence of evidence into evidence of absence. ## Handoff Hand the next engineer a compact map of the system and a baseline they can rerun. Recommend `nemawashi` if intent remains unclear, `kanso` if design choices remain, or `kata` when the next slice is ready to implement. If a referenced skill is not installed, apply its named lens inline instead of trying to invoke it.