{"id":39866705,"url":"https://github.com/masuidrive/ticket.sh","last_synced_at":"2026-01-18T14:09:30.309Z","repository":{"id":301838075,"uuid":"1010433375","full_name":"masuidrive/ticket.sh","owner":"masuidrive","description":"A self-contained ticket management system using shell script, files, and Git. Perfect for managing coding tasks, especially when working with AI coding assistants.","archived":false,"fork":false,"pushed_at":"2025-08-19T03:56:35.000Z","size":486,"stargazers_count":30,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-19T05:41:04.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masuidrive.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-06-29T04:04:50.000Z","updated_at":"2025-08-19T03:56:38.000Z","dependencies_parsed_at":"2025-06-29T06:24:10.465Z","dependency_job_id":"f3dc1cee-46f9-4d16-bca5-55adacfb3b99","html_url":"https://github.com/masuidrive/ticket.sh","commit_stats":null,"previous_names":["masuidrive/ticket.sh"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/masuidrive/ticket.sh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masuidrive%2Fticket.sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masuidrive%2Fticket.sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masuidrive%2Fticket.sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masuidrive%2Fticket.sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masuidrive","download_url":"https://codeload.github.com/masuidrive/ticket.sh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masuidrive%2Fticket.sh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28537492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T13:04:05.990Z","status":"ssl_error","status_checked_at":"2026-01-18T13:01:44.092Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-18T14:09:27.207Z","updated_at":"2026-01-18T14:09:30.278Z","avatar_url":"https://github.com/masuidrive.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ticket.sh - Gitベースチケット管理システム\n\nGitブランチとマークダウンファイルを使った軽量で堅牢なチケット管理システム。個人開発、小規模チーム、AIペアプログラミングに最適。\n\n## 主な機能\n- 🎯 **シンプルなワークフロー**: 作成、開始、作業、完了\n- 📝 **マークダウンチケット**: YAMLフロントマッター付きリッチフォーマット\n- 🌿 **Git統合**: チケット毎の自動ブランチ管理\n- 📁 **スマートな整理**: 自動doneフォルダ整理、タイムゾーン対応タイムスタンプ\n- 🔧 **依存関係なし**: 純粋なBash + Git、どこでも動作\n- 🚀 **AI対応**: シームレスなAIアシスタント連携を想定した設計\n- 🛡️ **堅牢性**: UTF-8対応、エラー回復、競合解決\n- 📓 **作業ノート分離**: デバッグ・調査ログ用の別ファイル（オプション）\n\n**言語版**: [English](README.md) | [日本語](README.ja.md)\n\n## クイックスタート\n\n### ダウンロード\n```bash\ncurl -O https://raw.githubusercontent.com/masuidrive/ticket.sh/main/ticket.sh\nchmod +x ticket.sh\n```\n\n**⚠️ Windows/VSCodeユーザー**: `/usr/bin/env: 'bash\\r': No such file or directory` エラーが発生した場合:\n```bash\n# CRLF改行コードを修正（どちらか選択）:\ndos2unix ticket.sh              # dos2unixがインストール済みの場合\nsed -i 's/\\r$//' ticket.sh      # sedを使用\n```\nこの問題は`selfupdate`コマンドによる新しいダウンロードでは自動的に防止されます。\n\n### コーディングエージェント向け\n\nClaude CodeやGemini CLIのようなコーディングエージェントでは、下記のような会話で操作。\n\n```\n`./ticket.sh init`を実行してチケット管理をインストール\nCLAUDE.mdにカスタムプロンプトを追記\n```\n\n```\n認証システムの実装チケットを切って\n```\n\n```\nそのチケットを開始して\n```\n\n```\nチケット閉じて\n```\n\n```\n残ってるチケットは何？\n```\n\n### CLI使用法\n```bash\n# プロジェクトで初期化\n./ticket.sh init\n\n# チケット作成\n./ticket.sh new implement-auth\n\n# 作業開始\n./ticket.sh start 241229-123456-implement-auth\n\n# 作業完了\n./ticket.sh close\n```\n\n## インストール\n\n### オプション1: ダウンロード\n```bash\ncurl -O https://raw.githubusercontent.com/masuidrive/ticket.sh/main/ticket.sh\nchmod +x ticket.sh\n```\n\n### オプション2: ソースからビルド\n```bash\ngit clone https://github.com/masuidrive/ticket.sh.git\ncd ticket.sh\nbash ./build.sh\ncp ticket.sh /usr/local/bin/\n```\n\n## 基本的な使い方\n\n1. **初期化**: `./ticket.sh init`\n2. **チケット作成**: `./ticket.sh new feature-name`\n3. **作業開始**: `./ticket.sh start \u003cticket-name\u003e`\n4. **チケット完了**: `./ticket.sh close`\n\n## 使用例\n\n### 基本ワークフロー\n```bash\n# 現在の状態を確認\n./ticket.sh check\n\n# ステータス別チケット一覧\n./ticket.sh list --status todo\n./ticket.sh list --status done --count 5\n\n# プロンプトなしで強制完了\n./ticket.sh close --force\n\n# 最新版にアップデート\n./ticket.sh selfupdate\n```\n\n### 完了済みチケットの操作\n```bash\n# 最近の完了チケットを表示（新しい順）\n./ticket.sh list --status done\n\n# 完了済みチケットを参照用に復元\n./ticket.sh restore 241229-123456-old-feature\n```\n\n## コマンド\n\n### コアコマンド\n- `init` - チケットシステムを初期化（冪等性、再実行安全）\n- `new \u003cslug\u003e` - 新しいチケットを作成\n- `list [--status todo|doing|done] [--count N]` - チケット一覧\n- `start \u003cticket\u003e [--no-push]` - チケットの作業を開始\n- `close [--no-push] [--force] [--no-delete-remote]` - チケットを完了\n- `restore` - current-ticket.mdシンボリックリンクを復元\n\n### ユーティリティコマンド\n- `check` - 現在の状態を診断してガイダンスを提供\n- `version` / `--version` - バージョン情報を表示\n- `selfupdate` - GitHubから最新リリースにアップデート\n\n### listコマンドの機能\n- **ステータス絞り込み**: `--status todo|doing|done` でチケットステータス別表示\n- **件数制限**: `--count N` で表示結果数を制限\n- **完了チケット**: 完了日時順でソート（新しい順）\n- **タイムゾーン表示**: 完了時刻をローカルタイムゾーンで表示\n- **doneフォルダ**: 完了チケットを `tickets/done/` に自動整理\n\n## 設定\n\n`.ticket-config.yaml`を編集（これは作者が実際に使っている設定です）：\n\n```yaml\n# Ticket system configuration\n\n# Directory settings\ntickets_dir: \"tickets\"\n\n# Git settings\ndefault_branch: \"main\"\nbranch_prefix: \"feature/\"\nrepository: \"origin\"\n\n# Automatically push changes to remote repository during close command\n# Set to false if you want to manually control when to push\nauto_push: true\n\n# Automatically delete remote feature branch after closing ticket\n# Set to false if you want to keep remote branches for history\ndelete_remote_on_close: true\n\n# Success messages (leave empty to disable)\n# Message displayed after starting work on a ticket\nstart_success_message: |\n  Please review the ticket content in `current-ticket.md` and make any necessary adjustments before you begin work.\n  Run ticket.sh list to view all todo tickets. For any related tasks that have already been prioritized, list them under the `## Notes` section.\n\n# Message displayed after closing a ticket\nclose_success_message: |\n  I've closed the ticket—please perform a backlog refinement.\n  Run ticket.sh list to view all todo tickets; if you find any with overlapping content, review the corresponding `tickets/*.md` files.\n  If you spot tasks that are already complete, update their tickets as needed.\n\n# Note template (optional - if not defined, no note file will be created)\n# Use this for debugging logs, investigation details, etc.\nnote_content: |\n  # Work Notes for $$TICKET_NAME$$\n  \n  ## Implementation Details\n  \n  ...\n\n  ## Task 1\n  \n  ...\n\n# Ticket template\ndefault_content: |\n  # Ticket Overview\n\n  {{Write the overview and tasks for this ticket here.}}\n\n  ## Prerequisite\n\n  {{List any prerequisites or dependencies for this ticket.}}\n\n\n  ## Tasks\n\n  **Note: After completing each task, you must run ./bin/test.sh and ensure all tests pass. No exceptions are allowed.**\n\n  {{Organize tasks into phases based on logical groupings or concerns. Create one or more phases as appropriate.}}\n\n  ### Phase 1: {{Phase name describing the concern/focus}}\n\n  - [ ] {{Task 1}}\n  - [ ] {{Task 2}}\n  ...\n\n  ### Phase 2: {{Phase name describing the concern/focus}}\n\n  - [ ] {{Task 1}}\n  - [ ] {{Task 2}}\n  ...\n\n  ### Phase N: {{Additional phases as needed}}\n\n  ### Final Phase: Quality Assurance\n  - [ ] Run unit tests (./bin/test.sh) and pass all tests (No exceptions)\n  - [ ] Run integration tests (./bin/test-integration.sh) and pass all tests (No exceptions)\n  - [ ] Run code review (./bin/code-review.sh)\n  - [ ] Review and address all reviewer feedback\n  - [ ] Update documentation and this ticket\n\n  ## Acceptance Criteria\n\n  {{Define the acceptance criteria for this ticket.}}\n\n\n  ## Test Cases\n\n  {{List test cases to verify the ticket's functionality.}}\n\n\n  ## Parent ticket\n\n  {{If this ticket is a sub-ticket, link to the parent ticket here.}}\n\n\n  ## Child tickets\n\n  {{If this ticket has child tickets, list them here.}}\n\n  ## Review\n\n  Please list here in full any remarks received from reviewers.\n  Any corrections should also be added to the Tasks section at the top.\n\n\n  ## Notes\n\n  {{Additional notes or requirements.}}\n```\n\n## 高度な機能\n\n### スマートなブランチ処理\n- **既存ブランチ**: 失敗する代わりに自動的にチェックアウトして復元\n- **クリーンブランチ**: 変更がない場合はデフォルトブランチから新ブランチを作成\n- **競合検出**: クローズ時のマージ競合処理のガイダンス提供\n\n### 自動整理\n- **doneフォルダ**: 完了チケットを自動的に `tickets/done/` に移動\n- **リモートクリーンアップ**: リモートfeatureブランチの自動削除オプション\n- **Git履歴**: `current-ticket.md` の誤コミット防止\n\n### 作業ノート分離（オプション）\n- **別ノートファイル**: デバッグログや調査詳細を `*-note.md` ファイルに分離\n- **クリーンなチケット**: メインのチケットファイルは要件に集中し簡潔に\n- **自動管理**: ノートファイルの作成、移動、リンクを自動化\n- **後方互換性**: configで `note_content` が定義された場合のみ有効\n\n### エラー回復\n- **checkコマンド**: 問題を診断して次のステップのガイダンス提供\n- **restoreコマンド**: シンボリックリンクの再構築と中断操作からの回復\n- **競合解決**: マージ競合解決後の操作再開\n\n### 堅牢性機能\n- **UTF-8対応**: すべてのコンテンツとファイル名でUnicode完全対応\n- **権限耐性**: ファイルシステム権限問題の優雅な処理\n- **ネットワーク耐性**: リモートプッシュが失敗してもローカル操作は継続\n- **クロスプラットフォーム**: macOS、Linux、その他Unix系システムで動作\n\n## 動作要件\n\n- Bash 3.2+\n- Git\n- 基本的なUnixツール\n\n## 開発者向け\n\n詳細は[DEV.md](DEV.md)を参照：\n- アーキテクチャの詳細\n- ソースからのビルド\n- テスト手順\n- コントリビューションガイドライン\n\n## ライセンス\n\nMITライセンス - LICENSEファイルを参照","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasuidrive%2Fticket.sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasuidrive%2Fticket.sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasuidrive%2Fticket.sh/lists"}