{"id":51101687,"url":"https://github.com/shishidosoichiro/renga","last_synced_at":"2026-06-24T11:02:11.852Z","repository":{"id":361004190,"uuid":"1252722631","full_name":"shishidosoichiro/renga","owner":"shishidosoichiro","description":"Issue tracking for AI-assisted development — plain Markdown files, no account, no config","archived":false,"fork":false,"pushed_at":"2026-06-22T05:01:23.000Z","size":445,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-22T07:06:44.329Z","etag":null,"topics":["ai","claude-code","cli","git","issue-tracker","markdown","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shishidosoichiro.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-28T20:01:17.000Z","updated_at":"2026-06-22T05:01:26.000Z","dependencies_parsed_at":"2026-06-22T07:03:18.949Z","dependency_job_id":null,"html_url":"https://github.com/shishidosoichiro/renga","commit_stats":null,"previous_names":["shishidosoichiro/renga"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/shishidosoichiro/renga","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shishidosoichiro%2Frenga","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shishidosoichiro%2Frenga/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shishidosoichiro%2Frenga/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shishidosoichiro%2Frenga/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shishidosoichiro","download_url":"https://codeload.github.com/shishidosoichiro/renga/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shishidosoichiro%2Frenga/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34728928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude-code","cli","git","issue-tracker","markdown","rust"],"created_at":"2026-06-24T11:02:10.988Z","updated_at":"2026-06-24T11:02:11.846Z","avatar_url":"https://github.com/shishidosoichiro.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Renga — File-Based Issue Management\n\n[![CI](https://github.com/shishidosoichiro/renga/actions/workflows/ci.yml/badge.svg)](https://github.com/shishidosoichiro/renga/actions/workflows/ci.yml)\n[![Coverage](https://codecov.io/gh/shishidosoichiro/renga/branch/main/graph/badge.svg)](https://codecov.io/gh/shishidosoichiro/renga)\n[![Crates.io](https://img.shields.io/crates/v/renga.svg)](https://crates.io/crates/renga)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nrenga は issue をファイルで管理する CLI ツールです。普通の Markdown なので、エディタ・grep・git・AI エージェントがそのまま読み書きできます。`renga create \"タイトル\"` で issue を作成し、`renga done 1` で閉じます。\n\n\u003e English version: [README.md](README.md)\n\n## クイックスタート\n\n```sh\n# 1. インストール\nbash \u003c(curl -fsSL https://raw.githubusercontent.com/shishidosoichiro/renga/main/install.sh)\n\n# 2. 初期化（git リポジトリがなくても動く）\nrenga init\n\n# 3. 最初の issue を作る\nrenga create \"最初のタスク\"\n```\n\n以上。`issues/` ディレクトリにファイルが作られる。\n\n## AI エージェントとの推奨ワークフロー\n\n```text\n1. タスクの issue を作る\n   renga create \"入力バリデーションを追加する\" --area core\n\n2. エージェントが作業前に renga list で確認する\n\n3. 作業中に判断・制約を issue 本文の ## Notes に追記する\n\n4. 実装後に renga validate を実行する\n\n5. 修正コミットと一緒に issue を close する\n   renga done 1\n   git add issues/ src/\n   git commit -m \"feat: 入力バリデーションを追加 (#1)\"\n```\n\nissue ファイルとコードの変更が同じコミットに入る——git の履歴が全体像を語る。\n\n## Claude Code integration\n\nClaude が作業しながら issue を作り、完了したら close する——コーディングのフローを止めずに issue 管理が回る。\n\nスキルをインストールすれば、Claude Code の中で `/renga` を使って issue を管理できる。\n\n```sh\n# Node.js がある場合\nnpx skills add shishidosoichiro/renga\n\n# Node.js がない場合\nmkdir -p ~/.claude/skills/renga\ncurl -fsSL https://raw.githubusercontent.com/shishidosoichiro/renga/main/skills/renga/SKILL.md \\\n  -o ~/.claude/skills/renga/SKILL.md\n```\n\nあとは Claude Code セッションの中で直接使うだけ。\n\n```\n/renga create \"入力バリデーションを追加する\"\n/renga list\n/renga update 3 --add-label bug\n/renga done 3\n```\n\n| コマンド | 動作 |\n|---|---|\n| `/renga [create] \u003cタイトル\u003e` | issue を作成する |\n| `/renga done \u003cID\u003e...` | 完了にする |\n| `/renga pending \u003cID\u003e...` | 保留にする |\n| `/renga in-progress \u003cID\u003e...` | 作業中にする |\n| `/renga reopen \u003cID\u003e...` | 再開する |\n| `/renga update \u003cID\u003e ...` | issue のフィールドを更新する |\n| `/renga list` | open/pending の一覧を表示する |\n| `/renga show \u003cID\u003e` | 詳細を表示する |\n\n## GitHub Issues を使う前に\n\n**ソロ開発者・小規模チーム**で、外部サービスのセットアップなしにすぐ作業を始めたい人向け。\n\n- Claude Code などの AI ツールを使っていて、ターミナルを離れずに issue 管理をしたい\n- GitHub Issues を設定する前のプロジェクトで使いたい\n- ネットワークのない環境やプライベートなマシンで開発している\n- issue の変更履歴をコードと同じ git に残したい\n\nコメント・担当者・通知・Web UI が必要なら、GitHub Issues や Linear を使うほうがいい。Renga は意図的にシンプルに絞っている。\n\n## 何が違うのか\n\n- **AI ネイティブ**: issue ファイルは普通の Markdown なので、LLM がそのまま読み書きできる。エージェントが issue を開き、修正して、close する——一つのセッションで完結する。\n- **オフラインで動く**: ネットワーク接続もアカウントも API トークンも不要。`renga init` だけで始められる。\n- **設定不要**: どのディレクトリにも置くだけで使える。プロジェクト設定も外部サービスも要らない。\n- **コードと一緒に暮らす**: issue ファイルはただのファイル。好きなエディタで開けて、grep で検索できて、修正コードと一緒に git にコミットできる。\n- **データは手元に**: エクスポートは要らない。renga を使い続けても使わなくなっても、ファイルはそのまま読める。\n\n## インストール\n\nインストールスクリプトがプラットフォームに合ったバイナリを GitHub Releases から取得してインストールする。\n\n```sh\nbash \u003c(curl -fsSL https://raw.githubusercontent.com/shishidosoichiro/renga/main/install.sh)\n```\n\nソースからビルドする場合:\n\n```sh\ncargo install renga\n```\n\n## コマンド\n\n| コマンド | 動作 |\n|---|---|\n| `renga init` | issues ディレクトリを初期化する |\n| `renga create \u003cタイトル\u003e [--id \u003cN\u003e] [--slug \u003cslug\u003e] [--priority high\\|medium\\|low] [--area \u003carea\u003e] [--body \u003cテキスト\\|-\\\u003e] [--milestone \u003cmilestone\u003e] [--assignee \u003cassignee\u003e] [--label \u003clabel\u003e]...` | issue を作成する（`--body -` で標準入力から本文を読む） |\n| `renga create --json` | 標準入力の JSON object から issue を作成する |\n| `renga done \u003cID\u003e...` | issue を完了にする |\n| `renga pending \u003cID\u003e...` | issue を保留にする |\n| `renga in-progress \u003cID\u003e...` | issue を作業中にする |\n| `renga reopen \u003cID\u003e...` | issue を再開する |\n| `renga list [--status open\\|pending\\|in-progress\\|done\\|unknown] [--area \u003carea\u003e] [--label \u003clabel\u003e] [--milestone \u003cmilestone\u003e] [--assignee \u003cassignee\u003e] [--json]` | issue 一覧を表示する |\n| `renga show \u003cID\u003e [--json]` | issue の詳細を表示する |\n| `renga edit \u003cID\u003e` | `$EDITOR` で issue を開く（人間向け） |\n| `renga update \u003cID\u003e [\u003cタイトル\u003e] [--priority ...] [--area ...] [--status ...] [--milestone ...] [--assignee ...] [--label ...]... [--add-label ...]... [--remove-label ...]... [--body \u003cテキスト\\|-\u003e]` | issue のフィールドを更新する（AI・スクリプト向け） |\n| `renga update \u003cID\u003e --json` | 標準入力の JSON object から issue のフィールドを更新する |\n| `renga info` | プロジェクトルート・issues ディレクトリ・設定ファイルの場所と現在の設定を表示する |\n\n`--milestone` または `--assignee` に空文字列を渡すとフィールドを削除できる: `renga update 1 --assignee ''`\n| `renga migrate` | フラット構造のイシューをステータス別ディレクトリに移動する |\n| `renga validate [ID]... [--auto-correct]` | issue のスキーマ・status エラー、ID 重複、status ディレクトリ不整合を検出する |\n| `renga completions bash\\|zsh\\|fish` | シェル補完スクリプトを表示する |\n| `renga help [コマンド]` | ヘルプを表示する |\n\nfrontmatter の `status` を正とする情報源とする。active issue が誤って\n`done/` 配下にある場合、active issue 用コマンドはその issue を操作し、warning と\n`renga validate \u003cID\u003e --auto-correct` の推奨を表示する。通常の `status: done`\nissue は reopen するまで active issue 用コマンドでは変更できない。\n\n```sh\n# JSON 出力を jq にパイプする\nrenga list --json | jq '.[] | select(.area == \"auth\")'\n\n# JSON 入力はスクリプトや AI エージェントで使いやすい\nprintf '%s\\n' '{\"title\":\"Bug\",\"area\":\"cli\",\"labels\":[\"bug\"],\"body\":\"details\"}' | renga create --json\nprintf '%s\\n' '{\"priority\":\"high\",\"add_labels\":[\"urgent\"]}' | renga update 1 --json\n```\n\n## renga が issues/ を探す仕組み\n\n`renga` コマンドを実行すると、カレントディレクトリからファイルシステムのルートに向かって上位を辿り、最初に次のいずれかに該当するディレクトリで止まる。\n\n1. `.renga.yml` が存在する — そのファイルの `issues_dir` の値を issues ディレクトリとして使う（デフォルト: `issues`）\n2. `issues/` サブディレクトリが存在する\n\nサブディレクトリのどこから実行しても、上位の issues ディレクトリを自動的に見つける。何も見つからない場合は、カレントディレクトリの `issues/` にフォールバックする。\n\n## シェル補完\n\nサブコマンド・フラグ・イシュー番号のタブ補完を有効にする。\n\n**bash** — `~/.bashrc` に追加:\n\n```sh\neval \"$(renga completions bash)\"\n```\n\n**zsh** — `~/.zshrc` に追加:\n\n```sh\nsource \u003c(renga completions zsh)\n```\n\n**fish** — 一度だけ実行:\n\n```sh\nrenga completions fish \u003e ~/.config/fish/completions/renga.fish\n```\n\n## カスタマイズ\n\nプロジェクトルートに `.renga.yml` を置く。\n\n```yaml\nissues_dir: issues    # デフォルト: issues\n\narea_order:           # 一覧での area の表示順（省略時はアルファベット順）\n  - backend\n  - frontend\n  - infra\n  - misc\n\narea_labels:          # area の表示名\n  backend: \"バックエンド\"\n  frontend: \"フロントエンド\"\n  infra: \"インフラ\"\n  misc: \"その他\"\n```\n\n## 開発\n\n```sh\ncargo test            # テスト実行\ncargo test --doc      # doctest 実行\ncargo clippy -- -D warnings\ncargo fmt --check\ncargo doc --no-deps --open\n```\n\nファイル形式と命名規則の仕様は [spec.ja.md](spec.ja.md) を参照。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshishidosoichiro%2Frenga","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshishidosoichiro%2Frenga","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshishidosoichiro%2Frenga/lists"}