From the Inside Claude Code - The Claude Code Ecosystem architecture map
Label decisions by the triage agent leave no reason a maintainer can see
risk · medium · verified
The triage prompt forbids comments, so when Claude adds invalid, needs-info or duplicate the issue shows only a label from github-actions. The reasoning exists only in the Actions run log, which expires, and the only metric sent out is a dedupe count to Statsig.
Impact: Wrong labels that later auto-close issues are hard to audit or trace back to the input that caused them.
Recommendation (small effort): Write a one-line reason per label to the job summary and a structured log event (issue, label, reason, model, run id) so decisions can be reviewed in bulk.
The trail
Open on the mapMore from this board
- Optional SessionStore methods raise instead of being absent, so a change in Types reaches 13 modules
- The Lowerer is one struct spread over 38 files and 29,700 lines with no unit tests
- Day 1: start with marketplace.json, the contract everything else serves
- Every SDK module imports its exceptions from one file, _errors.py
- Partner MCP plugins launch unpinned packages on every user's machine
- PR-controlled agent config is restored from the base branch before Claude starts
- Control-protocol failures escape the SDK exception hierarchy
- The triage and dedupe agents are boxed in identity, tools and network
- Spend and run length are bounded at the transport
- The subprocess transport carries five responsibilities in one file
- Every agent-driven closure has a human override before it happens
- Skip for now: config-only integrations, CI plumbing and single-file plugins
- External-PR workflows never execute contributor code