Description
Causal projection marks a gRPC SERVER span ERROR on any failed 4xx (causal_project.go serverStatus and rootStatus default branch), but pinned semconv grpc.md v1.44.0 counts only UNKNOWN, DEADLINE_EXCEEDED, UNIMPLEMENTED, INTERNAL, UNAVAILABLE and DATA_LOSS as server errors; a throttle (RESOURCE_EXHAUSTED) or rule rejection (INVALID_ARGUMENT) must stay UNSET on the server. Also: per-attempt log lines in faulted requests still draw from the engine; worker/stream/job/llm callees are treated as HTTP for status_code stamping. No shipped blueprint declares grpc today.
Acceptance Criteria
- #1 gRPC SERVER spans follow the pinned gRPC status rules, red then green
- #2 Non-gRPC and non-causal output unchanged
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/