بنقرة واحدة
investigate
Investigate bugs — hypothesis formation, code tracing, and common Forge failure patterns.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Investigate bugs — hypothesis formation, code tracing, and common Forge failure patterns.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Visual-design discipline for forge frontends — brief the work before building (never invent an aesthetic without user input), declare the design system before coding, lean on the component library, use restrained color/type systems, never hand-draw complex SVGs, and verify visually before declaring done.
Write Next.js frontends — generated hooks, component library, Tailwind v4, visual verification, and Connect RPC clients.
Outbound boundary translators. One adapter per third-party system / queue / storage backend; narrow interface, vendor-neutral callers.
Write Connect RPC handlers — proto-driven codegen, the thin-translation handler pattern (validate, extract auth, convert proto↔internal, call service, wrap errors via `svcerr.Wrap`), middleware, and testing. Business logic lives in `internal/handlers/<svc>/contract.go`, never in handlers.
Forge project conventions and architecture — project structure, generated vs hand-written code, the generate pipeline, proto annotations, contracts, wiring, and naming.
Use-case orchestrators that compose two or more adapters/services. Deps are interfaces only — designed for unit tests with all-mock collaborators.
| name | investigate |
| description | Investigate bugs — hypothesis formation, code tracing, and common Forge failure patterns. |
You have a bug report with no obvious code path — you need to form and rank hypotheses before diving in.
git log on affected files, look for related commitsStale generated code
Forgot forge generate after a proto change. Run it and retest:
forge generate
forge test
Nil proto fields Optional proto fields accessed without nil checks. Look for bare field access on messages that could be empty.
Wrong Connect error codes
Returning Internal when it should be InvalidArgument, NotFound, or PermissionDenied. Check handler return paths.
Race conditions in handlers Shared state modified without synchronization. Look for package-level vars, map writes, or shared slices accessed from handlers.
Migration / codegen drift
Code expects a column or table that hasn't been migrated yet, or references generated symbols that are stale after a proto/schema change. Run forge audit to surface the mismatch and forge generate to refresh — do this before chasing the code when a symbol is "undefined" right after a schema change.
Missing error checks on Connect calls
Frontend calling Connect endpoints without handling error responses. Check for unchecked .error on client responses.
Code reading ranks hypotheses; runtime evidence confirms them. The fast forge tools:
forge introspect handlers — localize: if the failing RPC isn't in the assembled binary's list, the fault is a downstream/remote hop, not this code. This often kills several hypotheses at once.forge api curl <service.method> — exercise the endpoint from the shell to confirm the symptom (stops at the auth interceptor — no token minting).forge cluster logs --service <name> — read the server's actual logs for the request (kubectl-backed; owner cluster only — use kubectl --context <other> for a peer in another cluster).forge debug start <svc> — attach Delve when logs aren't enough. Caveats: in a multi-binary repo start <service> can mis-build (falls back to ./cmd/...) so pass an explicit path; and forge debug stop after --attach kills the live process.Present findings as:
Do not fix the bug in investigation mode — hand off with clear evidence.
Note for the implementer's handoff: a green forge smoke / forge doctor does NOT prove the app flow works (they check listeners/compose/telemetry, not app-flow invariants). The fix is only proven by a declarative, exit-coded app-health assertion (model: a project doctor:<flow> task) plus a full forge test e2e.