코드에 영향을 미치기 전에 Claude에게 프로젝트 맵을 제공하세요.

hackernews | | 📦 오픈소스
#anthropic #claude #review #winkers #개발 도구 #코드 관리 #프로젝트 맵
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

'Winkers'는 코드베이스의 의존성을 시각화하고 기술 부채를 분석하여 개발자의 프로젝트 이해를 돕는 도구입니다. 또한, 프로젝트의 아키텍처 맵과 제약 조건을 AI 코딩 에이전트에게 제공하여 컨텍스트 부족으로 인한 잘못된 코드 생성을 방지합니다. tree-sitter를 통해 로컬에서 그래프를 구축하고, Claude API를 활용해 의미론적 정보를 생성하여 IDE와 연동합니다. 현재 파이썬을 비롯해 TypeScript, Go, Rust 등 다양한 언어를 지원하며, 대시보드를 통해 복잡한 함수의 문제 영역을 직관적으로 파악할 수 있습니다.

본문

Don't lose control of growing code. Then stop needing control at all. Winkers solves two problems: - For developers — as a codebase grows, it becomes impossible to hold the full picture in your head. Winkers builds a function-level dependency graph, calculates tech debt metrics, and gives you a browser dashboard to see dependencies and problem areas at a glance. - For AI agents — coding agents make bad decisions when they lack project context. Winkers is a search for the optimal protocol to deliver architectural knowledge to agents so they make correct decisions autonomously, without human oversight. The graph is built locally via tree-sitter. The semantic layer (why zones exist, what constraints matter, how to add features) is generated by Claude API in one call. Both are served to agents via MCP and visualized in a local dashboard. I've been using Claude Code on a business task (~150 functions) and kept hitting the same problem: the agent would confidently refactor a function called from 12 places, or merge code into files I'd rather keep untouched. So I built Winkers — a tree-sitter based MCP server that gives the agent a structured project map in one call before it writes anything. map() returns zones, hotspot functions, constraints (~500 tokens). An optional semantic layer (one Claude API call) adds business constraints and conventions that aren't visible from code structure alone — the "why" behind the architecture. Early results are encouraging: - Haiku + map ~ Sonnet without map, at 2-3x lower cost. The graph compensates for the weaker model's lack of exploration. - More context != better results. Forcing the full function list (~9K tokens) performed worse than the focused map (~500 tokens). Constraints got lost in noise. - The real design problem isn't building the graph — it's finding the right balance between MCP strictness and agent autonomy. There are several code graph MCP servers already (CodeGraphContext, codebase-memory-mcp). Winkers doesn't compete with them. What I think is missing across all tools is the steering layer: how much context to give, when to give it, and when to let the agent figure things out on its own. That balance determines whether the code agents produce actually holds up over time, or quietly turns into a patchwork of brittle fixes that pass tests but resist any change. pip install git+https://github.com/n1cke1/winkers.git cd your-project winkers init Auto-detects Claude Code or Cursor and registers the MCP server. Set ANTHROPIC_API_KEY for semantic enrichment (without it, graph still works). | MCP Tool | Context | |---|---| map | Zones, intents, constraints, conventions, before_writing_code checklist | functions_graph | Every function indexed with caller references and complexity | hotspots | Functions with 5+ callers — who calls them and how | scope | Full context for one function: callers, callees, related constraints | The agent is told: call map first before any code changes. It gets the constraints and checklist, then makes informed decisions. winkers init # graph + semantic + register MCP winkers init --no-semantic # graph only, no API call winkers serve # MCP server (stdio, called by IDE automatically) winkers dashboard # browser graph at localhost:7420 Interactive dependency graph with zone colors, caller-based sizing, and two layers: - Default — architecture overview with hover tooltips - Tech Debt — highlights complex functions, long functions, monster files Right-click any function to view its source code. Python, TypeScript, JavaScript, Java, Go, Rust, C# - Windows 11 + VS Code + Claude Code extension - Python 3.11 / 3.12 - MCP SDK 1.26 Linux/Mac should work but hasn't been tested in production yet. Issues welcome. MIT

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →