{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "ko",
  "slug": "birdview",
  "url": "https://tesign.com/item/birdview/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/birdview/",
      "json": "https://tesign.com/item/birdview/index.json",
      "markdown": "https://tesign.com/item/birdview/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/birdview/",
      "json": "https://tesign.com/en/item/birdview/index.json",
      "markdown": "https://tesign.com/en/item/birdview/index.md"
    }
  },
  "name": "Birdview",
  "use_label": "AI 코딩 팀용 영향 지도",
  "one_liner": "에이전트가 코드를 고치기 전에 건드릴 모듈을 구조도 위에 먼저 보여 줍니다.",
  "text": {
    "why": "에이전트 코딩 로그는 무슨 일이 있었는지, diff는 어느 줄이 바뀌었는지만 말해 줍니다. Birdview는 그 앞에 구조 검사를 끼워, 프로젝트의 아키텍처 지도를 먼저 만들고 에이전트가 손댈 모듈과 근거를 표시한 뒤 편집하게 합니다. 결과는 서버 없이 여는 단독 HTML이고 지도와 활동 기록은 JSON 스키마로 검증합니다. MIT로 공개돼 있지만 활동은 에이전트가 스스로 선언하는 것이라 실제 편집을 자동으로 관찰하지는 않습니다.",
    "take": "에이전트에 '어디를 건드릴 건지 먼저 그려라'를 강제하는 절차가 핵심입니다.",
    "build": [
      "에이전트 작업 전에 영향 범위를 확인하는 팀 리뷰 절차",
      "온보딩용으로 걸어 두는 근거 연결 아키텍처 지도",
      "변경 전후 구조를 나란히 비교하는 릴리스 노트 첨부물"
    ],
    "who": [
      {
        "role": "에이전트 사용 개발자",
        "situation": "변경 범위가 예상 밖으로 번져 본 적이 있을 때"
      },
      {
        "role": "테크 리드",
        "situation": "리뷰 전에 영향 모듈을 한눈에 보고 싶을 때"
      }
    ],
    "start": [
      {
        "command": true,
        "text": "npm ci"
      },
      {
        "command": true,
        "text": "npm run validate:examples"
      },
      {
        "command": true,
        "text": "npm test"
      },
      {
        "command": true,
        "text": "npm run build:demo"
      },
      {
        "command": false,
        "text": "Node.js 18+ · 끝나면 examples/harness-activity.html을 브라우저로 열기"
      },
      {
        "command": false,
        "text": "에이전트에 붙이는 설치는 docs/installation.md 참조"
      }
    ],
    "caveat": [
      "활동은 에이전트가 선언한 것이며 실제 편집을 자동 관찰하지 않습니다",
      "갱신은 HTML을 다시 만들어 새로고침해야 합니다",
      "npm에 배포되지 않은 private 패키지입니다(v0.1)"
    ]
  },
  "cta": {
    "type": "install",
    "label": "INSTALL",
    "url": "https://qiuner.github.io/birdview"
  },
  "ready": "install",
  "categories": [
    "dev-tools",
    "ai"
  ],
  "categories_confirmed": true,
  "tags": [
    "architecture",
    "code-visualization",
    "agents",
    "diagram-as-code"
  ],
  "platform": [
    "cli",
    "web"
  ],
  "license": {
    "spdx": "MIT",
    "scope": "permissive",
    "scope_text": "상업 이용·수정·재배포 가능. 저작권 고지는 유지.",
    "url": "https://spdx.org/licenses/MIT.html",
    "note": null,
    "open_source": true
  },
  "language": "JavaScript",
  "source_urls": {
    "canonical": "https://qiuner.github.io/birdview",
    "github": "https://github.com/qiuner/birdview",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "github",
        "url": "https://github.com/qiuner/birdview",
        "posted_at": "2026-09-12T11:00:00.000Z",
        "hn_url": null
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 285,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:34:28.259Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": 23,
    "star_delta_30d": 23,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      4,
      15,
      2,
      2,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": null,
    "hn_points_observed_at": null,
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-15T03:32:52.000Z",
    "owner_type": "User",
    "open_issues": 0,
    "contributors": 1,
    "releases_count": 3,
    "latest_release": {
      "tag": "v0.2.0",
      "published_at": "2026-09-15T03:32:56.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-15T19:34:28.259Z",
    "core_checked_at": "2026-09-15T19:34:28.259Z"
  },
  "signals": [
    {
      "kind": "new",
      "label": "신규",
      "value": "생성 27h 만에 포착"
    }
  ],
  "images": {
    "og": "https://tesign.com/img/birdview-ae29760b36.png",
    "cover": "https://tesign.com/img/birdview-ae29760b36.png",
    "cover_width": 1440,
    "cover_height": 900,
    "gallery": [
      "https://tesign.com/img/birdview-ae29760b36.png",
      "https://tesign.com/img/birdview-2ad6f2ce0b.png"
    ],
    "alt": "Birdview 활동 화면. 어두운 배경에 세 묶음의 모듈 상자, Task scheduler와 Agent loop가 강조 표시.",
    "tier": 2
  },
  "dates": {
    "first_seen_at": "2026-09-13T10:29:59.976Z",
    "source_created_at": "2026-09-12T06:59:27.000Z",
    "discovery_hours": 27.50916,
    "launch_signal_at": "2026-09-12T11:00:00.000Z",
    "kept_at": "2026-09-14T02:41:59.141Z",
    "first_published_at": "2026-09-14T02:41:59.484Z",
    "updated_at": "2026-09-15T04:36:56.806Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
